diff options
author | Aron Budea <aron.budea@collabora.com> | 2018-06-06 16:50:20 +0200 |
---|---|---|
committer | Jan Holesovsky <kendy@collabora.com> | 2018-06-07 09:41:08 +0200 |
commit | 03e81df3441a8175770edd522f592f243b5f9082 (patch) | |
tree | a42ceb7dff772ff884a5d346b5921f0c6b16ece5 | |
parent | 6855f7cb73ae19d01a98585be6c4c71fd6f78a6e (diff) |
lokdialog: Allow switching language of editengine ResMgr
Change-Id: I48603cdff916c242dc20fe16fdaffaa9effa6f74
Reviewed-on: https://gerrit.libreoffice.org/55386
Reviewed-by: Jan Holesovsky <kendy@collabora.com>
Tested-by: Jan Holesovsky <kendy@collabora.com>
-rw-r--r-- | editeng/source/editeng/eerdll.cxx | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/editeng/source/editeng/eerdll.cxx b/editeng/source/editeng/eerdll.cxx index b9aa26dcc9f4..95758ef7f1e4 100644 --- a/editeng/source/editeng/eerdll.cxx +++ b/editeng/source/editeng/eerdll.cxx @@ -20,6 +20,7 @@ #include <vcl/wrkwin.hxx> #include <vcl/dialog.hxx> +#include <vcl/lazydelete.hxx> #include <vcl/msgbox.hxx> #include <vcl/svapp.hxx> #include <vcl/settings.hxx> @@ -216,13 +217,14 @@ EditDLL::~EditDLL() delete pGlobalData; } -static ResMgr* pResMgr=nullptr; - ResMgr* EditDLL::GetResMgr() { - if (!pResMgr) - pResMgr = ResMgr::CreateResMgr("editeng", Application::GetSettings().GetUILanguageTag()); - return pResMgr; + static vcl::DeleteOnDeinit<ResMgr> pResourceManager(nullptr); + const LanguageTag& rLocale = Application::GetSettings().GetUILanguageTag(); + if (!pResourceManager.get() || pResourceManager.get()->GetLocale() != rLocale) + pResourceManager.reset(ResMgr::CreateResMgr("editeng", Application::GetSettings().GetUILanguageTag())); + OSL_ASSERT(pResourceManager.get()); + return pResourceManager.get(); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |