summaryrefslogtreecommitdiffstats
path: root/framework/source/uielement/addonstoolbarwrapper.cxx
diff options
context:
space:
mode:
authorMichael Meeks <michael.meeks@suse.com>2013-07-05 16:44:19 +0100
committerMichael Meeks <michael.meeks@suse.com>2013-07-05 17:11:46 +0100
commit67feb571330ec4b9eaff7791b27219b62d4c2f6a (patch)
tree401d3a2bf0e668fe39359dde44a97172bb9b288f /framework/source/uielement/addonstoolbarwrapper.cxx
parentfdo#66524 - defer loading and scaling AddOns images until necessary. (diff)
downloadcore-67feb571330ec4b9eaff7791b27219b62d4c2f6a.tar.gz
core-67feb571330ec4b9eaff7791b27219b62d4c2f6a.zip
fdo#66524 - defer population of AddOns toolbar icons until they are shown.
Some addons eg. LibreLogo are almost never shown, so avoid their startup cost. Change-Id: Ibbc072dd740eca6a97aeff918ae0a5c105278acf
Diffstat (limited to 'framework/source/uielement/addonstoolbarwrapper.cxx')
-rw-r--r--framework/source/uielement/addonstoolbarwrapper.cxx23
1 files changed, 22 insertions, 1 deletions
diff --git a/framework/source/uielement/addonstoolbarwrapper.cxx b/framework/source/uielement/addonstoolbarwrapper.cxx
index 92cfa0fa5274..3c71c18c6796 100644
--- a/framework/source/uielement/addonstoolbarwrapper.cxx
+++ b/framework/source/uielement/addonstoolbarwrapper.cxx
@@ -55,7 +55,8 @@ namespace framework
AddonsToolBarWrapper::AddonsToolBarWrapper( const Reference< XComponentContext >& xContext ) :
UIElementWrapperBase( UIElementType::TOOLBAR ),
- m_xContext( xContext )
+ m_xContext( xContext ),
+ m_bCreatedImages( false )
{
}
@@ -160,6 +161,26 @@ Reference< XInterface > SAL_CALL AddonsToolBarWrapper::getRealInterface() throw
return Reference< XInterface >();
}
+// allow late population of images for add-on toolbars
+void AddonsToolBarWrapper::populateImages()
+{
+ ResetableGuard aLock( m_aLock );
+
+ if (m_bCreatedImages)
+ return;
+
+ if ( m_xToolBarManager.is() )
+ {
+ AddonsToolBarManager* pToolBarManager = static_cast< AddonsToolBarManager *>( m_xToolBarManager.get() );
+ if (pToolBarManager)
+ {
+ pToolBarManager->RefreshImages();
+ m_bCreatedImages = true;
+ }
+ }
+}
+
+
} // namespace framework
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */