forked from qt-creator/qt-creator
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>
This commit is contained in:
@@ -235,6 +235,9 @@ void BuildSettingsWidget::updateBuildSettings()
|
|||||||
// update buttons
|
// update buttons
|
||||||
m_removeButton->setEnabled(m_target->buildConfigurations().size() > 1);
|
m_removeButton->setEnabled(m_target->buildConfigurations().size() > 1);
|
||||||
|
|
||||||
|
if (!m_buildConfiguration)
|
||||||
|
return;
|
||||||
|
|
||||||
// Add pages
|
// Add pages
|
||||||
BuildConfigWidget *generalConfigWidget = m_buildConfiguration->createConfigWidget();
|
BuildConfigWidget *generalConfigWidget = m_buildConfiguration->createConfigWidget();
|
||||||
addSubWidget(generalConfigWidget);
|
addSubWidget(generalConfigWidget);
|
||||||
@@ -267,11 +270,7 @@ void BuildSettingsWidget::updateActiveConfiguration()
|
|||||||
BuildConfigurationModel *model = static_cast<BuildConfigurationModel *>(m_buildConfigurationComboBox->model());
|
BuildConfigurationModel *model = static_cast<BuildConfigurationModel *>(m_buildConfigurationComboBox->model());
|
||||||
m_buildConfigurationComboBox->setCurrentIndex(model->indexFor(m_buildConfiguration).row());
|
m_buildConfigurationComboBox->setCurrentIndex(model->indexFor(m_buildConfiguration).row());
|
||||||
|
|
||||||
foreach (QWidget *widget, subWidgets()) {
|
updateBuildSettings();
|
||||||
if (BuildConfigWidget *buildStepWidget = qobject_cast<BuildConfigWidget*>(widget)) {
|
|
||||||
buildStepWidget->init(m_buildConfiguration);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildSettingsWidget::createConfiguration()
|
void BuildSettingsWidget::createConfiguration()
|
||||||
@@ -291,7 +290,6 @@ void BuildSettingsWidget::createConfiguration()
|
|||||||
|
|
||||||
QTC_CHECK(bc->id() == id);
|
QTC_CHECK(bc->id() == id);
|
||||||
m_target->setActiveBuildConfiguration(bc);
|
m_target->setActiveBuildConfiguration(bc);
|
||||||
updateBuildSettings();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void BuildSettingsWidget::cloneConfiguration()
|
void BuildSettingsWidget::cloneConfiguration()
|
||||||
@@ -357,8 +355,6 @@ void BuildSettingsWidget::cloneConfiguration(BuildConfiguration *sourceConfigura
|
|||||||
|
|
||||||
bc->setDisplayName(name);
|
bc->setDisplayName(name);
|
||||||
m_target->addBuildConfiguration(bc);
|
m_target->addBuildConfiguration(bc);
|
||||||
updateBuildSettings();
|
|
||||||
|
|
||||||
m_target->setActiveBuildConfiguration(bc);
|
m_target->setActiveBuildConfiguration(bc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -392,6 +388,4 @@ void BuildSettingsWidget::deleteConfiguration(BuildConfiguration *deleteConfigur
|
|||||||
}
|
}
|
||||||
|
|
||||||
m_target->removeBuildConfiguration(deleteConfiguration);
|
m_target->removeBuildConfiguration(deleteConfiguration);
|
||||||
|
|
||||||
updateBuildSettings();
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user