diff options
author | Hannah von Reth <hannah.vonreth@owncloud.com> | 2022-03-11 18:45:00 +0300 |
---|---|---|
committer | Hannah von Reth <vonreth@kde.org> | 2022-03-14 15:13:55 +0300 |
commit | 85db375b912c0ecd01f5fe9d9656745689b9ce2a (patch) | |
tree | 069c257041a62c1de9474608081880ad67e70215 /src/gui/generalsettings.cpp | |
parent | 6463738ec1cf7bff31b93052f635cacd82e51199 (diff) |
Fix lang picker selection
Diffstat (limited to 'src/gui/generalsettings.cpp')
-rw-r--r-- | src/gui/generalsettings.cpp | 33 |
1 files changed, 4 insertions, 29 deletions
diff --git a/src/gui/generalsettings.cpp b/src/gui/generalsettings.cpp index bbef1157a..57712208b 100644 --- a/src/gui/generalsettings.cpp +++ b/src/gui/generalsettings.cpp @@ -157,26 +157,8 @@ void GeneralSettings::loadMiscSettings() loadLanguageNamesIntoDropdown(); const auto &locale = cfgFile.uiLanguage(); - - // index 0 means "use default", which we use unless the loop below sets another entry - _ui->languageDropdown->setCurrentIndex(0); - - if (!locale.isEmpty()) { - const auto &language = QLocale(locale).nativeLanguageName(); - - // a simple linear search to find the right entry and choose it is sufficient for this application - // we can skip the "use default" entry by starting at index 1 - // note that if the loop below never breaks, the setting falls back to "use default" - // this is desired behavior, as it handles cases when the selected language no longer exists - for (int i = 1; i < _ui->languageDropdown->count(); ++i) { - const auto text = _ui->languageDropdown->itemText(i); - - if (text == language) { - _ui->languageDropdown->setCurrentIndex(i); - break; - } - } - } + const auto index = _ui->languageDropdown->findData(locale); + _ui->languageDropdown->setCurrentIndex(index < 0 ? 0 : index); } void GeneralSettings::showEvent(QShowEvent *) @@ -275,16 +257,9 @@ void GeneralSettings::saveMiscSettings() _ui->newFolderLimitSpinBox->value()); cfgFile.setConfirmExternalStorage(_ui->newExternalStorage->isChecked()); - const auto pickedLanguageIndex = _ui->languageDropdown->currentIndex(); - // the first entry, identified by index 0, means "use default", which is a special case handled below - if (pickedLanguageIndex > 0) { - const QString &pickedLocale = _ui->languageDropdown->itemData(pickedLanguageIndex).toString(); - cfgFile.setUiLanguage(pickedLocale); - } else { - // empty string means "use system default" - cfgFile.setUiLanguage(""); - } + const QString pickedLocale = _ui->languageDropdown->currentData().toString(); + cfgFile.setUiLanguage(pickedLocale); } void GeneralSettings::slotToggleLaunchOnStartup(bool enable) |