summaryrefslogtreecommitdiff
path: root/vcl/source/app
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/source/app')
-rw-r--r--vcl/source/app/dbggui.cxx2
-rw-r--r--vcl/source/app/settings.cxx106
-rw-r--r--vcl/source/app/svapp.cxx7
-rw-r--r--vcl/source/app/svdata.cxx2
4 files changed, 37 insertions, 80 deletions
diff --git a/vcl/source/app/dbggui.cxx b/vcl/source/app/dbggui.cxx
index b4601b5416d1..ee72e0201f9b 100644
--- a/vcl/source/app/dbggui.cxx
+++ b/vcl/source/app/dbggui.cxx
@@ -1257,7 +1257,7 @@ void DbgDialogTest( Window* pWindow )
nAccelPos = aText.Search( '~' );
if ( nAccelPos != STRING_NOTFOUND )
{
- const ::com::sun::star::lang::Locale& rLocale = Application::GetSettings().GetLocale();
+ const ::com::sun::star::lang::Locale& rLocale = Application::GetSettings().GetLanguageTag().getLocale();
uno::Reference < i18n::XCharacterClassification > xCharClass = vcl::unohelper::CreateCharacterClassification();
XubString aUpperText = xCharClass->toUpper( aText, 0, aText.Len(), rLocale );
cAccel = aUpperText.GetChar( nAccelPos+1 );
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index aa42cb6c8ecd..cc89b324b986 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -1195,12 +1195,13 @@ sal_Bool HelpSettings::operator ==( const HelpSettings& rSet ) const
// =======================================================================
ImplAllSettingsData::ImplAllSettingsData()
+ :
+ maLocale( LANGUAGE_SYSTEM ),
+ maUILocale( LANGUAGE_SYSTEM )
{
mnRefCount = 1;
mnSystemUpdate = SETTINGS_ALLSETTINGS;
mnWindowUpdate = SETTINGS_ALLSETTINGS;
- meLanguage = LANGUAGE_SYSTEM;
- meUILanguage = LANGUAGE_SYSTEM;
mpLocaleDataWrapper = NULL;
mpUILocaleDataWrapper = NULL;
mpI18nHelper = NULL;
@@ -1215,12 +1216,12 @@ ImplAllSettingsData::ImplAllSettingsData( const ImplAllSettingsData& rData ) :
maStyleSettings( rData.maStyleSettings ),
maMiscSettings( rData.maMiscSettings ),
maHelpSettings( rData.maHelpSettings ),
- maLocale( rData.maLocale )
+ maLocale( rData.maLocale ),
+ maUILocale( rData.maUILocale )
{
mnRefCount = 1;
mnSystemUpdate = rData.mnSystemUpdate;
mnWindowUpdate = rData.mnWindowUpdate;
- meLanguage = rData.meLanguage;
// Pointer couldn't shared and objects haven't a copy ctor
// So we create the cache objects new, if the GetFunction is
// called
@@ -1363,9 +1364,9 @@ sal_uLong AllSettings::Update( sal_uLong nFlags, const AllSettings& rSet )
if ( nFlags & SETTINGS_LOCALE )
{
- if ( mpData->meLanguage || rSet.mpData->meLanguage )
+ if ( mpData->maLocale != rSet.mpData->maLocale )
{
- SetLanguage( rSet.mpData->meLanguage );
+ SetLanguageTag( rSet.mpData->maLocale );
nChangeFlags |= SETTINGS_LOCALE;
}
}
@@ -1399,7 +1400,7 @@ sal_uLong AllSettings::GetChangeFlags( const AllSettings& rSet ) const
if ( mpData->maHelpSettings != rSet.mpData->maHelpSettings )
nChangeFlags |= SETTINGS_HELP;
- if ( mpData->meLanguage || rSet.mpData->meLanguage )
+ if ( mpData->maLocale != rSet.mpData->maLocale )
nChangeFlags |= SETTINGS_LOCALE;
return nChangeFlags;
@@ -1431,45 +1432,14 @@ sal_Bool AllSettings::operator ==( const AllSettings& rSet ) const
// -----------------------------------------------------------------------
-void AllSettings::SetLocale( const ::com::sun::star::lang::Locale& rLocale )
+void AllSettings::SetLanguageTag( const LanguageTag& rLanguageTag )
{
- CopyData();
-
- mpData->maLocale = rLocale;
-
- if ( rLocale.Language.isEmpty() )
- mpData->meLanguage = LANGUAGE_SYSTEM;
- else
- mpData->meLanguage = LanguageTag( rLocale ).getLanguageType( false);
- if ( mpData->mpLocaleDataWrapper )
- {
- delete mpData->mpLocaleDataWrapper;
- mpData->mpLocaleDataWrapper = NULL;
- }
- if ( mpData->mpI18nHelper )
- {
- delete mpData->mpI18nHelper;
- mpData->mpI18nHelper = NULL;
- }
-}
-
-// -----------------------------------------------------------------------
-
-void AllSettings::SetUILocale( const ::com::sun::star::lang::Locale& )
-{
- // there is only one UILocale per process
-}
-
-// -----------------------------------------------------------------------
-
-void AllSettings::SetLanguage( LanguageType eLang )
-{
- if ( eLang != mpData->meLanguage )
+ if (mpData->maLocale != rLanguageTag)
{
CopyData();
- mpData->meLanguage = eLang;
- mpData->maLocale = LanguageTag( GetLanguage() ).getLocale();
+ mpData->maLocale = rLanguageTag;
+
if ( mpData->mpLocaleDataWrapper )
{
delete mpData->mpLocaleDataWrapper;
@@ -1485,9 +1455,9 @@ void AllSettings::SetLanguage( LanguageType eLang )
// -----------------------------------------------------------------------
-void AllSettings::SetUILanguage( LanguageType )
+void AllSettings::SetUILanguageTag( const LanguageTag& )
{
- // there is only one UILanguage per process
+ // there is only one UILocale per process
}
// -----------------------------------------------------------------------
@@ -1526,7 +1496,7 @@ bool AllSettings::GetLayoutRTL() const
LanguageType aLang = LANGUAGE_DONTKNOW;
ImplSVData* pSVData = ImplGetSVData();
if ( pSVData->maAppData.mpSettings )
- aLang = pSVData->maAppData.mpSettings->GetUILanguage();
+ aLang = pSVData->maAppData.mpSettings->GetUILanguageTag().getLanguageType();
bRTL = MsLangId::isRightToLeft( aLang );
}
else
@@ -1537,50 +1507,33 @@ bool AllSettings::GetLayoutRTL() const
// -----------------------------------------------------------------------
-const ::com::sun::star::lang::Locale& AllSettings::GetLocale() const
+const LanguageTag& AllSettings::GetLanguageTag() const
{
- if ( mpData->maLocale.Language.isEmpty() )
- mpData->maLocale = mpData->maSysLocale.GetLanguageTag().getLocale();
+ // SYSTEM locale means: use settings from SvtSysLocale that is resolved
+ if ( mpData->maLocale.isSystemLocale() )
+ mpData->maLocale = mpData->maSysLocale.GetLanguageTag();
return mpData->maLocale;
}
// -----------------------------------------------------------------------
-const ::com::sun::star::lang::Locale& AllSettings::GetUILocale() const
+const LanguageTag& AllSettings::GetUILanguageTag() const
{
// the UILocale is never changed
- if ( mpData->maUILocale.Language.isEmpty() )
- mpData->maUILocale = mpData->maSysLocale.GetUILanguageTag().getLocale();
+ if ( mpData->maUILocale.isSystemLocale() )
+ mpData->maUILocale = mpData->maSysLocale.GetUILanguageTag();
return mpData->maUILocale;
}
// -----------------------------------------------------------------------
-LanguageType AllSettings::GetLanguage() const
-{
- // meLanguage == LANGUAGE_SYSTEM means: use settings from SvtSysLocale
- if ( mpData->meLanguage == LANGUAGE_SYSTEM )
- return mpData->maSysLocale.GetLanguageTag().getLanguageType();
-
- return mpData->meLanguage;
-}
-
-// -----------------------------------------------------------------------
-
-LanguageType AllSettings::GetUILanguage() const
-{
- // the UILanguage is never changed
- return mpData->maSysLocale.GetUILanguageTag().getLanguageType();
-}
-
-// -----------------------------------------------------------------------
-
const LocaleDataWrapper& AllSettings::GetLocaleDataWrapper() const
{
if ( !mpData->mpLocaleDataWrapper )
- ((AllSettings*)this)->mpData->mpLocaleDataWrapper = new LocaleDataWrapper( comphelper::getProcessComponentContext(), GetLocale() );
+ ((AllSettings*)this)->mpData->mpLocaleDataWrapper = new LocaleDataWrapper(
+ comphelper::getProcessComponentContext(), GetLanguageTag().getLocale() );
return *mpData->mpLocaleDataWrapper;
}
@@ -1589,7 +1542,8 @@ const LocaleDataWrapper& AllSettings::GetLocaleDataWrapper() const
const LocaleDataWrapper& AllSettings::GetUILocaleDataWrapper() const
{
if ( !mpData->mpUILocaleDataWrapper )
- ((AllSettings*)this)->mpData->mpUILocaleDataWrapper = new LocaleDataWrapper( comphelper::getProcessComponentContext(), GetUILocale() );
+ ((AllSettings*)this)->mpData->mpUILocaleDataWrapper = new LocaleDataWrapper(
+ comphelper::getProcessComponentContext(), GetUILanguageTag().getLocale() );
return *mpData->mpUILocaleDataWrapper;
}
@@ -1598,7 +1552,8 @@ const LocaleDataWrapper& AllSettings::GetUILocaleDataWrapper() const
const vcl::I18nHelper& AllSettings::GetLocaleI18nHelper() const
{
if ( !mpData->mpI18nHelper ) {
- ((AllSettings*)this)->mpData->mpI18nHelper = new vcl::I18nHelper( comphelper::getProcessComponentContext(), GetLocale() );
+ ((AllSettings*)this)->mpData->mpI18nHelper = new vcl::I18nHelper(
+ comphelper::getProcessComponentContext(), GetLanguageTag().getLocale() );
}
return *mpData->mpI18nHelper;
}
@@ -1608,7 +1563,8 @@ const vcl::I18nHelper& AllSettings::GetLocaleI18nHelper() const
const vcl::I18nHelper& AllSettings::GetUILocaleI18nHelper() const
{
if ( !mpData->mpUII18nHelper ) {
- ((AllSettings*)this)->mpData->mpUII18nHelper = new vcl::I18nHelper( comphelper::getProcessComponentContext(), GetUILocale() );
+ ((AllSettings*)this)->mpData->mpUII18nHelper = new vcl::I18nHelper(
+ comphelper::getProcessComponentContext(), GetUILanguageTag().getLocale() );
}
return *mpData->mpUII18nHelper;
}
@@ -1628,7 +1584,7 @@ void AllSettings::LocaleSettingsChanged( sal_uInt32 nHint )
}
if ( (nHint & SYSLOCALEOPTIONS_HINT_LOCALE) )
- aAllSettings.SetLocale( aAllSettings.mpData->maSysLocale.GetOptions().GetLanguageTag().getLocale() );
+ aAllSettings.SetLanguageTag( aAllSettings.mpData->maSysLocale.GetOptions().GetLanguageTag() );
Application::SetSettings( aAllSettings );
}
diff --git a/vcl/source/app/svapp.cxx b/vcl/source/app/svapp.cxx
index 5fee6d9f117d..45147d1d6105 100644
--- a/vcl/source/app/svapp.cxx
+++ b/vcl/source/app/svapp.cxx
@@ -619,17 +619,18 @@ void Application::SetSettings( const AllSettings& rSettings )
{
GetSettings();
*pSVData->maAppData.mpSettings = rSettings;
- ResMgr::SetDefaultLocale( rSettings.GetUILocale() );
+ ResMgr::SetDefaultLocale( rSettings.GetUILanguageTag().getLocale() );
}
else
{
AllSettings aOldSettings = *pSVData->maAppData.mpSettings;
- if( aOldSettings.GetUILanguage() != rSettings.GetUILanguage() && pSVData->mpResMgr )
+ if( aOldSettings.GetUILanguageTag().getLanguageType() != rSettings.GetUILanguageTag().getLanguageType() &&
+ pSVData->mpResMgr )
{
delete pSVData->mpResMgr;
pSVData->mpResMgr = NULL;
}
- ResMgr::SetDefaultLocale( rSettings.GetUILocale() );
+ ResMgr::SetDefaultLocale( rSettings.GetUILanguageTag().getLocale() );
*pSVData->maAppData.mpSettings = rSettings;
sal_uLong nChangeFlags = aOldSettings.GetChangeFlags( *pSVData->maAppData.mpSettings );
if ( nChangeFlags )
diff --git a/vcl/source/app/svdata.cxx b/vcl/source/app/svdata.cxx
index d9af0b698a50..b238497e3a00 100644
--- a/vcl/source/app/svdata.cxx
+++ b/vcl/source/app/svdata.cxx
@@ -181,7 +181,7 @@ ResMgr* ImplGetResMgr()
ImplSVData* pSVData = ImplGetSVData();
if ( !pSVData->mpResMgr )
{
- ::com::sun::star::lang::Locale aLocale = Application::GetSettings().GetUILocale();
+ ::com::sun::star::lang::Locale aLocale = Application::GetSettings().GetUILanguageTag().getLocale();
pSVData->mpResMgr = ResMgr::SearchCreateResMgr( VCL_CREATERESMGR_NAME( vcl ), aLocale );
static bool bMessageOnce = false;