Keep targets in the minitargetselector sync with the project settings

Task-number: QTCREATORBUG-1097
Reviewed-by: dt
This commit is contained in:
Daniel Molkentin
2010-04-12 18:18:45 +02:00
parent a12daa6262
commit 9c8079f091
2 changed files with 20 additions and 0 deletions

View File

@@ -461,6 +461,8 @@ void MiniProjectTargetSelector::addProject(ProjectExplorer::Project* project)
SLOT(addTarget(ProjectExplorer::Target*))); SLOT(addTarget(ProjectExplorer::Target*)));
connect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)), connect(project, SIGNAL(removedTarget(ProjectExplorer::Target*)),
SLOT(removeTarget(ProjectExplorer::Target*))); SLOT(removeTarget(ProjectExplorer::Target*)));
connect(project, SIGNAL(activeTargetChanged(ProjectExplorer::Target*)),
SLOT(changeActiveTarget(ProjectExplorer::Target*)));
if (project == ProjectExplorerPlugin::instance()->startupProject()) { if (project == ProjectExplorerPlugin::instance()->startupProject()) {
m_projectsBox->setCurrentIndex(pos); m_projectsBox->setCurrentIndex(pos);
@@ -546,6 +548,23 @@ void MiniProjectTargetSelector::removeTarget(ProjectExplorer::Target *target)
disconnect(target, SIGNAL(overlayIconChanged()), this, SLOT(updateAction())); disconnect(target, SIGNAL(overlayIconChanged()), this, SLOT(updateAction()));
} }
void MiniProjectTargetSelector::changeActiveTarget(ProjectExplorer::Target *target)
{
int index = indexFor(target->project());
if (index < 0)
return;
ProjectListWidget *plw = qobject_cast<ProjectListWidget*>(m_widgetStack->widget(index));
for (int i = 0; i < plw->count(); ++i) {
QListWidgetItem *itm = plw->item(i);
MiniTargetWidget *mtw = qobject_cast<MiniTargetWidget*>(plw->itemWidget(itm));
if (mtw->target() == target) {
plw->setCurrentItem(itm);
break;
}
}
}
void MiniProjectTargetSelector::updateAction() void MiniProjectTargetSelector::updateAction()
{ {
Project *project = ProjectExplorerPlugin::instance()->startupProject(); Project *project = ProjectExplorerPlugin::instance()->startupProject();

View File

@@ -125,6 +125,7 @@ private slots:
void removeProject(ProjectExplorer::Project *project); void removeProject(ProjectExplorer::Project *project);
void addTarget(ProjectExplorer::Target *target, bool isActiveTarget = false); void addTarget(ProjectExplorer::Target *target, bool isActiveTarget = false);
void removeTarget(ProjectExplorer::Target *target); void removeTarget(ProjectExplorer::Target *target);
void changeActiveTarget(ProjectExplorer::Target *target);
void emitStartupProjectChanged(int index); void emitStartupProjectChanged(int index);
void changeStartupProject(ProjectExplorer::Project *project); void changeStartupProject(ProjectExplorer::Project *project);
void updateAction(); void updateAction();