diff options
author | Ashod Nakashian <ashod.nakashian@collabora.co.uk> | 2019-01-28 20:39:17 -0500 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2019-03-04 15:22:01 +0100 |
commit | 312346531dde33cd000a1d3c95c7b7829b656438 (patch) | |
tree | fd8f3ae3e84b4054e6635cca8941f15fee1de0ea /sd | |
parent | b44679e47211a27f4fe22d05762d9d48c8f88935 (diff) |
sd: LOK: support localization of slide transition presets
Change-Id: Ic3ea57e537e118e10d155203921574967154c234
Reviewed-on: https://gerrit.libreoffice.org/68264
Reviewed-by: Andras Timar <andras.timar@collabora.com>
Tested-by: Andras Timar <andras.timar@collabora.com>
Diffstat (limited to 'sd')
-rw-r--r-- | sd/inc/TransitionPreset.hxx | 4 | ||||
-rw-r--r-- | sd/source/core/TransitionPreset.cxx | 42 |
2 files changed, 20 insertions, 26 deletions
diff --git a/sd/inc/TransitionPreset.hxx b/sd/inc/TransitionPreset.hxx index 623989f8e93a..4cbfd0e91b9f 100644 --- a/sd/inc/TransitionPreset.hxx +++ b/sd/inc/TransitionPreset.hxx @@ -44,7 +44,6 @@ class TransitionPreset { public: static const TransitionPresetList& getTransitionPresetList(); - static bool importTransitionPresetList( TransitionPresetList& rList ); sal_Int16 getTransition() const { return mnTransition; } sal_Int16 getSubtype() const { return mnSubtype; } @@ -59,6 +58,9 @@ public: private: TransitionPreset( const css::uno::Reference< css::animations::XAnimationNode >& xNode ); + static bool importTransitionPresetList(TransitionPresetList& rList); + SAL_DLLPRIVATE static std::map<OUString, TransitionPresetList> mPresetsMap; + sal_Int16 mnTransition; sal_Int16 mnSubtype; bool mbDirection; diff --git a/sd/source/core/TransitionPreset.cxx b/sd/source/core/TransitionPreset.cxx index 1d07e80e33ea..2eeb5a49eca0 100644 --- a/sd/source/core/TransitionPreset.cxx +++ b/sd/source/core/TransitionPreset.cxx @@ -30,7 +30,9 @@ #include <comphelper/getexpandeduri.hxx> #include <comphelper/processfactory.hxx> #include <comphelper/propertysequence.hxx> +#include <comphelper/lok.hxx> #include <unotools/pathoptions.hxx> +#include <unotools/syslocaleoptions.hxx> #include <officecfg/Office/UI/Effects.hxx> #include <tools/stream.hxx> @@ -237,34 +239,24 @@ bool TransitionPreset::importTransitionPresetList( TransitionPresetList& rList ) return bRet; } -namespace -{ - class ImportedTransitionPresetList - { - private: - sd::TransitionPresetList m_aTransitionPresetList; - public: - ImportedTransitionPresetList() - { - sd::TransitionPreset::importTransitionPresetList( - m_aTransitionPresetList); - } - const sd::TransitionPresetList& getList() const - { - return m_aTransitionPresetList; - } - }; - - class theTransitionPresetList : - public rtl::Static<ImportedTransitionPresetList, - theTransitionPresetList> - { - }; -} +std::map<OUString, TransitionPresetList> sd::TransitionPreset::mPresetsMap; const TransitionPresetList& TransitionPreset::getTransitionPresetList() { - return theTransitionPresetList::get().getList(); + // Support localization per-view. Currently not useful for Desktop + // but very much critical for LOK. The cache now is per-language. + const OUString aLang = comphelper::LibreOfficeKit::isActive() + ? comphelper::LibreOfficeKit::getLanguageTag().getLanguage() + : SvtSysLocaleOptions().GetLanguageTag().getLanguage(); + + SolarMutexGuard aGuard; + const auto it = mPresetsMap.find(aLang); + if (it != mPresetsMap.end()) + return it->second; + + TransitionPresetList& rList = mPresetsMap[aLang]; + sd::TransitionPreset::importTransitionPresetList(rList); + return rList; } } |