diff options
author | Noel Grandin <noelgrandin@gmail.com> | 2017-04-17 21:35:35 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2017-04-26 08:50:54 +0200 |
commit | c70d49c7c888da8cfd73db8585e7be1f37fc398a (patch) | |
tree | c0e540401850018464ca76300536faf9aa7e27d2 /unotools | |
parent | cd4344d3bdef631b3e64ac12a9e64bc9670c1b7c (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.cxx | 29 | ||||
-rw-r--r-- | unotools/source/config/useroptions.cxx | 42 | ||||
-rw-r--r-- | unotools/source/i18n/localedatawrapper.cxx | 26 | ||||
-rw-r--r-- | unotools/source/i18n/transliterationwrapper.cxx | 8 |
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 { |