From fba821f5c133999724a4b8581018ae53d764cdc0 Mon Sep 17 00:00:00 2001 From: Daniel Teske Date: Thu, 12 Jul 2012 13:31:35 +0200 Subject: Project mode: Fix crash on removing the last profile Change-Id: I0624e52a9fd176847a42a1a3379ceabc0f03661c Reviewed-by: Daniel Teske --- src/plugins/projectexplorer/projectwindow.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) (limited to 'src/plugins/projectexplorer/projectwindow.cpp') diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index aeb6afb17c..b3db9c0dc5 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -273,6 +273,14 @@ void ProjectWindow::aboutToShutdown() disconnect(ProjectExplorerPlugin::instance()->session(), 0, this, 0); } +void ProjectWindow::removedTarget(Target *target) +{ + Project *p = qobject_cast(sender()); + QTC_ASSERT(p, return); + if (p->targets().isEmpty()) + projectUpdated(p); +} + void ProjectWindow::projectUpdated(Project *p) { // Called after a project was configured @@ -362,6 +370,9 @@ void ProjectWindow::registerProject(ProjectExplorer::Project *project) m_tabIndexToProject.insert(index, project); m_tabWidget->insertTab(index, project->displayName(), project->document()->fileName(), subtabs); + + connect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)), + this, SLOT(removedTarget(ProjectExplorer::Target*))); } void ProjectWindow::deregisterProject(ProjectExplorer::Project *project) @@ -372,6 +383,8 @@ void ProjectWindow::deregisterProject(ProjectExplorer::Project *project) m_tabIndexToProject.removeAt(index); m_tabWidget->removeTab(index); + disconnect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)), + this, SLOT(removedTarget(ProjectExplorer::Target*))); } void ProjectWindow::startupProjectChanged(ProjectExplorer::Project *p) -- cgit v1.2.1