diff --git a/src/plugins/projectexplorer/projectwindow.cpp b/src/plugins/projectexplorer/projectwindow.cpp index f2f27a20e5fef723d27a2059365a560308e3fb5a..c2cb2c28bcb2bab371c100a71aa3f6605a12fa72 100644 --- a/src/plugins/projectexplorer/projectwindow.cpp +++ b/src/plugins/projectexplorer/projectwindow.cpp @@ -280,6 +280,9 @@ ProjectWindow::ProjectWindow(QWidget *parent) connect(session, SIGNAL(aboutToRemoveProject(ProjectExplorer::Project*)), this, SLOT(deregisterProject(ProjectExplorer::Project*))); + connect(session, SIGNAL(startupProjectChanged(ProjectExplorer::Project*)), + this, SLOT(startupProjectChanged(ProjectExplorer::Project *))); + // Update properties to empty project for now: showProperties(-1, -1); } @@ -353,8 +356,17 @@ void ProjectWindow::refreshProject() if (!m_tabIndexToProject.contains(project)) return; + // TODO this changes the subindex + int index = m_tabWidget->currentIndex(); deregisterProject(project); registerProject(project); + m_tabWidget->setCurrentIndex(index); +} + +void ProjectWindow::startupProjectChanged(ProjectExplorer::Project *p) +{ + int index = m_tabIndexToProject.indexOf(p); + m_tabWidget->setCurrentIndex(index); } void ProjectWindow::showProperties(int index, int subIndex) @@ -386,6 +398,7 @@ void ProjectWindow::showProperties(int index, int subIndex) } ++pos; } + ProjectExplorerPlugin::instance()->session()->setStartupProject(project); } void ProjectWindow::removeCurrentWidget() diff --git a/src/plugins/projectexplorer/projectwindow.h b/src/plugins/projectexplorer/projectwindow.h index 8edcb66d59a0b3bf7cdc770f27c807019f769288..cb3a81892af83b901d1feae30666753ab3fd3244 100644 --- a/src/plugins/projectexplorer/projectwindow.h +++ b/src/plugins/projectexplorer/projectwindow.h @@ -92,6 +92,7 @@ private slots: void saveStatus(); void registerProject(ProjectExplorer::Project*); void deregisterProject(ProjectExplorer::Project*); + void startupProjectChanged(ProjectExplorer::Project *); void refreshProject();