summaryrefslogtreecommitdiff
path: root/svtools/source/syslocale/syslocale.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'svtools/source/syslocale/syslocale.cxx')
-rw-r--r--svtools/source/syslocale/syslocale.cxx22
1 files changed, 15 insertions, 7 deletions
diff --git a/svtools/source/syslocale/syslocale.cxx b/svtools/source/syslocale/syslocale.cxx
index abe236bb46d0..9811d97fd964 100644
--- a/svtools/source/syslocale/syslocale.cxx
+++ b/svtools/source/syslocale/syslocale.cxx
@@ -66,18 +66,18 @@ public:
virtual void Notify( SvtBroadcaster& rBC, const SfxHint& rHint );
+ CharClass* GetCharClass();
+
};
// -----------------------------------------------------------------------
-SvtSysLocale_Impl::SvtSysLocale_Impl()
+SvtSysLocale_Impl::SvtSysLocale_Impl() : pCharClass(NULL)
{
const lang::Locale& rLocale = Application::GetSettings().GetLocale();
pLocaleData = new LocaleDataWrapper(
::comphelper::getProcessServiceFactory(), rLocale );
- pCharClass = new CharClass(
- ::comphelper::getProcessServiceFactory(), rLocale );
aSysLocaleOptions.AddListener( *this );
}
@@ -89,7 +89,15 @@ SvtSysLocale_Impl::~SvtSysLocale_Impl()
delete pLocaleData;
}
-
+CharClass* SvtSysLocale_Impl::GetCharClass()
+{
+ if ( !pCharClass )
+ {
+ const lang::Locale& rLocale = Application::GetSettings().GetLocale();
+ pCharClass = new CharClass(::comphelper::getProcessServiceFactory(), rLocale );
+ }
+ return pCharClass;
+}
void SvtSysLocale_Impl::Notify( SvtBroadcaster&, const SfxHint& rHint )
{
const SfxSimpleHint* p = PTR_CAST( SfxSimpleHint, &rHint );
@@ -98,7 +106,7 @@ void SvtSysLocale_Impl::Notify( SvtBroadcaster&, const SfxHint& rHint )
MutexGuard aGuard( SvtSysLocale::GetMutex() );
const lang::Locale& rLocale = Application::GetSettings().GetLocale();
pLocaleData->setLocale( rLocale );
- pCharClass->setLocale( rLocale );
+ GetCharClass()->setLocale( rLocale );
}
}
@@ -158,11 +166,11 @@ const LocaleDataWrapper* SvtSysLocale::GetLocaleDataPtr() const
const CharClass& SvtSysLocale::GetCharClass() const
{
- return *(pImpl->pCharClass);
+ return *(pImpl->GetCharClass());
}
const CharClass* SvtSysLocale::GetCharClassPtr() const
{
- return pImpl->pCharClass;
+ return pImpl->GetCharClass();
}