dbaccess/source/ui/app/AppDetailPageHelper.cxx | 4 dbaccess/source/ui/control/opendoccontrols.cxx | 2 forms/source/solar/control/navtoolbar.cxx | 2 framework/source/accelerators/acceleratorconfiguration.cxx | 15 framework/source/accelerators/globalacceleratorconfiguration.cxx | 34 framework/source/accelerators/moduleacceleratorconfiguration.cxx | 19 framework/source/inc/accelerators/acceleratorconfiguration.hxx | 6 framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx | 3 framework/source/uielement/addonstoolbarmanager.cxx | 6 framework/source/uielement/macrosmenucontroller.cxx | 2 framework/source/uielement/menubarmanager.cxx | 21 framework/source/uielement/newmenucontroller.cxx | 2 framework/source/uielement/popuptoolbarcontroller.cxx | 14 framework/source/uielement/statusbarmanager.cxx | 2 framework/source/uielement/subtoolbarcontroller.cxx | 2 framework/source/uielement/thesaurusmenucontroller.cxx | 2 framework/source/uielement/toolbarmanager.cxx | 14 framework/source/uielement/toolbarsmenucontroller.cxx | 4 include/vcl/commandinfoprovider.hxx | 105 - include/vcl/vclstatuslistener.hxx | 25 sd/source/ui/controller/slidelayoutcontroller.cxx | 4 sd/source/ui/view/ViewShellBase.cxx | 4 sfx2/source/appl/sfxhelp.cxx | 11 sfx2/source/sidebar/ControllerFactory.cxx | 2 sfx2/source/sidebar/SidebarToolBox.cxx | 2 sfx2/source/view/viewsh.cxx | 4 svx/source/mnuctrls/smarttagmenu.cxx | 2 svx/source/sidebar/shapes/DefaultShapesPanel.cxx | 2 svx/source/tbxctrls/tbcontrl.cxx | 6 sw/source/uibase/shells/frmsh.cxx | 7 vcl/inc/svdata.hxx | 2 vcl/source/app/svmain.cxx | 6 vcl/source/control/button.cxx | 1 vcl/source/control/tabctrl.cxx | 8 vcl/source/helper/commandinfoprovider.cxx | 546 +++------- vcl/source/window/builder.cxx | 7 vcl/source/window/menu.cxx | 7 vcl/source/window/toolbox.cxx | 6 vcl/source/window/toolbox2.cxx | 8 39 files changed, 341 insertions(+), 578 deletions(-)
New commits: commit 801422d70133986af45385307a10566af0bc56ee Author: Maxim Monastirsky <momonas...@gmail.com> Date: Mon Feb 20 22:31:28 2017 +0200 Fix memleak Change-Id: Ia4bdc254e4967613aedde35cd24ecc4ae6298ae5 diff --git a/vcl/source/control/tabctrl.cxx b/vcl/source/control/tabctrl.cxx index 3540ab1..989da8f 100644 --- a/vcl/source/control/tabctrl.cxx +++ b/vcl/source/control/tabctrl.cxx @@ -2211,13 +2211,7 @@ NotebookbarTabControl::NotebookbarTabControl(vcl::Window* pParent) , bLastContextWasSupported(true) , eLastContext(vcl::EnumContext::Context::Any) { - LanguageTag aLocale( Application::GetSettings().GetUILanguageTag()); - ResMgr* pResMgr = ResMgr::SearchCreateResMgr( "vcl", aLocale ); - - Bitmap aBitmap; - if( pResMgr ) - aBitmap = Bitmap( ResId( SV_RESID_BITMAP_NOTEBOOKBAR, *pResMgr ) ); - + Bitmap aBitmap(VclResId(SV_RESID_BITMAP_NOTEBOOKBAR)); InsertPage(1, ""); SetPageImage(1, Image(aBitmap)); } commit c8dc5650836bd837b5839e2654ec185eb243ff3a Author: Maxim Monastirsky <momonas...@gmail.com> Date: Mon Feb 20 14:05:09 2017 +0200 Formatting and remove unneeded declaration Change-Id: Icefd6b869bdbfb3d03f24aea5b94fcf83961d388 diff --git a/include/vcl/commandinfoprovider.hxx b/include/vcl/commandinfoprovider.hxx index 996d9e5..ce695ce 100644 --- a/include/vcl/commandinfoprovider.hxx +++ b/include/vcl/commandinfoprovider.hxx @@ -61,16 +61,11 @@ namespace vcl { namespace CommandInfoProvider { /** Returns the shortcut for a command in human-readable form */ VCL_DLLPUBLIC OUString GetCommandShortcut (const OUString& rCommandName, - const css::uno::Reference<css::frame::XFrame>& rxFrame); + const css::uno::Reference<css::frame::XFrame>& rxFrame); VCL_DLLPUBLIC OUString GetRealCommandForCommand( const OUString& rCommandName, const OUString& rsModuleName ); - VCL_DLLPUBLIC BitmapEx GetBitmapForCommand( - const OUString& rsCommandName, - const css::uno::Reference<css::frame::XFrame>& rxFrame, - vcl::ImageType eImageType = vcl::ImageType::Small); - VCL_DLLPUBLIC Image GetImageForCommand( const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame, diff --git a/vcl/source/helper/commandinfoprovider.cxx b/vcl/source/helper/commandinfoprovider.cxx index d95ea55..755d41f 100644 --- a/vcl/source/helper/commandinfoprovider.cxx +++ b/vcl/source/helper/commandinfoprovider.cxx @@ -271,7 +271,7 @@ OUString GetTooltipForCommand ( } OUString GetCommandShortcut (const OUString& rsCommandName, - const Reference<frame::XFrame>& rxFrame) + const Reference<frame::XFrame>& rxFrame) { OUString sShortcut; @@ -298,8 +298,8 @@ OUString GetRealCommandForCommand(const OUString& rCommandName, } BitmapEx GetBitmapForCommand(const OUString& rsCommandName, - const Reference<frame::XFrame>& rxFrame, - vcl::ImageType eImageType) + const Reference<frame::XFrame>& rxFrame, + vcl::ImageType eImageType) { if (rsCommandName.isEmpty()) @@ -364,8 +364,8 @@ BitmapEx GetBitmapForCommand(const OUString& rsCommandName, } Image GetImageForCommand(const OUString& rsCommandName, - const Reference<frame::XFrame>& rxFrame, - vcl::ImageType eImageType) + const Reference<frame::XFrame>& rxFrame, + vcl::ImageType eImageType) { return Image(GetBitmapForCommand(rsCommandName, rxFrame, eImageType)); } @@ -398,8 +398,7 @@ bool IsMirrored(const OUString& rsCommandName, const OUString& rsModuleName) return ResourceHasKey("private:resource/image/commandmirrorimagelist", rsCommandName, rsModuleName); } -bool IsExperimental(const OUString& rsCommandName, - const OUString& rModuleName) +bool IsExperimental(const OUString& rsCommandName, const OUString& rModuleName) { Sequence<beans::PropertyValue> aProperties; try commit 8f381b47f5493151f06d77453ff5153cd075a68b Author: Maxim Monastirsky <momonas...@gmail.com> Date: Mon Feb 20 13:01:46 2017 +0200 Try to cut some costs Change-Id: I0f541a020232960541bccdf970c042cf3303671e diff --git a/vcl/source/helper/commandinfoprovider.cxx b/vcl/source/helper/commandinfoprovider.cxx index dad5b58..d95ea55 100644 --- a/vcl/source/helper/commandinfoprovider.cxx +++ b/vcl/source/helper/commandinfoprovider.cxx @@ -22,6 +22,7 @@ #include <vcl/mnemonic.hxx> #include <comphelper/string.hxx> #include <comphelper/processfactory.hxx> +#include <cppuhelper/weakref.hxx> #include <com/sun/star/frame/ModuleManager.hpp> #include <com/sun/star/frame/theUICommandDescription.hpp> @@ -37,6 +38,48 @@ using namespace css::uno; namespace vcl { namespace CommandInfoProvider { +Reference<container::XNameAccess> const GetCommandDescription() +{ + static WeakReference<container::XNameAccess> xWeakRef; + css::uno::Reference<container::XNameAccess> xRef(xWeakRef); + + if (!xRef.is()) + { + xRef = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); + xWeakRef = xRef; + } + + return xRef; +} + +Reference<ui::XModuleUIConfigurationManagerSupplier> const GetModuleConfigurationSupplier() +{ + static WeakReference<ui::XModuleUIConfigurationManagerSupplier> xWeakRef; + css::uno::Reference<ui::XModuleUIConfigurationManagerSupplier> xRef(xWeakRef); + + if (!xRef.is()) + { + xRef = ui::theModuleUIConfigurationManagerSupplier::get(comphelper::getProcessComponentContext()); + xWeakRef = xRef; + } + + return xRef; +} + +Reference<ui::XAcceleratorConfiguration> const GetGlobalAcceleratorConfiguration() +{ + static WeakReference<ui::XAcceleratorConfiguration> xWeakRef; + css::uno::Reference<ui::XAcceleratorConfiguration> xRef(xWeakRef); + + if (!xRef.is()) + { + xRef = ui::GlobalAcceleratorConfiguration::create(comphelper::getProcessComponentContext()); + xWeakRef = xRef; + } + + return xRef; +} + Reference<ui::XAcceleratorConfiguration> const GetDocumentAcceleratorConfiguration(const Reference<frame::XFrame>& rxFrame) { Reference<frame::XController> xController = rxFrame->getController(); @@ -49,8 +92,7 @@ Reference<ui::XAcceleratorConfiguration> const GetDocumentAcceleratorConfigurati if (xSupplier.is()) { Reference<ui::XUIConfigurationManager> xConfigurationManager( - xSupplier->getUIConfigurationManager(), - UNO_QUERY); + xSupplier->getUIConfigurationManager()); if (xConfigurationManager.is()) { return xConfigurationManager->getShortCutManager(); @@ -66,7 +108,7 @@ Reference<ui::XAcceleratorConfiguration> const GetModuleAcceleratorConfiguration css::uno::Reference<css::ui::XAcceleratorConfiguration> curModuleAcceleratorConfiguration; try { - Reference<ui::XModuleUIConfigurationManagerSupplier> xSupplier = ui::theModuleUIConfigurationManagerSupplier::get(comphelper::getProcessComponentContext()); + Reference<ui::XModuleUIConfigurationManagerSupplier> xSupplier(GetModuleConfigurationSupplier()); Reference<ui::XUIConfigurationManager> xManager ( xSupplier->getUIConfigurationManager(GetModuleIdentifier(rxFrame))); if (xManager.is()) @@ -80,13 +122,6 @@ Reference<ui::XAcceleratorConfiguration> const GetModuleAcceleratorConfiguration return curModuleAcceleratorConfiguration; } -Reference<ui::XAcceleratorConfiguration> const GetGlobalAcceleratorConfiguration() -{ - // Get the global accelerator configuration. - return ui::GlobalAcceleratorConfiguration::create(comphelper::getProcessComponentContext()); - -} - vcl::KeyCode AWTKey2VCLKey(const awt::KeyEvent& aAWTKey) { bool bShift = ((aAWTKey.Modifiers & awt::KeyModifier::SHIFT) == awt::KeyModifier::SHIFT ); @@ -132,7 +167,7 @@ bool ResourceHasKey(const OUString& rsResourceName, const OUString& rsCommandNam { if (!rsModuleName.isEmpty()) { - Reference<container::XNameAccess> xNameAccess = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); + Reference<container::XNameAccess> xNameAccess(GetCommandDescription()); Reference<container::XNameAccess> xUICommandLabels; if (xNameAccess->getByName(rsModuleName) >>= xUICommandLabels) { @@ -159,7 +194,7 @@ Sequence<beans::PropertyValue> GetCommandProperties(const OUString& rsCommandNam { if (!rsModuleName.isEmpty()) { - Reference<container::XNameAccess> xNameAccess = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); + Reference<container::XNameAccess> xNameAccess(GetCommandDescription()); Reference<container::XNameAccess> xUICommandLabels; if (xNameAccess->getByName(rsModuleName) >>= xUICommandLabels) xUICommandLabels->getByName(rsCommandName) >>= aProperties; @@ -285,7 +320,7 @@ BitmapEx GetBitmapForCommand(const OUString& rsCommandName, Reference<ui::XUIConfigurationManagerSupplier> xSupplier(xModel, UNO_QUERY); if (xSupplier.is()) { - Reference<ui::XUIConfigurationManager> xDocUICfgMgr(xSupplier->getUIConfigurationManager(), UNO_QUERY); + Reference<ui::XUIConfigurationManager> xDocUICfgMgr(xSupplier->getUIConfigurationManager()); Reference<ui::XImageManager> xDocImgMgr(xDocUICfgMgr->getImageManager(), UNO_QUERY); Sequence< Reference<graphic::XGraphic> > aGraphicSeq; @@ -305,7 +340,7 @@ BitmapEx GetBitmapForCommand(const OUString& rsCommandName, } try { - Reference<ui::XModuleUIConfigurationManagerSupplier> xModuleCfgMgrSupplier(ui::theModuleUIConfigurationManagerSupplier::get(comphelper::getProcessComponentContext())); + Reference<ui::XModuleUIConfigurationManagerSupplier> xModuleCfgMgrSupplier(GetModuleConfigurationSupplier()); Reference<ui::XUIConfigurationManager> xUICfgMgr(xModuleCfgMgrSupplier->getUIConfigurationManager(GetModuleIdentifier(rxFrame))); Sequence< Reference<graphic::XGraphic> > aGraphicSeq; @@ -371,7 +406,7 @@ bool IsExperimental(const OUString& rsCommandName, { if( rModuleName.getLength() > 0) { - Reference<container::XNameAccess> xNameAccess = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); + Reference<container::XNameAccess> xNameAccess(GetCommandDescription()); Reference<container::XNameAccess> xUICommandLabels; if (xNameAccess->getByName( rModuleName ) >>= xUICommandLabels ) xUICommandLabels->getByName(rsCommandName) >>= aProperties; @@ -394,11 +429,18 @@ bool IsExperimental(const OUString& rsCommandName, OUString const GetModuleIdentifier(const Reference<frame::XFrame>& rxFrame) { - Reference<frame::XModuleManager2> xModuleManager = frame::ModuleManager::create(comphelper::getProcessComponentContext()); + static WeakReference<frame::XModuleManager2> xWeakRef; + css::uno::Reference<frame::XModuleManager2> xRef(xWeakRef); + + if (!xRef.is()) + { + xRef = frame::ModuleManager::create(comphelper::getProcessComponentContext()); + xWeakRef = xRef; + } try { - return xModuleManager->identify(rxFrame); + return xRef->identify(rxFrame); } catch (const Exception&) {} commit eed06b010ce0c4723a0594df31f08c21fe6faf8d Author: Maxim Monastirsky <momonas...@gmail.com> Date: Mon Feb 20 12:31:17 2017 +0200 Ignore exceptions in identify Change-Id: Iccee29668f5d619c4726d09baa4503c6ae38e84b diff --git a/vcl/source/helper/commandinfoprovider.cxx b/vcl/source/helper/commandinfoprovider.cxx index 3b22ebb..dad5b58 100644 --- a/vcl/source/helper/commandinfoprovider.cxx +++ b/vcl/source/helper/commandinfoprovider.cxx @@ -395,7 +395,15 @@ bool IsExperimental(const OUString& rsCommandName, OUString const GetModuleIdentifier(const Reference<frame::XFrame>& rxFrame) { Reference<frame::XModuleManager2> xModuleManager = frame::ModuleManager::create(comphelper::getProcessComponentContext()); - return xModuleManager->identify(rxFrame); + + try + { + return xModuleManager->identify(rxFrame); + } + catch (const Exception&) + {} + + return OUString(); } } } commit 5ccea065247dffe1c29923619b39d63b2e1c5911 Author: Maxim Monastirsky <momonas...@gmail.com> Date: Sun Feb 19 15:15:54 2017 +0200 VclStatusListener: Listener needs to be acquire'd first because as soon as we're wrapped somewhere with a temp. uno/rtl::Reference, its destruction will lead to our own destruction while we're still in ctor. Typical situation is when the broadcaster rejects our listening request. Change-Id: I7fd282e53095ab9939f803df9564c9767263b1f8 diff --git a/include/vcl/vclstatuslistener.hxx b/include/vcl/vclstatuslistener.hxx index c18d2ac..42894dd 100644 --- a/include/vcl/vclstatuslistener.hxx +++ b/include/vcl/vclstatuslistener.hxx @@ -41,6 +41,8 @@ public: const css::uno::Reference<css::frame::XFrame>& getFrame() { return mxFrame; } + void startListening(); + void dispose(); }; @@ -57,19 +59,24 @@ VclStatusListener<T>::VclStatusListener(T* widget, const rtl::OUString& aCommand mxFrame = xFrame; - css::uno::Reference<css::frame::XDispatchProvider> xDispatchProvider(xFrame, css::uno::UNO_QUERY); - if (!xDispatchProvider.is()) - return; - maCommandURL.Complete = aCommand; css::uno::Reference<css::util::XURLTransformer> xParser = css::util::URLTransformer::create(xContext); xParser->parseStrict(maCommandURL); +} - mxDispatch = xDispatchProvider->queryDispatch(maCommandURL, "", 0); - if (!mxDispatch.is()) +template<class T> +void VclStatusListener<T>::startListening() +{ + if (mxDispatch.is()) + mxDispatch->removeStatusListener(this, maCommandURL); + + css::uno::Reference<css::frame::XDispatchProvider> xDispatchProvider(mxFrame, css::uno::UNO_QUERY); + if (!xDispatchProvider.is()) return; - mxDispatch->addStatusListener(this, maCommandURL); + mxDispatch = xDispatchProvider->queryDispatch(maCommandURL, "", 0); + if (mxDispatch.is()) + mxDispatch->addStatusListener(this, maCommandURL); } template<class T> diff --git a/vcl/source/control/button.cxx b/vcl/source/control/button.cxx index e565639..e94df63 100644 --- a/vcl/source/control/button.cxx +++ b/vcl/source/control/button.cxx @@ -115,6 +115,7 @@ void Button::SetCommandHandler(const OUString& aCommand) SetClickHdl( LINK( this, Button, dispatchCommandHandler) ); mpButtonData->mpStatusListener = new VclStatusListener<Button>(this, aCommand); + mpButtonData->mpStatusListener->startListening(); } void Button::Click() diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx index dfee6f2..5490748 100644 --- a/vcl/source/window/toolbox.cxx +++ b/vcl/source/window/toolbox.cxx @@ -1401,6 +1401,7 @@ void ToolBox::ImplInitToolBoxData() mnActivateCount = 0; mnImagesRotationAngle = 0; mpStatusListener = new VclStatusListener<ToolBox>(this, ".uno:ImageOrientation"); + mpStatusListener->startListening(); mpIdle = new Idle("vcl::ToolBox maIdle update"); mpIdle->SetPriority( TaskPriority::RESIZE ); commit b6994cb75fb7e34574d933dff58fcec3bb1ab922 Author: Maxim Monastirsky <momonas...@gmail.com> Date: Sun Feb 19 14:38:32 2017 +0200 Use module name when getting labels Change-Id: I1d5196e1ca888dfb11d5bd6ef4676937dce49fdc diff --git a/dbaccess/source/ui/app/AppDetailPageHelper.cxx b/dbaccess/source/ui/app/AppDetailPageHelper.cxx index 1e9ca06..240b9fa 100644 --- a/dbaccess/source/ui/app/AppDetailPageHelper.cxx +++ b/dbaccess/source/ui/app/AppDetailPageHelper.cxx @@ -197,7 +197,7 @@ OAppDetailPageHelper::OAppDetailPageHelper(vcl::Window* _pParent,OAppBorderWindo m_aTBPreview->SetOutStyle(TOOLBOX_STYLE_FLAT); m_aTBPreview->InsertItem(SID_DB_APP_DISABLE_PREVIEW, - vcl::CommandInfoProvider::GetCommandPropertyFromModule(".uno:DBDisablePreview", "com.sun.star.sdb.OfficeDatabaseDocument"), + vcl::CommandInfoProvider::GetLabelForCommand(".uno:DBDisablePreview", "com.sun.star.sdb.OfficeDatabaseDocument"), ToolBoxItemBits::LEFT|ToolBoxItemBits::DROPDOWN|ToolBoxItemBits::AUTOSIZE|ToolBoxItemBits::RADIOCHECK); m_aTBPreview->SetHelpId(HID_APP_VIEW_PREVIEW_CB); m_aTBPreview->SetDropdownClickHdl( LINK( this, OAppDetailPageHelper, OnDropdownClickHdl ) ); @@ -995,7 +995,7 @@ void OAppDetailPageHelper::switchPreview(PreviewMode _eMode,bool _bForce) break; } - OUString aCommandLabel = vcl::CommandInfoProvider::GetCommandPropertyFromModule(aCommand, "com.sun.star.sdb.OfficeDatabaseDocument"); + OUString aCommandLabel = vcl::CommandInfoProvider::GetLabelForCommand(aCommand, "com.sun.star.sdb.OfficeDatabaseDocument"); m_aTBPreview->SetItemText(SID_DB_APP_DISABLE_PREVIEW, stripTrailingDots(aCommandLabel)); Resize(); diff --git a/dbaccess/source/ui/control/opendoccontrols.cxx b/dbaccess/source/ui/control/opendoccontrols.cxx index dff3368..207e017 100644 --- a/dbaccess/source/ui/control/opendoccontrols.cxx +++ b/dbaccess/source/ui/control/opendoccontrols.cxx @@ -118,7 +118,7 @@ namespace dbaui m_sModule = OUString::createFromAscii( _pAsciiModuleName ); // our label should equal the UI text of the "Open" command - OUString sLabel(vcl::CommandInfoProvider::GetCommandPropertyFromModule(".uno:Open", m_sModule)); + OUString sLabel(vcl::CommandInfoProvider::GetLabelForCommand(".uno:Open", m_sModule)); SetText(" " + sLabel.replaceAll("~", "")); // Place icon left of text and both centered in the button. diff --git a/forms/source/solar/control/navtoolbar.cxx b/forms/source/solar/control/navtoolbar.cxx index 0a66584..f2be671 100644 --- a/forms/source/solar/control/navtoolbar.cxx +++ b/forms/source/solar/control/navtoolbar.cxx @@ -287,7 +287,7 @@ namespace frm OUString sCommandURL( lcl_getCommandURL( pSupportedFeatures->nId ) ); m_pToolbar->SetItemCommand( pSupportedFeatures->nId, sCommandURL ); m_pToolbar->SetQuickHelpText( pSupportedFeatures->nId, - vcl::CommandInfoProvider::GetCommandPropertyFromModule(sCommandURL, m_sModuleId) ); + vcl::CommandInfoProvider::GetLabelForCommand(sCommandURL, m_sModuleId) ); } if ( pSupportedFeatures->bItemWindow ) diff --git a/framework/source/uielement/macrosmenucontroller.cxx b/framework/source/uielement/macrosmenucontroller.cxx index dcff602..c67c7c5 100644 --- a/framework/source/uielement/macrosmenucontroller.cxx +++ b/framework/source/uielement/macrosmenucontroller.cxx @@ -83,7 +83,7 @@ void MacrosMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPo // insert basic OUString aCommand(".uno:MacroDialog"); - OUString aDisplayName = vcl::CommandInfoProvider::GetMenuLabelForCommand(aCommand, m_xFrame); + OUString aDisplayName = vcl::CommandInfoProvider::GetMenuLabelForCommand(aCommand, m_aModuleName); pPopupMenu->InsertItem( 2, aDisplayName ); pPopupMenu->SetItemCommand( 2, aCommand ); diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx index 6e3cc8d..989943e 100644 --- a/framework/source/uielement/menubarmanager.cxx +++ b/framework/source/uielement/menubarmanager.cxx @@ -1082,9 +1082,9 @@ OUString MenuBarManager::RetrieveLabelFromCommand(const OUString& rCmdURL) if ( !m_bHasMenuBar ) { // This is a context menu, prefer "PopupLabel" over "Label". - return vcl::CommandInfoProvider::GetPopupLabelForCommand(rCmdURL, m_xFrame); + return vcl::CommandInfoProvider::GetPopupLabelForCommand(rCmdURL, m_aModuleIdentifier); } - return vcl::CommandInfoProvider::GetMenuLabelForCommand(rCmdURL, m_xFrame); + return vcl::CommandInfoProvider::GetMenuLabelForCommand(rCmdURL, m_aModuleIdentifier); } bool MenuBarManager::CreatePopupMenuController( MenuItemHandler* pMenuItemHandler ) @@ -1180,7 +1180,7 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF } // Command can be just an alias to another command. - OUString aRealCommand = vcl::CommandInfoProvider::GetRealCommandForCommand( aItemCommand, m_xFrame ); + OUString aRealCommand = vcl::CommandInfoProvider::GetRealCommandForCommand( aItemCommand, m_aModuleIdentifier ); if ( !aRealCommand.isEmpty() ) aItemCommand = aRealCommand; diff --git a/framework/source/uielement/popuptoolbarcontroller.cxx b/framework/source/uielement/popuptoolbarcontroller.cxx index 4a13605..3fa27a8 100644 --- a/framework/source/uielement/popuptoolbarcontroller.cxx +++ b/framework/source/uielement/popuptoolbarcontroller.cxx @@ -370,7 +370,7 @@ void GenericPopupToolbarController::functionExecuted( const OUString& rCommand ) { removeStatusListener( m_aCommandURL ); - OUString aRealCommand( vcl::CommandInfoProvider::GetRealCommandForCommand( rCommand, m_xFrame ) ); + OUString aRealCommand( vcl::CommandInfoProvider::GetRealCommandForCommand( rCommand, m_sModuleName ) ); m_aCommandURL = aRealCommand.isEmpty() ? rCommand : aRealCommand; addStatusListener( m_aCommandURL ); @@ -380,7 +380,7 @@ void GenericPopupToolbarController::functionExecuted( const OUString& rCommand ) { pToolBox->SetItemCommand( nId, rCommand ); pToolBox->SetHelpText( nId, OUString() ); // Will retrieve the new one from help. - pToolBox->SetItemText( nId, vcl::CommandInfoProvider::GetLabelForCommand( rCommand, m_xFrame ) ); + pToolBox->SetItemText( nId, vcl::CommandInfoProvider::GetLabelForCommand( rCommand, m_sModuleName ) ); pToolBox->SetQuickHelpText( nId, vcl::CommandInfoProvider::GetTooltipForCommand( rCommand, m_xFrame ) ); vcl::ImageType eImageType = getImageType(pToolBox->GetToolboxButtonSize()); diff --git a/framework/source/uielement/statusbarmanager.cxx b/framework/source/uielement/statusbarmanager.cxx index 06baee2..53fc6dd 100644 --- a/framework/source/uielement/statusbarmanager.cxx +++ b/framework/source/uielement/statusbarmanager.cxx @@ -450,7 +450,7 @@ void StatusBarManager::FillStatusBar( const uno::Reference< container::XIndexAcc if (( nType == css::ui::ItemType::DEFAULT ) && !aCommandURL.isEmpty() ) { - OUString aString( vcl::CommandInfoProvider::GetLabelForCommand(aCommandURL, m_xFrame)); + OUString aString( vcl::CommandInfoProvider::GetLabelForCommand(aCommandURL, m_aModuleIdentifier)); StatusBarItemBits nItemBits( impl_convertItemStyleToItemBits( nStyle )); m_pStatusBar->InsertItem( nId, nWidth, nItemBits, nOffset ); diff --git a/framework/source/uielement/thesaurusmenucontroller.cxx b/framework/source/uielement/thesaurusmenucontroller.cxx index cfbe7e8..d5eeca2 100644 --- a/framework/source/uielement/thesaurusmenucontroller.cxx +++ b/framework/source/uielement/thesaurusmenucontroller.cxx @@ -99,7 +99,7 @@ void ThesaurusMenuController::fillPopupMenu() pVCLMenu->InsertSeparator(); OUString aThesaurusDialogCmd( ".uno:ThesaurusDialog" ); - pVCLMenu->InsertItem( nId, vcl::CommandInfoProvider::GetPopupLabelForCommand( aThesaurusDialogCmd, m_xFrame ) ); + pVCLMenu->InsertItem( nId, vcl::CommandInfoProvider::GetPopupLabelForCommand( aThesaurusDialogCmd, m_aModuleName ) ); pVCLMenu->SetItemCommand( nId, aThesaurusDialogCmd ); } } diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx index c3fa5ea..518ef1a 100644 --- a/framework/source/uielement/toolbarmanager.cxx +++ b/framework/source/uielement/toolbarmanager.cxx @@ -684,7 +684,7 @@ void ToolBarManager::CreateControllers() OUString aCommandURL( m_pToolBar->GetItemCommand( nId ) ); // Command can be just an alias to another command. - OUString aRealCommandURL( vcl::CommandInfoProvider::GetRealCommandForCommand( aCommandURL, m_xFrame ) ); + OUString aRealCommandURL( vcl::CommandInfoProvider::GetRealCommandForCommand( aCommandURL, m_aModuleIdentifier ) ); if ( !aRealCommandURL.isEmpty() ) aCommandURL = aRealCommandURL; @@ -764,7 +764,7 @@ void ToolBarManager::CreateControllers() new GenericToolbarController( m_xContext, m_xFrame, m_pToolBar, nId, aCommandURL )); // Accessibility support: Set toggle button role for specific commands - sal_Int32 nProps = vcl::CommandInfoProvider::GetPropertiesForCommand(aCommandURL, m_xFrame); + sal_Int32 nProps = vcl::CommandInfoProvider::GetPropertiesForCommand(aCommandURL, m_aModuleIdentifier); if ( nProps & UICOMMANDDESCRIPTION_PROPERTIES_TOGGLEBUTTON ) m_pToolBar->SetItemBits( nId, m_pToolBar->GetItemBits( nId ) | ToolBoxItemBits::CHECKABLE ); } @@ -1021,7 +1021,7 @@ void ToolBarManager::FillToolbar( const Reference< XIndexAccess >& rItemContaine if (( nType == css::ui::ItemType::DEFAULT ) && !aCommandURL.isEmpty() ) { - OUString aString(vcl::CommandInfoProvider::GetLabelForCommand(aCommandURL, m_xFrame)); + OUString aString(vcl::CommandInfoProvider::GetLabelForCommand(aCommandURL, m_aModuleIdentifier)); ToolBoxItemBits nItemBits = ConvertStyleToToolboxItemBits( nStyle ); m_pToolBar->InsertItem( nId, aString, nItemBits ); diff --git a/framework/source/uielement/toolbarsmenucontroller.cxx b/framework/source/uielement/toolbarsmenucontroller.cxx index 9b6bc5e..8633c1c 100644 --- a/framework/source/uielement/toolbarsmenucontroller.cxx +++ b/framework/source/uielement/toolbarsmenucontroller.cxx @@ -147,7 +147,7 @@ void ToolbarsMenuController::addCommand( OUString aLabel; if ( rLabel.isEmpty() ) - aLabel = vcl::CommandInfoProvider::GetMenuLabelForCommand( rCommandURL, m_xFrame ); + aLabel = vcl::CommandInfoProvider::GetMenuLabelForCommand( rCommandURL, m_aModuleName ); else aLabel = rLabel; diff --git a/include/vcl/commandinfoprovider.hxx b/include/vcl/commandinfoprovider.hxx index d254ee3..996d9e5 100644 --- a/include/vcl/commandinfoprovider.hxx +++ b/include/vcl/commandinfoprovider.hxx @@ -29,22 +29,22 @@ namespace vcl { namespace CommandInfoProvider { /** Return a label for the given command. @param rsCommandName The command name is expected to start with .uno: - @param rxFrame - The frame is used to identify the module and document. + @param rsModuleName + The current application module. @return The command label. */ VCL_DLLPUBLIC OUString GetLabelForCommand ( const OUString& rsCommandName, - const css::uno::Reference<css::frame::XFrame>& rxFrame); + const OUString& rsModuleName); VCL_DLLPUBLIC OUString GetMenuLabelForCommand ( const OUString& rsCommandName, - const css::uno::Reference<css::frame::XFrame>& rxFrame); + const OUString& rsModuleName); VCL_DLLPUBLIC OUString GetPopupLabelForCommand ( const OUString& rsCommandName, - const css::uno::Reference<css::frame::XFrame>& rxFrame); + const OUString& rsModuleName); /** Return a tooltip for the given command. Falls back to label if command has no tooltip. @param rsCommandName @@ -64,9 +64,7 @@ namespace vcl { namespace CommandInfoProvider { const css::uno::Reference<css::frame::XFrame>& rxFrame); VCL_DLLPUBLIC OUString GetRealCommandForCommand( const OUString& rCommandName, - const css::uno::Reference<css::frame::XFrame>& rxFrame ); - - VCL_DLLPUBLIC OUString GetCommandPropertyFromModule( const OUString& rCommandName, const OUString& rModuleName ); + const OUString& rsModuleName ); VCL_DLLPUBLIC BitmapEx GetBitmapForCommand( const OUString& rsCommandName, @@ -80,10 +78,10 @@ namespace vcl { namespace CommandInfoProvider { VCL_DLLPUBLIC sal_Int32 GetPropertiesForCommand( const OUString& rsCommandName, - const css::uno::Reference<css::frame::XFrame>& rxFrame); + const OUString& rsModuleName); - VCL_DLLPUBLIC bool IsRotated(const OUString& rsCommandName,const css::uno::Reference<css::frame::XFrame>& rxFrame); - VCL_DLLPUBLIC bool IsMirrored(const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame); + VCL_DLLPUBLIC bool IsRotated(const OUString& rsCommandName, const OUString& rsModuleName); + VCL_DLLPUBLIC bool IsMirrored(const OUString& rsCommandName, const OUString& rsModuleName); /** Returns whether the command is experimental. */ VCL_DLLPUBLIC bool IsExperimental( diff --git a/sd/source/ui/controller/slidelayoutcontroller.cxx b/sd/source/ui/controller/slidelayoutcontroller.cxx index e2f2cfa..95b3420 100644 --- a/sd/source/ui/controller/slidelayoutcontroller.cxx +++ b/sd/source/ui/controller/slidelayoutcontroller.cxx @@ -245,7 +245,7 @@ LayoutToolbarMenu::LayoutToolbarMenu( SlideLayoutController& rController, vcl::W OUString sSlotTitle; if( bInsertPage ) - sSlotTitle = vcl::CommandInfoProvider::GetLabelForCommand( sSlotStr, xFrame ); + sSlotTitle = vcl::CommandInfoProvider::GetLabelForCommand( sSlotStr, rController.getModuleName() ); else sSlotTitle = SD_RESSTR( STR_RESET_LAYOUT ); appendEntry( 2, sSlotTitle, aSlotImage); diff --git a/sd/source/ui/view/ViewShellBase.cxx b/sd/source/ui/view/ViewShellBase.cxx index 378747e..5e20423 100644 --- a/sd/source/ui/view/ViewShellBase.cxx +++ b/sd/source/ui/view/ViewShellBase.cxx @@ -975,8 +975,8 @@ vcl::Window* ViewShellBase::GetViewWindow() OUString ViewShellBase::RetrieveLabelFromCommand( const OUString& aCmdURL ) const { - Reference< XFrame > xFrame( GetMainViewShell()->GetViewFrame()->GetFrame().GetFrameInterface(), UNO_QUERY ); - return vcl::CommandInfoProvider::GetLabelForCommand( aCmdURL, xFrame ); + OUString aModuleName(vcl::CommandInfoProvider::GetModuleIdentifier(GetMainViewShell()->GetViewFrame()->GetFrame().GetFrameInterface())); + return vcl::CommandInfoProvider::GetLabelForCommand( aCmdURL, aModuleName ); } int ViewShellBase::getPart() const diff --git a/sfx2/source/appl/sfxhelp.cxx b/sfx2/source/appl/sfxhelp.cxx index a8dce9d..2fa709a 100644 --- a/sfx2/source/appl/sfxhelp.cxx +++ b/sfx2/source/appl/sfxhelp.cxx @@ -259,13 +259,6 @@ OUString getDefaultModule_Impl() return sDefaultModule; } -Reference< XFrame > getCurrentFrame() -{ - Reference < XComponentContext > xContext = ::comphelper::getProcessComponentContext(); - Reference < XDesktop2 > xDesktop = Desktop::create(xContext); - return xDesktop->getCurrentFrame(); -} - OUString getCurrentModuleIdentifier_Impl() { OUString sIdentifier; @@ -446,7 +439,7 @@ SfxHelpWindow_Impl* impl_createHelp(Reference< XFrame2 >& rHelpTask , OUString SfxHelp::GetHelpText( const OUString& aCommandURL, const vcl::Window* pWindow ) { OUString sModuleName = GetHelpModuleName_Impl(); - OUString sRealCommand = vcl::CommandInfoProvider::GetRealCommandForCommand( aCommandURL, getCurrentFrame() ); + OUString sRealCommand = vcl::CommandInfoProvider::GetRealCommandForCommand( aCommandURL, getCurrentModuleIdentifier_Impl() ); OUString sHelpText = SfxHelp_Impl::GetHelpText( sRealCommand.isEmpty() ? aCommandURL : sRealCommand, sModuleName ); OString aNewHelpId; @@ -564,7 +557,7 @@ bool SfxHelp::Start_Impl(const OUString& rURL, const vcl::Window* pWindow, const if ( nProtocol == INetProtocol::Uno ) // Command can be just an alias to another command. - aRealCommand = vcl::CommandInfoProvider::GetRealCommandForCommand( rURL, getCurrentFrame() ); + aRealCommand = vcl::CommandInfoProvider::GetRealCommandForCommand( rURL, getCurrentModuleIdentifier_Impl() ); // no URL, just a HelpID (maybe empty in case of keyword search) aHelpURL = CreateHelpURL_Impl( aRealCommand.isEmpty() ? rURL : aRealCommand, aHelpModuleName ); diff --git a/sfx2/source/view/viewsh.cxx b/sfx2/source/view/viewsh.cxx index 7e84a76..071d6e1 100644 --- a/sfx2/source/view/viewsh.cxx +++ b/sfx2/source/view/viewsh.cxx @@ -720,7 +720,7 @@ void SfxViewShell::GetState_Impl( SfxItemSet &rSet ) OUStringBuffer aBuffer( 60 ); aBuffer.append( vcl::CommandInfoProvider::GetLabelForCommand( ".uno:PrintDefault", - xFrame )); + vcl::CommandInfoProvider::GetModuleIdentifier( xFrame ) ) ); aBuffer.append( " (" ); aBuffer.append( aPrinterName ); aBuffer.append(')'); diff --git a/svx/source/mnuctrls/smarttagmenu.cxx b/svx/source/mnuctrls/smarttagmenu.cxx index 5d0eb6e..af73107 100644 --- a/svx/source/mnuctrls/smarttagmenu.cxx +++ b/svx/source/mnuctrls/smarttagmenu.cxx @@ -180,7 +180,7 @@ void SmartTagMenuController::FillMenu() { const OUString aCommand = ".uno:AutoCorrectDlg?OpenSmartTag:bool=true"; pVCLMenu->InsertSeparator(); - pVCLMenu->InsertItem( nMenuId, vcl::CommandInfoProvider::GetPopupLabelForCommand( aCommand, m_xFrame ) ); + pVCLMenu->InsertItem( nMenuId, vcl::CommandInfoProvider::GetPopupLabelForCommand( aCommand, m_aModuleName ) ); pVCLMenu->SetItemCommand( nMenuId, aCommand ); } } diff --git a/svx/source/tbxctrls/tbcontrl.cxx b/svx/source/tbxctrls/tbcontrl.cxx index c1f2a3a..28bc427 100644 --- a/svx/source/tbxctrls/tbcontrl.cxx +++ b/svx/source/tbxctrls/tbcontrl.cxx @@ -1312,9 +1312,7 @@ SvxColorWindow::SvxColorWindow(const OUString& rCommand, } } - OUString aWindowTitle = vcl::CommandInfoProvider::GetLabelForCommand( rCommand, rFrame ); - SetText( aWindowTitle ); - mpColorSet->SetAccessibleName( aWindowTitle ); + mpColorSet->SetAccessibleName( GetText() ); mpPaletteListBox->SetStyle( mpPaletteListBox->GetStyle() | WB_BORDER | WB_AUTOSIZE ); mpPaletteListBox->SetSelectHdl( LINK( this, SvxColorWindow, SelectPaletteHdl ) ); @@ -2831,6 +2829,8 @@ VclPtr<SfxPopupWindow> SvxColorToolBoxControl::CreatePopupWindow() &GetToolBox(), m_aColorSelectFunction); + OUString aWindowTitle = vcl::CommandInfoProvider::GetLabelForCommand( m_aCommandURL, m_sModuleName ); + pColorWin->SetText( aWindowTitle ); pColorWin->StartPopupMode(&GetToolBox(), FloatWinPopupFlags::GrabFocus); pColorWin->StartSelection(); SetPopupWindow(pColorWin); diff --git a/sw/source/uibase/shells/frmsh.cxx b/sw/source/uibase/shells/frmsh.cxx index 811282d..b2b6a19 100644 --- a/sw/source/uibase/shells/frmsh.cxx +++ b/sw/source/uibase/shells/frmsh.cxx @@ -806,19 +806,20 @@ void SwFrameShell::GetState(SfxItemSet& rSet) } } } + OUString aModuleName(vcl::CommandInfoProvider::GetModuleIdentifier(GetFrame()->GetFrame().GetFrameInterface())); switch (nWhich) { case SID_OBJECT_ALIGN_UP : case FN_FRAME_ALIGN_VERT_TOP: - sNewLabel = vcl::CommandInfoProvider::GetLabelForCommand(".uno:AlignTop", GetFrame()->GetFrame().GetFrameInterface()); + sNewLabel = vcl::CommandInfoProvider::GetLabelForCommand(".uno:AlignTop", aModuleName); break; case SID_OBJECT_ALIGN_MIDDLE: case FN_FRAME_ALIGN_VERT_CENTER: - sNewLabel = vcl::CommandInfoProvider::GetLabelForCommand(".uno:AlignVerticalCenter", GetFrame()->GetFrame().GetFrameInterface()); + sNewLabel = vcl::CommandInfoProvider::GetLabelForCommand(".uno:AlignVerticalCenter", aModuleName); break; case SID_OBJECT_ALIGN_DOWN: case FN_FRAME_ALIGN_VERT_BOTTOM: - sNewLabel = vcl::CommandInfoProvider::GetLabelForCommand(".uno:AlignBottom", GetFrame()->GetFrame().GetFrameInterface()); + sNewLabel = vcl::CommandInfoProvider::GetLabelForCommand(".uno:AlignBottom", aModuleName); break; } } diff --git a/vcl/source/helper/commandinfoprovider.cxx b/vcl/source/helper/commandinfoprovider.cxx index 4b5b2b4..3b22ebb 100644 --- a/vcl/source/helper/commandinfoprovider.cxx +++ b/vcl/source/helper/commandinfoprovider.cxx @@ -125,17 +125,17 @@ OUString RetrieveShortcutsFromConfiguration( return OUString(); } -bool ResourceHasKey(const OUString& rsResourceName, const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) +bool ResourceHasKey(const OUString& rsResourceName, const OUString& rsCommandName, const OUString& rsModuleName) { Sequence< OUString > aSequence; try { - const OUString sModuleIdentifier (GetModuleIdentifier(rxFrame)); - if (!sModuleIdentifier.isEmpty()) + if (!rsModuleName.isEmpty()) { Reference<container::XNameAccess> xNameAccess = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); Reference<container::XNameAccess> xUICommandLabels; - if (xNameAccess->getByName(sModuleIdentifier) >>= xUICommandLabels) { + if (xNameAccess->getByName(rsModuleName) >>= xUICommandLabels) + { xUICommandLabels->getByName(rsResourceName) >>= aSequence; for ( sal_Int32 i = 0; i < aSequence.getLength(); i++ ) { @@ -151,18 +151,17 @@ bool ResourceHasKey(const OUString& rsResourceName, const OUString& rsCommandNam return false; } -Sequence<beans::PropertyValue> GetCommandProperties(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) +Sequence<beans::PropertyValue> GetCommandProperties(const OUString& rsCommandName, const OUString& rsModuleName) { Sequence<beans::PropertyValue> aProperties; try { - const OUString sModuleIdentifier (GetModuleIdentifier(rxFrame)); - if (sModuleIdentifier.getLength() > 0) + if (!rsModuleName.isEmpty()) { Reference<container::XNameAccess> xNameAccess = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); Reference<container::XNameAccess> xUICommandLabels; - if (xNameAccess->getByName(sModuleIdentifier) >>= xUICommandLabels) + if (xNameAccess->getByName(rsModuleName) >>= xUICommandLabels) xUICommandLabels->getByName(rsCommandName) >>= aProperties; } } @@ -173,9 +172,9 @@ Sequence<beans::PropertyValue> GetCommandProperties(const OUString& rsCommandNam return aProperties; } -OUString GetCommandProperty(const OUString& rsProperty, const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) +OUString GetCommandProperty(const OUString& rsProperty, const OUString& rsCommandName, const OUString& rsModuleName) { - const Sequence<beans::PropertyValue> aProperties (GetCommandProperties(rsCommandName, rxFrame)); + const Sequence<beans::PropertyValue> aProperties (GetCommandProperties(rsCommandName, rsModuleName)); for (sal_Int32 nIndex=0; nIndex<aProperties.getLength(); ++nIndex) { if (aProperties[nIndex].Name == rsProperty) @@ -190,41 +189,38 @@ OUString GetCommandProperty(const OUString& rsProperty, const OUString& rsComman OUString GetLabelForCommand ( const OUString& rsCommandName, - const Reference<frame::XFrame>& rxFrame) + const OUString& rsModuleName) { - - return GetCommandProperty("Name", rsCommandName, rxFrame); + return GetCommandProperty("Name", rsCommandName, rsModuleName); } OUString GetMenuLabelForCommand ( const OUString& rsCommandName, - const Reference<frame::XFrame>& rxFrame) + const OUString& rsModuleName) { - // Here we want to use "Label", not "Name". "Name" is a stripped-down version of "Label" without accelerators // and ellipsis. In the menu, we want to have those accelerators and ellipsis. - return GetCommandProperty("Label", rsCommandName, rxFrame); + return GetCommandProperty("Label", rsCommandName, rsModuleName); } OUString GetPopupLabelForCommand ( const OUString& rsCommandName, - const css::uno::Reference<css::frame::XFrame>& rxFrame) + const OUString& rsModuleName) { - - OUString sPopupLabel(GetCommandProperty("PopupLabel", rsCommandName, rxFrame)); + OUString sPopupLabel(GetCommandProperty("PopupLabel", rsCommandName, rsModuleName)); if (!sPopupLabel.isEmpty()) return sPopupLabel; - return GetCommandProperty("Label", rsCommandName, rxFrame); + return GetCommandProperty("Label", rsCommandName, rsModuleName); } OUString GetTooltipForCommand ( const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) { - - OUString sLabel (GetCommandProperty("TooltipLabel", rsCommandName, rxFrame)); + OUString sModuleName(GetModuleIdentifier(rxFrame)); + OUString sLabel (GetCommandProperty("TooltipLabel", rsCommandName, sModuleName)); if (sLabel.isEmpty()) { - sLabel = GetPopupLabelForCommand(rsCommandName, rxFrame); + sLabel = GetPopupLabelForCommand(rsCommandName, sModuleName); // Remove '...' at the end and mnemonics (we don't want those in tooltips) sLabel = comphelper::string::stripEnd(sLabel, '.'); sLabel = MnemonicGenerator::EraseAllMnemonicChars(sLabel); @@ -232,7 +228,7 @@ OUString GetTooltipForCommand ( // Command can be just an alias to another command, // so need to get the shortcut of the "real" command. - const OUString sRealCommand(GetRealCommandForCommand(rsCommandName, rxFrame)); + const OUString sRealCommand(GetRealCommandForCommand(rsCommandName, sModuleName)); const OUString sShortCut(GetCommandShortcut(!sRealCommand.isEmpty() ? sRealCommand : rsCommandName, rxFrame)); if (!sShortCut.isEmpty()) return sLabel + " (" + sShortCut + ")"; @@ -261,10 +257,9 @@ OUString GetCommandShortcut (const OUString& rsCommandName, } OUString GetRealCommandForCommand(const OUString& rCommandName, - const css::uno::Reference<frame::XFrame>& rxFrame) + const OUString& rsModuleName) { - - return GetCommandProperty("TargetURL", rCommandName, rxFrame); + return GetCommandProperty("TargetURL", rCommandName, rsModuleName); } BitmapEx GetBitmapForCommand(const OUString& rsCommandName, @@ -342,11 +337,11 @@ Image GetImageForCommand(const OUString& rsCommandName, sal_Int32 GetPropertiesForCommand ( const OUString& rsCommandName, - const Reference<frame::XFrame>& rxFrame) + const OUString& rsModuleName) { sal_Int32 nValue = 0; - const Sequence<beans::PropertyValue> aProperties (GetCommandProperties(rsCommandName, rxFrame)); + const Sequence<beans::PropertyValue> aProperties (GetCommandProperties(rsCommandName, rsModuleName)); for (sal_Int32 nIndex=0; nIndex<aProperties.getLength(); ++nIndex) { if (aProperties[nIndex].Name == "Properties") @@ -358,14 +353,14 @@ sal_Int32 GetPropertiesForCommand ( return nValue; } -bool IsRotated(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) +bool IsRotated(const OUString& rsCommandName, const OUString& rsModuleName) { - return ResourceHasKey("private:resource/image/commandrotateimagelist", rsCommandName, rxFrame); + return ResourceHasKey("private:resource/image/commandrotateimagelist", rsCommandName, rsModuleName); } -bool IsMirrored(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) +bool IsMirrored(const OUString& rsCommandName, const OUString& rsModuleName) { - return ResourceHasKey("private:resource/image/commandmirrorimagelist", rsCommandName, rxFrame); + return ResourceHasKey("private:resource/image/commandmirrorimagelist", rsCommandName, rsModuleName); } bool IsExperimental(const OUString& rsCommandName, @@ -403,38 +398,6 @@ OUString const GetModuleIdentifier(const Reference<frame::XFrame>& rxFrame) return xModuleManager->identify(rxFrame); } -OUString GetCommandPropertyFromModule( const OUString& rCommandName, const OUString& rModuleName ) -{ - OUString sLabel; - if ( rCommandName.isEmpty() ) - return sLabel; - - Sequence<beans::PropertyValue> aProperties; - try - { - if( rModuleName.getLength() > 0) - { - Reference<container::XNameAccess> xNameAccess = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); - Reference<container::XNameAccess> xUICommandLabels; - if (xNameAccess->getByName( rModuleName ) >>= xUICommandLabels ) - xUICommandLabels->getByName(rCommandName) >>= aProperties; - - for (sal_Int32 nIndex=0; nIndex<aProperties.getLength(); ++nIndex) - { - if(aProperties[nIndex].Name == "Label") - { - aProperties[nIndex].Value >>= sLabel; - return sLabel; - } - } - } - } - catch (Exception&) - { - } - return OUString(); -} - } } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/vcl/source/window/builder.cxx b/vcl/source/window/builder.cxx index 93494da..f24029d 100644 --- a/vcl/source/window/builder.cxx +++ b/vcl/source/window/builder.cxx @@ -879,7 +879,8 @@ namespace if (aCommand.isEmpty()) return; - OUString aLabel(vcl::CommandInfoProvider::GetLabelForCommand(aCommand, rFrame)); + OUString aModuleName(vcl::CommandInfoProvider::GetModuleIdentifier(rFrame)); + OUString aLabel(vcl::CommandInfoProvider::GetLabelForCommand(aCommand, aModuleName)); if (!aLabel.isEmpty()) pButton->SetText(aLabel); diff --git a/vcl/source/window/menu.cxx b/vcl/source/window/menu.cxx index da4f00d..1e961b8 100644 --- a/vcl/source/window/menu.cxx +++ b/vcl/source/window/menu.cxx @@ -510,7 +510,8 @@ void Menu::InsertItem(const OUString& rCommand, const css::uno::Reference<css::f if (rFrame.is()) { - OUString aLabel(CommandInfoProvider::GetPopupLabelForCommand(rCommand, rFrame)); + OUString aModuleName(vcl::CommandInfoProvider::GetModuleIdentifier(rFrame)); + OUString aLabel(CommandInfoProvider::GetPopupLabelForCommand(rCommand, aModuleName)); OUString aTooltip(CommandInfoProvider::GetTooltipForCommand(rCommand, rFrame)); Image aImage(CommandInfoProvider::GetImageForCommand(rCommand, rFrame)); diff --git a/vcl/source/window/toolbox.cxx b/vcl/source/window/toolbox.cxx index 6c75ab8..dfee6f2 100644 --- a/vcl/source/window/toolbox.cxx +++ b/vcl/source/window/toolbox.cxx @@ -4538,11 +4538,12 @@ void ToolBox::statusChanged( const css::frame::FeatureStateEvent& Event ) mnImagesRotationAngle = aItem.GetRotation(); // update image orientation + OUString aModuleName(vcl::CommandInfoProvider::GetModuleIdentifier(mpStatusListener->getFrame())); for (std::vector<ImplToolItem>::const_iterator it = mpData->m_aItems.begin(); it != mpData->m_aItems.end(); ++it) { - if (vcl::CommandInfoProvider::IsMirrored(it->maCommandStr, mpStatusListener->getFrame())) + if (vcl::CommandInfoProvider::IsMirrored(it->maCommandStr, aModuleName)) SetItemImageMirrorMode(it->mnId, mbImagesMirrored); - if (vcl::CommandInfoProvider::IsRotated(it->maCommandStr, mpStatusListener->getFrame())) + if (vcl::CommandInfoProvider::IsRotated(it->maCommandStr, aModuleName)) SetItemImageAngle(it->mnId, mnImagesRotationAngle); } } diff --git a/vcl/source/window/toolbox2.cxx b/vcl/source/window/toolbox2.cxx index 4fc6c9c..b95e1a8 100644 --- a/vcl/source/window/toolbox2.cxx +++ b/vcl/source/window/toolbox2.cxx @@ -432,7 +432,8 @@ void ToolBox::InsertItem( sal_uInt16 nItemId, const OUString& rText, ToolBoxItem void ToolBox::InsertItem(const OUString& rCommand, const css::uno::Reference<css::frame::XFrame>& rFrame, ToolBoxItemBits nBits, const Size& rRequestedSize, sal_uInt16 nPos) { - OUString aLabel(vcl::CommandInfoProvider::GetLabelForCommand(rCommand, rFrame)); + OUString aModuleName(vcl::CommandInfoProvider::GetModuleIdentifier(rFrame)); + OUString aLabel(vcl::CommandInfoProvider::GetLabelForCommand(rCommand, aModuleName)); OUString aTooltip(vcl::CommandInfoProvider::GetTooltipForCommand(rCommand, rFrame)); vcl::ImageType eImageType = vcl::ImageType::Size16; commit 8c5a3b448a50981b41b2860c64a3039265398cf9 Author: Maxim Monastirsky <momonas...@gmail.com> Date: Sun Feb 19 11:56:37 2017 +0200 Single GlobalAcceleratorConfiguration should be enough avoid reading the configuration again and again. Change-Id: I4179da53114990e5ee68b47125ccef356ca00d53 diff --git a/framework/source/accelerators/globalacceleratorconfiguration.cxx b/framework/source/accelerators/globalacceleratorconfiguration.cxx index ba5a2e4..d8d1f85 100644 --- a/framework/source/accelerators/globalacceleratorconfiguration.cxx +++ b/framework/source/accelerators/globalacceleratorconfiguration.cxx @@ -111,6 +111,22 @@ void GlobalAcceleratorConfiguration::fillCache() {} } +struct Instance +{ + explicit Instance(css::uno::Reference<css::uno::XComponentContext> const & context) + : instance(new GlobalAcceleratorConfiguration(context)) + { + instance->fillCache(); + } + + rtl::Reference<GlobalAcceleratorConfiguration> instance; +}; + +struct Singleton: + public rtl::StaticWithArg< + Instance, css::uno::Reference<css::uno::XComponentContext>, Singleton> +{}; + } extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL @@ -118,12 +134,7 @@ com_sun_star_comp_framework_GlobalAcceleratorConfiguration_get_implementation( css::uno::XComponentContext *context, css::uno::Sequence<css::uno::Any> const &) { - GlobalAcceleratorConfiguration *inst = new GlobalAcceleratorConfiguration(context); - css::uno::XInterface *acquired_inst = cppu::acquire(inst); - - inst->fillCache(); - - return acquired_inst; + return cppu::acquire(static_cast<cppu::OWeakObject*>(Singleton::get(context).instance.get())); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 7e559e549528686d431056bd1bbbc9c0a0bfb304 Author: Maxim Monastirsky <momonas...@gmail.com> Date: Sun Feb 19 09:48:33 2017 +0200 Revert "Resolves: #i120029# Unregister on dispose." This reverts commit 11f8e53d6c9942185702552445a751c6f542942d. At the time this commit was imported from AOO, we had the original problem fixed already with dd8fa7c25af9614dbee5a7795b95d8583093f65b ("fix more lifecycle problems"). Change-Id: Id8288d30c1cb908b68e5b9ef0279237412aae357 diff --git a/framework/source/accelerators/acceleratorconfiguration.cxx b/framework/source/accelerators/acceleratorconfiguration.cxx index c348f92..93c494bd 100644 --- a/framework/source/accelerators/acceleratorconfiguration.cxx +++ b/framework/source/accelerators/acceleratorconfiguration.cxx @@ -994,21 +994,6 @@ void SAL_CALL XCUBasedAcceleratorConfiguration::disposing(const css::lang::Event { } -void SAL_CALL XCUBasedAcceleratorConfiguration::dispose() -{ - // nop -} - -void SAL_CALL XCUBasedAcceleratorConfiguration::addEventListener( const css::uno::Reference< css::lang::XEventListener >& /*xListener*/ ) -{ - // nop -} - -void SAL_CALL XCUBasedAcceleratorConfiguration::removeEventListener( const css::uno::Reference< css::lang::XEventListener >& /*xListener*/ ) -{ - // nop -} - void XCUBasedAcceleratorConfiguration::impl_ts_load( bool bPreferred, const css::uno::Reference< css::container::XNameAccess >& xCfg ) { AcceleratorCache aReadCache = AcceleratorCache(); diff --git a/framework/source/accelerators/globalacceleratorconfiguration.cxx b/framework/source/accelerators/globalacceleratorconfiguration.cxx index 5648c91..ba5a2e4 100644 --- a/framework/source/accelerators/globalacceleratorconfiguration.cxx +++ b/framework/source/accelerators/globalacceleratorconfiguration.cxx @@ -69,9 +69,6 @@ public: return {"com.sun.star.ui.GlobalAcceleratorConfiguration"}; } - // XComponent - virtual void SAL_CALL dispose() override; - /// This has to be called after when the instance is acquire()'d. void fillCache(); @@ -114,22 +111,6 @@ void GlobalAcceleratorConfiguration::fillCache() {} } -// XComponent.dispose(), #i120029#, to release the cyclic reference - -void SAL_CALL GlobalAcceleratorConfiguration::dispose() -{ - try - { - css::uno::Reference< css::util::XChangesNotifier > xBroadcaster(m_xCfg, css::uno::UNO_QUERY_THROW); - if ( xBroadcaster.is() ) - xBroadcaster->removeChangesListener(static_cast< css::util::XChangesListener* >(this)); - } - catch(const css::uno::RuntimeException&) - { throw; } - catch(const css::uno::Exception&) - {} -} - } extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL diff --git a/framework/source/accelerators/moduleacceleratorconfiguration.cxx b/framework/source/accelerators/moduleacceleratorconfiguration.cxx index f6cfa4d..ea4c5f3 100644 --- a/framework/source/accelerators/moduleacceleratorconfiguration.cxx +++ b/framework/source/accelerators/moduleacceleratorconfiguration.cxx @@ -83,9 +83,6 @@ public: return {"com.sun.star.ui.ModuleAcceleratorConfiguration"}; } - // XComponent - virtual void SAL_CALL dispose() override; - /// This has to be called after when the instance is acquire()'d. void SAL_CALL fillCache(); @@ -150,22 +147,6 @@ void ModuleAcceleratorConfiguration::fillCache() {} } -// XComponent.dispose(), #i120029#, to release the cyclic reference - -void SAL_CALL ModuleAcceleratorConfiguration::dispose() -{ - try - { - css::uno::Reference< css::util::XChangesNotifier > xBroadcaster(m_xCfg, css::uno::UNO_QUERY_THROW); - if ( xBroadcaster.is() ) - xBroadcaster->removeChangesListener(static_cast< css::util::XChangesListener* >(this)); - } - catch(const css::uno::RuntimeException&) - { throw; } - catch(const css::uno::Exception&) - {} -} - } extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface * SAL_CALL diff --git a/framework/source/inc/accelerators/acceleratorconfiguration.hxx b/framework/source/inc/accelerators/acceleratorconfiguration.hxx index bf14189..7d7cd6c 100644 --- a/framework/source/inc/accelerators/acceleratorconfiguration.hxx +++ b/framework/source/inc/accelerators/acceleratorconfiguration.hxx @@ -201,7 +201,6 @@ class XMLBasedAcceleratorConfiguration : public ::cppu::WeakImplHelper< class XCUBasedAcceleratorConfiguration : public ::cppu::WeakImplHelper< css::util::XChangesListener, - css::lang::XComponent, css::form::XReset, // TODO use XPresetHandler instead if available css::ui::XAcceleratorConfiguration > // => css::ui::XUIConfigurationPersistence // css::ui::XUIConfigurationStorage @@ -287,11 +286,6 @@ class XCUBasedAcceleratorConfiguration : public ::cppu::WeakImplHelper< // css.lang.XEventListener virtual void SAL_CALL disposing(const css::lang::EventObject& aEvent) override; - // XComponent - virtual void SAL_CALL dispose() override; - virtual void SAL_CALL addEventListener( const css::uno::Reference< css::lang::XEventListener >& xListener ) override; - virtual void SAL_CALL removeEventListener( const css::uno::Reference< css::lang::XEventListener >& aListener ) override; - // helper for derived classes protected: diff --git a/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx b/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx index 3543f2e..9950342 100644 --- a/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx +++ b/framework/source/uiconfiguration/moduleuiconfigurationmanager.cxx @@ -940,9 +940,6 @@ void SAL_CALL ModuleUIConfigurationManager::dispose() SolarMutexClearableGuard aGuard; Reference< XComponent > xModuleImageManager( m_xModuleImageManager ); m_xModuleImageManager.clear(); - Reference< XComponent > xCompMAM( m_xModuleAcceleratorManager, UNO_QUERY ); - if ( xCompMAM.is() ) - xCompMAM->dispose(); m_xModuleAcceleratorManager.clear(); m_aUIElements[LAYER_USERDEFINED].clear(); m_aUIElements[LAYER_DEFAULT].clear(); diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx index 1f9c968..6e3cc8d 100644 --- a/framework/source/uielement/menubarmanager.cxx +++ b/framework/source/uielement/menubarmanager.cxx @@ -296,9 +296,6 @@ void SAL_CALL MenuBarManager::dispose() } m_xDocImageManager.clear(); m_xModuleImageManager.clear(); - Reference< XComponent > xCompGAM( m_xGlobalAcceleratorManager, UNO_QUERY ); - if ( xCompGAM.is() ) - xCompGAM->dispose(); m_xGlobalAcceleratorManager.clear(); m_xModuleAcceleratorManager.clear(); m_xDocAcceleratorManager.clear(); commit 096637c9570654437e9f5e12a614fdcefc23ae3a Author: Maxim Monastirsky <momonas...@gmail.com> Date: Fri Feb 17 11:11:44 2017 +0200 CommandInfoProvider can be a namespace Change-Id: I8b56423724360f49e1f361cb95056b391a9a3a42 diff --git a/include/vcl/commandinfoprovider.hxx b/include/vcl/commandinfoprovider.hxx index 2a3eaea..d254ee3 100644 --- a/include/vcl/commandinfoprovider.hxx +++ b/include/vcl/commandinfoprovider.hxx @@ -20,27 +20,11 @@ #define INCLUDED_VCL_COMMANDINFOPROVIDER_HXX #include <vcl/dllapi.h> -#include <vcl/keycod.hxx> #include <vcl/image.hxx> #include <com/sun/star/frame/XFrame.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> -#include <com/sun/star/ui/XAcceleratorConfiguration.hpp> -using namespace css; -using namespace css::uno; - - -namespace vcl { - -/** Provides information about UNO commands like tooltip text with - keyboard accelerator. -*/ -class VCL_DLLPUBLIC CommandInfoProvider -{ -public: - CommandInfoProvider(); - ~CommandInfoProvider(); +namespace vcl { namespace CommandInfoProvider { /** Return a label for the given command. @param rsCommandName @@ -48,17 +32,17 @@ public: @param rxFrame The frame is used to identify the module and document. @return - The command labe. + The command label. */ - static OUString GetLabelForCommand ( + VCL_DLLPUBLIC OUString GetLabelForCommand ( const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame); - static OUString GetMenuLabelForCommand ( + VCL_DLLPUBLIC OUString GetMenuLabelForCommand ( const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame); - static OUString GetPopupLabelForCommand ( + VCL_DLLPUBLIC OUString GetPopupLabelForCommand ( const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame); @@ -71,61 +55,43 @@ public: The returned label contains the keyboard accelerator, if one is defined and bIncludeShortcut is true. */ - static OUString GetTooltipForCommand ( + VCL_DLLPUBLIC OUString GetTooltipForCommand ( const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame); /** Returns the shortcut for a command in human-readable form */ - static OUString GetCommandShortcut (const OUString& rCommandName, + VCL_DLLPUBLIC OUString GetCommandShortcut (const OUString& rCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame); - static OUString GetRealCommandForCommand( const OUString& rCommandName, + VCL_DLLPUBLIC OUString GetRealCommandForCommand( const OUString& rCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame ); - static OUString GetCommandPropertyFromModule( const OUString& rCommandName, const OUString& rModuleName ); + VCL_DLLPUBLIC OUString GetCommandPropertyFromModule( const OUString& rCommandName, const OUString& rModuleName ); - static BitmapEx GetBitmapForCommand( + VCL_DLLPUBLIC BitmapEx GetBitmapForCommand( const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame, vcl::ImageType eImageType = vcl::ImageType::Small); - static Image GetImageForCommand( + VCL_DLLPUBLIC Image GetImageForCommand( const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame, vcl::ImageType eImageType = vcl::ImageType::Small); - static sal_Int32 GetPropertiesForCommand( + VCL_DLLPUBLIC sal_Int32 GetPropertiesForCommand( const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame); - static bool IsRotated(const OUString& rsCommandName,const Reference<frame::XFrame>& rxFrame); - static bool IsMirrored(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame); + VCL_DLLPUBLIC bool IsRotated(const OUString& rsCommandName,const css::uno::Reference<css::frame::XFrame>& rxFrame); + VCL_DLLPUBLIC bool IsMirrored(const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame); /** Returns whether the command is experimental. */ - static bool IsExperimental( + VCL_DLLPUBLIC bool IsExperimental( const OUString& rsCommandName, const OUString& rModuleName); - /** Do not call. Should be part of a local and hidden interface. - */ - static void SetFrame (const css::uno::Reference<css::frame::XFrame>& rxFrame); - - private: - static css::uno::Reference<css::ui::XAcceleratorConfiguration> const GetDocumentAcceleratorConfiguration(const Reference<frame::XFrame>& rxFrame); - static css::uno::Reference<css::ui::XAcceleratorConfiguration> const GetModuleAcceleratorConfiguration(const Reference<frame::XFrame>& rxFrame); - static css::uno::Reference<css::ui::XAcceleratorConfiguration> const GetGlobalAcceleratorConfiguration(); - static OUString const GetModuleIdentifier(const Reference<frame::XFrame>& rxFrame); - static css::uno::Sequence<css::beans::PropertyValue> GetCommandProperties ( - const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame); - static OUString GetCommandProperty(const OUString& rsProperty, const OUString& rsCommandName,const Reference<frame::XFrame>& rxFrame); - static bool ResourceHasKey(const OUString& rsResourceName, const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame); - static OUString RetrieveShortcutsFromConfiguration( - const css::uno::Reference<css::ui::XAcceleratorConfiguration>& rxConfiguration, - const OUString& rsCommandName); - static vcl::KeyCode AWTKey2VCLKey(const css::awt::KeyEvent& aAWTKey); -}; - -} // end of namespace vcl + VCL_DLLPUBLIC OUString const GetModuleIdentifier(const css::uno::Reference<css::frame::XFrame>& rxFrame); +} } #endif // INCLUDED_VCL_COMMANDINFOPROVIDER_HXX diff --git a/vcl/inc/svdata.hxx b/vcl/inc/svdata.hxx index 1a03164..d1b8a6c6 100644 --- a/vcl/inc/svdata.hxx +++ b/vcl/inc/svdata.hxx @@ -67,7 +67,6 @@ class Application; class OutputDevice; namespace vcl { - class CommandInfoProvider; class Window; } class SystemWindow; @@ -330,7 +329,6 @@ struct ImplSVData VclPtr<vcl::Window> mpIntroWindow; // the splash screen DockingManager* mpDockingManager = nullptr; BlendFrameCache* mpBlendFrameCache = nullptr; - vcl::CommandInfoProvider* mpCommandInfoProvider = nullptr; oslThreadIdentifier mnMainThreadId = 0; rtl::Reference< vcl::DisplayConnectionDispatch > mxDisplayConnection; diff --git a/vcl/source/app/svmain.cxx b/vcl/source/app/svmain.cxx index 4ae2205..7d60132 100644 --- a/vcl/source/app/svmain.cxx +++ b/vcl/source/app/svmain.cxx @@ -524,11 +524,6 @@ void DeInitVCL() pSVData->mpBlendFrameCache = nullptr; } - if (pSVData->mpCommandInfoProvider) - { - pSVData->mpCommandInfoProvider = nullptr; - } - ImplDeletePrnQueueList(); delete pSVData->maGDIData.mpScreenFontList; pSVData->maGDIData.mpScreenFontList = nullptr; diff --git a/vcl/source/helper/commandinfoprovider.cxx b/vcl/source/helper/commandinfoprovider.cxx index 7ba8690..4b5b2b4 100644 --- a/vcl/source/helper/commandinfoprovider.cxx +++ b/vcl/source/helper/commandinfoprovider.cxx @@ -18,11 +18,10 @@ */ #include <vcl/commandinfoprovider.hxx> +#include <vcl/keycod.hxx> #include <vcl/mnemonic.hxx> #include <comphelper/string.hxx> #include <comphelper/processfactory.hxx> -#include <cppuhelper/compbase.hxx> -#include <cppuhelper/basemutex.hxx> #include <com/sun/star/frame/ModuleManager.hpp> #include <com/sun/star/frame/theUICommandDescription.hpp> @@ -33,21 +32,163 @@ #include <com/sun/star/ui/XImageManager.hpp> #include <com/sun/star/awt/KeyModifier.hpp> -#include "svdata.hxx" - using namespace css; using namespace css::uno; +namespace vcl { namespace CommandInfoProvider { + +Reference<ui::XAcceleratorConfiguration> const GetDocumentAcceleratorConfiguration(const Reference<frame::XFrame>& rxFrame) +{ + Reference<frame::XController> xController = rxFrame->getController(); + if (xController.is()) + { + Reference<frame::XModel> xModel (xController->getModel()); + if (xModel.is()) + { + Reference<ui::XUIConfigurationManagerSupplier> xSupplier (xModel, UNO_QUERY); + if (xSupplier.is()) + { + Reference<ui::XUIConfigurationManager> xConfigurationManager( + xSupplier->getUIConfigurationManager(), + UNO_QUERY); + if (xConfigurationManager.is()) + { + return xConfigurationManager->getShortCutManager(); + } + } + } + } + return nullptr; +} + +Reference<ui::XAcceleratorConfiguration> const GetModuleAcceleratorConfiguration(const Reference<frame::XFrame>& rxFrame) +{ + css::uno::Reference<css::ui::XAcceleratorConfiguration> curModuleAcceleratorConfiguration; + try + { + Reference<ui::XModuleUIConfigurationManagerSupplier> xSupplier = ui::theModuleUIConfigurationManagerSupplier::get(comphelper::getProcessComponentContext()); + Reference<ui::XUIConfigurationManager> xManager ( + xSupplier->getUIConfigurationManager(GetModuleIdentifier(rxFrame))); + if (xManager.is()) + { + curModuleAcceleratorConfiguration = xManager->getShortCutManager(); + } + } + catch (Exception&) + { + } + return curModuleAcceleratorConfiguration; +} + +Reference<ui::XAcceleratorConfiguration> const GetGlobalAcceleratorConfiguration() +{ + // Get the global accelerator configuration. + return ui::GlobalAcceleratorConfiguration::create(comphelper::getProcessComponentContext()); + +} + +vcl::KeyCode AWTKey2VCLKey(const awt::KeyEvent& aAWTKey) +{ + bool bShift = ((aAWTKey.Modifiers & awt::KeyModifier::SHIFT) == awt::KeyModifier::SHIFT ); + bool bMod1 = ((aAWTKey.Modifiers & awt::KeyModifier::MOD1 ) == awt::KeyModifier::MOD1 ); + bool bMod2 = ((aAWTKey.Modifiers & awt::KeyModifier::MOD2 ) == awt::KeyModifier::MOD2 ); + bool bMod3 = ((aAWTKey.Modifiers & awt::KeyModifier::MOD3 ) == awt::KeyModifier::MOD3 ); + sal_uInt16 nKey = (sal_uInt16)aAWTKey.KeyCode; + + return vcl::KeyCode(nKey, bShift, bMod1, bMod2, bMod3); +} + +OUString RetrieveShortcutsFromConfiguration( + const Reference<ui::XAcceleratorConfiguration>& rxConfiguration, + const OUString& rsCommandName) +{ + if (rxConfiguration.is()) + { + try + { + Sequence<OUString> aCommands { rsCommandName }; + + Sequence<Any> aKeyCodes (rxConfiguration->getPreferredKeyEventsForCommandList(aCommands)); + if (aCommands.getLength() == 1) + { + awt::KeyEvent aKeyEvent; + if (aKeyCodes[0] >>= aKeyEvent) + { + return AWTKey2VCLKey(aKeyEvent).GetName(); + } + } + } + catch (css::lang::IllegalArgumentException&) + { + } + } + return OUString(); +} + +bool ResourceHasKey(const OUString& rsResourceName, const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) +{ + Sequence< OUString > aSequence; + try + { + const OUString sModuleIdentifier (GetModuleIdentifier(rxFrame)); + if (!sModuleIdentifier.isEmpty()) + { + Reference<container::XNameAccess> xNameAccess = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); + Reference<container::XNameAccess> xUICommandLabels; + if (xNameAccess->getByName(sModuleIdentifier) >>= xUICommandLabels) { + xUICommandLabels->getByName(rsResourceName) >>= aSequence; + for ( sal_Int32 i = 0; i < aSequence.getLength(); i++ ) + { + if (aSequence[i] == rsCommandName) + return true; + } + } + } + } + catch (Exception&) + { + } + return false; +} -namespace vcl { +Sequence<beans::PropertyValue> GetCommandProperties(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) +{ + Sequence<beans::PropertyValue> aProperties; -CommandInfoProvider::CommandInfoProvider() { } + try + { + const OUString sModuleIdentifier (GetModuleIdentifier(rxFrame)); + if (sModuleIdentifier.getLength() > 0) + { + Reference<container::XNameAccess> xNameAccess = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); + Reference<container::XNameAccess> xUICommandLabels; + if (xNameAccess->getByName(sModuleIdentifier) >>= xUICommandLabels) + xUICommandLabels->getByName(rsCommandName) >>= aProperties; + } + } + catch (Exception&) + { + } -CommandInfoProvider::~CommandInfoProvider() + return aProperties; +} + +OUString GetCommandProperty(const OUString& rsProperty, const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) { + const Sequence<beans::PropertyValue> aProperties (GetCommandProperties(rsCommandName, rxFrame)); + for (sal_Int32 nIndex=0; nIndex<aProperties.getLength(); ++nIndex) + { + if (aProperties[nIndex].Name == rsProperty) + { + OUString sLabel; + aProperties[nIndex].Value >>= sLabel; + return sLabel; + } + } + return OUString(); } -OUString CommandInfoProvider::GetLabelForCommand ( +OUString GetLabelForCommand ( const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) { @@ -55,7 +196,7 @@ OUString CommandInfoProvider::GetLabelForCommand ( return GetCommandProperty("Name", rsCommandName, rxFrame); } -OUString CommandInfoProvider::GetMenuLabelForCommand ( +OUString GetMenuLabelForCommand ( const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) { @@ -65,7 +206,7 @@ OUString CommandInfoProvider::GetMenuLabelForCommand ( return GetCommandProperty("Label", rsCommandName, rxFrame); } -OUString CommandInfoProvider::GetPopupLabelForCommand ( +OUString GetPopupLabelForCommand ( const OUString& rsCommandName, const css::uno::Reference<css::frame::XFrame>& rxFrame) { @@ -76,7 +217,7 @@ OUString CommandInfoProvider::GetPopupLabelForCommand ( return GetCommandProperty("Label", rsCommandName, rxFrame); } -OUString CommandInfoProvider::GetTooltipForCommand ( +OUString GetTooltipForCommand ( const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) { @@ -98,7 +239,7 @@ OUString CommandInfoProvider::GetTooltipForCommand ( return sLabel; } -OUString CommandInfoProvider::GetCommandShortcut (const OUString& rsCommandName, +OUString GetCommandShortcut (const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) { @@ -119,14 +260,14 @@ OUString CommandInfoProvider::GetCommandShortcut (const OUString& rsCommandName, return OUString(); } -OUString CommandInfoProvider::GetRealCommandForCommand(const OUString& rCommandName, +OUString GetRealCommandForCommand(const OUString& rCommandName, const css::uno::Reference<frame::XFrame>& rxFrame) { return GetCommandProperty("TargetURL", rCommandName, rxFrame); } -BitmapEx CommandInfoProvider::GetBitmapForCommand(const OUString& rsCommandName, +BitmapEx GetBitmapForCommand(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame, vcl::ImageType eImageType) { @@ -192,14 +333,14 @@ BitmapEx CommandInfoProvider::GetBitmapForCommand(const OUString& rsCommandName, return BitmapEx(); } -Image CommandInfoProvider::GetImageForCommand(const OUString& rsCommandName, +Image GetImageForCommand(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame, vcl::ImageType eImageType) { return Image(GetBitmapForCommand(rsCommandName, rxFrame, eImageType)); } -sal_Int32 CommandInfoProvider::GetPropertiesForCommand ( +sal_Int32 GetPropertiesForCommand ( const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) { @@ -217,17 +358,17 @@ sal_Int32 CommandInfoProvider::GetPropertiesForCommand ( return nValue; } -bool CommandInfoProvider::IsRotated(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) +bool IsRotated(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) { return ResourceHasKey("private:resource/image/commandrotateimagelist", rsCommandName, rxFrame); } -bool CommandInfoProvider::IsMirrored(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) +bool IsMirrored(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) { return ResourceHasKey("private:resource/image/commandmirrorimagelist", rsCommandName, rxFrame); } -bool CommandInfoProvider::IsExperimental(const OUString& rsCommandName, +bool IsExperimental(const OUString& rsCommandName, const OUString& rModuleName) { Sequence<beans::PropertyValue> aProperties; @@ -256,153 +397,13 @@ bool CommandInfoProvider::IsExperimental(const OUString& rsCommandName, return false; } -Reference<ui::XAcceleratorConfiguration> const CommandInfoProvider::GetDocumentAcceleratorConfiguration(const Reference<frame::XFrame>& rxFrame) -{ - Reference<frame::XController> xController = rxFrame->getController(); - if (xController.is()) - { - Reference<frame::XModel> xModel (xController->getModel()); - if (xModel.is()) - { - Reference<ui::XUIConfigurationManagerSupplier> xSupplier (xModel, UNO_QUERY); - if (xSupplier.is()) - { - Reference<ui::XUIConfigurationManager> xConfigurationManager( - xSupplier->getUIConfigurationManager(), - UNO_QUERY); - if (xConfigurationManager.is()) - { - return xConfigurationManager->getShortCutManager(); - } - } - } - } - return nullptr; -} - -Reference<ui::XAcceleratorConfiguration> const CommandInfoProvider::GetModuleAcceleratorConfiguration(const Reference<frame::XFrame>& rxFrame) -{ - css::uno::Reference<css::ui::XAcceleratorConfiguration> curModuleAcceleratorConfiguration; - try - { - Reference<ui::XModuleUIConfigurationManagerSupplier> xSupplier = ui::theModuleUIConfigurationManagerSupplier::get(comphelper::getProcessComponentContext()); - Reference<ui::XUIConfigurationManager> xManager ( - xSupplier->getUIConfigurationManager(GetModuleIdentifier(rxFrame))); - if (xManager.is()) - { - curModuleAcceleratorConfiguration = xManager->getShortCutManager(); - } - } - catch (Exception&) - { - } - return curModuleAcceleratorConfiguration; -} - -Reference<ui::XAcceleratorConfiguration> const CommandInfoProvider::GetGlobalAcceleratorConfiguration() -{ - // Get the global accelerator configuration. - return ui::GlobalAcceleratorConfiguration::create(comphelper::getProcessComponentContext()); - -} - -OUString const CommandInfoProvider::GetModuleIdentifier(const Reference<frame::XFrame>& rxFrame) +OUString const GetModuleIdentifier(const Reference<frame::XFrame>& rxFrame) { Reference<frame::XModuleManager2> xModuleManager = frame::ModuleManager::create(comphelper::getProcessComponentContext()); return xModuleManager->identify(rxFrame); } -OUString CommandInfoProvider::RetrieveShortcutsFromConfiguration( - const Reference<ui::XAcceleratorConfiguration>& rxConfiguration, - const OUString& rsCommandName) -{ - if (rxConfiguration.is()) - { - try - { - Sequence<OUString> aCommands { rsCommandName }; - - Sequence<Any> aKeyCodes (rxConfiguration->getPreferredKeyEventsForCommandList(aCommands)); - if (aCommands.getLength() == 1) - { - awt::KeyEvent aKeyEvent; - if (aKeyCodes[0] >>= aKeyEvent) - { - return AWTKey2VCLKey(aKeyEvent).GetName(); - } - } - } - catch (css::lang::IllegalArgumentException&) - { - } - } - return OUString(); -} - -bool CommandInfoProvider::ResourceHasKey(const OUString& rsResourceName, const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) -{ - Sequence< OUString > aSequence; - try - { - const OUString sModuleIdentifier (GetModuleIdentifier(rxFrame)); - if (!sModuleIdentifier.isEmpty()) - { - Reference<container::XNameAccess> xNameAccess = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); - Reference<container::XNameAccess> xUICommandLabels; - if (xNameAccess->getByName(sModuleIdentifier) >>= xUICommandLabels) { - xUICommandLabels->getByName(rsResourceName) >>= aSequence; - for ( sal_Int32 i = 0; i < aSequence.getLength(); i++ ) - { - if (aSequence[i] == rsCommandName) - return true; - } - } - } - } - catch (Exception&) - { - } - return false; -} - -Sequence<beans::PropertyValue> CommandInfoProvider::GetCommandProperties(const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) -{ - Sequence<beans::PropertyValue> aProperties; - - try - { - const OUString sModuleIdentifier (GetModuleIdentifier(rxFrame)); - if (sModuleIdentifier.getLength() > 0) - { - Reference<container::XNameAccess> xNameAccess = frame::theUICommandDescription::get(comphelper::getProcessComponentContext()); - Reference<container::XNameAccess> xUICommandLabels; - if (xNameAccess->getByName(sModuleIdentifier) >>= xUICommandLabels) - xUICommandLabels->getByName(rsCommandName) >>= aProperties; - } - } - catch (Exception&) - { - } - - return aProperties; -} - -OUString CommandInfoProvider::GetCommandProperty(const OUString& rsProperty, const OUString& rsCommandName, const Reference<frame::XFrame>& rxFrame) -{ - const Sequence<beans::PropertyValue> aProperties (GetCommandProperties(rsCommandName, rxFrame)); - for (sal_Int32 nIndex=0; nIndex<aProperties.getLength(); ++nIndex) - { - if (aProperties[nIndex].Name == rsProperty) - { - OUString sLabel; - aProperties[nIndex].Value >>= sLabel; - return sLabel; - } - } - return OUString(); -} - -OUString CommandInfoProvider::GetCommandPropertyFromModule( const OUString& rCommandName, const OUString& rModuleName ) +OUString GetCommandPropertyFromModule( const OUString& rCommandName, const OUString& rModuleName ) { OUString sLabel; if ( rCommandName.isEmpty() ) @@ -434,18 +435,6 @@ OUString CommandInfoProvider::GetCommandPropertyFromModule( const OUString& rCom return OUString(); } -vcl::KeyCode CommandInfoProvider::AWTKey2VCLKey(const awt::KeyEvent& aAWTKey) -{ - bool bShift = ((aAWTKey.Modifiers & awt::KeyModifier::SHIFT) == awt::KeyModifier::SHIFT ); - bool bMod1 = ((aAWTKey.Modifiers & awt::KeyModifier::MOD1 ) == awt::KeyModifier::MOD1 ); - bool bMod2 = ((aAWTKey.Modifiers & awt::KeyModifier::MOD2 ) == awt::KeyModifier::MOD2 ); - bool bMod3 = ((aAWTKey.Modifiers & awt::KeyModifier::MOD3 ) == awt::KeyModifier::MOD3 ); - sal_uInt16 nKey = (sal_uInt16)aAWTKey.KeyCode; - - return vcl::KeyCode(nKey, bShift, bMod1, bMod2, bMod3); -} - - -} // end of namespace vcl +} } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ commit 33c51e8002f58847ba43bc111dabc49278e36daf Author: Rohan Kumar <rohankanojia...@gmail.com> Date: Tue Jan 24 21:18:00 2017 +0530 tdf#95844 Refactor CommandInfoProvider Instead of a singleton, CommandInfoProvider should just be a set of static methods. Change-Id: I16d4406e361a72f013d78f18d6bd0ae20c0cc5e9 diff --git a/dbaccess/source/ui/app/AppDetailPageHelper.cxx b/dbaccess/source/ui/app/AppDetailPageHelper.cxx index ac36ea1..1e9ca06 100644 --- a/dbaccess/source/ui/app/AppDetailPageHelper.cxx +++ b/dbaccess/source/ui/app/AppDetailPageHelper.cxx @@ -197,7 +197,7 @@ OAppDetailPageHelper::OAppDetailPageHelper(vcl::Window* _pParent,OAppBorderWindo m_aTBPreview->SetOutStyle(TOOLBOX_STYLE_FLAT); m_aTBPreview->InsertItem(SID_DB_APP_DISABLE_PREVIEW, - vcl::CommandInfoProvider::Instance().GetCommandPropertyFromModule(".uno:DBDisablePreview", "com.sun.star.sdb.OfficeDatabaseDocument"), + vcl::CommandInfoProvider::GetCommandPropertyFromModule(".uno:DBDisablePreview", "com.sun.star.sdb.OfficeDatabaseDocument"), ToolBoxItemBits::LEFT|ToolBoxItemBits::DROPDOWN|ToolBoxItemBits::AUTOSIZE|ToolBoxItemBits::RADIOCHECK); m_aTBPreview->SetHelpId(HID_APP_VIEW_PREVIEW_CB); m_aTBPreview->SetDropdownClickHdl( LINK( this, OAppDetailPageHelper, OnDropdownClickHdl ) ); @@ -995,7 +995,7 @@ void OAppDetailPageHelper::switchPreview(PreviewMode _eMode,bool _bForce) break; } - OUString aCommandLabel = vcl::CommandInfoProvider::Instance().GetCommandPropertyFromModule(aCommand, "com.sun.star.sdb.OfficeDatabaseDocument"); + OUString aCommandLabel = vcl::CommandInfoProvider::GetCommandPropertyFromModule(aCommand, "com.sun.star.sdb.OfficeDatabaseDocument"); m_aTBPreview->SetItemText(SID_DB_APP_DISABLE_PREVIEW, stripTrailingDots(aCommandLabel)); Resize(); diff --git a/dbaccess/source/ui/control/opendoccontrols.cxx b/dbaccess/source/ui/control/opendoccontrols.cxx index daac412..dff3368 100644 --- a/dbaccess/source/ui/control/opendoccontrols.cxx +++ b/dbaccess/source/ui/control/opendoccontrols.cxx @@ -118,7 +118,7 @@ namespace dbaui m_sModule = OUString::createFromAscii( _pAsciiModuleName ); // our label should equal the UI text of the "Open" command - OUString sLabel(vcl::CommandInfoProvider::Instance().GetCommandPropertyFromModule(".uno:Open", m_sModule)); + OUString sLabel(vcl::CommandInfoProvider::GetCommandPropertyFromModule(".uno:Open", m_sModule)); SetText(" " + sLabel.replaceAll("~", "")); // Place icon left of text and both centered in the button. diff --git a/forms/source/solar/control/navtoolbar.cxx b/forms/source/solar/control/navtoolbar.cxx index 66b9109..0a66584 100644 --- a/forms/source/solar/control/navtoolbar.cxx +++ b/forms/source/solar/control/navtoolbar.cxx @@ -287,7 +287,7 @@ namespace frm OUString sCommandURL( lcl_getCommandURL( pSupportedFeatures->nId ) ); m_pToolbar->SetItemCommand( pSupportedFeatures->nId, sCommandURL ); m_pToolbar->SetQuickHelpText( pSupportedFeatures->nId, - vcl::CommandInfoProvider::Instance().GetCommandPropertyFromModule(sCommandURL, m_sModuleId) ); + vcl::CommandInfoProvider::GetCommandPropertyFromModule(sCommandURL, m_sModuleId) ); } if ( pSupportedFeatures->bItemWindow ) diff --git a/framework/source/uielement/addonstoolbarmanager.cxx b/framework/source/uielement/addonstoolbarmanager.cxx index 0043c25..f156dfa 100644 --- a/framework/source/uielement/addonstoolbarmanager.cxx +++ b/framework/source/uielement/addonstoolbarmanager.cxx @@ -122,14 +122,14 @@ static Image RetrieveImage( Reference< css::frame::XFrame >& rFrame, if ( !!aImage ) return aImage; else - aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(aImageId, rFrame, eImageType); + aImage = vcl::CommandInfoProvider::GetImageForCommand(aImageId, rFrame, eImageType); if ( !!aImage ) return aImage; } aImage = framework::AddonsOptions().GetImageFromURL( aURL, bBigImage ); if ( !aImage ) - aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(aImageId, rFrame, eImageType); + aImage = vcl::CommandInfoProvider::GetImageForCommand(aImageId, rFrame, eImageType); return aImage; } @@ -259,7 +259,7 @@ void AddonsToolBarManager::FillToolbar( const Sequence< Sequence< PropertyValue m_pToolBar->InsertItem( nId, aTitle ); - OUString aShortcut(vcl::CommandInfoProvider::Instance().GetCommandShortcut(aURL, m_xFrame)); + OUString aShortcut(vcl::CommandInfoProvider::GetCommandShortcut(aURL, m_xFrame)); if (!aShortcut.isEmpty()) m_pToolBar->SetQuickHelpText(nId, aTitle + " (" + aShortcut + ")"); diff --git a/framework/source/uielement/macrosmenucontroller.cxx b/framework/source/uielement/macrosmenucontroller.cxx index b8880b8..dcff602 100644 --- a/framework/source/uielement/macrosmenucontroller.cxx +++ b/framework/source/uielement/macrosmenucontroller.cxx @@ -83,7 +83,7 @@ void MacrosMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPo // insert basic OUString aCommand(".uno:MacroDialog"); - OUString aDisplayName = vcl::CommandInfoProvider::Instance().GetMenuLabelForCommand(aCommand, m_xFrame); + OUString aDisplayName = vcl::CommandInfoProvider::GetMenuLabelForCommand(aCommand, m_xFrame); pPopupMenu->InsertItem( 2, aDisplayName ); pPopupMenu->SetItemCommand( 2, aCommand ); diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx index e1a1653..1f9c968 100644 --- a/framework/source/uielement/menubarmanager.cxx +++ b/framework/source/uielement/menubarmanager.cxx @@ -1085,9 +1085,9 @@ OUString MenuBarManager::RetrieveLabelFromCommand(const OUString& rCmdURL) if ( !m_bHasMenuBar ) { // This is a context menu, prefer "PopupLabel" over "Label". - return vcl::CommandInfoProvider::Instance().GetPopupLabelForCommand(rCmdURL, m_xFrame); + return vcl::CommandInfoProvider::GetPopupLabelForCommand(rCmdURL, m_xFrame); } - return vcl::CommandInfoProvider::Instance().GetMenuLabelForCommand(rCmdURL, m_xFrame); + return vcl::CommandInfoProvider::GetMenuLabelForCommand(rCmdURL, m_xFrame); } bool MenuBarManager::CreatePopupMenuController( MenuItemHandler* pMenuItemHandler ) @@ -1183,7 +1183,7 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF } // Command can be just an alias to another command. - OUString aRealCommand = vcl::CommandInfoProvider::Instance().GetRealCommandForCommand( aItemCommand, m_xFrame ); + OUString aRealCommand = vcl::CommandInfoProvider::GetRealCommandForCommand( aItemCommand, m_xFrame ); if ( !aRealCommand.isEmpty() ) aItemCommand = aRealCommand; @@ -1289,7 +1289,7 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF // Set image for the addon popup menu item if ( bItemShowMenuImages && !pPopup->GetItemImage( ITEMID_ADDONLIST )) { - Image aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(aItemCommand, rFrame); + Image aImage = vcl::CommandInfoProvider::GetImageForCommand(aItemCommand, rFrame); if ( !!aImage ) pPopup->SetItemImage( ITEMID_ADDONLIST, aImage ); } @@ -1320,12 +1320,12 @@ void MenuBarManager::FillMenuManager( Menu* pMenu, const Reference< XFrame >& rF if ( pMenuAttributes && !pMenuAttributes->aImageId.isEmpty() ) { // Retrieve image id from menu attributes - aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(aImageId, m_xFrame); + aImage = vcl::CommandInfoProvider::GetImageForCommand(aImageId, m_xFrame); } if ( !aImage ) { - aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(aItemCommand, m_xFrame); + aImage = vcl::CommandInfoProvider::GetImageForCommand(aItemCommand, m_xFrame); if ( !aImage ) aImage = AddonsOptions().GetImageFromURL( aItemCommand, false ); } @@ -1648,7 +1648,7 @@ void MenuBarManager::FillMenu( aProp[i].Value >>= bEnabled; } - if (vcl::CommandInfoProvider::Instance().IsExperimental(aCommandURL, rModuleIdentifier) && + if (vcl::CommandInfoProvider::IsExperimental(aCommandURL, rModuleIdentifier) && !SvtMiscOptions().IsExperimentalMode()) { continue; @@ -2086,7 +2086,7 @@ void MenuBarManager::FillMenuImages(Reference< XFrame >& _xFrame, Menu* _pMenu,b if ( !aImageId.isEmpty() ) { - Image aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(aImageId, _xFrame); + Image aImage = vcl::CommandInfoProvider::GetImageForCommand(aImageId, _xFrame); if ( !!aImage ) { bImageSet = true; @@ -2097,7 +2097,7 @@ void MenuBarManager::FillMenuImages(Reference< XFrame >& _xFrame, Menu* _pMenu,b if ( !bImageSet ) { OUString aMenuItemCommand = _pMenu->GetItemCommand( nId ); - Image aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(aMenuItemCommand, _xFrame); + Image aImage = vcl::CommandInfoProvider::GetImageForCommand(aMenuItemCommand, _xFrame); if ( !aImage ) aImage = aAddonOptions.GetImageFromURL( aMenuItemCommand, false ); diff --git a/framework/source/uielement/newmenucontroller.cxx b/framework/source/uielement/newmenucontroller.cxx index 7ee1e56..51c6cc1 100644 --- a/framework/source/uielement/newmenucontroller.cxx +++ b/framework/source/uielement/newmenucontroller.cxx @@ -91,7 +91,7 @@ void NewMenuController::setMenuImages( PopupMenu* pPopupMenu, bool bSetImages ) INetURLObject aURLObj( aImageId.isEmpty() ? aCmd : aImageId ); Image aImage = SvFileInformationManager::GetImageNoDefault( aURLObj ); if ( !aImage ) - aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(aCmd, xFrame); + aImage = vcl::CommandInfoProvider::GetImageForCommand(aCmd, xFrame); if ( !!aImage ) pPopupMenu->SetItemImage( nItemId, aImage ); diff --git a/framework/source/uielement/popuptoolbarcontroller.cxx b/framework/source/uielement/popuptoolbarcontroller.cxx index 34b3a39..4a13605 100644 --- a/framework/source/uielement/popuptoolbarcontroller.cxx +++ b/framework/source/uielement/popuptoolbarcontroller.cxx @@ -370,7 +370,7 @@ void GenericPopupToolbarController::functionExecuted( const OUString& rCommand ) { removeStatusListener( m_aCommandURL ); - OUString aRealCommand( vcl::CommandInfoProvider::Instance().GetRealCommandForCommand( rCommand, m_xFrame ) ); + OUString aRealCommand( vcl::CommandInfoProvider::GetRealCommandForCommand( rCommand, m_xFrame ) ); m_aCommandURL = aRealCommand.isEmpty() ? rCommand : aRealCommand; addStatusListener( m_aCommandURL ); @@ -380,12 +380,12 @@ void GenericPopupToolbarController::functionExecuted( const OUString& rCommand ) { pToolBox->SetItemCommand( nId, rCommand ); pToolBox->SetHelpText( nId, OUString() ); // Will retrieve the new one from help. - pToolBox->SetItemText( nId, vcl::CommandInfoProvider::Instance().GetLabelForCommand( rCommand, m_xFrame ) ); - pToolBox->SetQuickHelpText( nId, vcl::CommandInfoProvider::Instance().GetTooltipForCommand( rCommand, m_xFrame ) ); + pToolBox->SetItemText( nId, vcl::CommandInfoProvider::GetLabelForCommand( rCommand, m_xFrame ) ); + pToolBox->SetQuickHelpText( nId, vcl::CommandInfoProvider::GetTooltipForCommand( rCommand, m_xFrame ) ); vcl::ImageType eImageType = getImageType(pToolBox->GetToolboxButtonSize()); - Image aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(rCommand, m_xFrame, eImageType); + Image aImage = vcl::CommandInfoProvider::GetImageForCommand(rCommand, m_xFrame, eImageType); if ( !!aImage ) pToolBox->SetItemImage( nId, aImage ); } @@ -503,7 +503,7 @@ void SaveToolbarController::updateImage() if ( m_bReadOnly ) { - aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(".uno:SaveAs", m_xFrame, eImageType); + aImage = vcl::CommandInfoProvider::GetImageForCommand(".uno:SaveAs", m_xFrame, eImageType); } else if ( m_bModified ) { @@ -512,7 +512,7 @@ void SaveToolbarController::updateImage() } if ( !aImage ) - aImage = vcl::CommandInfoProvider::Instance().GetImageForCommand(m_aCommandURL, m_xFrame, eImageType); + aImage = vcl::CommandInfoProvider::GetImageForCommand(m_aCommandURL, m_xFrame, eImageType); if ( !!aImage ) pToolBox->SetItemImage( nId, aImage ); @@ -530,7 +530,7 @@ void SaveToolbarController::statusChanged( const css::frame::FeatureStateEvent& if ( bLastReadOnly != m_bReadOnly ) { pToolBox->SetQuickHelpText( nId, - vcl::CommandInfoProvider::Instance().GetTooltipForCommand( m_bReadOnly ? OUString( ".uno:SaveAs" ) : m_aCommandURL, m_xFrame ) ); + vcl::CommandInfoProvider::GetTooltipForCommand( m_bReadOnly ? OUString( ".uno:SaveAs" ) : m_aCommandURL, m_xFrame ) ); pToolBox->SetItemBits( nId, pToolBox->GetItemBits( nId ) & ~( m_bReadOnly ? ToolBoxItemBits::DROPDOWN : ToolBoxItemBits::DROPDOWNONLY ) ); pToolBox->SetItemBits( nId, pToolBox->GetItemBits( nId ) | ( m_bReadOnly ? ToolBoxItemBits::DROPDOWNONLY : ToolBoxItemBits::DROPDOWN ) ); updateImage(); diff --git a/framework/source/uielement/statusbarmanager.cxx b/framework/source/uielement/statusbarmanager.cxx index 27e5be3..06baee2 100644 --- a/framework/source/uielement/statusbarmanager.cxx +++ b/framework/source/uielement/statusbarmanager.cxx @@ -450,7 +450,7 @@ void StatusBarManager::FillStatusBar( const uno::Reference< container::XIndexAcc if (( nType == css::ui::ItemType::DEFAULT ) && !aCommandURL.isEmpty() ) { - OUString aString( vcl::CommandInfoProvider::Instance().GetLabelForCommand(aCommandURL, m_xFrame)); + OUString aString( vcl::CommandInfoProvider::GetLabelForCommand(aCommandURL, m_xFrame)); StatusBarItemBits nItemBits( impl_convertItemStyleToItemBits( nStyle )); m_pStatusBar->InsertItem( nId, nWidth, nItemBits, nOffset ); diff --git a/framework/source/uielement/subtoolbarcontroller.cxx b/framework/source/uielement/subtoolbarcontroller.cxx index 146051d..2f37263 100644 --- a/framework/source/uielement/subtoolbarcontroller.cxx +++ b/framework/source/uielement/subtoolbarcontroller.cxx @@ -291,7 +291,7 @@ void SubToolBarController::updateImage() else if (pToolBox->GetToolboxButtonSize() == ToolBoxButtonSize::Size32) eImageType = vcl::ImageType::Size32; ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits