summaryrefslogtreecommitdiff
path: root/unotools
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2017-04-17 21:35:35 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2017-04-26 08:50:54 +0200
commitc70d49c7c888da8cfd73db8585e7be1f37fc398a (patch)
treec0e540401850018464ca76300536faf9aa7e27d2 /unotools
parentcd4344d3bdef631b3e64ac12a9e64bc9670c1b7c (diff)
use strong_int for LanguageType
Change-Id: If99a944f7032180355da291ad283b4cfcea4f448 Reviewed-on: https://gerrit.libreoffice.org/36629 Tested-by: Jenkins <ci@libreoffice.org> Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'unotools')
-rw-r--r--unotools/source/config/lingucfg.cxx29
-rw-r--r--unotools/source/config/useroptions.cxx42
-rw-r--r--unotools/source/i18n/localedatawrapper.cxx26
-rw-r--r--unotools/source/i18n/transliterationwrapper.cxx8
4 files changed, 58 insertions, 47 deletions
diff --git a/unotools/source/config/lingucfg.cxx b/unotools/source/config/lingucfg.cxx
index 77e46b7881b0..9dfc019b19ac 100644
--- a/unotools/source/config/lingucfg.cxx
+++ b/unotools/source/config/lingucfg.cxx
@@ -51,14 +51,14 @@ namespace
public rtl::Static< osl::Mutex, theSvtLinguConfigItemMutex > {};
}
-static bool lcl_SetLocale( sal_Int16 &rLanguage, const uno::Any &rVal )
+static bool lcl_SetLocale( LanguageType &rLanguage, const uno::Any &rVal )
{
bool bSucc = false;
lang::Locale aNew;
if (rVal >>= aNew) // conversion successful?
{
- sal_Int16 nNew = LanguageTag::convertToLanguageType( aNew, false);
+ LanguageType nNew = LanguageTag::convertToLanguageType( aNew, false);
if (nNew != rLanguage)
{
rLanguage = nNew;
@@ -68,7 +68,7 @@ static bool lcl_SetLocale( sal_Int16 &rLanguage, const uno::Any &rVal )
return bSucc;
}
-static inline const OUString lcl_LanguageToCfgLocaleStr( sal_Int16 nLanguage )
+static inline const OUString lcl_LanguageToCfgLocaleStr( LanguageType nLanguage )
{
OUString aRes;
if (LANGUAGE_SYSTEM != nLanguage)
@@ -76,7 +76,7 @@ static inline const OUString lcl_LanguageToCfgLocaleStr( sal_Int16 nLanguage )
return aRes;
}
-static sal_Int16 lcl_CfgAnyToLanguage( const uno::Any &rVal )
+static LanguageType lcl_CfgAnyToLanguage( const uno::Any &rVal )
{
OUString aTmp;
rVal >>= aTmp;
@@ -326,6 +326,7 @@ uno::Any SvtLinguConfigItem::GetProperty( sal_Int32 nPropertyHandle ) const
uno::Any aRes;
const sal_Int16 *pnVal = nullptr;
+ const LanguageType *plVal = nullptr;
const bool *pbVal = nullptr;
const sal_Int32 *pnInt32Val = nullptr;
@@ -339,7 +340,7 @@ uno::Any SvtLinguConfigItem::GetProperty( sal_Int32 nPropertyHandle ) const
case UPH_IS_SPELL_AUTO : pbVal = &rOpt.bIsSpellAuto; break;
case UPH_IS_SPELL_SPECIAL : pbVal = &rOpt.bIsSpellSpecial; break;
case UPH_IS_WRAP_REVERSE : pbVal = &rOpt.bIsSpellReverse; break;
- case UPH_DEFAULT_LANGUAGE : pnVal = &rOpt.nDefaultLanguage; break;
+ case UPH_DEFAULT_LANGUAGE : plVal = &rOpt.nDefaultLanguage; break;
case UPH_IS_SPELL_CAPITALIZATION : pbVal = &rOpt.bIsSpellCapitalization; break;
case UPH_IS_SPELL_WITH_DIGITS : pbVal = &rOpt.bIsSpellWithDigits; break;
case UPH_IS_SPELL_UPPER_CASE : pbVal = &rOpt.bIsSpellUpperCase; break;
@@ -392,6 +393,8 @@ uno::Any SvtLinguConfigItem::GetProperty( sal_Int32 nPropertyHandle ) const
aRes <<= *pbVal;
else if (pnVal)
aRes <<= *pnVal;
+ else if (plVal)
+ aRes <<= (sal_Int16)(sal_uInt16)*plVal;
else if (pnInt32Val)
aRes <<= *pnInt32Val;
@@ -420,6 +423,7 @@ bool SvtLinguConfigItem::SetProperty( sal_Int32 nPropertyHandle, const uno::Any
bool bMod = false;
sal_Int16 *pnVal = nullptr;
+ LanguageType *plVal = nullptr;
bool *pbVal = nullptr;
sal_Int32 *pnInt32Val = nullptr;
@@ -433,7 +437,7 @@ bool SvtLinguConfigItem::SetProperty( sal_Int32 nPropertyHandle, const uno::Any
case UPH_IS_SPELL_AUTO : pbVal = &rOpt.bIsSpellAuto; break;
case UPH_IS_SPELL_SPECIAL : pbVal = &rOpt.bIsSpellSpecial; break;
case UPH_IS_WRAP_REVERSE : pbVal = &rOpt.bIsSpellReverse; break;
- case UPH_DEFAULT_LANGUAGE : pnVal = &rOpt.nDefaultLanguage; break;
+ case UPH_DEFAULT_LANGUAGE : plVal = &rOpt.nDefaultLanguage; break;
case UPH_IS_SPELL_CAPITALIZATION : pbVal = &rOpt.bIsSpellCapitalization; break;
case UPH_IS_SPELL_WITH_DIGITS : pbVal = &rOpt.bIsSpellWithDigits; break;
case UPH_IS_SPELL_UPPER_CASE : pbVal = &rOpt.bIsSpellUpperCase; break;
@@ -513,6 +517,19 @@ bool SvtLinguConfigItem::SetProperty( sal_Int32 nPropertyHandle, const uno::Any
bSucc = true;
}
}
+ else if (plVal)
+ {
+ sal_Int16 nNew = sal_Int16();
+ if (rValue >>= nNew)
+ {
+ if (nNew != (sal_uInt16)*plVal)
+ {
+ *plVal = LanguageType(nNew);
+ bMod = true;
+ }
+ bSucc = true;
+ }
+ }
else if (pnInt32Val)
{
sal_Int32 nNew = sal_Int32();
diff --git a/unotools/source/config/useroptions.cxx b/unotools/source/config/useroptions.cxx
index e9c20cfd0abd..625a925b4095 100644
--- a/unotools/source/config/useroptions.cxx
+++ b/unotools/source/config/useroptions.cxx
@@ -183,33 +183,33 @@ void SvtUserOptions::Impl::SetToken (UserOptToken nToken, OUString const& sToken
OUString SvtUserOptions::Impl::GetFullName () const
{
OUString sFullName;
- switch (LanguageType const eLang = SvtSysLocale().GetUILanguageTag().getLanguageType())
+ LanguageType const eLang = SvtSysLocale().GetUILanguageTag().getLanguageType();
+ if (eLang == LANGUAGE_RUSSIAN)
{
- case LANGUAGE_RUSSIAN:
- sFullName = GetToken(UserOptToken::FirstName).trim();
+ sFullName = GetToken(UserOptToken::FirstName).trim();
+ if (!sFullName.isEmpty())
+ sFullName += " ";
+ sFullName += GetToken(UserOptToken::FathersName).trim();
+ if (!sFullName.isEmpty())
+ sFullName += " ";
+ sFullName += GetToken(UserOptToken::LastName).trim();
+ }
+ else
+ {
+ if (MsLangId::isFamilyNameFirst(eLang))
+ {
+ sFullName = GetToken(UserOptToken::LastName).trim();
if (!sFullName.isEmpty())
sFullName += " ";
- sFullName += GetToken(UserOptToken::FathersName).trim();
+ sFullName += GetToken(UserOptToken::FirstName).trim();
+ }
+ else
+ {
+ sFullName = GetToken(UserOptToken::FirstName).trim();
if (!sFullName.isEmpty())
sFullName += " ";
sFullName += GetToken(UserOptToken::LastName).trim();
- break;
- default:
- if (MsLangId::isFamilyNameFirst(eLang))
- {
- sFullName = GetToken(UserOptToken::LastName).trim();
- if (!sFullName.isEmpty())
- sFullName += " ";
- sFullName += GetToken(UserOptToken::FirstName).trim();
- }
- else
- {
- sFullName = GetToken(UserOptToken::FirstName).trim();
- if (!sFullName.isEmpty())
- sFullName += " ";
- sFullName += GetToken(UserOptToken::LastName).trim();
- }
- break;
+ }
}
return sFullName;
diff --git a/unotools/source/i18n/localedatawrapper.cxx b/unotools/source/i18n/localedatawrapper.cxx
index 147125c38a83..5df0206ff681 100644
--- a/unotools/source/i18n/localedatawrapper.cxx
+++ b/unotools/source/i18n/localedatawrapper.cxx
@@ -58,7 +58,7 @@ namespace
struct InstalledLanguageTypes
: public rtl::Static<
- uno::Sequence< sal_uInt16 >, InstalledLanguageTypes >
+ std::vector< LanguageType >, InstalledLanguageTypes >
{};
}
@@ -288,18 +288,18 @@ css::uno::Sequence< css::lang::Locale > LocaleDataWrapper::getInstalledLocaleNam
}
// static
-css::uno::Sequence< sal_uInt16 > LocaleDataWrapper::getInstalledLanguageTypes()
+std::vector< LanguageType > LocaleDataWrapper::getInstalledLanguageTypes()
{
- uno::Sequence< sal_uInt16 > &rInstalledLanguageTypes =
+ std::vector< LanguageType > &rInstalledLanguageTypes =
InstalledLanguageTypes::get();
- if ( rInstalledLanguageTypes.getLength() )
+ if ( !rInstalledLanguageTypes.empty() )
return rInstalledLanguageTypes;
css::uno::Sequence< css::lang::Locale > xLoc = getInstalledLocaleNames();
sal_Int32 nCount = xLoc.getLength();
- css::uno::Sequence< sal_uInt16 > xLang( nCount );
- sal_Int32 nLanguages = 0;
+ std::vector< LanguageType > xLang;
+ xLang.reserve(nCount);
for ( sal_Int32 i=0; i<nCount; i++ )
{
LanguageTag aLanguageTag( xLoc[i] );
@@ -317,12 +317,8 @@ css::uno::Sequence< sal_uInt16 > LocaleDataWrapper::getInstalledLanguageTypes()
outputCheckMessage(aMsg.makeStringAndClear());
}
- switch ( eLang )
- {
- case LANGUAGE_NORWEGIAN : // no_NO, not Bokmal (nb_NO), not Nynorsk (nn_NO)
- eLang = LANGUAGE_DONTKNOW; // don't offer "Unknown" language
- break;
- }
+ if ( eLang == LANGUAGE_NORWEGIAN) // no_NO, not Bokmal (nb_NO), not Nynorsk (nn_NO)
+ eLang = LANGUAGE_DONTKNOW; // don't offer "Unknown" language
if ( eLang != LANGUAGE_DONTKNOW )
{
LanguageTag aBackLanguageTag( eLang);
@@ -340,7 +336,7 @@ css::uno::Sequence< sal_uInt16 > LocaleDataWrapper::getInstalledLanguageTypes()
OUStringBuffer aMsg("ConvertIsoNamesToLanguage/ConvertLanguageToIsoNames: ambiguous locale (MS-LCID?)\n");
aMsg.append(aDebugLocale);
aMsg.append(" -> 0x");
- aMsg.append(static_cast<sal_Int32>(eLang), 16);
+ aMsg.append((sal_Int32)(sal_uInt16)eLang, 16);
aMsg.append(" -> ");
aMsg.append(aBackLanguageTag.getBcp47());
outputCheckMessage( aMsg.makeStringAndClear() );
@@ -349,10 +345,8 @@ css::uno::Sequence< sal_uInt16 > LocaleDataWrapper::getInstalledLanguageTypes()
}
}
if ( eLang != LANGUAGE_DONTKNOW )
- xLang[ nLanguages++ ] = eLang;
+ xLang.push_back(eLang);
}
- if ( nLanguages < nCount )
- xLang.realloc( nLanguages );
rInstalledLanguageTypes = xLang;
return rInstalledLanguageTypes;
diff --git a/unotools/source/i18n/transliterationwrapper.cxx b/unotools/source/i18n/transliterationwrapper.cxx
index 6e0cd7b521b3..d2d037a482f2 100644
--- a/unotools/source/i18n/transliterationwrapper.cxx
+++ b/unotools/source/i18n/transliterationwrapper.cxx
@@ -44,7 +44,7 @@ TransliterationWrapper::~TransliterationWrapper()
{
}
-OUString TransliterationWrapper::transliterate(const OUString& rStr, sal_uInt16 nLang,
+OUString TransliterationWrapper::transliterate(const OUString& rStr, LanguageType nLang,
sal_Int32 nStart, sal_Int32 nLen,
Sequence <sal_Int32>* pOffset )
{
@@ -96,14 +96,14 @@ bool TransliterationWrapper::needLanguageForTheMode() const
TransliterationFlags::TOGGLE_CASE == nType;
}
-void TransliterationWrapper::setLanguageLocaleImpl( sal_uInt16 nLang )
+void TransliterationWrapper::setLanguageLocaleImpl( LanguageType nLang )
{
if( LANGUAGE_NONE == nLang )
nLang = LANGUAGE_SYSTEM;
aLanguageTag.reset( nLang);
}
-void TransliterationWrapper::loadModuleIfNeeded( sal_uInt16 nLang )
+void TransliterationWrapper::loadModuleIfNeeded( LanguageType nLang )
{
bool bLoad = bFirstCall;
bFirstCall = false;
@@ -155,7 +155,7 @@ void TransliterationWrapper::loadModuleImpl() const
}
void TransliterationWrapper::loadModuleByImplName(const OUString& rModuleName,
- sal_uInt16 nLang )
+ LanguageType nLang )
{
try
{