diff --git a/src/plugins/todo/settings.cpp b/src/plugins/todo/settings.cpp index bb6c9bdaffa..654165b6411 100644 --- a/src/plugins/todo/settings.cpp +++ b/src/plugins/todo/settings.cpp @@ -76,6 +76,8 @@ void Settings::load(QSettings *settings) scanningScope = static_cast(settings->value(QLatin1String(Constants::SCANNING_SCOPE), ScanningScopeCurrentFile).toInt()); + if (scanningScope >= ScanningScopeMax) + scanningScope = ScanningScopeCurrentFile; KeywordList newKeywords; const int keywordsSize = settings->beginReadArray(QLatin1String(Constants::KEYWORDS_LIST)); diff --git a/src/plugins/todo/settings.h b/src/plugins/todo/settings.h index 2966206633e..69ac06c0cca 100644 --- a/src/plugins/todo/settings.h +++ b/src/plugins/todo/settings.h @@ -36,13 +36,14 @@ namespace Internal { enum ScanningScope { ScanningScopeCurrentFile, ScanningScopeProject, - ScanningScopeSubProject + ScanningScopeSubProject, + ScanningScopeMax }; class Settings { public: KeywordList keywords; - ScanningScope scanningScope; + ScanningScope scanningScope = ScanningScopeCurrentFile; void save(QSettings *settings) const; void load(QSettings *settings); void setDefault(); diff --git a/src/plugins/todo/todoplugin.cpp b/src/plugins/todo/todoplugin.cpp index b55b2b26164..dc4992e3b9e 100644 --- a/src/plugins/todo/todoplugin.cpp +++ b/src/plugins/todo/todoplugin.cpp @@ -56,7 +56,6 @@ TodoPlugin::TodoPlugin() : TodoPlugin::~TodoPlugin() { - m_settings.save(Core::ICore::settings()); } bool TodoPlugin::initialize(const QStringList& args, QString *errMsg) @@ -80,6 +79,8 @@ bool TodoPlugin::initialize(const QStringList& args, QString *errMsg) return widget; }); ProjectExplorer::ProjectPanelFactory::registerFactory(panelFactory); + connect(Core::ICore::instance(), &Core::ICore::saveSettingsRequested, + this, [this] { m_settings.save(Core::ICore::settings()); }); return true; }