From ee36b049634d7bf21650153960e85d3e76a6d29a Mon Sep 17 00:00:00 2001 From: jkobus Date: Thu, 3 Jul 2014 16:36:17 +0200 Subject: Fix a crash on session switch Done by Daniel Task-number: QTCREATORBUG-12613 Change-Id: I716c1b73cd7e0c934b8b2e3090af1de4d987a191 Reviewed-by: Daniel Teske --- src/plugins/projectexplorer/projectwindow.cpp | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'src/plugins/projectexplorer/projectwindow.cpp') diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index 971d262b7f..b784e8a8eb 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -290,8 +290,8 @@ void ProjectWindow::projectUpdated(Project *p) { // Called after a project was configured int index = m_tabWidget->currentIndex(); - deregisterProject(p); - registerProject(p); + if (deregisterProject(p)) // might return false if the project is unloading + registerProject(p); m_tabWidget->setCurrentIndex(index); } @@ -303,8 +303,8 @@ void ProjectWindow::handleKitChanges() foreach (ProjectExplorer::Project *project, projects) { if (m_hasTarget.value(project) != hasTarget(project)) { changed = true; - deregisterProject(project); - registerProject(project); + if (deregisterProject(project)) + registerProject(project); } } if (changed) @@ -354,16 +354,17 @@ void ProjectWindow::registerProject(ProjectExplorer::Project *project) this, SLOT(removedTarget(ProjectExplorer::Target*))); } -void ProjectWindow::deregisterProject(ProjectExplorer::Project *project) +bool ProjectWindow::deregisterProject(ProjectExplorer::Project *project) { int index = m_tabIndexToProject.indexOf(project); if (index < 0) - return; + return false; m_tabIndexToProject.removeAt(index); m_tabWidget->removeTab(index); disconnect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)), this, SLOT(removedTarget(ProjectExplorer::Target*))); + return true; } void ProjectWindow::startupProjectChanged(ProjectExplorer::Project *p) -- cgit v1.2.1