ProjectExplorer: Add a convenience function to walk project nodes

... recursively.

Change-Id: I44a7e29867c26e2586d04fd8d6c16990ce047c6d
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
hjk
2018-11-27 18:14:56 +01:00
parent 95cba448a1
commit ee564b2249
2 changed files with 12 additions and 0 deletions

View File

@@ -514,6 +514,17 @@ void FolderNode::forEachGenericNode(const std::function<void(Node *)> &genericTa
}
}
void FolderNode::forEachProjectNode(const std::function<void(const ProjectNode *)> &task) const
{
if (const ProjectNode *projectNode = asProjectNode())
task(projectNode);
for (const std::unique_ptr<Node> &n : m_nodes) {
if (FolderNode *fn = n->asFolderNode())
fn->forEachProjectNode(task);
}
}
const QList<Node *> FolderNode::nodes() const
{
return Utils::toRawPointer<QList>(m_nodes);

View File

@@ -216,6 +216,7 @@ public:
const std::function<void(FolderNode *)> &folderTask = {},
const std::function<bool(const FolderNode *)> &folderFilterTask = {}) const;
void forEachGenericNode(const std::function<void(Node *)> &genericTask) const;
void forEachProjectNode(const std::function<void(const ProjectNode *)> &genericTask) const;
const QList<Node *> nodes() const;
QList<FileNode *> fileNodes() const;
FileNode *fileNode(const Utils::FileName &file) const;