Skip to content
Snippets Groups Projects
Commit dceda9db authored by Tobias Hunger's avatar Tobias Hunger
Browse files

Refresh ProjectMode when supported targets change

Reviewed-by: con
parent 6ecd9cc5
No related branches found
No related tags found
No related merge requests found
...@@ -277,9 +277,9 @@ ProjectWindow::ProjectWindow(QWidget *parent) ...@@ -277,9 +277,9 @@ ProjectWindow::ProjectWindow(QWidget *parent)
connect(session, SIGNAL(aboutToSaveSession()), this, SLOT(saveStatus())); connect(session, SIGNAL(aboutToSaveSession()), this, SLOT(saveStatus()));
connect(session, SIGNAL(projectAdded(ProjectExplorer::Project*)), connect(session, SIGNAL(projectAdded(ProjectExplorer::Project*)),
this, SLOT(projectAdded(ProjectExplorer::Project*))); this, SLOT(registerProject(ProjectExplorer::Project*)));
connect(session, SIGNAL(aboutToRemoveProject(ProjectExplorer::Project*)), connect(session, SIGNAL(aboutToRemoveProject(ProjectExplorer::Project*)),
this, SLOT(aboutToRemoveProject(ProjectExplorer::Project*))); this, SLOT(deregisterProject(ProjectExplorer::Project*)));
// Update properties to empty project for now: // Update properties to empty project for now:
showProperties(-1, -1); showProperties(-1, -1);
...@@ -296,7 +296,7 @@ void ProjectWindow::shutdown() ...@@ -296,7 +296,7 @@ void ProjectWindow::shutdown()
disconnect(ProjectExplorerPlugin::instance()->session(), 0, this, 0); disconnect(ProjectExplorerPlugin::instance()->session(), 0, this, 0);
} }
void ProjectWindow::projectAdded(ProjectExplorer::Project *project) void ProjectWindow::registerProject(ProjectExplorer::Project *project)
{ {
if (!project || m_tabIndexToProject.contains(project)) if (!project || m_tabIndexToProject.contains(project))
return; return;
...@@ -320,13 +320,20 @@ void ProjectWindow::projectAdded(ProjectExplorer::Project *project) ...@@ -320,13 +320,20 @@ void ProjectWindow::projectAdded(ProjectExplorer::Project *project)
m_tabIndexToProject.insert(index, project); m_tabIndexToProject.insert(index, project);
m_tabWidget->insertTab(index, project->displayName(), subtabs); m_tabWidget->insertTab(index, project->displayName(), subtabs);
connect(project, SIGNAL(supportedTargetIdsChanged()),
this, SLOT(refreshProject()));
} }
void ProjectWindow::aboutToRemoveProject(ProjectExplorer::Project *project) void ProjectWindow::deregisterProject(ProjectExplorer::Project *project)
{ {
int index = m_tabIndexToProject.indexOf(project); int index = m_tabIndexToProject.indexOf(project);
if (index < 0) if (index < 0)
return; return;
disconnect(project, SIGNAL(supportedTargetIdsChanged()),
this, SLOT(refreshProject()));
m_tabIndexToProject.removeAt(index); m_tabIndexToProject.removeAt(index);
m_tabWidget->removeTab(index); m_tabWidget->removeTab(index);
} }
...@@ -341,6 +348,16 @@ void ProjectWindow::saveStatus() ...@@ -341,6 +348,16 @@ void ProjectWindow::saveStatus()
// TODO // TODO
} }
void ProjectWindow::refreshProject()
{
Project *project = qobject_cast<ProjectExplorer::Project *>(sender());
if (!m_tabIndexToProject.contains(project))
return;
deregisterProject(project);
registerProject(project);
}
void ProjectWindow::showProperties(int index, int subIndex) void ProjectWindow::showProperties(int index, int subIndex)
{ {
if (index < 0 || index >= m_tabIndexToProject.count()) if (index < 0 || index >= m_tabIndexToProject.count())
......
...@@ -90,8 +90,10 @@ private slots: ...@@ -90,8 +90,10 @@ private slots:
void showProperties(int index, int subIndex); void showProperties(int index, int subIndex);
void restoreStatus(); void restoreStatus();
void saveStatus(); void saveStatus();
void projectAdded(ProjectExplorer::Project*); void registerProject(ProjectExplorer::Project*);
void aboutToRemoveProject(ProjectExplorer::Project*); void deregisterProject(ProjectExplorer::Project*);
void refreshProject();
private: private:
void removeCurrentWidget(); void removeCurrentWidget();
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment