diff options
author | dt <qtc-committer@nokia.com> | 2010-04-29 16:52:31 +0200 |
---|---|---|
committer | dt <qtc-committer@nokia.com> | 2010-04-30 11:55:03 +0200 |
commit | a60d55bdadf2278dfddc1b30f4133a40600a18b4 (patch) | |
tree | e9470cac406e961d29dd401fc500849afc6c7871 /src/plugins/projectexplorer/buildsettingspropertiespage.cpp | |
parent | 708dad7c8efa85996f24bc2ecb504506bbd1e8df (diff) | |
download | qt-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.cpp | 58 |
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)) { |