summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
Diffstat (limited to 'vcl')
-rw-r--r--vcl/source/app/svapp.cxx17
1 files changed, 13 insertions, 4 deletions
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index a754856c9608..ac13c7360f4d 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -519,7 +519,7 @@ void Application::SetSettings( const AllSettings& rSettings )
ImplSVData* pSVData = ImplGetSVData();
if ( !pSVData->maAppData.mpSettings )
{
- GetSettings();
+ InitSettings();
*pSVData->maAppData.mpSettings = rSettings;
ResMgr::SetDefaultLocale( rSettings.GetUILanguageTag() );
}
@@ -618,14 +618,23 @@ const AllSettings& Application::GetSettings()
ImplSVData* pSVData = ImplGetSVData();
if ( !pSVData->maAppData.mpSettings )
{
- pSVData->maAppData.mpCfgListener = new LocaleConfigurationListener;
- pSVData->maAppData.mpSettings = new AllSettings();
- pSVData->maAppData.mpSettings->GetSysLocale().GetOptions().AddListener( pSVData->maAppData.mpCfgListener );
+ InitSettings();
}
return *(pSVData->maAppData.mpSettings);
}
+void Application::InitSettings()
+{
+ ImplSVData* pSVData = ImplGetSVData();
+
+ assert(!pSVData->maAppData.mpSettings); // initialization should not happen twice!
+
+ pSVData->maAppData.mpCfgListener = new LocaleConfigurationListener;
+ pSVData->maAppData.mpSettings = new AllSettings();
+ pSVData->maAppData.mpSettings->GetSysLocale().GetOptions().AddListener( pSVData->maAppData.mpCfgListener );
+}
+
void Application::NotifyAllWindows( DataChangedEvent& rDCEvt )
{
ImplSVData* pSVData = ImplGetSVData();