diff --git a/src/modules/locale/Config.cpp b/src/modules/locale/Config.cpp index 1417e5b89..854d65eef 100644 --- a/src/modules/locale/Config.cpp +++ b/src/modules/locale/Config.cpp @@ -259,8 +259,7 @@ Config::setCurrentLocation( const CalamaresUtils::Locale::TimeZoneData* location auto newLocale = automaticLocaleConfiguration(); if ( !m_selectedLocaleConfiguration.explicit_lang ) { - m_selectedLocaleConfiguration.setLanguage( newLocale.language() ); - emit currentLanguageStatusChanged( currentLanguageStatus() ); + setLanguage( newLocale.language() ); } if ( !m_selectedLocaleConfiguration.explicit_lc ) { @@ -302,11 +301,20 @@ Config::localeConfiguration() const void Config::setLanguageExplicitly( const QString& language ) { - m_selectedLocaleConfiguration.setLanguage( language ); m_selectedLocaleConfiguration.explicit_lang = true; + setLanguage( language ); +} - emit currentLanguageStatusChanged( currentLanguageStatus() ); - emit currentLanguageCodeChanged( currentLanguageCode() ); +void +Config::setLanguage( const QString& language ) +{ + if ( language != m_selectedLocaleConfiguration.language() ) + { + m_selectedLocaleConfiguration.setLanguage( language ); + + emit currentLanguageStatusChanged( currentLanguageStatus() ); + emit currentLanguageCodeChanged( currentLanguageCode() ); + } } void diff --git a/src/modules/locale/Config.h b/src/modules/locale/Config.h index 4383f6bb0..bcdaf0bbf 100644 --- a/src/modules/locale/Config.h +++ b/src/modules/locale/Config.h @@ -95,6 +95,8 @@ private: } 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 void setLanguageExplicitly( const QString& language ); /// Set LC (formats) by user-choice, overriding future location changes