From fc3abe99842e461e23df6e4fbb5aa68b2fb911c0 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Wed, 21 Jan 2015 15:24:27 +0100 Subject: [PATCH] ProjectTree: Make project loading fast again Change-Id: I4a84579311a606d442805acbac2793e8b5ddf515 Reviewed-by: Eike Ziller --- src/plugins/projectexplorer/projecttree.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/plugins/projectexplorer/projecttree.cpp b/src/plugins/projectexplorer/projecttree.cpp index 31ad0e9aa9e..d8f5d6d562f 100644 --- a/src/plugins/projectexplorer/projecttree.cpp +++ b/src/plugins/projectexplorer/projecttree.cpp @@ -192,7 +192,9 @@ void ProjectTree::updateFromDocumentManager(bool invalidCurrentNode) void ProjectTree::update(Node *node, Project *project) { - if (project != m_currentProject) { + bool changedProject = project != m_currentProject; + bool changedNode = node != m_currentNode; + if (changedProject) { if (m_currentProject) { disconnect(m_currentProject, &Project::projectContextUpdated, this, &ProjectTree::updateContext); @@ -216,15 +218,17 @@ void ProjectTree::update(Node *node, Project *project) Qt::UniqueConnection); } - if (node != m_currentNode) { + if (changedNode) { m_currentNode = node; emit currentNodeChanged(m_currentNode, project); } - emit currentProjectChanged(m_currentProject); - updateDefaultLocationForNewFiles(); - updateContext(); + if (changedProject) { + emit currentProjectChanged(m_currentProject); + updateDefaultLocationForNewFiles(); + updateContext(); + } } void ProjectTree::updateDefaultLocationForNewFiles()