summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2015-11-17 12:08:30 +0100
committerSamuel Mehrbrodt <Samuel.Mehrbrodt@cib.de>2015-11-17 12:12:11 +0100
commit81ff7cfddb8e6786529f0a878007e9d399d4908a (patch)
tree3d944085db21ebcfa18c38631d2aaa3556e6c7a1
parent2e88fbd747ef2fc7e2d266f7f15db37ecab7662d (diff)
tdf#95845 Add methods for menu labels to CommandInfoProvider
Change-Id: Ibf6a26940ec194f540255584776f8ebcefbb94ae
-rw-r--r--framework/inc/helper/mischelper.hxx8
-rw-r--r--framework/inc/uielement/statusbarmanager.hxx1
-rw-r--r--framework/source/fwi/helper/mischelper.cxx71
-rw-r--r--framework/source/uielement/macrosmenucontroller.cxx9
-rw-r--r--framework/source/uielement/menubarmanager.cxx7
-rw-r--r--framework/source/uielement/statusbarmanager.cxx8
-rw-r--r--include/vcl/commandinfoprovider.hxx8
-rw-r--r--vcl/source/helper/commandinfoprovider.cxx26
8 files changed, 39 insertions, 99 deletions
diff --git a/framework/inc/helper/mischelper.hxx b/framework/inc/helper/mischelper.hxx
index 4f5cf40a2782..6be2306e7fdf 100644
--- a/framework/inc/helper/mischelper.hxx
+++ b/framework/inc/helper/mischelper.hxx
@@ -121,14 +121,6 @@ public:
css::uno::Reference< css::linguistic2::XLanguageGuessing > GetGuesser() const;
};
-FWI_DLLPUBLIC OUString RetrieveLabelFromCommand( const OUString& aCmdURL
- ,const css::uno::Reference< css::uno::XComponentContext >& _xContext
- ,css::uno::Reference< css::container::XNameAccess >& _xUICommandLabels
- ,const css::uno::Reference< css::frame::XFrame >& _xFrame
- ,OUString& _rModuleIdentifier
- ,bool& _rIni
- ,const sal_Char* _pName);
-
FWI_DLLPUBLIC void FillLangItems( std::set< OUString > &rLangItems,
const css::uno::Reference< css::frame::XFrame > &rxFrame,
const LanguageGuessingHelper & rLangGuessHelper,
diff --git a/framework/inc/uielement/statusbarmanager.hxx b/framework/inc/uielement/statusbarmanager.hxx
index 1bef72cb811c..a80fea3293a9 100644
--- a/framework/inc/uielement/statusbarmanager.hxx
+++ b/framework/inc/uielement/statusbarmanager.hxx
@@ -89,7 +89,6 @@ class StatusBarManager : public ::cppu::WeakImplHelper<
DECL_LINK_TYPED(DoubleClick, StatusBar*, void);
void RemoveControllers();
- OUString RetrieveLabelFromCommand( const OUString& aCmdURL );
void CreateControllers();
void UpdateControllers();
void AddFrameActionListener();
diff --git a/framework/source/fwi/helper/mischelper.cxx b/framework/source/fwi/helper/mischelper.cxx
index 7201de053ba9..f8a1f753aafc 100644
--- a/framework/source/fwi/helper/mischelper.cxx
+++ b/framework/source/fwi/helper/mischelper.cxx
@@ -59,77 +59,6 @@ uno::Reference< linguistic2::XLanguageGuessing > LanguageGuessingHelper::GetGues
return m_xLanguageGuesser;
}
-OUString RetrieveLabelFromCommand(
- const OUString& aCmdURL,
- const uno::Reference< uno::XComponentContext >& _xContext,
- uno::Reference< container::XNameAccess >& _xUICommandLabels,
- const uno::Reference< frame::XFrame >& _xFrame,
- OUString& _rModuleIdentifier,
- bool& _rIni,
- const sal_Char* _pName)
-{
- OUString aLabel;
-
- // Retrieve popup menu labels
- if ( !_xUICommandLabels.is() )
- {
- try
- {
- if ( !_rIni )
- {
- _rIni = true;
- Reference< XModuleManager2 > xModuleManager = ModuleManager::create( _xContext );
-
- try
- {
- _rModuleIdentifier = xModuleManager->identify( _xFrame );
- }
- catch( const Exception& )
- {
- }
- }
-
- Reference< XNameAccess > xNameAccess = frame::theUICommandDescription::get( _xContext );
- xNameAccess->getByName( _rModuleIdentifier ) >>= _xUICommandLabels;
- }
- catch ( const Exception& )
- {
- }
- }
-
- if ( _xUICommandLabels.is() )
- {
- try
- {
- if ( !aCmdURL.isEmpty() )
- {
- OUString aStr;
- Sequence< PropertyValue > aPropSeq;
- if( _xUICommandLabels->hasByName( aCmdURL ) )
- {
- if ( _xUICommandLabels->getByName( aCmdURL ) >>= aPropSeq )
- {
- for ( sal_Int32 i = 0; i < aPropSeq.getLength(); i++ )
- {
- if ( aPropSeq[i].Name.equalsAscii( _pName/*"Label"*/ ))
- {
- aPropSeq[i].Value >>= aStr;
- break;
- }
- }
- }
- }
- aLabel = aStr;
- }
- }
- catch ( const css::uno::Exception& )
- {
- }
- }
-
- return aLabel;
-}
-
void FillLangItems( std::set< OUString > &rLangItems,
const uno::Reference< frame::XFrame > & rxFrame,
const LanguageGuessingHelper & rLangGuessHelper,
diff --git a/framework/source/uielement/macrosmenucontroller.cxx b/framework/source/uielement/macrosmenucontroller.cxx
index 588675399e57..badcb95b07de 100644
--- a/framework/source/uielement/macrosmenucontroller.cxx
+++ b/framework/source/uielement/macrosmenucontroller.cxx
@@ -32,6 +32,7 @@
#include <comphelper/processfactory.hxx>
#include <vcl/svapp.hxx>
#include <vcl/i18nhelp.hxx>
+#include <vcl/commandinfoprovider.hxx>
#include <rtl/ustrbuf.hxx>
#include "helper/mischelper.hxx"
#include "helpid.hrc"
@@ -85,7 +86,7 @@ void MacrosMenuController::fillPopupMenu( Reference< css::awt::XPopupMenu >& rPo
// insert basic
OUString aCommand(".uno:MacroDialog");
- OUString aDisplayName = RetrieveLabelFromCommand( aCommand );
+ OUString aDisplayName = vcl::CommandInfoProvider::Instance().GetMenuLabelForCommand(aCommand, m_xFrame);
pPopupMenu->InsertItem( 2, aDisplayName );
pPopupMenu->SetItemCommand( 2, aCommand );
@@ -122,12 +123,6 @@ void SAL_CALL MacrosMenuController::statusChanged( const FeatureStateEvent& ) th
}
}
-OUString MacrosMenuController::RetrieveLabelFromCommand(const OUString& rCmdURL)
-{
- bool bModuleIdentified = !m_aModuleIdentifier.isEmpty();
- return framework::RetrieveLabelFromCommand(rCmdURL, m_xContext, m_xUICommandLabels, m_xFrame, m_aModuleIdentifier, bModuleIdentified, "Label");
-}
-
void MacrosMenuController::addScriptItems( PopupMenu* pPopupMenu, sal_uInt16 startItemId )
{
const OUString aCmdBase(".uno:ScriptOrganizer?ScriptOrganizer.Language:string=");
diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx
index 85fa140577a4..0c4553beb805 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -69,6 +69,7 @@
#include <vcl/window.hxx>
#include <vcl/menu.hxx>
#include <vcl/settings.hxx>
+#include <vcl/commandinfoprovider.hxx>
#include <osl/mutex.hxx>
#include <osl/file.hxx>
#include <cppuhelper/implbase.hxx>
@@ -1099,11 +1100,9 @@ OUString MenuBarManager::RetrieveLabelFromCommand(const OUString& rCmdURL)
if ( !m_bHasMenuBar )
{
// This is a context menu, prefer "PopupLabel" over "Label".
- OUString aPopupLabel = framework::RetrieveLabelFromCommand(rCmdURL, m_xContext, m_xUICommandLabels,m_xFrame,m_aModuleIdentifier,m_bModuleIdentified,"PopupLabel");
- if ( !aPopupLabel.isEmpty() )
- return aPopupLabel;
+ return vcl::CommandInfoProvider::Instance().GetPopupLabelForCommand(rCmdURL, m_xFrame);
}
- return framework::RetrieveLabelFromCommand(rCmdURL, m_xContext, m_xUICommandLabels,m_xFrame,m_aModuleIdentifier,m_bModuleIdentified,"Label");
+ return vcl::CommandInfoProvider::Instance().GetMenuLabelForCommand(rCmdURL, m_xFrame);
}
bool MenuBarManager::CreatePopupMenuController( MenuItemHandler* pMenuItemHandler )
diff --git a/framework/source/uielement/statusbarmanager.cxx b/framework/source/uielement/statusbarmanager.cxx
index 389d1f5d1afc..92673de99a6f 100644
--- a/framework/source/uielement/statusbarmanager.cxx
+++ b/framework/source/uielement/statusbarmanager.cxx
@@ -48,6 +48,7 @@
#include <vcl/status.hxx>
#include <vcl/svapp.hxx>
#include <vcl/settings.hxx>
+#include <vcl/commandinfoprovider.hxx>
#include <functional>
@@ -300,11 +301,6 @@ void StatusBarManager::RemoveControllers()
m_aControllerMap.clear();
}
-OUString StatusBarManager::RetrieveLabelFromCommand( const OUString& aCmdURL )
-{
- return framework::RetrieveLabelFromCommand(aCmdURL, m_xContext, m_xUICommandLabels,m_xFrame,m_aModuleIdentifier,m_bModuleIdentified,"Name");
-}
-
void StatusBarManager::CreateControllers()
{
uno::Reference< awt::XWindow > xStatusbarWindow = VCLUnoHelper::GetInterface( m_pStatusBar );
@@ -475,7 +471,7 @@ void StatusBarManager::FillStatusBar( const uno::Reference< container::XIndexAcc
if (( nType == css::ui::ItemType::DEFAULT ) && !aCommandURL.isEmpty() )
{
- OUString aString( RetrieveLabelFromCommand( aCommandURL ));
+ OUString aString( vcl::CommandInfoProvider::Instance().GetLabelForCommand(aCommandURL, m_xFrame));
sal_uInt16 nItemBits( impl_convertItemStyleToItemBits( nStyle ));
m_pStatusBar->InsertItem( nId, nWidth, nItemBits, nOffset );
diff --git a/include/vcl/commandinfoprovider.hxx b/include/vcl/commandinfoprovider.hxx
index 3d98296d1f3e..c790fedacf67 100644
--- a/include/vcl/commandinfoprovider.hxx
+++ b/include/vcl/commandinfoprovider.hxx
@@ -59,6 +59,14 @@ public:
const OUString& rsCommandName,
const css::uno::Reference<css::frame::XFrame>& rxFrame);
+ OUString GetMenuLabelForCommand (
+ const OUString& rsCommandName,
+ const css::uno::Reference<css::frame::XFrame>& rxFrame);
+
+ OUString GetPopupLabelForCommand (
+ const OUString& rsCommandName,
+ const css::uno::Reference<css::frame::XFrame>& rxFrame);
+
/** Return a tooltip for the given command. Falls back to label if command has no tooltip.
@param rsCommandName
The command name is expected to start with .uno:
diff --git a/vcl/source/helper/commandinfoprovider.cxx b/vcl/source/helper/commandinfoprovider.cxx
index dde74417a14c..6a7e86802956 100644
--- a/vcl/source/helper/commandinfoprovider.cxx
+++ b/vcl/source/helper/commandinfoprovider.cxx
@@ -103,7 +103,6 @@ CommandInfoProvider::~CommandInfoProvider()
}
}
-
OUString CommandInfoProvider::GetLabelForCommand (
const OUString& rsCommandName,
const Reference<frame::XFrame>& rxFrame)
@@ -113,6 +112,29 @@ OUString CommandInfoProvider::GetLabelForCommand (
return GetCommandProperty("Name", rsCommandName);
}
+OUString CommandInfoProvider::GetMenuLabelForCommand (
+ const OUString& rsCommandName,
+ const Reference<frame::XFrame>& rxFrame)
+{
+ SetFrame(rxFrame);
+
+ // 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);
+}
+
+OUString CommandInfoProvider::GetPopupLabelForCommand (
+ const OUString& rsCommandName,
+ const css::uno::Reference<css::frame::XFrame>& rxFrame)
+{
+ SetFrame(rxFrame);
+
+ OUString sPopupLabel(GetCommandProperty("PopupLabel", rsCommandName));
+ if (!sPopupLabel.isEmpty())
+ return sPopupLabel;
+ return GetCommandProperty("Label", rsCommandName);
+}
+
OUString CommandInfoProvider::GetTooltipForCommand (
const OUString& rsCommandName,
const Reference<frame::XFrame>& rxFrame,
@@ -122,7 +144,7 @@ OUString CommandInfoProvider::GetTooltipForCommand (
OUString sLabel (GetCommandProperty("TooltipLabel", rsCommandName));
if (sLabel.isEmpty())
- sLabel = GetLabelForCommand(rsCommandName, rxFrame);
+ sLabel = GetCommandProperty("Name", rsCommandName);
if (bIncludeShortcut) {
const OUString sShortCut(GetCommandShortcut(rsCommandName, rxFrame));