RunConfiguration: added possibility to clone "Run" configuration

Active "Run" configuration can be clone together with arguments and
"Run Environment"

Change-Id: Iec1a4b0b0702957c30580098e916fe8e665f236e
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Przemyslaw Gorszkowski
2014-01-14 15:13:26 +01:00
parent e8dbf1e437
commit 1e9433e779
3 changed files with 25 additions and 1 deletions

View File

@@ -97,7 +97,9 @@ LocalEnvironmentAspect::LocalEnvironmentAspect(RunConfiguration *parent) :
LocalEnvironmentAspect *LocalEnvironmentAspect::create(RunConfiguration *parent) const
{
return new LocalEnvironmentAspect(parent);
LocalEnvironmentAspect *result = new LocalEnvironmentAspect(parent);
result->setUserEnvironmentChanges(userEnvironmentChanges());
return result;
}
} // namespace ProjectExplorer

View File

@@ -282,6 +282,10 @@ static bool actionLessThan(const QAction *action1, const QAction *action2)
void RunSettingsWidget::aboutToShowAddMenu()
{
m_addRunMenu->clear();
if (m_target->activeRunConfiguration()) {
m_addRunMenu->addAction(tr("&Clone Selected"),
this, SLOT(cloneRunConfiguration()));
}
QList<IRunConfigurationFactory *> factories =
ExtensionSystem::PluginManager::getObjects<IRunConfigurationFactory>();
@@ -322,6 +326,23 @@ void RunSettingsWidget::addRunConfiguration()
m_removeRunToolButton->setEnabled(m_target->runConfigurations().size() > 1);
}
void RunSettingsWidget::cloneRunConfiguration()
{
RunConfiguration* activeRunConfiguration = m_target->activeRunConfiguration();
IRunConfigurationFactory *factory = IRunConfigurationFactory::find(m_target,
activeRunConfiguration);
if (!factory)
return;
RunConfiguration *newRc = factory->clone(m_target, activeRunConfiguration);
if (!newRc)
return;
newRc->setDisplayName(activeRunConfiguration->displayName());
m_target->addRunConfiguration(newRc);
m_target->setActiveRunConfiguration(newRc);
}
void RunSettingsWidget::removeRunConfiguration()
{
RunConfiguration *rc = m_target->activeRunConfiguration();

View File

@@ -79,6 +79,7 @@ private slots:
void currentRunConfigurationChanged(int index);
void aboutToShowAddMenu();
void addRunConfiguration();
void cloneRunConfiguration();
void removeRunConfiguration();
void activeRunConfigurationChanged();
void renameRunConfiguration();