From 35bcc49bdfd40e058b53e18f14de455d3709dcae Mon Sep 17 00:00:00 2001 From: Tobias Hunger <tobias.hunger@nokia.com> Date: Mon, 22 Feb 2010 14:39:59 +0100 Subject: [PATCH] Sort targets in miniprojecttargetselector ... based on their display names Reviewed-by: Daniel Molkentin --- .../miniprojecttargetselector.cpp | 22 +++++++++++++++---- 1 file changed, 18 insertions(+), 4 deletions(-) diff --git a/src/plugins/projectexplorer/miniprojecttargetselector.cpp b/src/plugins/projectexplorer/miniprojecttargetselector.cpp index d107b660aad..64f81901f5f 100644 --- a/src/plugins/projectexplorer/miniprojecttargetselector.cpp +++ b/src/plugins/projectexplorer/miniprojecttargetselector.cpp @@ -101,9 +101,10 @@ void ProjectListWidget::setBuildComboPopup() void ProjectListWidget::setTarget(int index) { - QList<Target *> targets(m_project->targets()); - if (index >= 0 && index < targets.count()) - m_project->setActiveTarget(targets.at(index)); + MiniTargetWidget *mtw = qobject_cast<MiniTargetWidget *>(itemWidget(item(index))); + if (!mtw) + return; + m_project->setActiveTarget(mtw->target()); } MiniTargetWidget::MiniTargetWidget(Target *target, QWidget *parent) : @@ -406,7 +407,20 @@ void MiniProjectTargetSelector::addTarget(ProjectExplorer::Target *target, bool ProjectListWidget *plw = qobject_cast<ProjectListWidget*>(m_widgetStack->widget(index)); QListWidgetItem *lwi = new QListWidgetItem(); - plw->addItem(lwi); + + // Sort on insert: + for (int idx = 0; idx <= plw->count(); ++idx) { + QListWidgetItem *itm(plw->item(idx)); + MiniTargetWidget *mtw(qobject_cast<MiniTargetWidget *>(plw->itemWidget(itm))); + if (!mtw && idx < plw->count()) + continue; + if (idx == plw->count() || + mtw->target()->displayName() > target->displayName()) { + plw->insertItem(idx, lwi); + break; + } + } + MiniTargetWidget *targetWidget = new MiniTargetWidget(target); connect(targetWidget, SIGNAL(changed()), this, SLOT(updateAction())); targetWidget->installEventFilter(this); -- GitLab