forked from qt-creator/qt-creator
Profile introduction
Introduce Profiles to store sets of values that describe a system/device. These profiles are held by a target, getting rid of much of the information stored in the Build-/Run-/DeployConfigurations, greatly simplifying those. This is a squash of the wip/profile branch which has been on gerrit for a while, rebased to current master. Change-Id: I25956c8dd4d1962b2134bfaa8a8076ae3909460f Reviewed-by: Daniel Teske <daniel.teske@nokia.com>
This commit is contained in:
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user