diff options
author | Daniel Teske <daniel.teske@digia.com> | 2012-11-08 16:58:49 +0100 |
---|---|---|
committer | Daniel Teske <daniel.teske@digia.com> | 2012-11-16 14:40:37 +0100 |
commit | 2e01cd2c05a7e66d17de18b089e9b7fa231a9ed4 (patch) | |
tree | a08023d8ed6c1bf8582f971de4bed58c69e28a37 /src/plugins/projectexplorer/buildsettingspropertiespage.cpp | |
parent | 241f36f89d8949f34371ac8073a2f4c113dec753 (diff) | |
download | qt-creator-2e01cd2c05a7e66d17de18b089e9b7fa231a9ed4.tar.gz |
BuildSettingsWidget: Recreate BuildConfigWidgets per BuildConfiguration
Currently the BuildConfigWidgets are created once and init(bc) is
called on switching BuildConfigurations. That's odd since the
createCongigWidget() function is on the BuildConfiguration and not
the project. Recreating the widgets on switching bcs does introduce
some flickering and collapses the BuildEnvironmentWidget, but that's
a minor regression.
Change-Id: I0672655c8796741fc5ddaba9768817fe2951c335
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Diffstat (limited to 'src/plugins/projectexplorer/buildsettingspropertiespage.cpp')
-rw-r--r-- | src/plugins/projectexplorer/buildsettingspropertiespage.cpp | 14 |
1 files changed, 4 insertions, 10 deletions
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp index 4854541826..dc4b2f0a86 100644 --- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp +++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp @@ -235,6 +235,9 @@ void BuildSettingsWidget::updateBuildSettings() // update buttons m_removeButton->setEnabled(m_target->buildConfigurations().size() > 1); + if (!m_buildConfiguration) + return; + // Add pages BuildConfigWidget *generalConfigWidget = m_buildConfiguration->createConfigWidget(); addSubWidget(generalConfigWidget); @@ -267,11 +270,7 @@ void BuildSettingsWidget::updateActiveConfiguration() 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)) { - buildStepWidget->init(m_buildConfiguration); - } - } + updateBuildSettings(); } void BuildSettingsWidget::createConfiguration() @@ -291,7 +290,6 @@ void BuildSettingsWidget::createConfiguration() QTC_CHECK(bc->id() == id); m_target->setActiveBuildConfiguration(bc); - updateBuildSettings(); } void BuildSettingsWidget::cloneConfiguration() @@ -357,8 +355,6 @@ void BuildSettingsWidget::cloneConfiguration(BuildConfiguration *sourceConfigura bc->setDisplayName(name); m_target->addBuildConfiguration(bc); - updateBuildSettings(); - m_target->setActiveBuildConfiguration(bc); } @@ -392,6 +388,4 @@ void BuildSettingsWidget::deleteConfiguration(BuildConfiguration *deleteConfigur } m_target->removeBuildConfiguration(deleteConfiguration); - - updateBuildSettings(); } |