From 76251c27dac7d6a6fd8c4f28e06908b9b8946c1c Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Thu, 12 Dec 2013 06:44:09 +0100 Subject: 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 --- qt-ui/preferences.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'qt-ui/preferences.cpp') 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.")); } -- cgit v1.2.3-70-g09d2