forked from qt-creator/qt-creator
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:
@@ -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
|
||||||
|
@@ -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()) {
|
||||||
|
@@ -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;
|
||||||
};
|
};
|
||||||
|
Reference in New Issue
Block a user