summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAron Budea <aron.budea@collabora.com>2018-06-06 16:50:20 +0200
committerJan Holesovsky <kendy@collabora.com>2018-06-07 09:41:08 +0200
commit03e81df3441a8175770edd522f592f243b5f9082 (patch)
treea42ceb7dff772ff884a5d346b5921f0c6b16ece5
parent6855f7cb73ae19d01a98585be6c4c71fd6f78a6e (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.cxx12
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: */