summaryrefslogtreecommitdiff
path: root/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/projectexplorer/buildsettingspropertiespage.cpp')
-rw-r--r--src/plugins/projectexplorer/buildsettingspropertiespage.cpp50
1 files changed, 27 insertions, 23 deletions
diff --git a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
index 986f52de15..91a693a561 100644
--- a/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
+++ b/src/plugins/projectexplorer/buildsettingspropertiespage.cpp
@@ -80,7 +80,7 @@ int BuildSettingsPanelFactory::priority() const
bool BuildSettingsPanelFactory::supports(Target *target)
{
- return target->buildConfigurationFactory();
+ return IBuildConfigurationFactory::find(target);
}
PropertiesPanel *BuildSettingsPanelFactory::createPanel(Target *target)
@@ -120,7 +120,7 @@ void BuildSettingsWidget::setupUi()
QVBoxLayout *vbox = new QVBoxLayout(this);
vbox->setContentsMargins(0, 0, 0, 0);
- if (!m_target->buildConfigurationFactory()) {
+ if (!IBuildConfigurationFactory::find(m_target)) {
QLabel *noSettingsLabel = new QLabel(this);
noSettingsLabel->setText(tr("No build settings available"));
QFont f = noSettingsLabel->font();
@@ -179,9 +179,7 @@ void BuildSettingsWidget::setupUi()
connect(m_target, SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)),
this, SLOT(updateActiveConfiguration()));
- if (m_target->buildConfigurationFactory())
- connect(m_target->buildConfigurationFactory(), SIGNAL(availableCreationIdsChanged()),
- SLOT(updateAddButtonMenu()));
+ connect(m_target, SIGNAL(profileChanged()), this, SLOT(updateAddButtonMenu()));
}
void BuildSettingsWidget::addSubWidget(BuildConfigWidget *widget)
@@ -227,12 +225,10 @@ void BuildSettingsWidget::updateAddButtonMenu()
m_addButtonMenu->addAction(tr("&Clone Selected"),
this, SLOT(cloneConfiguration()));
}
- IBuildConfigurationFactory *factory = m_target->buildConfigurationFactory();
- if (factory) {
- foreach (Core::Id id, factory->availableCreationIds(m_target)) {
- QAction *action = m_addButtonMenu->addAction(factory->displayNameForId(id), this, SLOT(createConfiguration()));
- action->setData(QVariant::fromValue(id));
- }
+ IBuildConfigurationFactory * factory = IBuildConfigurationFactory::find(m_target);
+ foreach (Core::Id id, factory->availableCreationIds(m_target)) {
+ QAction *action = m_addButtonMenu->addAction(factory->displayNameForId(id), this, SLOT(createConfiguration()));
+ action->setData(QVariant::fromValue(id));
}
}
}
@@ -245,7 +241,7 @@ void BuildSettingsWidget::updateBuildSettings()
m_removeButton->setEnabled(m_target->buildConfigurations().size() > 1);
// Add pages
- BuildConfigWidget *generalConfigWidget = m_target->createConfigWidget();
+ BuildConfigWidget *generalConfigWidget = m_buildConfiguration->createConfigWidget();
addSubWidget(generalConfigWidget);
addSubWidget(new BuildStepsPage(m_target, Core::Id(Constants::BUILDSTEPS_BUILD)));
@@ -285,16 +281,22 @@ void BuildSettingsWidget::updateActiveConfiguration()
void BuildSettingsWidget::createConfiguration()
{
- if (!m_target->buildConfigurationFactory())
- return;
-
QAction *action = qobject_cast<QAction *>(sender());
Core::Id id = action->data().value<Core::Id>();
- BuildConfiguration *bc = m_target->buildConfigurationFactory()->create(m_target, id);
- if (bc) {
- m_target->setActiveBuildConfiguration(bc);
- updateBuildSettings();
- }
+
+ IBuildConfigurationFactory *factory = IBuildConfigurationFactory::find(m_target);
+ if (!factory)
+ return;
+
+ BuildConfiguration *bc = factory->create(m_target, id);
+ if (!bc)
+ return;
+
+ m_target->addBuildConfiguration(bc);
+
+ QTC_CHECK(bc->id() == id);
+ m_target->setActiveBuildConfiguration(bc);
+ updateBuildSettings();
}
void BuildSettingsWidget::cloneConfiguration()
@@ -343,8 +345,10 @@ void BuildSettingsWidget::renameConfiguration()
void BuildSettingsWidget::cloneConfiguration(BuildConfiguration *sourceConfiguration)
{
- if (!sourceConfiguration ||
- !m_target->buildConfigurationFactory())
+ if (!sourceConfiguration)
+ return;
+ IBuildConfigurationFactory *factory = IBuildConfigurationFactory::find(m_target);
+ if (!factory)
return;
//: Title of a the cloned BuildConfiguration window, text of the window
@@ -352,7 +356,7 @@ void BuildSettingsWidget::cloneConfiguration(BuildConfiguration *sourceConfigura
if (name.isEmpty())
return;
- BuildConfiguration * bc(m_target->buildConfigurationFactory()->clone(m_target, sourceConfiguration));
+ BuildConfiguration *bc = factory->clone(m_target, sourceConfiguration);
if (!bc)
return;