diff options
author | Luboš Luňák <l.lunak@suse.cz> | 2013-02-14 17:12:54 +0100 |
---|---|---|
committer | Luboš Luňák <l.lunak@suse.cz> | 2013-02-14 17:24:13 +0100 |
commit | a12286cf81b2483e1585b2c45c40fa507fdd3136 (patch) | |
tree | f0553c500ab7747229dc98e06308acc8dba196f2 /svx | |
parent | fe8bfb201e79c31de1b692931a0e9ee6c7ff1d25 (diff) |
more reliable detecting of changes in the combobox lineedit
Change-Id: I3563a961c54e235fffe0c2ab1809f51882ba3831
Diffstat (limited to 'svx')
-rw-r--r-- | svx/source/tbxctrls/tbcontrl.cxx | 32 |
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; } // ----------------------------------------------------------------------- |