summaryrefslogtreecommitdiff
path: root/svtools
diff options
context:
space:
mode:
authorGökay Şatır <gokaysatir@collabora.com>2023-02-16 16:47:22 +0300
committerMiklos Vajna <vmiklos@collabora.com>2023-05-23 15:40:57 +0200
commitd4bc98c5bf8d099ab1df32cc8ac30169ac537e62 (patch)
tree84f830febb400fa16c05b0e44e30b20d001aec65 /svtools
parentef76718e7146b9c7c878d598d2e9b5125b278d69 (diff)
[API CHANGE] Add createShortCutManager function to uiconfigurationmanager.
We need to have different accelerator classes for differnt languages. This PR creates a new accelerator class for different languages. Since current code uses single instance for accelerators, i needed to add a create function. Also we now have an unordered map for different languages and modules. Reviewed-on: https://gerrit.libreoffice.org/c/core/+/147157 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Miklos Vajna <vmiklos@collabora.com> Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148680 Tested-by: Miklos Vajna <vmiklos@collabora.com> Change-Id: Ia646f20b3206f430ece614fc127e8b748044e4c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151798 Tested-by: Jenkins
Diffstat (limited to 'svtools')
-rw-r--r--svtools/source/misc/acceleratorexecute.cxx27
1 files changed, 27 insertions, 0 deletions
diff --git a/svtools/source/misc/acceleratorexecute.cxx b/svtools/source/misc/acceleratorexecute.cxx
index 23f2b3cdacdf..134db44efc1d 100644
--- a/svtools/source/misc/acceleratorexecute.cxx
+++ b/svtools/source/misc/acceleratorexecute.cxx
@@ -24,6 +24,8 @@
#include <com/sun/star/frame/Desktop.hpp>
#include <com/sun/star/ui/GlobalAcceleratorConfiguration.hpp>
#include <com/sun/star/ui/XUIConfigurationManager.hpp>
+#include <com/sun/star/ui/XUIConfigurationManager3.hpp>
+#include <com/sun/star/ui/XModuleUIConfigurationManager3.hpp>
#include <com/sun/star/ui/theModuleUIConfigurationManagerSupplier.hpp>
#include <com/sun/star/ui/XUIConfigurationManagerSupplier.hpp>
#include <com/sun/star/awt/KeyModifier.hpp>
@@ -38,6 +40,8 @@
#include <vcl/lok.hxx>
#include <rtl/ref.hxx>
+#include <comphelper/lok.hxx>
+
namespace svt
{
@@ -406,6 +410,29 @@ css::uno::Reference< css::ui::XAcceleratorConfiguration > AcceleratorExecute::st
return xAccCfg;
}
+css::uno::Reference<css::ui::XAcceleratorConfiguration> AcceleratorExecute::lok_createNewAcceleratorConfiguration(const css::uno::Reference< css::uno::XComponentContext >& rxContext, OUString sModule)
+{
+ css::uno::Reference< css::ui::XModuleUIConfigurationManagerSupplier > xUISupplier(css::ui::theModuleUIConfigurationManagerSupplier::get(rxContext));
+
+ try
+ {
+ css::uno::Reference<css::ui::XUIConfigurationManager> xUIManager = xUISupplier->getUIConfigurationManager(sModule);
+
+ css::ui::XModuleUIConfigurationManager3* t = static_cast<css::ui::XModuleUIConfigurationManager3*>(xUIManager.get());
+
+ // Return new short cut manager in case current view's language is different from previous ones.
+ return t->createShortCutManager();
+ }
+ catch(const css::container::NoSuchElementException&)
+ {}
+
+ return css::uno::Reference<css::ui::XAcceleratorConfiguration>();
+}
+
+void AcceleratorExecute::lok_setModuleConfig(css::uno::Reference<css::ui::XAcceleratorConfiguration> acceleratorConfig)
+{
+ this->m_xModuleCfg = acceleratorConfig;
+}
css::uno::Reference< css::ui::XAcceleratorConfiguration > AcceleratorExecute::st_openDocConfig(const css::uno::Reference< css::frame::XModel >& xModel)
{