From d4bc98c5bf8d099ab1df32cc8ac30169ac537e62 Mon Sep 17 00:00:00 2001 From: Gökay Şatır Date: Thu, 16 Feb 2023 16:47:22 +0300 Subject: [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 Reviewed-by: Miklos Vajna Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148680 Tested-by: Miklos Vajna Change-Id: Ia646f20b3206f430ece614fc127e8b748044e4c7 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/151798 Tested-by: Jenkins --- svtools/source/misc/acceleratorexecute.cxx | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'svtools') 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 #include #include +#include +#include #include #include #include @@ -38,6 +40,8 @@ #include #include +#include + namespace svt { @@ -406,6 +410,29 @@ css::uno::Reference< css::ui::XAcceleratorConfiguration > AcceleratorExecute::st return xAccCfg; } +css::uno::Reference 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 xUIManager = xUISupplier->getUIConfigurationManager(sModule); + + css::ui::XModuleUIConfigurationManager3* t = static_cast(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(); +} + +void AcceleratorExecute::lok_setModuleConfig(css::uno::Reference acceleratorConfig) +{ + this->m_xModuleCfg = acceleratorConfig; +} css::uno::Reference< css::ui::XAcceleratorConfiguration > AcceleratorExecute::st_openDocConfig(const css::uno::Reference< css::frame::XModel >& xModel) { -- cgit