diff options
author | Gökay Şatır <gokaysatir@collabora.com> | 2023-02-16 16:47:22 +0300 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.com> | 2023-05-23 15:40:57 +0200 |
commit | d4bc98c5bf8d099ab1df32cc8ac30169ac537e62 (patch) | |
tree | 84f830febb400fa16c05b0e44e30b20d001aec65 /svtools | |
parent | ef76718e7146b9c7c878d598d2e9b5125b278d69 (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.cxx | 27 |
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) { |