diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index aeb6afb17c1..b3db9c0dc57 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) diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h index 5a5ec3385b0..661230f88ed 100644 --- a/src/plugins/projectexplorer/projectwindow.h +++ b/src/plugins/projectexplorer/projectwindow.h @@ -92,6 +92,7 @@ private slots: void registerProject(ProjectExplorer::Project*); void deregisterProject(ProjectExplorer::Project*); void startupProjectChanged(ProjectExplorer::Project *); + void removedTarget(ProjectExplorer::Target*); private: bool useTargetPage(ProjectExplorer::Project *project);