summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJan Holesovsky <kendy@collabora.com>2018-01-03 14:08:55 +0100
committerJan Holesovsky <kendy@collabora.com>2018-01-05 09:51:23 +0100
commit028fd03cdf4d3d8072289a5c4d476435c18f90d0 (patch)
treeee455db401fc6a9cfca565c9496bfe49dfa3d780
parentf1d1854ffe2c1bc456855573b3ed4ad9852f4571 (diff)
lokdialog: Allow language switching in SfxModule(s).
Change-Id: Icef0b3610c3bfa858cdd61de6ef3f5edc1e3c96b Reviewed-on: https://gerrit.libreoffice.org/47385 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r--basctl/source/basicide/basicmod.hxx4
-rw-r--r--basctl/source/basicide/iderdll.cxx4
-rw-r--r--include/sfx2/module.hxx8
-rw-r--r--sc/source/ui/app/scmod.cxx2
-rw-r--r--sd/source/ui/app/sdmod.cxx2
-rw-r--r--sfx2/source/appl/module.cxx16
-rw-r--r--starmath/source/smmod.cxx2
-rw-r--r--sw/source/uibase/app/swmodule.cxx2
8 files changed, 21 insertions, 19 deletions
diff --git a/basctl/source/basicide/basicmod.hxx b/basctl/source/basicide/basicmod.hxx
index 7dcee5a16420..d94a2198d440 100644
--- a/basctl/source/basicide/basicmod.hxx
+++ b/basctl/source/basicide/basicmod.hxx
@@ -29,8 +29,8 @@ namespace basctl
class Module : public SfxModule
{
public:
- Module(const std::locale& rResLocale, SfxObjectFactory *pObjFact)
- : SfxModule(rResLocale, {pObjFact})
+ Module(const OString& rResName, SfxObjectFactory *pObjFact)
+ : SfxModule(rResName, {pObjFact})
{
}
};
diff --git a/basctl/source/basicide/iderdll.cxx b/basctl/source/basicide/iderdll.cxx
index 19d21c32eedb..b80ce1f38970 100644
--- a/basctl/source/basicide/iderdll.cxx
+++ b/basctl/source/basicide/iderdll.cxx
@@ -118,9 +118,7 @@ Dll::Dll () :
{
SfxObjectFactory& rFactory = DocShell::Factory();
- std::locale loc = Translate::Create("basctl");
-
- auto pModule = o3tl::make_unique<Module>(loc, &rFactory);
+ auto pModule = o3tl::make_unique<Module>("basctl", &rFactory);
SfxModule* pMod = pModule.get();
SfxApplication::SetModule(SfxToolsModule::Basic, std::move(pModule));
diff --git a/include/sfx2/module.hxx b/include/sfx2/module.hxx
index de487dafaa3f..352d1e46ba6f 100644
--- a/include/sfx2/module.hxx
+++ b/include/sfx2/module.hxx
@@ -52,13 +52,11 @@ namespace com { namespace sun { namespace star { namespace frame {
class SFX2_DLLPUBLIC SfxModule : public SfxShell
{
private:
- std::locale m_aResLocale;
-
// Warning this cannot be turned into a unique_ptr.
// SfxInterface destruction in the SfxSlotPool refers again to pImpl after deletion of pImpl has commenced. See tdf#100270
SfxModule_Impl* pImpl;
- SAL_DLLPRIVATE void Construct_Impl();
+ SAL_DLLPRIVATE void Construct_Impl(const OString& rResName);
public:
SFX_DECL_INTERFACE(SFX_INTERFACE_SFXMODULE)
@@ -69,10 +67,10 @@ private:
public:
- SfxModule(const std::locale& rResLocale, std::initializer_list<SfxObjectFactory*> pFactoryList);
+ SfxModule(const OString& rResName, std::initializer_list<SfxObjectFactory*> pFactoryList);
virtual ~SfxModule() override;
- const std::locale& GetResLocale() const { return m_aResLocale; }
+ std::locale GetResLocale() const;
SfxSlotPool* GetSlotPool() const;
void RegisterToolBoxControl(const SfxTbxCtrlFactory&);
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index 9812e37ce12f..acb719f787de 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -137,7 +137,7 @@ void ScModule::InitInterface_Impl()
}
ScModule::ScModule( SfxObjectFactory* pFact ) :
- SfxModule( Translate::Create("sc"), {pFact} ),
+ SfxModule("sc", {pFact}),
aIdleTimer("sc ScModule IdleTimer"),
aSpellIdle("sc ScModule SpellIdle"),
mpDragData(new ScDragData),
diff --git a/sd/source/ui/app/sdmod.cxx b/sd/source/ui/app/sdmod.cxx
index 61dd5e6b10a4..9d9eaa53aecb 100644
--- a/sd/source/ui/app/sdmod.cxx
+++ b/sd/source/ui/app/sdmod.cxx
@@ -65,7 +65,7 @@ void SdModule::InitInterface_Impl()
// Ctor
SdModule::SdModule(SfxObjectFactory* pFact1, SfxObjectFactory* pFact2 )
-: SfxModule( Translate::Create("sd"), {pFact1, pFact2} ),
+: SfxModule("sd", {pFact1, pFact2}),
pTransferClip(nullptr),
pTransferDrag(nullptr),
pTransferSelection(nullptr),
diff --git a/sfx2/source/appl/module.cxx b/sfx2/source/appl/module.cxx
index ef37f8e41ada..3fb4376cc7a1 100644
--- a/sfx2/source/appl/module.cxx
+++ b/sfx2/source/appl/module.cxx
@@ -48,6 +48,7 @@ public:
SfxTbxCtrlFactArr_Impl* pTbxCtrlFac;
SfxStbCtrlFactArr_Impl* pStbCtrlFac;
SfxChildWinFactArr_Impl* pFactArr;
+ OString maResName;
SfxModule_Impl();
~SfxModule_Impl();
@@ -68,11 +69,10 @@ SfxModule_Impl::~SfxModule_Impl()
SFX_IMPL_SUPERCLASS_INTERFACE(SfxModule, SfxShell)
-SfxModule::SfxModule(const std::locale& rLocale, std::initializer_list<SfxObjectFactory*> pFactoryList)
- : m_aResLocale(rLocale)
- , pImpl(nullptr)
+SfxModule::SfxModule(const OString& rResName, std::initializer_list<SfxObjectFactory*> pFactoryList)
+ : pImpl(nullptr)
{
- Construct_Impl();
+ Construct_Impl(rResName);
for (auto pFactory : pFactoryList)
{
if (pFactory)
@@ -80,7 +80,7 @@ SfxModule::SfxModule(const std::locale& rLocale, std::initializer_list<SfxObject
}
}
-void SfxModule::Construct_Impl()
+void SfxModule::Construct_Impl(const OString& rResName)
{
SfxApplication *pApp = SfxApplication::GetOrCreate();
pImpl = new SfxModule_Impl;
@@ -89,6 +89,7 @@ void SfxModule::Construct_Impl()
pImpl->pTbxCtrlFac=nullptr;
pImpl->pStbCtrlFac=nullptr;
pImpl->pFactArr=nullptr;
+ pImpl->maResName = rResName;
SetPool( &pApp->GetPool() );
}
@@ -102,6 +103,11 @@ SfxModule::~SfxModule()
}
}
+std::locale SfxModule::GetResLocale() const
+{
+ return Translate::Create(pImpl->maResName.getStr());
+}
+
SfxSlotPool* SfxModule::GetSlotPool() const
{
return pImpl->pSlotPool;
diff --git a/starmath/source/smmod.cxx b/starmath/source/smmod.cxx
index 08bec54144cf..02a8fec7a572 100644
--- a/starmath/source/smmod.cxx
+++ b/starmath/source/smmod.cxx
@@ -119,7 +119,7 @@ void SmModule::InitInterface_Impl()
}
SmModule::SmModule(SfxObjectFactory* pObjFact)
- : SfxModule(Translate::Create("sm"), {pObjFact})
+ : SfxModule("sm", {pObjFact})
{
SetName("StarMath");
diff --git a/sw/source/uibase/app/swmodule.cxx b/sw/source/uibase/app/swmodule.cxx
index 71264ffd5bea..b4c271d66852 100644
--- a/sw/source/uibase/app/swmodule.cxx
+++ b/sw/source/uibase/app/swmodule.cxx
@@ -146,7 +146,7 @@ using namespace ::com::sun::star::uno;
SwModule::SwModule( SfxObjectFactory* pWebFact,
SfxObjectFactory* pFact,
SfxObjectFactory* pGlobalFact )
- : SfxModule( Translate::Create("sw"), {pWebFact, pFact, pGlobalFact} ),
+ : SfxModule("sw", {pWebFact, pFact, pGlobalFact}),
m_pModuleConfig(nullptr),
m_pUsrPref(nullptr),
m_pWebUsrPref(nullptr),