forked from qt-creator/qt-creator
ProjectExplorer: Introduce a FolderNode::findProjectNode()
And use it. Change-Id: Iaf13c4661e397bdb4d756c352683b696e337c8af Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
This commit is contained in:
@@ -885,14 +885,12 @@ bool Project::hasParsingData() const
|
|||||||
|
|
||||||
const ProjectNode *Project::findNodeForBuildKey(const QString &buildKey) const
|
const ProjectNode *Project::findNodeForBuildKey(const QString &buildKey) const
|
||||||
{
|
{
|
||||||
const ProjectNode *result = nullptr;
|
if (!d->m_rootProjectNode)
|
||||||
if (d->m_rootProjectNode) {
|
return nullptr;
|
||||||
d->m_rootProjectNode->forEachProjectNode([&result, buildKey](const ProjectNode *node) {
|
|
||||||
if (node->buildKey() == buildKey)
|
return d->m_rootProjectNode->findProjectNode([buildKey](const ProjectNode *node) {
|
||||||
result = node;
|
return node->buildKey() == buildKey;
|
||||||
});
|
});
|
||||||
}
|
|
||||||
return result;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
ProjectImporter *Project::projectImporter() const
|
ProjectImporter *Project::projectImporter() const
|
||||||
|
|||||||
@@ -525,6 +525,22 @@ void FolderNode::forEachProjectNode(const std::function<void(const ProjectNode *
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const ProjectNode *FolderNode::findProjectNode(const std::function<bool(const ProjectNode *)> &predicate) const
|
||||||
|
{
|
||||||
|
if (const ProjectNode *projectNode = asProjectNode()) {
|
||||||
|
if (predicate(projectNode))
|
||||||
|
return projectNode;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (const std::unique_ptr<Node> &n : m_nodes) {
|
||||||
|
if (FolderNode *fn = n->asFolderNode()) {
|
||||||
|
if (const ProjectNode *pn = fn->findProjectNode(predicate))
|
||||||
|
return pn;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
const QList<Node *> FolderNode::nodes() const
|
const QList<Node *> FolderNode::nodes() const
|
||||||
{
|
{
|
||||||
return Utils::toRawPointer<QList>(m_nodes);
|
return Utils::toRawPointer<QList>(m_nodes);
|
||||||
|
|||||||
@@ -219,6 +219,7 @@ public:
|
|||||||
const std::function<bool(const FolderNode *)> &folderFilterTask = {}) const;
|
const std::function<bool(const FolderNode *)> &folderFilterTask = {}) const;
|
||||||
void forEachGenericNode(const std::function<void(Node *)> &genericTask) const;
|
void forEachGenericNode(const std::function<void(Node *)> &genericTask) const;
|
||||||
void forEachProjectNode(const std::function<void(const ProjectNode *)> &genericTask) const;
|
void forEachProjectNode(const std::function<void(const ProjectNode *)> &genericTask) const;
|
||||||
|
const ProjectNode *findProjectNode(const std::function<bool(const ProjectNode *)> &predicate) const;
|
||||||
const QList<Node *> nodes() const;
|
const QList<Node *> nodes() const;
|
||||||
QList<FileNode *> fileNodes() const;
|
QList<FileNode *> fileNodes() const;
|
||||||
FileNode *fileNode(const Utils::FileName &file) const;
|
FileNode *fileNode(const Utils::FileName &file) const;
|
||||||
|
|||||||
Reference in New Issue
Block a user