summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
diff options
context:
space:
mode:
authorDaniel Teske <daniel.teske@digia.com>2012-11-08 16:58:49 +0100
committerDaniel Teske <daniel.teske@digia.com>2012-11-16 14:40:37 +0100
commit2e01cd2c05a7e66d17de18b089e9b7fa231a9ed4 (patch)
treea08023d8ed6c1bf8582f971de4bed58c69e28a37 /src/plugins/projectexplorer/buildsettingspropertiespage.cpp
parent241f36f89d8949f34371ac8073a2f4c113dec753 (diff)
downloadqt-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.cpp14
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();
}