aboutsummaryrefslogtreecommitdiffstats
path: root/src/plugins/projectexplorer/projecttree.cpp
diff options
context:
space:
mode:
authorEike Ziller <eike.ziller@qt.io>2019-06-18 11:48:32 +0200
committerEike Ziller <eike.ziller@qt.io>2019-06-18 11:48:32 +0200
commitb02f4ae6154810a9894615eca3052957e6e3ec56 (patch)
tree4569646cf3882d862a4784d9a278a55b373a106e /src/plugins/projectexplorer/projecttree.cpp
parent174b6f7e659f6667ea8621f2d57d3bf67fedcdbf (diff)
parenta2cfa434683552f63699a70e9de2295a12f41eaa (diff)
Merge remote-tracking branch 'origin/4.9' into 4.10
Diffstat (limited to 'src/plugins/projectexplorer/projecttree.cpp')
-rw-r--r--src/plugins/projectexplorer/projecttree.cpp12
1 files changed, 9 insertions, 3 deletions
diff --git a/src/plugins/projectexplorer/projecttree.cpp b/src/plugins/projectexplorer/projecttree.cpp
index ca35bcff682..5259a0d609d 100644
--- a/src/plugins/projectexplorer/projecttree.cpp
+++ b/src/plugins/projectexplorer/projecttree.cpp
@@ -389,9 +389,15 @@ void ProjectTree::applyTreeManager(FolderNode *folder)
bool ProjectTree::hasNode(const Node *node)
{
return Utils::contains(SessionManager::projects(), [node](const Project *p) {
- return p && p->rootProjectNode() && (
- p->containerNode() == node
- || p->rootProjectNode()->findNode([node](const Node *n) { return n == node; }));
+ if (!p)
+ return false;
+ if (p->containerNode() == node)
+ return true;
+ // When parsing fails we have a living container node but no rootProjectNode.
+ ProjectNode *pn = p->rootProjectNode();
+ if (!pn)
+ return false;
+ return pn->findNode([node](const Node *n) { return n == node; }) != nullptr;
});
}