summaryrefslogtreecommitdiff
path: root/vcl
diff options
context:
space:
mode:
authorEike Rathke <erack@redhat.com>2012-11-23 23:06:10 +0100
committerEike Rathke <erack@redhat.com>2012-11-23 23:09:16 +0100
commitaf60316514f3ae3d4c475819bf86f2af837171e3 (patch)
treeccfbd673bd4a53047a04dad6457d09c7eea1566c /vcl
parent37f5b864014e9ad17a561b77ea9f6141650e92ad (diff)
some i18n wrappers with LanguageTag
Change-Id: I2ceaa3159e8669c2c569fa8559c1e061dcad399d
Diffstat (limited to 'vcl')
-rw-r--r--vcl/inc/vcl/field.hxx2
-rw-r--r--vcl/inc/vcl/i18nhelp.hxx6
-rw-r--r--vcl/source/app/i18nhelp.cxx9
-rw-r--r--vcl/source/app/settings.cxx8
-rw-r--r--vcl/source/control/field.cxx33
-rw-r--r--vcl/source/control/field2.cxx8
-rw-r--r--vcl/source/edit/texteng.cxx2
7 files changed, 43 insertions, 25 deletions
diff --git a/vcl/inc/vcl/field.hxx b/vcl/inc/vcl/field.hxx
index f2d63b0dbdd0..741656fa7015 100644
--- a/vcl/inc/vcl/field.hxx
+++ b/vcl/inc/vcl/field.hxx
@@ -32,6 +32,7 @@ namespace com { namespace sun { namespace star { namespace lang { struct Locale;
class CalendarWrapper;
class LocaleDataWrapper;
+class LanguageTag;
// -----------------
// - FormatterBase -
@@ -78,6 +79,7 @@ public:
virtual void SetLocale( const ::com::sun::star::lang::Locale& rLocale );
const ::com::sun::star::lang::Locale& GetLocale() const;
+ const LanguageTag& GetLanguageTag() const;
const AllSettings& GetFieldSettings() const;
diff --git a/vcl/inc/vcl/i18nhelp.hxx b/vcl/inc/vcl/i18nhelp.hxx
index 54b05743cc10..98351ea630cc 100644
--- a/vcl/inc/vcl/i18nhelp.hxx
+++ b/vcl/inc/vcl/i18nhelp.hxx
@@ -21,8 +21,8 @@
#define _VCL_I18NHELP_HXX
#include <com/sun/star/uno/Reference.h>
-#include <com/sun/star/lang/Locale.hpp>
#include <osl/mutex.hxx>
+#include <i18npool/languagetag.hxx>
#include <tools/string.hxx>
#include <vcl/dllapi.h>
@@ -49,7 +49,7 @@ class VCL_DLLPUBLIC I18nHelper
{
private:
::osl::Mutex maMutex;
- ::com::sun::star::lang::Locale maLocale;
+ LanguageTag maLanguageTag;
::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext > m_xContext;
LocaleDataWrapper* mpLocaleDataWrapper;
@@ -67,7 +67,7 @@ protected:
public:
- I18nHelper( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const ::com::sun::star::lang::Locale& rLocale );
+ I18nHelper( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const LanguageTag& rLanguageTag );
~I18nHelper();
sal_Int32 CompareString( const rtl::OUString& rStr1, const rtl::OUString& rStr2 ) const;
diff --git a/vcl/source/app/i18nhelp.cxx b/vcl/source/app/i18nhelp.cxx
index 895e86213101..bdec4bb2d3c4 100644
--- a/vcl/source/app/i18nhelp.cxx
+++ b/vcl/source/app/i18nhelp.cxx
@@ -33,10 +33,11 @@
using namespace ::com::sun::star;
-vcl::I18nHelper::I18nHelper( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const ::com::sun::star::lang::Locale& rLocale )
+vcl::I18nHelper::I18nHelper( const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XComponentContext >& rxContext, const LanguageTag& rLanguageTag )
+ :
+ maLanguageTag( rLanguageTag)
{
m_xContext = rxContext;
- maLocale = rLocale;
mpLocaleDataWrapper = NULL;
mpTransliterationWrapper= NULL;
mbTransliterateIgnoreCase = sal_False;
@@ -65,7 +66,7 @@ utl::TransliterationWrapper& vcl::I18nHelper::ImplGetTransliterationWrapper() co
nModules |= i18n::TransliterationModules_IGNORE_CASE;
((vcl::I18nHelper*)this)->mpTransliterationWrapper = new utl::TransliterationWrapper( m_xContext, (i18n::TransliterationModules)nModules );
- ((vcl::I18nHelper*)this)->mpTransliterationWrapper->loadModuleIfNeeded( LanguageTag( maLocale ).getLanguageType() );
+ ((vcl::I18nHelper*)this)->mpTransliterationWrapper->loadModuleIfNeeded( maLanguageTag.getLanguageType() );
}
return *mpTransliterationWrapper;
}
@@ -74,7 +75,7 @@ LocaleDataWrapper& vcl::I18nHelper::ImplGetLocaleDataWrapper() const
{
if ( !mpLocaleDataWrapper )
{
- ((vcl::I18nHelper*)this)->mpLocaleDataWrapper = new LocaleDataWrapper( m_xContext, maLocale );
+ ((vcl::I18nHelper*)this)->mpLocaleDataWrapper = new LocaleDataWrapper( m_xContext, maLanguageTag );
}
return *mpLocaleDataWrapper;
}
diff --git a/vcl/source/app/settings.cxx b/vcl/source/app/settings.cxx
index cc89b324b986..5370f1cc647a 100644
--- a/vcl/source/app/settings.cxx
+++ b/vcl/source/app/settings.cxx
@@ -1533,7 +1533,7 @@ const LocaleDataWrapper& AllSettings::GetLocaleDataWrapper() const
{
if ( !mpData->mpLocaleDataWrapper )
((AllSettings*)this)->mpData->mpLocaleDataWrapper = new LocaleDataWrapper(
- comphelper::getProcessComponentContext(), GetLanguageTag().getLocale() );
+ comphelper::getProcessComponentContext(), GetLanguageTag() );
return *mpData->mpLocaleDataWrapper;
}
@@ -1543,7 +1543,7 @@ const LocaleDataWrapper& AllSettings::GetUILocaleDataWrapper() const
{
if ( !mpData->mpUILocaleDataWrapper )
((AllSettings*)this)->mpData->mpUILocaleDataWrapper = new LocaleDataWrapper(
- comphelper::getProcessComponentContext(), GetUILanguageTag().getLocale() );
+ comphelper::getProcessComponentContext(), GetUILanguageTag() );
return *mpData->mpUILocaleDataWrapper;
}
@@ -1553,7 +1553,7 @@ const vcl::I18nHelper& AllSettings::GetLocaleI18nHelper() const
{
if ( !mpData->mpI18nHelper ) {
((AllSettings*)this)->mpData->mpI18nHelper = new vcl::I18nHelper(
- comphelper::getProcessComponentContext(), GetLanguageTag().getLocale() );
+ comphelper::getProcessComponentContext(), GetLanguageTag() );
}
return *mpData->mpI18nHelper;
}
@@ -1564,7 +1564,7 @@ const vcl::I18nHelper& AllSettings::GetUILocaleI18nHelper() const
{
if ( !mpData->mpUII18nHelper ) {
((AllSettings*)this)->mpData->mpUII18nHelper = new vcl::I18nHelper(
- comphelper::getProcessComponentContext(), GetUILanguageTag().getLocale() );
+ comphelper::getProcessComponentContext(), GetUILanguageTag() );
}
return *mpData->mpUII18nHelper;
}
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 );
diff --git a/vcl/source/control/field2.cxx b/vcl/source/control/field2.cxx
index cc9061f89cbd..725f697411b4 100644
--- a/vcl/source/control/field2.cxx
+++ b/vcl/source/control/field2.cxx
@@ -2013,7 +2013,7 @@ void DateField::DataChanged( const DataChangedEvent& rDCEvt )
if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & (SETTINGS_LOCALE|SETTINGS_MISC)) )
{
if ( IsDefaultLocale() && ( rDCEvt.GetFlags() & SETTINGS_LOCALE ) )
- ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLanguageTag().getLocale() );
+ ImplGetLocaleDataWrapper().setLanguageTag( GetSettings().GetLanguageTag() );
ReformatAll();
}
}
@@ -2098,7 +2098,7 @@ void DateBox::DataChanged( const DataChangedEvent& rDCEvt )
if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_LOCALE) )
{
if ( IsDefaultLocale() )
- ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLanguageTag().getLocale() );
+ ImplGetLocaleDataWrapper().setLanguageTag( GetSettings().GetLanguageTag() );
ReformatAll();
}
}
@@ -2959,7 +2959,7 @@ void TimeField::DataChanged( const DataChangedEvent& rDCEvt )
if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_LOCALE) )
{
if ( IsDefaultLocale() )
- ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLanguageTag().getLocale() );
+ ImplGetLocaleDataWrapper().setLanguageTag( GetSettings().GetLanguageTag() );
ReformatAll();
}
}
@@ -3111,7 +3111,7 @@ void TimeBox::DataChanged( const DataChangedEvent& rDCEvt )
if ( (rDCEvt.GetType() == DATACHANGED_SETTINGS) && (rDCEvt.GetFlags() & SETTINGS_LOCALE) )
{
if ( IsDefaultLocale() )
- ImplGetLocaleDataWrapper().setLocale( GetSettings().GetLanguageTag().getLocale() );
+ ImplGetLocaleDataWrapper().setLanguageTag( GetSettings().GetLanguageTag() );
ReformatAll();
}
}
diff --git a/vcl/source/edit/texteng.cxx b/vcl/source/edit/texteng.cxx
index 0c7d132f334e..5d326452c40a 100644
--- a/vcl/source/edit/texteng.cxx
+++ b/vcl/source/edit/texteng.cxx
@@ -2970,7 +2970,7 @@ void TextEngine::SetLocale( const ::com::sun::star::lang::Locale& rLocale )
LocaleDataWrapper* TextEngine::ImpGetLocaleDataWrapper()
{
if ( !mpLocaleDataWrapper )
- mpLocaleDataWrapper = new LocaleDataWrapper( GetLocale() );
+ mpLocaleDataWrapper = new LocaleDataWrapper( LanguageTag( GetLocale()) );
return mpLocaleDataWrapper;
}