diff --git a/src/plugins/nim/project/nimblebuildsystem.cpp b/src/plugins/nim/project/nimblebuildsystem.cpp index a3adcea07e4..a61c2eea32d 100644 --- a/src/plugins/nim/project/nimblebuildsystem.cpp +++ b/src/plugins/nim/project/nimblebuildsystem.cpp @@ -130,6 +130,10 @@ NimbleBuildSystem::NimbleBuildSystem(Target *target) requestDelayedParse(); }); + connect(target->project(), &ProjectExplorer::Project::settingsLoaded, + this, &NimbleBuildSystem::loadSettings); + connect(target->project(), &ProjectExplorer::Project::aboutToSaveSettings, + this, &NimbleBuildSystem::saveSettings); requestDelayedParse(); } @@ -190,6 +194,7 @@ NimbleMetadata NimbleBuildSystem::metadata() const void NimbleBuildSystem::saveSettings() { + // only handles nimble specific settings - NimProjectScanner handles general settings QStringList result; for (const NimbleTask &task : m_tasks) { result.push_back(task.name); @@ -201,17 +206,15 @@ void NimbleBuildSystem::saveSettings() void NimbleBuildSystem::loadSettings() { + // only handles nimble specific settings - NimProjectScanner handles general settings QStringList list = project()->namedSettings(C_NIMBLEPROJECT_TASKS).toStringList(); m_tasks.clear(); if (list.size() % 2 != 0) return; - std::vector result; for (int i = 0; i < list.size(); i += 2) - result.push_back({list[i], list[i + 1]}); - - requestParse(); + m_tasks.push_back({list[i], list[i + 1]}); } bool NimbleBuildSystem::supportsAction(Node *context, ProjectAction action, const Node *node) const diff --git a/src/plugins/nim/project/nimbuildsystem.cpp b/src/plugins/nim/project/nimbuildsystem.cpp index b1cf0f10b6c..fed28f7da9e 100644 --- a/src/plugins/nim/project/nimbuildsystem.cpp +++ b/src/plugins/nim/project/nimbuildsystem.cpp @@ -213,22 +213,6 @@ FilePath nimblePathFromKit(Kit *kit) return nimbleFromKit.exists() ? nimbleFromKit.canonicalPath() : FilePath::fromString(nimbleFromPath); } -void NimBuildSystem::loadSettings() -{ - QVariantMap settings = project()->namedSettings(SETTINGS_KEY).toMap(); - if (settings.contains(EXCLUDED_FILES_KEY)) - m_projectScanner.setExcludedFiles(settings.value(EXCLUDED_FILES_KEY, m_projectScanner.excludedFiles()).toStringList()); - - requestParse(); -} - -void NimBuildSystem::saveSettings() -{ - QVariantMap settings; - settings.insert(EXCLUDED_FILES_KEY, m_projectScanner.excludedFiles()); - project()->setNamedSettings(SETTINGS_KEY, settings); -} - bool NimBuildSystem::supportsAction(Node *context, ProjectAction action, const Node *node) const { if (node->asFileNode()) { diff --git a/src/plugins/nim/project/nimbuildsystem.h b/src/plugins/nim/project/nimbuildsystem.h index 96c125b72b9..02a868edac2 100644 --- a/src/plugins/nim/project/nimbuildsystem.h +++ b/src/plugins/nim/project/nimbuildsystem.h @@ -92,9 +92,6 @@ public: void triggerParsing() override; protected: - void loadSettings(); - void saveSettings(); - ParseGuard m_guard; NimProjectScanner m_projectScanner; };