From d535a6328c454d855c72f1eae4a2fa355895ee44 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sat, 18 Jun 2016 08:49:24 -0700 Subject: [PATCH] Fix settings prompt on clean install --- src/QGCApplication.cc | 29 +++++++++++++++-------------- src/QGCApplication.h | 13 ++++++------- 2 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index db0acc399..9059df6e9 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -181,6 +181,7 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting) , _styleIsDark(true) #endif , _fakeMobile(false) + , _settingsUpgraded(false) #ifdef QT_DEBUG , _testHighDPI(false) #endif @@ -307,6 +308,19 @@ QGCApplication::QGCApplication(int &argc, char* argv[], bool unitTesting) QDir paramDir(ParameterLoader::parameterCacheDir()); paramDir.removeRecursively(); paramDir.mkpath(paramDir.absolutePath()); + } else { + // Determine if upgrade message for settings version bump is required. Check must happen before toolbox is started since + // that will write some settings. + if (settings.contains(_settingsVersionKey)) { + if (settings.value(_settingsVersionKey).toInt() != QGC_SETTINGS_VERSION) { + _settingsUpgraded = true; + } + } else if (settings.allKeys().count()) { + // Settings version key is missing and there are settings. This is an upgrade scenario. + _settingsUpgraded = true; + } else { + settings.setValue(_settingsVersionKey, QGC_SETTINGS_VERSION); + } } // Set up our logging filters @@ -429,20 +443,7 @@ bool QGCApplication::_initForNormalAppBoot(void) // Load known link configurations toolbox()->linkManager()->loadLinkConfigurationList(); - // Show user an upgrade message if the settings version has been bumped up - bool settingsUpgraded = false; - if (settings.contains(_settingsVersionKey)) { - if (settings.value(_settingsVersionKey).toInt() != QGC_SETTINGS_VERSION) { - settingsUpgraded = true; - } - } else if (settings.allKeys().count()) { - // Settings version key is missing and there are settings. This is an upgrade scenario. - settingsUpgraded = true; - } else { - settings.setValue(_settingsVersionKey, QGC_SETTINGS_VERSION); - } - - if (settingsUpgraded) { + if (_settingsUpgraded) { settings.clear(); settings.setValue(_settingsVersionKey, QGC_SETTINGS_VERSION); showMessage("The format for QGroundControl saved settings has been modified. " diff --git a/src/QGCApplication.h b/src/QGCApplication.h index 373317b6b..52e970101 100644 --- a/src/QGCApplication.h +++ b/src/QGCApplication.h @@ -183,13 +183,12 @@ private: static const char* _darkStyleFile; static const char* _lightStyleFile; - bool _styleIsDark; ///< true: dark style, false: light style - - static const int _missingParamsDelayedDisplayTimerTimeout = 1000; ///< Timeout to wait for next missing fact to come in before display - QTimer _missingParamsDelayedDisplayTimer; ///< Timer use to delay missing fact display - QStringList _missingParams; ///< List of missing facts to be displayed - - bool _fakeMobile; ///< true: Fake ui into displaying mobile interface + bool _styleIsDark; ///< true: dark style, false: light style + static const int _missingParamsDelayedDisplayTimerTimeout = 1000; ///< Timeout to wait for next missing fact to come in before display + QTimer _missingParamsDelayedDisplayTimer; ///< Timer use to delay missing fact display + QStringList _missingParams; ///< List of missing facts to be displayed + bool _fakeMobile; ///< true: Fake ui into displaying mobile interface + bool _settingsUpgraded; ///< true: Settings format has been upgrade to new version #ifdef QT_DEBUG bool _testHighDPI; ///< true: double fonts sizes for simulating high dpi devices -- GitLab