diff --git a/src/plugins/projectexplorer/projecttree.cpp b/src/plugins/projectexplorer/projecttree.cpp index 31ad0e9aa9eb3939e9a8043e10f59d38276edead..d8f5d6d562f846f21dc21d381096ead408aa1227 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()