[locale] Set *locale* GS key when needed
The code path for setting the locale / language automatically emits currentLanguageStatusChanged(), but the code that updates GS connects to currentLanguageCodeChaged(). This was altered in the 3.2.28 release cycle. Since then, automcatic locale selection wasn't setting *locale* in GS, so that a click-through kind of locale selection would not set it; then the packages module has no *locale* setting for localization packages. The combination of status and code signals (machine- and human- readable) is ok. Introduce a setter to the language that does the necessary signalling, so that setting the language automatically also DTRT. FIXES #1671
This commit is contained in:
parent
a6406ac41b
commit
ea61ac4386
@ -259,8 +259,7 @@ Config::setCurrentLocation( const CalamaresUtils::Locale::TimeZoneData* location
|
|||||||
auto newLocale = automaticLocaleConfiguration();
|
auto newLocale = automaticLocaleConfiguration();
|
||||||
if ( !m_selectedLocaleConfiguration.explicit_lang )
|
if ( !m_selectedLocaleConfiguration.explicit_lang )
|
||||||
{
|
{
|
||||||
m_selectedLocaleConfiguration.setLanguage( newLocale.language() );
|
setLanguage( newLocale.language() );
|
||||||
emit currentLanguageStatusChanged( currentLanguageStatus() );
|
|
||||||
}
|
}
|
||||||
if ( !m_selectedLocaleConfiguration.explicit_lc )
|
if ( !m_selectedLocaleConfiguration.explicit_lc )
|
||||||
{
|
{
|
||||||
@ -302,11 +301,20 @@ Config::localeConfiguration() const
|
|||||||
void
|
void
|
||||||
Config::setLanguageExplicitly( const QString& language )
|
Config::setLanguageExplicitly( const QString& language )
|
||||||
{
|
{
|
||||||
m_selectedLocaleConfiguration.setLanguage( language );
|
|
||||||
m_selectedLocaleConfiguration.explicit_lang = true;
|
m_selectedLocaleConfiguration.explicit_lang = true;
|
||||||
|
setLanguage( language );
|
||||||
|
}
|
||||||
|
|
||||||
|
void
|
||||||
|
Config::setLanguage( const QString& language )
|
||||||
|
{
|
||||||
|
if ( language != m_selectedLocaleConfiguration.language() )
|
||||||
|
{
|
||||||
|
m_selectedLocaleConfiguration.setLanguage( language );
|
||||||
|
|
||||||
emit currentLanguageStatusChanged( currentLanguageStatus() );
|
emit currentLanguageStatusChanged( currentLanguageStatus() );
|
||||||
emit currentLanguageCodeChanged( currentLanguageCode() );
|
emit currentLanguageCodeChanged( currentLanguageCode() );
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
@ -95,6 +95,8 @@ private:
|
|||||||
}
|
}
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
|
/// Set the language, but do not mark it as user-choice
|
||||||
|
void setLanguage( const QString& language );
|
||||||
/// Set a language by user-choice, overriding future location changes
|
/// Set a language by user-choice, overriding future location changes
|
||||||
void setLanguageExplicitly( const QString& language );
|
void setLanguageExplicitly( const QString& language );
|
||||||
/// Set LC (formats) by user-choice, overriding future location changes
|
/// Set LC (formats) by user-choice, overriding future location changes
|
||||||
|
Loading…
Reference in New Issue
Block a user