ProjectTree: Make project loading fast again

Change-Id: I4a84579311a606d442805acbac2793e8b5ddf515
Reviewed-by: Eike Ziller <eike.ziller@theqtcompany.com>
This commit is contained in:
Daniel Teske
2015-01-21 15:24:27 +01:00
parent cca1030432
commit fc3abe9984

View File

@@ -192,7 +192,9 @@ void ProjectTree::updateFromDocumentManager(bool invalidCurrentNode)
void ProjectTree::update(Node *node, Project *project) 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) { if (m_currentProject) {
disconnect(m_currentProject, &Project::projectContextUpdated, disconnect(m_currentProject, &Project::projectContextUpdated,
this, &ProjectTree::updateContext); this, &ProjectTree::updateContext);
@@ -216,15 +218,17 @@ void ProjectTree::update(Node *node, Project *project)
Qt::UniqueConnection); Qt::UniqueConnection);
} }
if (node != m_currentNode) { if (changedNode) {
m_currentNode = node; m_currentNode = node;
emit currentNodeChanged(m_currentNode, project); emit currentNodeChanged(m_currentNode, project);
} }
emit currentProjectChanged(m_currentProject);
if (changedProject) {
emit currentProjectChanged(m_currentProject);
updateDefaultLocationForNewFiles(); updateDefaultLocationForNewFiles();
updateContext(); updateContext();
}
} }
void ProjectTree::updateDefaultLocationForNewFiles() void ProjectTree::updateDefaultLocationForNewFiles()