summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/projectwindow.cpp
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@nokia.com>2012-07-12 13:31:35 +0200
committerDaniel Teske <daniel.teske@nokia.com>2012-07-16 13:09:23 +0200
commitfba821f5c133999724a4b8581018ae53d764cdc0 (patch)
treed45dd7d5aa00ede6debb1f678bd65aba4c92ef87 /src/plugins/projectexplorer/projectwindow.cpp
parent113bd5ce7e7e220d692b6d9fa559ec608de5ca4b (diff)
downloadqt-creator-fba821f5c133999724a4b8581018ae53d764cdc0.tar.gz
Project mode: Fix crash on removing the last profile
Change-Id: I0624e52a9fd176847a42a1a3379ceabc0f03661c Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
Diffstat (limited to 'src/plugins/projectexplorer/projectwindow.cpp')
-rw-r--r--src/plugins/projectexplorer/projectwindow.cpp13
1 files changed, 13 insertions, 0 deletions
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<Project *>(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)