summaryrefslogtreecommitdiff
path: root/vcl/source/control/field.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'vcl/source/control/field.cxx')
-rw-r--r--vcl/source/control/field.cxx33
1 files changed, 24 insertions, 9 deletions
diff --git a/vcl/source/control/field.cxx b/vcl/source/control/field.cxx
index 28db0e2735b1..7350d3078e92 100644
--- a/vcl/source/control/field.cxx
+++ b/vcl/source/control/field.cxx
@@ -309,7 +309,7 @@ LocaleDataWrapper& FormatterBase::ImplGetLocaleDataWrapper() const
{
if ( !mpLocaleDataWrapper )
{
- ((FormatterBase*)this)->mpLocaleDataWrapper = new LocaleDataWrapper( GetLocale() );
+ ((FormatterBase*)this)->mpLocaleDataWrapper = new LocaleDataWrapper( GetLanguageTag() );
}
return *mpLocaleDataWrapper;
}
@@ -348,7 +348,7 @@ void FormatterBase::SetStrictFormat( sal_Bool bStrict )
void FormatterBase::SetLocale( const lang::Locale& rLocale )
{
- ImplGetLocaleDataWrapper().setLocale( rLocale );
+ ImplGetLocaleDataWrapper().setLanguageTag( LanguageTag( rLocale) );
mbDefaultLocale = sal_False;
ReformatAll();
}
@@ -365,7 +365,22 @@ const lang::Locale& FormatterBase::GetLocale() const
return Application::GetSettings().GetLanguageTag().getLocale();
}
- return mpLocaleDataWrapper->getLocale();
+ return mpLocaleDataWrapper->getLanguageTag().getLocale();
+}
+
+// -----------------------------------------------------------------------
+
+const LanguageTag& FormatterBase::GetLanguageTag() const
+{
+ if ( !mpLocaleDataWrapper || mbDefaultLocale )
+ {
+ if ( mpField )
+ return mpField->GetSettings().GetLanguageTag();
+ else
+ return Application::GetSettings().GetLanguageTag();
+ }
+
+ return mpLocaleDataWrapper->getLanguageTag();
}
// -----------------------------------------------------------------------
@@ -885,7 +900,7 @@ void NumericField::DataChanged( const DataChangedEvent& rDCEvt )
String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
if ( IsDefaultLocale() )
- ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLanguageTag().getLocale() );
+ ImplGetLocaleDataWrapper().setLanguageTag( GetSettings().GetLanguageTag() );
String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );
@@ -1043,7 +1058,7 @@ void NumericBox::DataChanged( const DataChangedEvent& rDCEvt )
String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
if ( IsDefaultLocale() )
- ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLanguageTag().getLocale() );
+ ImplGetLocaleDataWrapper().setLanguageTag( GetSettings().GetLanguageTag() );
String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );
@@ -1887,7 +1902,7 @@ void MetricField::DataChanged( const DataChangedEvent& rDCEvt )
String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
if ( IsDefaultLocale() )
- ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLanguageTag().getLocale() );
+ ImplGetLocaleDataWrapper().setLanguageTag( GetSettings().GetLanguageTag() );
String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );
@@ -2013,7 +2028,7 @@ void MetricBox::DataChanged( const DataChangedEvent& rDCEvt )
String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
if ( IsDefaultLocale() )
- ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLanguageTag().getLocale() );
+ ImplGetLocaleDataWrapper().setLanguageTag( GetSettings().GetLanguageTag() );
String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );
@@ -2299,7 +2314,7 @@ void CurrencyField::DataChanged( const DataChangedEvent& rDCEvt )
String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
if ( IsDefaultLocale() )
- ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLanguageTag().getLocale() );
+ ImplGetLocaleDataWrapper().setLanguageTag( GetSettings().GetLanguageTag() );
String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );
@@ -2401,7 +2416,7 @@ void CurrencyBox::DataChanged( const DataChangedEvent& rDCEvt )
String sOldDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sOldThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
if ( IsDefaultLocale() )
- ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLanguageTag().getLocale() );
+ ImplGetLocaleDataWrapper().setLanguageTag( GetSettings().GetLanguageTag() );
String sNewDecSep = ImplGetLocaleDataWrapper().getNumDecimalSep();
String sNewThSep = ImplGetLocaleDataWrapper().getNumThousandSep();
ImplUpdateSeparators( sOldDecSep, sNewDecSep, sOldThSep, sNewThSep, this );