diff options
author | Dirk Hohndel <dirk@hohndel.org> | 2013-12-12 06:44:09 +0100 |
---|---|---|
committer | Dirk Hohndel <dirk@hohndel.org> | 2013-12-12 06:44:09 +0100 |
commit | 76251c27dac7d6a6fd8c4f28e06908b9b8946c1c (patch) | |
tree | 7d96d8b1ac8e91712d8eb1b7f62570beeaf71a77 /qt-ui/preferences.cpp | |
parent | 9f8db51c038252733c883d3857e8e6b97a8edafd (diff) | |
download | subsurface-76251c27dac7d6a6fd8c4f28e06908b9b8946c1c.tar.gz |
Fix the logic when to display the "language changed" warning
If the user had never set up the language selection they could end up
getting the "language changed, restart required" warning even if they
didn't touch the language setting at all.
This fixes that issue by assuming that UseSystemLanguage is true if the
setting is undefined and only comparing the selected language if that
selection actually matters (i.e., UseSystemLanguage is false).
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'qt-ui/preferences.cpp')
-rw-r--r-- | qt-ui/preferences.cpp | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/qt-ui/preferences.cpp b/qt-ui/preferences.cpp index 7f0a94c4c..4e71a0ef3 100644 --- a/qt-ui/preferences.cpp +++ b/qt-ui/preferences.cpp @@ -116,7 +116,7 @@ void PreferencesDialog::setUiFromPrefs() QSettings s; s.beginGroup("Language"); - ui.languageSystemDefault->setChecked(s.value("UseSystemLanguage").toBool()); + ui.languageSystemDefault->setChecked(s.value("UseSystemLanguage", true).toBool()); QAbstractItemModel *m = ui.languageView->model(); QModelIndexList languages = m->match( m->index(0,0), Qt::UserRole, s.value("UiLanguage").toString()); if (languages.count()) @@ -190,8 +190,9 @@ void PreferencesDialog::syncSettings() QLocale loc; s.beginGroup("Language"); - if (s.value("UiLanguage").toString() != ui.languageView->currentIndex().data(Qt::UserRole) || - s.value("UseSystemLanguage").toBool() != ui.languageSystemDefault->isChecked()) { + bool useSystemLang = s.value("UseSystemLanguage", true).toBool(); + if (useSystemLang != ui.languageSystemDefault->isChecked() || + (!useSystemLang && s.value("UiLanguage").toString() != ui.languageView->currentIndex().data(Qt::UserRole))) { QMessageBox::warning(mainWindow(), tr("Restart required"), tr("To correctly load a new language you must restart Subsurface.")); } |