Kaydet (Commit) d75dd80a authored tarafından Caolán McNamara's avatar Caolán McNamara

Resolves: fdo#54493 autoenable CJK/CTL ui based on installed keyboards

Change-Id: I66d3c57c88ff64fc3e3a7fa50fb5a173e709e3bf
üst a865cec5
...@@ -197,16 +197,36 @@ void SvtCJKOptions_Impl::Load() ...@@ -197,16 +197,36 @@ void SvtCJKOptions_Impl::Load()
} }
} }
if (!bCJKFont)
{
bool bAutoEnableCJK = false;
sal_uInt16 nScriptType = SvtLanguageOptions::GetScriptTypeOfLanguage(LANGUAGE_SYSTEM);
//system locale is CJK
bAutoEnableCJK = (nScriptType & SCRIPTTYPE_ASIAN);
if (!bAutoEnableCJK)
{
SvtSystemLanguageOptions aSystemLocaleSettings; SvtSystemLanguageOptions aSystemLocaleSettings;
//windows secondary system locale is CJK
LanguageType eSystemLanguage = aSystemLocaleSettings.GetWin16SystemLanguage(); LanguageType eSystemLanguage = aSystemLocaleSettings.GetWin16SystemLanguage();
if (eSystemLanguage != LANGUAGE_SYSTEM)
{
sal_uInt16 nWinScript = SvtLanguageOptions::GetScriptTypeOfLanguage( eSystemLanguage ); sal_uInt16 nWinScript = SvtLanguageOptions::GetScriptTypeOfLanguage( eSystemLanguage );
bAutoEnableCJK = (nWinScript & SCRIPTTYPE_ASIAN);
}
sal_uInt16 nScriptType = SvtLanguageOptions::GetScriptTypeOfLanguage(LANGUAGE_SYSTEM); //CJK keyboard is installed
if ( !bCJKFont && (( nScriptType & SCRIPTTYPE_ASIAN )|| if (!bAutoEnableCJK)
((eSystemLanguage != LANGUAGE_SYSTEM) && ( nWinScript & SCRIPTTYPE_ASIAN )))) bAutoEnableCJK = aSystemLocaleSettings.isCJKKeyboardLayoutInstalled();
}
if (bAutoEnableCJK)
{ {
SetAll(sal_True); SetAll(sal_True);
} }
}
bIsLoaded = sal_True; bIsLoaded = sal_True;
} }
......
...@@ -287,12 +287,35 @@ void SvtCTLOptions_Impl::Load() ...@@ -287,12 +287,35 @@ void SvtCTLOptions_Impl::Load()
} }
} }
} }
sal_uInt16 nType = SvtLanguageOptions::GetScriptTypeOfLanguage(LANGUAGE_SYSTEM);
if (!m_bCTLFontEnabled)
{
bool bAutoEnableCTL = false;
sal_uInt16 nScriptType = SvtLanguageOptions::GetScriptTypeOfLanguage(LANGUAGE_SYSTEM);
//system locale is CTL
bAutoEnableCTL = (nScriptType & SCRIPTTYPE_COMPLEX);
LanguageType eSystemLanguage = LANGUAGE_SYSTEM;
if (!bAutoEnableCTL)
{
SvtSystemLanguageOptions aSystemLocaleSettings; SvtSystemLanguageOptions aSystemLocaleSettings;
LanguageType eSystemLanguage = aSystemLocaleSettings.GetWin16SystemLanguage();
//windows secondary system locale is CTL
eSystemLanguage = aSystemLocaleSettings.GetWin16SystemLanguage();
if (eSystemLanguage != LANGUAGE_SYSTEM)
{
sal_uInt16 nWinScript = SvtLanguageOptions::GetScriptTypeOfLanguage( eSystemLanguage ); sal_uInt16 nWinScript = SvtLanguageOptions::GetScriptTypeOfLanguage( eSystemLanguage );
if( !m_bCTLFontEnabled && (( nType & SCRIPTTYPE_COMPLEX ) || bAutoEnableCTL = (nWinScript & SCRIPTTYPE_COMPLEX);
((eSystemLanguage != LANGUAGE_SYSTEM) && ( nWinScript & SCRIPTTYPE_COMPLEX ))) ) }
//CTL keyboard is installed
if (!bAutoEnableCTL)
bAutoEnableCTL = aSystemLocaleSettings.isCTLKeyboardLayoutInstalled();
}
if (bAutoEnableCTL)
{ {
m_bCTLFontEnabled = sal_True; m_bCTLFontEnabled = sal_True;
sal_uInt16 nLanguage = SvtSysLocale().GetLanguageTag().getLanguageType(); sal_uInt16 nLanguage = SvtSysLocale().GetLanguageTag().getLanguageType();
...@@ -302,6 +325,8 @@ void SvtCTLOptions_Impl::Load() ...@@ -302,6 +325,8 @@ void SvtCTLOptions_Impl::Load()
MsLangId::needsSequenceChecking( eSystemLanguage)); MsLangId::needsSequenceChecking( eSystemLanguage));
Commit(); Commit();
} }
}
m_bIsLoaded = sal_True; m_bIsLoaded = sal_True;
} }
//------------------------------------------------------------------------------ //------------------------------------------------------------------------------
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment