Warning, file /plasma/plasma-workspace/kcms/region_language/regionandlangsettings.cpp was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* 0002 regionandlangsettings.cpp 0003 SPDX-FileCopyrightText: 2022 Han Young <hanyoung@protonmail.com> 0004 0005 SPDX-License-Identifier: GPL-2.0-or-later 0006 */ 0007 0008 #include "regionandlangsettings.h" 0009 0010 #include "kcm_regionandlang_debug.h" 0011 0012 using KCM_RegionAndLang::SettingType; 0013 0014 bool RegionAndLangSettings::isDefaultSetting(SettingType setting) const 0015 { 0016 switch (setting) { 0017 case SettingType::Lang: 0018 return lang() == defaultLangValue(); 0019 case SettingType::Language: 0020 return language() == defaultLanguageValue(); 0021 case SettingType::Numeric: 0022 return numeric() == defaultNumericValue(); 0023 case SettingType::Time: 0024 return time() == defaultTimeValue(); 0025 case SettingType::Currency: 0026 return monetary() == defaultMonetaryValue(); 0027 case SettingType::Measurement: 0028 return measurement() == defaultMeasurementValue(); 0029 case SettingType::PaperSize: 0030 return paperSize() == defaultPaperSizeValue(); 0031 case SettingType::Address: 0032 return address() == defaultAddressValue(); 0033 case SettingType::NameStyle: 0034 return nameStyle() == defaultNameStyleValue(); 0035 case SettingType::PhoneNumbers: 0036 return phoneNumbers() == defaultPhoneNumbersValue(); 0037 } 0038 0039 return false; 0040 } 0041 0042 QString RegionAndLangSettings::langWithFallback() const 0043 { 0044 QString lang = RegionAndLangSettings::lang(); 0045 if (!(isDefaultSetting(SettingType::Lang) && lang.isEmpty())) { 0046 if (QString envLang = qEnvironmentVariable("LANG"); !envLang.isEmpty()) { 0047 envLang.replace(QStringLiteral("utf8"), QStringLiteral("UTF-8")); 0048 return envLang; 0049 } 0050 return QLocale::system().name(); 0051 } 0052 return lang; 0053 } 0054 0055 QString RegionAndLangSettings::LC_LocaleWithLang(SettingType setting) const 0056 { 0057 if (isDefaultSetting(setting)) { 0058 return langWithFallback(); 0059 } 0060 0061 switch (setting) { 0062 case SettingType::Numeric: 0063 return numeric(); 0064 case SettingType::Time: 0065 return time(); 0066 case SettingType::Currency: 0067 return monetary(); 0068 case SettingType::Measurement: 0069 return measurement(); 0070 case SettingType::PaperSize: 0071 return paperSize(); 0072 case SettingType::Address: 0073 return address(); 0074 case SettingType::NameStyle: 0075 return nameStyle(); 0076 case SettingType::PhoneNumbers: 0077 return phoneNumbers(); 0078 case SettingType::Lang: 0079 case SettingType::Language: 0080 Q_UNREACHABLE(); 0081 } 0082 0083 return langWithFallback(); 0084 }