diff options
Diffstat (limited to 'x11/plasma5-plasma-workspace/files/patch-kcmregionandlanguage')
-rw-r--r-- | x11/plasma5-plasma-workspace/files/patch-kcmregionandlanguage | 312 |
1 files changed, 0 insertions, 312 deletions
diff --git a/x11/plasma5-plasma-workspace/files/patch-kcmregionandlanguage b/x11/plasma5-plasma-workspace/files/patch-kcmregionandlanguage deleted file mode 100644 index 6405463e5a20..000000000000 --- a/x11/plasma5-plasma-workspace/files/patch-kcmregionandlanguage +++ /dev/null @@ -1,312 +0,0 @@ -https://invent.kde.org/plasma/plasma-workspace/-/merge_requests/3010 - -From 27e0302155b788fe4e7440bf0db09de9ae596ee5 Mon Sep 17 00:00:00 2001 -From: Joshua Goins <josh@redstrate.com> -Date: Mon, 22 May 2023 16:13:49 -0400 -Subject: [PATCH 1/6] kcms/region_language: Read the LANGUAGE environment - variable for the default language value - -This has the same meaning in the kcfg, so we might as well read it -from the environment variable like we're already doing with LANG. - -(cherry picked from commit 2e2f6b1469898383b6840d2c8e4c3733b13156d4) ---- - kcms/region_language/regionandlangsettingsbase.kcfg | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/kcms/region_language/regionandlangsettingsbase.kcfg ./kcms/region_language/regionandlangsettingsbase.kcfg -index 3a4867ba49..17ac78291a 100644 ---- a/kcms/region_language/regionandlangsettingsbase.kcfg -+++ ./kcms/region_language/regionandlangsettingsbase.kcfg -@@ -44,6 +44,10 @@ - </group> - <group name="Translations"> - <entry key="LANGUAGE" name="language" type="String"> -+ <code> -+ QString language = QString::fromLocal8Bit(qgetenv("LANGUAGE")); -+ </code> -+ <default code="true">language</default> - </entry> - </group> - </kcfg> --- -GitLab - - -From 95920c1e67c660eb8db4efa059c8b062ad297b8b Mon Sep 17 00:00:00 2001 -From: Joshua Goins <josh@redstrate.com> -Date: Mon, 22 May 2023 16:18:11 -0400 -Subject: [PATCH 2/6] kcms/region_language: Simplify the language settings read - -Now that we load both LANG and LANGUAGE from the environment variable, -there's no reason to handle it on the C++ side because the branch should -never get hit. Still detect whether it's an implicit language - though. - -(cherry picked from commit e0171490533e95618f5fd5455041aa78af4af626) ---- - kcms/region_language/languagelistmodel.cpp | 33 ++++------------------ - kcms/region_language/languagelistmodel.h | 2 -- - 2 files changed, 6 insertions(+), 29 deletions(-) - -diff --git a/kcms/region_language/languagelistmodel.cpp ./kcms/region_language/languagelistmodel.cpp -index a9e3ca00a1..1f11522d0a 100644 ---- a/kcms/region_language/languagelistmodel.cpp -+++ ./kcms/region_language/languagelistmodel.cpp -@@ -205,30 +205,19 @@ void SelectedLanguageModel::setRegionAndLangSettings(RegionAndLangSettings *sett - m_kcm = kcm; - - beginResetModel(); -- if (m_settings->language().isEmpty() && m_settings->isDefaultSetting(SettingType::Lang)) { -+ if (m_settings->language().isEmpty()) { - // no language but have lang - m_selectedLanguages = {m_settings->lang()}; -- m_selectedLanguages.first().remove(QStringLiteral(".UTF-8")); -- } else if (!m_settings->language().isEmpty()) { -+ } else { - // have language, ignore lang - m_selectedLanguages = m_settings->language().split(QLatin1Char(':')); -- } else { -- // have nothing, figure out from env -- QString lang = envLang(); -- QString language = envLanguage(); -- if (!language.isEmpty()) { -- QStringList langlist = language.split(QLatin1Char(':')); -- for (QString &lang : langlist) { -- lang = lang.split(QLatin1Char('.'))[0]; -- } -- m_selectedLanguages = langlist; -- } else if (!lang.isEmpty()) { -- lang.remove(QStringLiteral(".UTF-8")); -- m_selectedLanguages = {lang}; -- } -+ } -+ -+ if (m_settings->isDefaultSetting(SettingType::Lang)) { - m_hasImplicitLang = true; - Q_EMIT hasImplicitLangChanged(); - } -+ - endResetModel(); - - // check for invalid lang -@@ -404,13 +393,3 @@ const QString &SelectedLanguageModel::unsupportedLanguage() const - { - return m_unsupportedLanguage; - } -- --QString SelectedLanguageModel::envLang() const --{ -- return qEnvironmentVariable("LANG"); --} -- --QString SelectedLanguageModel::envLanguage() const --{ -- return qEnvironmentVariable("LANGUAGE"); --} -diff --git a/kcms/region_language/languagelistmodel.h ./kcms/region_language/languagelistmodel.h -index 6c0866a55e..b3c6020dd4 100644 ---- a/kcms/region_language/languagelistmodel.h -+++ ./kcms/region_language/languagelistmodel.h -@@ -97,8 +97,6 @@ Q_SIGNALS: - void unsupportedLanguageChanged(); - - private: -- QString envLang() const; -- QString envLanguage() const; - void saveLanguages(); - RegionAndLangSettings *m_settings = nullptr; - QList<QString> m_selectedLanguages; --- -GitLab - - -From af41a355d76d2a801796958219be79a004e38e48 Mon Sep 17 00:00:00 2001 -From: Joshua Goins <josh@redstrate.com> -Date: Fri, 26 May 2023 13:36:43 -0400 -Subject: [PATCH 3/6] kcms/region_language: Check if the language setting is - default as well - -(cherry picked from commit 514cefdbb6adaf9b8cab94963b37b27837d0a2c8) ---- - kcms/region_language/languagelistmodel.cpp | 2 +- - kcms/region_language/localelistmodel.cpp | 1 + - kcms/region_language/regionandlangsettings.cpp | 3 +++ - kcms/region_language/settingtype.h | 2 +- - 4 files changed, 6 insertions(+), 2 deletions(-) - -diff --git a/kcms/region_language/languagelistmodel.cpp ./kcms/region_language/languagelistmodel.cpp -index 1f11522d0a..434ec98869 100644 ---- a/kcms/region_language/languagelistmodel.cpp -+++ ./kcms/region_language/languagelistmodel.cpp -@@ -213,7 +213,7 @@ void SelectedLanguageModel::setRegionAndLangSettings(RegionAndLangSettings *sett - m_selectedLanguages = m_settings->language().split(QLatin1Char(':')); - } - -- if (m_settings->isDefaultSetting(SettingType::Lang)) { -+ if (m_settings->isDefaultSetting(SettingType::Lang) && m_settings->isDefaultSetting(SettingType::Language)) { - m_hasImplicitLang = true; - Q_EMIT hasImplicitLangChanged(); - } -diff --git a/kcms/region_language/localelistmodel.cpp ./kcms/region_language/localelistmodel.cpp -index f3ea2af32c..fedfafb6cd 100644 ---- a/kcms/region_language/localelistmodel.cpp -+++ ./kcms/region_language/localelistmodel.cpp -@@ -92,6 +92,7 @@ QVariant LocaleListModel::data(const QModelIndex &index, int role) const - case Example: { - switch (m_configType) { - case Lang: -+ case Language: - return {}; - case Numeric: - return Utility::numericExample(data.locale); -diff --git a/kcms/region_language/regionandlangsettings.cpp ./kcms/region_language/regionandlangsettings.cpp -index 9146e1d1c9..53343b45c2 100644 ---- a/kcms/region_language/regionandlangsettings.cpp -+++ ./kcms/region_language/regionandlangsettings.cpp -@@ -16,6 +16,8 @@ bool RegionAndLangSettings::isDefaultSetting(SettingType setting) const - switch (setting) { - case SettingType::Lang: - return lang() == defaultLangValue(); -+ case SettingType::Language: -+ return language() == defaultLanguageValue(); - case SettingType::Numeric: - return numeric() == defaultNumericValue(); - case SettingType::Time: -@@ -73,6 +75,7 @@ QString RegionAndLangSettings::LC_LocaleWithLang(SettingType setting) const - case SettingType::PhoneNumbers: - return phoneNumbers(); - case SettingType::Lang: -+ case SettingType::Language: - Q_UNREACHABLE(); - } - -diff --git a/kcms/region_language/settingtype.h ./kcms/region_language/settingtype.h -index 07ce4cffc2..4865f341c6 100644 ---- a/kcms/region_language/settingtype.h -+++ ./kcms/region_language/settingtype.h -@@ -12,6 +12,6 @@ - namespace KCM_RegionAndLang - { - Q_NAMESPACE_EXPORT() --enum SettingType { Lang, Numeric, Time, Currency, Measurement, PaperSize, Address, NameStyle, PhoneNumbers }; -+enum SettingType { Lang, Numeric, Time, Currency, Measurement, PaperSize, Address, NameStyle, PhoneNumbers, Language }; - Q_ENUM_NS(SettingType) - } // namespace KCM_RegionAndLang --- -GitLab - - -From c51b59a77e4c36161cf2d74e5ce26af83b44e335 Mon Sep 17 00:00:00 2001 -From: Joshua Goins <josh@redstrate.com> -Date: Fri, 26 May 2023 14:17:30 -0400 -Subject: [PATCH 4/6] kcms/region_language: Chop off the UTF-8 codepoint again - -(cherry picked from commit 54af86fd470d1f37bea00867959f8f8f0b7cdcf7) ---- - kcms/region_language/languagelistmodel.cpp | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/kcms/region_language/languagelistmodel.cpp ./kcms/region_language/languagelistmodel.cpp -index 434ec98869..6798286f2d 100644 ---- a/kcms/region_language/languagelistmodel.cpp -+++ ./kcms/region_language/languagelistmodel.cpp -@@ -213,6 +213,11 @@ void SelectedLanguageModel::setRegionAndLangSettings(RegionAndLangSettings *sett - m_selectedLanguages = m_settings->language().split(QLatin1Char(':')); - } - -+ // Chop off the UTF-8 codepoint -+ for (auto &language : m_selectedLanguages) { -+ language.remove(QStringLiteral(".UTF-8")); -+ } -+ - if (m_settings->isDefaultSetting(SettingType::Lang) && m_settings->isDefaultSetting(SettingType::Language)) { - m_hasImplicitLang = true; - Q_EMIT hasImplicitLangChanged(); --- -GitLab - - -From a5915bc59975080acb5e6b867ebb061a0b9adf3b Mon Sep 17 00:00:00 2001 -From: Joshua Goins <josh@redstrate.com> -Date: Fri, 26 May 2023 14:37:11 -0400 -Subject: [PATCH 5/6] kcms/region_language: Improve isSupportedLanguage - detection - -This prevents it considering languages with a territory attached as -non-supported (like fr_FR) and checks it without a territory as a -fallback. - -(cherry picked from commit 8d1f7d385cda8afcfc24ae61666f5f7ba1c869c7) ---- - kcms/region_language/languagelistmodel.cpp | 14 +++++++++++++- - 1 file changed, 13 insertions(+), 1 deletion(-) - -diff --git a/kcms/region_language/languagelistmodel.cpp ./kcms/region_language/languagelistmodel.cpp -index 6798286f2d..d9846226da 100644 ---- a/kcms/region_language/languagelistmodel.cpp -+++ ./kcms/region_language/languagelistmodel.cpp -@@ -95,7 +95,19 @@ QString LanguageListModel::languageCodeToName(const QString &languageCode) - - bool LanguageListModel::isSupportedLanguage(const QString &language) const - { -- return m_availableLanguages.contains(language); -+ // If the available language list contains the full language string outright, e.g. en_US -+ if (m_availableLanguages.contains(language)) { -+ return true; -+ } -+ -+ // If the language string passed has a territory attached (like fr_FR) then chop it off, -+ // and try searching for just the language. -+ if (language.contains('_')) { -+ const QString languageName{language.left(language.indexOf('_'))}; -+ return m_availableLanguages.contains(languageName); -+ } -+ -+ return false; - } - - int LanguageListModel::currentIndex() const --- -GitLab - - -From 0a00ee7639eb17a0159efba01de6e6cec34911f3 Mon Sep 17 00:00:00 2001 -From: Joshua Goins <josh@redstrate.com> -Date: Wed, 7 Jun 2023 20:42:33 -0400 -Subject: [PATCH 6/6] kcms/region_language: Read from $LANGUAGE in options - model - -(cherry picked from commit b5c675324c33c8a6f5e5817fc95217994f2188be) ---- - kcms/region_language/optionsmodel.cpp | 11 ++++++++++- - 1 file changed, 10 insertions(+), 1 deletion(-) - -diff --git a/kcms/region_language/optionsmodel.cpp ./kcms/region_language/optionsmodel.cpp -index 339577332a..0c3bec97ea 100644 ---- a/kcms/region_language/optionsmodel.cpp -+++ ./kcms/region_language/optionsmodel.cpp -@@ -112,10 +112,19 @@ QVariant OptionsModel::data(const QModelIndex &index, int role) const - if (m_settings->defaultLangValue().isEmpty() && m_settings->isDefaultSetting(SettingType::Lang)) { - // no Lang configured, no $LANG in env - return i18nc("@info:title, the current setting is system default", "System Default"); -- } else if (!m_settings->lang().isEmpty()) { -+ } else if (!m_settings->lang().isEmpty() && m_settings->lang() != m_settings->defaultLangValue()) { - // Lang configured and not empty - return getNativeName(m_settings->lang()); - } else { -+ // Lang configured but empty, try to read from $LANGUAGE first. -+ if (const QString languages = m_settings->defaultLanguageValue(); !languages.isEmpty()) { -+ // If the first language is invalid, just fall through to $LANG -+ const QStringList languageList = languages.split(QLatin1Char(':')); -+ if (const QString firstLanguage = getNativeName(languageList[0]); !firstLanguage.isEmpty()) { -+ return firstLanguage; -+ } -+ } -+ - // Lang configured but empty, try to read from $LANG, shouldn't happen on a valid config file - return getNativeName(m_settings->defaultLangValue()); - } --- -GitLab - |