summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
diff options
context:
space:
mode:
authordt <qtc-committer@nokia.com>2010-04-29 16:52:31 +0200
committerdt <qtc-committer@nokia.com>2010-04-30 11:55:03 +0200
commita60d55bdadf2278dfddc1b30f4133a40600a18b4 (patch)
treee9470cac406e961d29dd401fc500849afc6c7871 /src/plugins/projectexplorer/buildsettingspropertiespage.cpp
parent708dad7c8efa85996f24bc2ecb504506bbd1e8df (diff)
downloadqt-creator-a60d55bdadf2278dfddc1b30f4133a40600a18b4.tar.gz
Sort build & run configurations in the ui
Implement a BuildConfigurationModel which does the sorting. Extend the RunConfigurationModel to do sorting. Make the mini target selector and project page use both of those models. Task-Nr: QTCREATORBUG-1235
Diffstat (limited to 'src/plugins/projectexplorer/buildsettingspropertiespage.cpp')
-rw-r--r--src/plugins/projectexplorer/buildsettingspropertiespage.cpp58
1 files changed, 8 insertions, 50 deletions
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index 5356f3a2a1..9fc730de21 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -33,6 +33,7 @@
#include "project.h"
#include "target.h"
#include "buildconfiguration.h"
+#include "buildconfigurationmodel.h"
#include <coreplugin/coreconstants.h>
#include <extensionsystem/pluginmanager.h>
@@ -148,6 +149,7 @@ void BuildSettingsWidget::setupUi()
hbox->addWidget(new QLabel(tr("Edit Build Configuration:"), this));
m_buildConfigurationComboBox = new QComboBox(this);
m_buildConfigurationComboBox->setSizeAdjustPolicy(QComboBox::AdjustToContents);
+ m_buildConfigurationComboBox->setModel(new BuildConfigurationModel(m_target, this));
hbox->addWidget(m_buildConfigurationComboBox);
m_addButton = new QPushButton(this);
@@ -167,6 +169,8 @@ void BuildSettingsWidget::setupUi()
}
m_buildConfiguration = m_target->activeBuildConfiguration();
+ BuildConfigurationModel *model = static_cast<BuildConfigurationModel *>(m_buildConfigurationComboBox->model());
+ m_buildConfigurationComboBox->setCurrentIndex(model->indexFor(m_buildConfiguration).row());
updateAddButtonMenu();
updateBuildSettings();
@@ -180,42 +184,11 @@ void BuildSettingsWidget::setupUi()
connect(m_target, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)),
this, SLOT(updateActiveConfiguration()));
- connect(m_target, SIGNAL(addedBuildConfiguration(ProjectExplorer::BuildConfiguration*)),
- this, SLOT(addedBuildConfiguration(ProjectExplorer::BuildConfiguration*)));
-
- connect(m_target, SIGNAL(removedBuildConfiguration(ProjectExplorer::BuildConfiguration*)),
- this, SLOT(removedBuildConfiguration(ProjectExplorer::BuildConfiguration*)));
-
- foreach (BuildConfiguration *bc, m_target->buildConfigurations()) {
- connect(bc, SIGNAL(displayNameChanged()),
- this, SLOT(buildConfigurationDisplayNameChanged()));
- }
-
if (m_target->buildConfigurationFactory())
connect(m_target->buildConfigurationFactory(), SIGNAL(availableCreationIdsChanged()),
SLOT(updateAddButtonMenu()));
}
-void BuildSettingsWidget::addedBuildConfiguration(BuildConfiguration *bc)
-{
- connect(bc, SIGNAL(displayNameChanged()),
- this, SLOT(buildConfigurationDisplayNameChanged()));
-}
-
-void BuildSettingsWidget::removedBuildConfiguration(BuildConfiguration *bc)
-{
- disconnect(bc, SIGNAL(displayNameChanged()),
- this, SLOT(buildConfigurationDisplayNameChanged()));
-}
-
-void BuildSettingsWidget::buildConfigurationDisplayNameChanged()
-{
- for (int i = 0; i < m_buildConfigurationComboBox->count(); ++i) {
- BuildConfiguration *bc = m_buildConfigurationComboBox->itemData(i).value<BuildConfiguration *>();
- m_buildConfigurationComboBox->setItemText(i, bc->displayName());
- }
-}
-
void BuildSettingsWidget::addSubWidget(const QString &name, BuildConfigWidget *widget)
{
widget->setContentsMargins(m_leftMargin, 10, 0, 0);
@@ -268,9 +241,6 @@ void BuildSettingsWidget::updateAddButtonMenu()
void BuildSettingsWidget::updateBuildSettings()
{
- // Delete old tree items
- bool blocked = m_buildConfigurationComboBox->blockSignals(true);
- m_buildConfigurationComboBox->clear();
clear();
// update buttons
@@ -287,22 +257,14 @@ void BuildSettingsWidget::updateBuildSettings()
foreach (BuildConfigWidget *subConfigWidget, subConfigWidgets)
addSubWidget(subConfigWidget->displayName(), subConfigWidget);
- // Add tree items
- foreach (BuildConfiguration *bc, m_target->buildConfigurations()) {
- m_buildConfigurationComboBox->addItem(bc->displayName(), QVariant::fromValue<BuildConfiguration *>(bc));
- if (bc == m_buildConfiguration)
- m_buildConfigurationComboBox->setCurrentIndex(m_buildConfigurationComboBox->count() - 1);
- }
-
foreach (BuildConfigWidget *widget, subWidgets())
widget->init(m_buildConfiguration);
-
- m_buildConfigurationComboBox->blockSignals(blocked);
}
void BuildSettingsWidget::currentIndexChanged(int index)
{
- BuildConfiguration *buildConfiguration = m_buildConfigurationComboBox->itemData(index).value<BuildConfiguration *>();
+ BuildConfigurationModel *model = static_cast<BuildConfigurationModel *>(m_buildConfigurationComboBox->model());
+ BuildConfiguration *buildConfiguration = model->buildConfigurationAt(index);
m_target->setActiveBuildConfiguration(buildConfiguration);
}
@@ -313,12 +275,8 @@ void BuildSettingsWidget::updateActiveConfiguration()
m_buildConfiguration = m_target->activeBuildConfiguration();
- for (int i = 0; i < m_buildConfigurationComboBox->count(); ++i) {
- if (m_buildConfigurationComboBox->itemData(i).value<BuildConfiguration *>() == m_buildConfiguration) {
- m_buildConfigurationComboBox->setCurrentIndex(i);
- break;
- }
- }
+ BuildConfigurationModel *model = static_cast<BuildConfigurationModel *>(m_buildConfigurationComboBox->model());
+ m_buildConfigurationComboBox->setCurrentIndex(model->indexFor(m_buildConfiguration).row());
foreach (QWidget *widget, subWidgets()) {
if (BuildConfigWidget *buildStepWidget = qobject_cast<BuildConfigWidget*>(widget)) {