Nim: Fix handling of project settings

Removes unused duplicate of nim specific project settings
and uses the nimble specific project settings additionally
inside nimble projects.

Change-Id: Ibbda76ab41538a0ebdf0a395503c519fcac93460
Reviewed-by: Filippo Cucchetto <filippocucchetto@gmail.com>
Reviewed-by: hjk <hjk@qt.io>
This commit is contained in:
Christian Stenger
2020-09-09 16:14:16 +02:00
parent 495c08a3eb
commit 512c0381f3
3 changed files with 7 additions and 23 deletions

View File

@@ -130,6 +130,10 @@ NimbleBuildSystem::NimbleBuildSystem(Target *target)
requestDelayedParse(); requestDelayedParse();
}); });
connect(target->project(), &ProjectExplorer::Project::settingsLoaded,
this, &NimbleBuildSystem::loadSettings);
connect(target->project(), &ProjectExplorer::Project::aboutToSaveSettings,
this, &NimbleBuildSystem::saveSettings);
requestDelayedParse(); requestDelayedParse();
} }
@@ -190,6 +194,7 @@ NimbleMetadata NimbleBuildSystem::metadata() const
void NimbleBuildSystem::saveSettings() void NimbleBuildSystem::saveSettings()
{ {
// only handles nimble specific settings - NimProjectScanner handles general settings
QStringList result; QStringList result;
for (const NimbleTask &task : m_tasks) { for (const NimbleTask &task : m_tasks) {
result.push_back(task.name); result.push_back(task.name);
@@ -201,17 +206,15 @@ void NimbleBuildSystem::saveSettings()
void NimbleBuildSystem::loadSettings() void NimbleBuildSystem::loadSettings()
{ {
// only handles nimble specific settings - NimProjectScanner handles general settings
QStringList list = project()->namedSettings(C_NIMBLEPROJECT_TASKS).toStringList(); QStringList list = project()->namedSettings(C_NIMBLEPROJECT_TASKS).toStringList();
m_tasks.clear(); m_tasks.clear();
if (list.size() % 2 != 0) if (list.size() % 2 != 0)
return; return;
std::vector<NimbleTask> result;
for (int i = 0; i < list.size(); i += 2) for (int i = 0; i < list.size(); i += 2)
result.push_back({list[i], list[i + 1]}); m_tasks.push_back({list[i], list[i + 1]});
requestParse();
} }
bool NimbleBuildSystem::supportsAction(Node *context, ProjectAction action, const Node *node) const bool NimbleBuildSystem::supportsAction(Node *context, ProjectAction action, const Node *node) const

View File

@@ -213,22 +213,6 @@ FilePath nimblePathFromKit(Kit *kit)
return nimbleFromKit.exists() ? nimbleFromKit.canonicalPath() : FilePath::fromString(nimbleFromPath); 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 bool NimBuildSystem::supportsAction(Node *context, ProjectAction action, const Node *node) const
{ {
if (node->asFileNode()) { if (node->asFileNode()) {

View File

@@ -92,9 +92,6 @@ public:
void triggerParsing() override; void triggerParsing() override;
protected: protected:
void loadSettings();
void saveSettings();
ParseGuard m_guard; ParseGuard m_guard;
NimProjectScanner m_projectScanner; NimProjectScanner m_projectScanner;
}; };