summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLuboš Luňák <l.lunak@suse.cz>2013-02-14 17:12:54 +0100
committerLuboš Luňák <l.lunak@suse.cz>2013-02-14 17:24:13 +0100
commita12286cf81b2483e1585b2c45c40fa507fdd3136 (patch)
treef0553c500ab7747229dc98e06308acc8dba196f2
parentfe8bfb201e79c31de1b692931a0e9ee6c7ff1d25 (diff)
more reliable detecting of changes in the combobox lineedit
Change-Id: I3563a961c54e235fffe0c2ab1809f51882ba3831
-rw-r--r--svx/source/tbxctrls/tbcontrl.cxx32
1 files changed, 14 insertions, 18 deletions
diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx
index 89d73d1639da..021e8a9428c0 100644
--- a/svx/source/tbxctrls/tbcontrl.cxx
+++ b/svx/source/tbxctrls/tbcontrl.cxx
@@ -191,7 +191,7 @@ private:
void ReleaseFocus_Impl();
void EnableControls_Impl();
- void CheckAndMarkUnknownFont( const OUString& fontname );
+ DECL_DLLPRIVATE_LINK( CheckAndMarkUnknownFont, VclWindowEvent* );
protected:
virtual void Select();
@@ -201,6 +201,7 @@ public:
SvxFontNameBox_Impl( Window* pParent, const Reference< XDispatchProvider >& rDispatchProvider,const Reference< XFrame >& _xFrame
, WinBits nStyle = WB_SORT
);
+ virtual ~SvxFontNameBox_Impl();
void FillList();
void Update( const SvxFontItem* pFontItem );
@@ -209,8 +210,6 @@ public:
void Fill( const FontList* pList )
{ FontNameBox::Fill( pList );
nFtCount = pList->GetFontNameCount(); }
- virtual void SetText( const OUString& rStr ) SAL_OVERRIDE;
- virtual void SetText( const OUString& rStr, const Selection& rNewSelection ) SAL_OVERRIDE;
virtual long PreNotify( NotifyEvent& rNEvt );
virtual long Notify( NotifyEvent& rNEvt );
virtual Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
@@ -771,7 +770,14 @@ SvxFontNameBox_Impl::SvxFontNameBox_Impl( Window* pParent, const Reference< XDis
{
SetSizePixel(LogicToPixel( aLogicalSize, MAP_APPFONT ));
EnableControls_Impl();
+ GetSubEdit()->AddEventListener( LINK( this, SvxFontNameBox_Impl, CheckAndMarkUnknownFont ));
}
+
+SvxFontNameBox_Impl::~SvxFontNameBox_Impl()
+{
+ GetSubEdit()->RemoveEventListener( LINK( this, SvxFontNameBox_Impl, CheckAndMarkUnknownFont ));
+}
+
// -----------------------------------------------------------------------
void SvxFontNameBox_Impl::FillList()
@@ -784,22 +790,11 @@ void SvxFontNameBox_Impl::FillList()
SetSelection( aOldSel );
}
-void SvxFontNameBox_Impl::SetText( const OUString& rStr )
-{
- CheckAndMarkUnknownFont( rStr );
- return FontNameBox::SetText( rStr );
-}
-
-void SvxFontNameBox_Impl::SetText( const OUString& rStr, const Selection& rNewSelection )
-{
- CheckAndMarkUnknownFont( rStr );
- return FontNameBox::SetText( rStr, rNewSelection );
-}
-
-void SvxFontNameBox_Impl::CheckAndMarkUnknownFont( const OUString& fontname )
+IMPL_LINK( SvxFontNameBox_Impl, CheckAndMarkUnknownFont, VclWindowEvent*, event )
{
- if( fontname == GetText())
- return;
+ if( event->GetId() != VCLEVENT_EDIT_MODIFY )
+ return 0;
+ OUString fontname = GetSubEdit()->GetText();
GetDocFontList_Impl( &pFontList, this );
// If the font is unknown, show it in italic.
Font font = GetControlFont();
@@ -821,6 +816,7 @@ void SvxFontNameBox_Impl::CheckAndMarkUnknownFont( const OUString& fontname )
SetQuickHelpText( SVX_RESSTR( RID_SVXSTR_CHARFONTNAME_NOTAVAILABLE ));
}
}
+ return 0;
}
// -----------------------------------------------------------------------