From 41f6bedce319233465704e523a7e476e4ce2d1ab Mon Sep 17 00:00:00 2001 From: Filippo Cucchetto Date: Sat, 3 Dec 2016 12:12:33 +0100 Subject: [PATCH] Nim: Schedule a project rescan when new files are added or removed Change-Id: I2b5a769e0d5e77ce2dd72e0637c0cbcd8f14875e Reviewed-by: Tobias Hunger --- src/plugins/nim/project/nimproject.cpp | 2 +- src/plugins/nim/project/nimproject.h | 2 +- src/plugins/nim/project/nimprojectnode.cpp | 8 +++++++- src/plugins/nim/project/nimprojectnode.h | 5 ++++- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/plugins/nim/project/nimproject.cpp b/src/plugins/nim/project/nimproject.cpp index f8cd313f3ae..6edb1bff5a7 100644 --- a/src/plugins/nim/project/nimproject.cpp +++ b/src/plugins/nim/project/nimproject.cpp @@ -59,7 +59,7 @@ NimProject::NimProject(NimProjectManager *projectManager, const QString &fileNam document()->setFilePath(FileName::fromString(fileName)); QFileInfo fi = QFileInfo(fileName); QDir dir = fi.dir(); - setRootProjectNode(new NimProjectNode(FileName::fromString(dir.absolutePath()))); + setRootProjectNode(new NimProjectNode(*this, FileName::fromString(dir.absolutePath()))); rootProjectNode()->setDisplayName(dir.dirName()); m_projectScanTimer.setSingleShot(true); diff --git a/src/plugins/nim/project/nimproject.h b/src/plugins/nim/project/nimproject.h index 3a1382574dd..1b99ba7877a 100644 --- a/src/plugins/nim/project/nimproject.h +++ b/src/plugins/nim/project/nimproject.h @@ -52,9 +52,9 @@ public: bool needsConfiguration() const override; bool supportsKit(ProjectExplorer::Kit *k, QString *errorMessage) const override; Utils::FileNameList nimFiles() const; + void scheduleProjectScan(); private: - void scheduleProjectScan(); void collectProjectFiles(); void updateProject(); diff --git a/src/plugins/nim/project/nimprojectnode.cpp b/src/plugins/nim/project/nimprojectnode.cpp index 88a53227f43..f35e6c17fb6 100644 --- a/src/plugins/nim/project/nimprojectnode.cpp +++ b/src/plugins/nim/project/nimprojectnode.cpp @@ -31,8 +31,10 @@ using namespace Utils; namespace Nim { -NimProjectNode::NimProjectNode(const FileName &projectFilePath) +NimProjectNode::NimProjectNode(NimProject &project, + const FileName &projectFilePath) : ProjectNode(projectFilePath) + , m_project(project) {} QList NimProjectNode::supportedActions(Node *node) const @@ -71,21 +73,25 @@ bool NimProjectNode::removeSubProjects(const QStringList &) bool NimProjectNode::addFiles(const QStringList &, QStringList *) { + m_project.scheduleProjectScan(); return true; } bool NimProjectNode::removeFiles(const QStringList &, QStringList *) { + m_project.scheduleProjectScan(); return true; } bool NimProjectNode::deleteFiles(const QStringList &) { + m_project.scheduleProjectScan(); return true; } bool NimProjectNode::renameFile(const QString &, const QString &) { + m_project.scheduleProjectScan(); return true; } diff --git a/src/plugins/nim/project/nimprojectnode.h b/src/plugins/nim/project/nimprojectnode.h index c54508e5d6a..358edeff309 100644 --- a/src/plugins/nim/project/nimprojectnode.h +++ b/src/plugins/nim/project/nimprojectnode.h @@ -36,7 +36,7 @@ class NimProject; class NimProjectNode : public ProjectExplorer::ProjectNode { public: - NimProjectNode(const Utils::FileName &projectFilePath); + NimProjectNode(NimProject &project, const Utils::FileName &projectFilePath); QList supportedActions(Node *node) const override; bool canAddSubProject(const QString &) const override; @@ -46,6 +46,9 @@ public: bool removeFiles(const QStringList &, QStringList *) override; bool deleteFiles(const QStringList &) override; bool renameFile(const QString &, const QString &) override; + +private: + NimProject &m_project; }; }