aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhjk <hjk@qt.io>2017-11-09 16:06:19 +0100
committerhjk <hjk@qt.io>2017-11-10 15:09:59 +0000
commit5ca90a4a5e779f20f4c02c77efb24cdc9614f5fd (patch)
tree41888e5f3f765153a83e01a05dc2158cc9efaf92
parent7c26e3336fe28dc025ca41d2898fc186b6f21439 (diff)
ProjectExplorer: Fix copying of RunConfigurationAspects
Moving aspect data closer to real Value semantics fixes the regression introduced by 890c1906e. Task-number: QTCREATORBUG-19186 Task-number: QTCREATORBUG-19192 Change-Id: Ieaeef3995ae06a817f266c1e2514f9e5793bd4e8 Reviewed-by: David Schulz <david.schulz@qt.io> Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
-rw-r--r--src/plugins/baremetal/baremetalcustomrunconfiguration.cpp6
-rw-r--r--src/plugins/baremetal/baremetalcustomrunconfiguration.h1
-rw-r--r--src/plugins/baremetal/baremetalrunconfiguration.cpp9
-rw-r--r--src/plugins/baremetal/baremetalrunconfiguration.h1
-rw-r--r--src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp11
-rw-r--r--src/plugins/cmakeprojectmanager/cmakerunconfiguration.h1
-rw-r--r--src/plugins/debugger/debuggerrunconfigurationaspect.cpp6
-rw-r--r--src/plugins/debugger/debuggerrunconfigurationaspect.h5
-rw-r--r--src/plugins/ios/iosrunconfiguration.cpp9
-rw-r--r--src/plugins/ios/iosrunconfiguration.h1
-rw-r--r--src/plugins/projectexplorer/customexecutableconfigurationwidget.cpp6
-rw-r--r--src/plugins/projectexplorer/customexecutablerunconfiguration.cpp9
-rw-r--r--src/plugins/projectexplorer/customexecutablerunconfiguration.h3
-rw-r--r--src/plugins/projectexplorer/localenvironmentaspect.cpp7
-rw-r--r--src/plugins/projectexplorer/localenvironmentaspect.h1
-rw-r--r--src/plugins/projectexplorer/runconfiguration.cpp42
-rw-r--r--src/plugins/projectexplorer/runconfiguration.h11
-rw-r--r--src/plugins/projectexplorer/runconfigurationaspects.cpp72
-rw-r--r--src/plugins/projectexplorer/runconfigurationaspects.h21
-rw-r--r--src/plugins/pythoneditor/pythoneditorplugin.cpp8
-rw-r--r--src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp14
-rw-r--r--src/plugins/qbsprojectmanager/qbsrunconfiguration.h3
-rw-r--r--src/plugins/qmakeandroidsupport/qmakeandroidrunconfiguration.cpp13
-rw-r--r--src/plugins/qmakeandroidsupport/qmakeandroidrunconfiguration.h2
-rw-r--r--src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp31
-rw-r--r--src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h4
-rw-r--r--src/plugins/qmlprofiler/qmlprofilerrunconfigurationaspect.cpp6
-rw-r--r--src/plugins/qmlprofiler/qmlprofilerrunconfigurationaspect.h3
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp5
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h7
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp11
-rw-r--r--src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h3
-rw-r--r--src/plugins/qnx/qnxrunconfiguration.cpp11
-rw-r--r--src/plugins/qnx/qnxrunconfiguration.h10
-rw-r--r--src/plugins/remotelinux/remotelinuxcustomrunconfiguration.cpp12
-rw-r--r--src/plugins/remotelinux/remotelinuxcustomrunconfiguration.h1
-rw-r--r--src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp5
-rw-r--r--src/plugins/remotelinux/remotelinuxenvironmentaspect.h1
-rw-r--r--src/plugins/remotelinux/remotelinuxrunconfiguration.cpp8
-rw-r--r--src/plugins/remotelinux/remotelinuxrunconfiguration.h1
-rw-r--r--src/plugins/valgrind/valgrindplugin.cpp5
41 files changed, 69 insertions, 317 deletions
diff --git a/src/plugins/baremetal/baremetalcustomrunconfiguration.cpp b/src/plugins/baremetal/baremetalcustomrunconfiguration.cpp
index 9b7b8606be..1e858fd47b 100644
--- a/src/plugins/baremetal/baremetalcustomrunconfiguration.cpp
+++ b/src/plugins/baremetal/baremetalcustomrunconfiguration.cpp
@@ -122,12 +122,6 @@ void BareMetalCustomRunConfiguration::initialize()
BareMetalRunConfiguration::initialize(runConfigId(), QString());
}
-void BareMetalCustomRunConfiguration::copyFrom(const BareMetalCustomRunConfiguration *source)
-{
- BareMetalRunConfiguration::copyFrom(source);
- m_localExecutable = source->m_localExecutable;
-}
-
bool BareMetalCustomRunConfiguration::isConfigured() const
{
return !m_localExecutable.isEmpty();
diff --git a/src/plugins/baremetal/baremetalcustomrunconfiguration.h b/src/plugins/baremetal/baremetalcustomrunconfiguration.h
index 30812fc3cd..9425d30ffb 100644
--- a/src/plugins/baremetal/baremetalcustomrunconfiguration.h
+++ b/src/plugins/baremetal/baremetalcustomrunconfiguration.h
@@ -39,7 +39,6 @@ public:
explicit BareMetalCustomRunConfiguration(ProjectExplorer::Target *parent);
void initialize();
- void copyFrom(const BareMetalCustomRunConfiguration *source);
bool isConfigured() const override;
ConfigurationState ensureConfigured(QString *errorMessage) override;
diff --git a/src/plugins/baremetal/baremetalrunconfiguration.cpp b/src/plugins/baremetal/baremetalrunconfiguration.cpp
index c0155f7bf7..d2a5760d57 100644
--- a/src/plugins/baremetal/baremetalrunconfiguration.cpp
+++ b/src/plugins/baremetal/baremetalrunconfiguration.cpp
@@ -57,15 +57,6 @@ BareMetalRunConfiguration::BareMetalRunConfiguration(Target *target)
this, &BareMetalRunConfiguration::handleBuildSystemDataUpdated); // Handles device changes, etc.
}
-void BareMetalRunConfiguration::copyFrom(const BareMetalRunConfiguration *other)
-{
- RunConfiguration::copyFrom(other);
- m_projectFilePath = other->m_projectFilePath;
- m_workingDirectory = other->m_workingDirectory;
-
- setDefaultDisplayName(defaultDisplayName());
-}
-
void BareMetalRunConfiguration::initialize(const Core::Id id, const QString &projectFilePath)
{
RunConfiguration::initialize(id);
diff --git a/src/plugins/baremetal/baremetalrunconfiguration.h b/src/plugins/baremetal/baremetalrunconfiguration.h
index c5e8e47b00..98d2cb6faa 100644
--- a/src/plugins/baremetal/baremetalrunconfiguration.h
+++ b/src/plugins/baremetal/baremetalrunconfiguration.h
@@ -67,7 +67,6 @@ protected:
bool fromMap(const QVariantMap &map) override;
QString defaultDisplayName();
void initialize(Core::Id id, const QString &projectFilePath);
- void copyFrom(const BareMetalRunConfiguration *source);
private:
void handleBuildSystemDataUpdated();
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
index 435c691dde..67823d4b68 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.cpp
@@ -83,17 +83,6 @@ void CMakeRunConfiguration::initialize(Core::Id id, const QString &target,
setDefaultDisplayName(defaultDisplayName());
}
-void CMakeRunConfiguration::copyFrom(const CMakeRunConfiguration *source)
-{
- RunConfiguration::copyFrom(source);
-
- m_buildSystemTarget = source->m_buildSystemTarget;
- m_executable = source->m_executable;
- m_title = source->m_title;
-
- setDefaultDisplayName(defaultDisplayName());
-}
-
Runnable CMakeRunConfiguration::runnable() const
{
StandardRunnable r;
diff --git a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
index 1b04ebb531..9c9b6f0475 100644
--- a/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
+++ b/src/plugins/cmakeprojectmanager/cmakerunconfiguration.h
@@ -59,7 +59,6 @@ public:
private:
void initialize(Core::Id id, const QString &target,
const Utils::FileName &workingDirectory, const QString &title);
- void copyFrom(const CMakeRunConfiguration *source);
bool fromMap(const QVariantMap &map) override;
QString defaultDisplayName() const;
diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
index 8eff840de8..58263c97bb 100644
--- a/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
+++ b/src/plugins/debugger/debuggerrunconfigurationaspect.cpp
@@ -330,10 +330,4 @@ void DebuggerRunConfigurationAspect::fromMap(const QVariantMap &map)
d.useMultiProcess = map.value(QLatin1String(USE_MULTIPROCESS_KEY), false).toBool();
}
-DebuggerRunConfigurationAspect *DebuggerRunConfigurationAspect::create
- (RunConfiguration *runConfiguration) const
-{
- return new DebuggerRunConfigurationAspect(runConfiguration);
-}
-
} // namespace Debugger
diff --git a/src/plugins/debugger/debuggerrunconfigurationaspect.h b/src/plugins/debugger/debuggerrunconfigurationaspect.h
index 1a6c67f96e..87b7bde779 100644
--- a/src/plugins/debugger/debuggerrunconfigurationaspect.h
+++ b/src/plugins/debugger/debuggerrunconfigurationaspect.h
@@ -56,10 +56,9 @@ class DEBUGGER_EXPORT DebuggerRunConfigurationAspect
public:
DebuggerRunConfigurationAspect(ProjectExplorer::RunConfiguration *runConfiguration);
- DebuggerRunConfigurationAspect *create(ProjectExplorer::RunConfiguration *runConfiguration) const;
- void fromMap(const QVariantMap &map);
- void toMap(QVariantMap &map) const;
+ void fromMap(const QVariantMap &map) override;
+ void toMap(QVariantMap &map) const override;
bool useCppDebugger() const;
void setUseCppDebugger(bool value);
diff --git a/src/plugins/ios/iosrunconfiguration.cpp b/src/plugins/ios/iosrunconfiguration.cpp
index d1c5cc6984..33b7275be4 100644
--- a/src/plugins/ios/iosrunconfiguration.cpp
+++ b/src/plugins/ios/iosrunconfiguration.cpp
@@ -105,7 +105,6 @@ IosRunConfiguration::IosRunConfiguration(Target *target)
this, &IosRunConfiguration::deviceChanges);
}
-
void IosRunConfiguration::initialize(Core::Id id, const FileName &path)
{
RunConfiguration::initialize(id);
@@ -114,14 +113,6 @@ void IosRunConfiguration::initialize(Core::Id id, const FileName &path)
updateDisplayNames();
}
-void IosRunConfiguration::copyFrom(const IosRunConfiguration *source)
-{
- RunConfiguration::copyFrom(source);
- m_profilePath = source->m_profilePath;
-
- updateDisplayNames();
-}
-
void IosRunConfiguration::deviceChanges() {
updateDisplayNames();
updateEnabledState();
diff --git a/src/plugins/ios/iosrunconfiguration.h b/src/plugins/ios/iosrunconfiguration.h
index 86401ea094..43c429f8c8 100644
--- a/src/plugins/ios/iosrunconfiguration.h
+++ b/src/plugins/ios/iosrunconfiguration.h
@@ -72,7 +72,6 @@ signals:
private:
friend class ProjectExplorer::IRunConfigurationFactory;
void initialize(Core::Id id, const Utils::FileName &path);
- void copyFrom(const IosRunConfiguration *source);
void deviceChanges();
friend class IosRunConfigurationWidget;
diff --git a/src/plugins/projectexplorer/customexecutableconfigurationwidget.cpp b/src/plugins/projectexplorer/customexecutableconfigurationwidget.cpp
index e66190d1c3..e5aef0395f 100644
--- a/src/plugins/projectexplorer/customexecutableconfigurationwidget.cpp
+++ b/src/plugins/projectexplorer/customexecutableconfigurationwidget.cpp
@@ -63,7 +63,8 @@ CustomExecutableConfigurationWidget::CustomExecutableConfigurationWidget(CustomE
if (mode == InstantApply) {
argumentsAspect->addToMainConfigurationWidget(this, layout);
} else {
- m_temporaryArgumentsAspect = argumentsAspect->clone(rc);
+ m_temporaryArgumentsAspect = new ArgumentsAspect(rc, QString());
+ m_temporaryArgumentsAspect->copyFrom(argumentsAspect);
m_temporaryArgumentsAspect->addToMainConfigurationWidget(this, layout);
connect(m_temporaryArgumentsAspect, &ArgumentsAspect::argumentsChanged,
this, &CustomExecutableConfigurationWidget::validChanged);
@@ -80,7 +81,8 @@ CustomExecutableConfigurationWidget::CustomExecutableConfigurationWidget(CustomE
if (mode == InstantApply) {
terminalAspect->addToMainConfigurationWidget(this, layout);
} else {
- m_temporaryTerminalAspect = terminalAspect->clone(rc);
+ m_temporaryTerminalAspect = new TerminalAspect(rc, QString());
+ m_temporaryTerminalAspect->copyFrom(terminalAspect);
m_temporaryTerminalAspect->addToMainConfigurationWidget(this, layout);
connect(m_temporaryTerminalAspect, &TerminalAspect::useTerminalChanged,
this, &CustomExecutableConfigurationWidget::validChanged);
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
index c349e85089..f3fa5488e3 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.cpp
@@ -101,15 +101,6 @@ void CustomExecutableRunConfiguration::initialize()
setDefaultDisplayName(defaultDisplayName());
}
-void CustomExecutableRunConfiguration::copyFrom(const CustomExecutableRunConfiguration *source)
-{
- RunConfiguration::copyFrom(source);
- m_executable = source->m_executable;
- m_workingDirectory = source->m_workingDirectory;
-
- setDefaultDisplayName(defaultDisplayName());
-}
-
// Note: Qt4Project deletes all empty customexecrunconfigs for which isConfigured() == false.
CustomExecutableRunConfiguration::~CustomExecutableRunConfiguration()
{
diff --git a/src/plugins/projectexplorer/customexecutablerunconfiguration.h b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
index 65cdec20c4..5922b01b46 100644
--- a/src/plugins/projectexplorer/customexecutablerunconfiguration.h
+++ b/src/plugins/projectexplorer/customexecutablerunconfiguration.h
@@ -67,8 +67,7 @@ signals:
protected:
void initialize();
- void copyFrom(const CustomExecutableRunConfiguration *source);
- virtual bool fromMap(const QVariantMap &map) override;
+ bool fromMap(const QVariantMap &map) override;
QString defaultDisplayName() const;
private:
diff --git a/src/plugins/projectexplorer/localenvironmentaspect.cpp b/src/plugins/projectexplorer/localenvironmentaspect.cpp
index 9d7cd8dcdc..e06eeab353 100644
--- a/src/plugins/projectexplorer/localenvironmentaspect.cpp
+++ b/src/plugins/projectexplorer/localenvironmentaspect.cpp
@@ -94,11 +94,4 @@ LocalEnvironmentAspect::LocalEnvironmentAspect(RunConfiguration *parent,
this, &LocalEnvironmentAspect::buildEnvironmentHasChanged);
}
-LocalEnvironmentAspect *LocalEnvironmentAspect::create(RunConfiguration *parent) const
-{
- auto result = new LocalEnvironmentAspect(parent, m_baseEnvironmentModifier);
- result->setUserEnvironmentChanges(userEnvironmentChanges());
- return result;
-}
-
} // namespace ProjectExplorer
diff --git a/src/plugins/projectexplorer/localenvironmentaspect.h b/src/plugins/projectexplorer/localenvironmentaspect.h
index 1d394b12eb..30b4fee3a1 100644
--- a/src/plugins/projectexplorer/localenvironmentaspect.h
+++ b/src/plugins/projectexplorer/localenvironmentaspect.h
@@ -36,7 +36,6 @@ class PROJECTEXPLORER_EXPORT LocalEnvironmentAspect : public EnvironmentAspect
public:
typedef std::function<void(RunConfiguration *, Utils::Environment &)> BaseEnvironmentModifier;
LocalEnvironmentAspect(RunConfiguration *parent, const BaseEnvironmentModifier &modifier);
- LocalEnvironmentAspect *create(RunConfiguration *parent) const override;
QList<int> possibleBaseEnvironments() const override;
QString baseEnvironmentDisplayName(int base) const override;
diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp
index 9c81c19dbd..03843d3a9e 100644
--- a/src/plugins/projectexplorer/runconfiguration.cpp
+++ b/src/plugins/projectexplorer/runconfiguration.cpp
@@ -110,6 +110,14 @@ RunConfigWidget *IRunConfigurationAspect::createConfigurationWidget() const
return m_runConfigWidgetCreator ? m_runConfigWidgetCreator() : nullptr;
}
+void IRunConfigurationAspect::copyFrom(IRunConfigurationAspect *source)
+{
+ QTC_ASSERT(source, return);
+ QVariantMap data;
+ source->toMap(data);
+ fromMap(data);
+}
+
void IRunConfigurationAspect::setProjectSettings(ISettingsAspect *settings)
{
m_projectSettings = settings;
@@ -132,13 +140,15 @@ ISettingsAspect *IRunConfigurationAspect::currentSettings() const
void IRunConfigurationAspect::fromMap(const QVariantMap &map)
{
- m_projectSettings->fromMap(map);
+ if (m_projectSettings)
+ m_projectSettings->fromMap(map);
m_useGlobalSettings = map.value(m_id.toString() + QLatin1String(".UseGlobalSettings"), true).toBool();
}
void IRunConfigurationAspect::toMap(QVariantMap &map) const
{
- m_projectSettings->toMap(map);
+ if (m_projectSettings)
+ m_projectSettings->toMap(map);
map.insert(m_id.toString() + QLatin1String(".UseGlobalSettings"), m_useGlobalSettings);
}
@@ -147,22 +157,13 @@ void IRunConfigurationAspect::setRunConfigWidgetCreator(const RunConfigWidgetCre
m_runConfigWidgetCreator = runConfigWidgetCreator;
}
-IRunConfigurationAspect *IRunConfigurationAspect::clone(RunConfiguration *runConfig) const
-{
- IRunConfigurationAspect *other = create(runConfig);
- if (m_projectSettings)
- other->m_projectSettings = m_projectSettings->clone();
- other->m_globalSettings = m_globalSettings;
- other->m_useGlobalSettings = m_useGlobalSettings;
- return other;
-}
-
void IRunConfigurationAspect::resetProjectToGlobalSettings()
{
QTC_ASSERT(m_globalSettings, return);
QVariantMap map;
m_globalSettings->toMap(map);
- m_projectSettings->fromMap(map);
+ if (m_projectSettings)
+ m_projectSettings->fromMap(map);
}
@@ -223,6 +224,9 @@ RunConfiguration::RunConfiguration(Target *target)
expander->registerVariable(Constants::VAR_CURRENTRUN_NAME,
QCoreApplication::translate("ProjectExplorer", "The currently active run configuration's name."),
[this] { return displayName(); }, false);
+
+ for (const AspectFactory &factory : theAspectFactories)
+ addExtraAspect(factory(this));
}
RunConfiguration::~RunConfiguration()
@@ -233,20 +237,12 @@ RunConfiguration::~RunConfiguration()
void RunConfiguration::initialize(Core::Id id)
{
StatefulProjectConfiguration::initialize(id);
-
- for (const AspectFactory &factory : theAspectFactories)
- addExtraAspect(factory(this));
}
void RunConfiguration::copyFrom(const RunConfiguration *source)
{
- StatefulProjectConfiguration::copyFrom(source);
-
- foreach (IRunConfigurationAspect *aspect, source->m_aspects) {
- IRunConfigurationAspect *clone = aspect->clone(this);
- if (clone)
- m_aspects.append(clone);
- }
+ QVariantMap data = source->toMap();
+ fromMap(data);
}
bool RunConfiguration::isActive() const
diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h
index 7e73c5b0c0..44ac9572a4 100644
--- a/src/plugins/projectexplorer/runconfiguration.h
+++ b/src/plugins/projectexplorer/runconfiguration.h
@@ -102,20 +102,20 @@ public:
explicit IRunConfigurationAspect(RunConfiguration *runConfig);
~IRunConfigurationAspect() override;
- virtual IRunConfigurationAspect *create(RunConfiguration *runConfig) const = 0;
- virtual IRunConfigurationAspect *clone(RunConfiguration *runConfig) const;
-
using RunConfigWidgetCreator = std::function<RunConfigWidget *()>;
void setRunConfigWidgetCreator(const RunConfigWidgetCreator &runConfigWidgetCreator);
RunConfigWidget *createConfigurationWidget() const;
+ void copyFrom(IRunConfigurationAspect *other);
void setId(Core::Id id) { m_id = id; }
void setDisplayName(const QString &displayName) { m_displayName = displayName; }
+ void setSettingsKey(const QString &settingsKey) { m_settingsKey = settingsKey; }
void setProjectSettings(ISettingsAspect *settings);
void setGlobalSettings(ISettingsAspect *settings);
- QString displayName() const { return m_displayName; }
Core::Id id() const { return m_id; }
+ QString displayName() const { return m_displayName; }
+ QString settingsKey() const { return m_settingsKey; }
bool isUsingGlobalSettings() const { return m_useGlobalSettings; }
void setUsingGlobalSettings(bool value);
void resetProjectToGlobalSettings();
@@ -133,6 +133,7 @@ protected:
private:
Core::Id m_id;
QString m_displayName;
+ QString m_settingsKey; // Name of data in settings.
bool m_useGlobalSettings = false;
RunConfiguration *m_runConfiguration = nullptr;
ISettingsAspect *m_projectSettings = nullptr; // Owned if present.
@@ -308,7 +309,7 @@ public:
template <class RunConfig>
static RunConfig *cloneHelper(Target *target, const RunConfiguration *source) {
auto runConfig = new RunConfig(target);
- runConfig->copyFrom(static_cast<const RunConfig *>(source));
+ runConfig->copyFrom(source);
return runConfig;
}
diff --git a/src/plugins/projectexplorer/runconfigurationaspects.cpp b/src/plugins/projectexplorer/runconfigurationaspects.cpp
index 270e600c1d..6b5b204af7 100644
--- a/src/plugins/projectexplorer/runconfigurationaspects.cpp
+++ b/src/plugins/projectexplorer/runconfigurationaspects.cpp
@@ -46,23 +46,12 @@ namespace ProjectExplorer {
\class ProjectExplorer::TerminalAspect
*/
-TerminalAspect::TerminalAspect(RunConfiguration *runConfig, const QString &key,
- bool useTerminal, bool userSet) :
- IRunConfigurationAspect(runConfig),
- m_useTerminal(useTerminal), m_userSet(userSet), m_checkBox(nullptr), m_key(key)
+TerminalAspect::TerminalAspect(RunConfiguration *runConfig, const QString &key, bool useTerminal) :
+ IRunConfigurationAspect(runConfig), m_useTerminal(useTerminal)
{
setDisplayName(tr("Terminal"));
setId("TerminalAspect");
-}
-
-TerminalAspect *TerminalAspect::create(RunConfiguration *runConfig) const
-{
- return new TerminalAspect(runConfig, m_key, false, false);
-}
-
-TerminalAspect *TerminalAspect::clone(RunConfiguration *runConfig) const
-{
- return new TerminalAspect(runConfig, m_key, m_useTerminal, m_userSet);
+ setSettingsKey(key);
}
void TerminalAspect::addToMainConfigurationWidget(QWidget *parent, QFormLayout *layout)
@@ -80,8 +69,8 @@ void TerminalAspect::addToMainConfigurationWidget(QWidget *parent, QFormLayout *
void TerminalAspect::fromMap(const QVariantMap &map)
{
- if (map.contains(m_key)) {
- m_useTerminal = map.value(m_key).toBool();
+ if (map.contains(settingsKey())) {
+ m_useTerminal = map.value(settingsKey()).toBool();
m_userSet = true;
} else {
m_userSet = false;
@@ -91,7 +80,7 @@ void TerminalAspect::fromMap(const QVariantMap &map)
void TerminalAspect::toMap(QVariantMap &data) const
{
if (m_userSet)
- data.insert(m_key, m_useTerminal);
+ data.insert(settingsKey(), m_useTerminal);
}
bool TerminalAspect::useTerminal() const
@@ -129,23 +118,11 @@ void TerminalAspect::setRunMode(ApplicationLauncher::Mode runMode)
*/
WorkingDirectoryAspect::WorkingDirectoryAspect(RunConfiguration *runConfig, const QString &key)
- : IRunConfigurationAspect(runConfig), m_key(key)
+ : IRunConfigurationAspect(runConfig)
{
setDisplayName(tr("Working Directory"));
setId("WorkingDirectoryAspect");
-}
-
-WorkingDirectoryAspect *WorkingDirectoryAspect::create(RunConfiguration *runConfig) const
-{
- return new WorkingDirectoryAspect(runConfig, m_key);
-}
-
-WorkingDirectoryAspect *WorkingDirectoryAspect::clone(RunConfiguration *runConfig) const
-{
- auto * const aspect = new WorkingDirectoryAspect(runConfig, m_key);
- aspect->m_defaultWorkingDirectory = m_defaultWorkingDirectory;
- aspect->m_workingDirectory = m_workingDirectory;
- return aspect;
+ setSettingsKey(key);
}
void WorkingDirectoryAspect::addToMainConfigurationWidget(QWidget *parent, QFormLayout *layout)
@@ -157,7 +134,7 @@ void WorkingDirectoryAspect::addToMainConfigurationWidget(QWidget *parent, QForm
connect(m_resetButton.data(), &QAbstractButton::clicked, this, &WorkingDirectoryAspect::resetPath);
m_chooser = new PathChooser(parent);
- m_chooser->setHistoryCompleter(m_key);
+ m_chooser->setHistoryCompleter(settingsKey());
m_chooser->setExpectedKind(Utils::PathChooser::Directory);
m_chooser->setPromptDialogTitle(tr("Select Working Directory"));
m_chooser->setBaseFileName(m_defaultWorkingDirectory);
@@ -185,7 +162,7 @@ void WorkingDirectoryAspect::addToMainConfigurationWidget(QWidget *parent, QForm
QString WorkingDirectoryAspect::keyForDefaultWd() const
{
- return m_key + QLatin1String(".default");
+ return settingsKey() + ".default";
}
void WorkingDirectoryAspect::resetPath()
@@ -195,7 +172,7 @@ void WorkingDirectoryAspect::resetPath()
void WorkingDirectoryAspect::fromMap(const QVariantMap &map)
{
- m_workingDirectory = FileName::fromString(map.value(m_key).toString());
+ m_workingDirectory = FileName::fromString(map.value(settingsKey()).toString());
m_defaultWorkingDirectory = FileName::fromString(map.value(keyForDefaultWd()).toString());
if (m_workingDirectory.isEmpty())
@@ -204,9 +181,9 @@ void WorkingDirectoryAspect::fromMap(const QVariantMap &map)
void WorkingDirectoryAspect::toMap(QVariantMap &data) const
{
- const QString wd
- = (m_workingDirectory == m_defaultWorkingDirectory) ? QString() : m_workingDirectory.toString();
- data.insert(m_key, wd);
+ const QString wd = m_workingDirectory == m_defaultWorkingDirectory
+ ? QString() : m_workingDirectory.toString();
+ data.insert(settingsKey(), wd);
data.insert(keyForDefaultWd(), m_defaultWorkingDirectory.toString());
}
@@ -257,11 +234,12 @@ PathChooser *WorkingDirectoryAspect::pathChooser() const
\class ProjectExplorer::ArgumentsAspect
*/
-ArgumentsAspect::ArgumentsAspect(RunConfiguration *runConfig, const QString &key, const QString &arguments)
- : IRunConfigurationAspect(runConfig), m_arguments(arguments), m_key(key)
+ArgumentsAspect::ArgumentsAspect(RunConfiguration *runConfig, const QString &key)
+ : IRunConfigurationAspect(runConfig)
{
setDisplayName(tr("Arguments"));
setId("ArgumentsAspect");
+ setSettingsKey(key);
}
QString ArgumentsAspect::arguments() const
@@ -286,29 +264,19 @@ void ArgumentsAspect::setArguments(const QString &arguments)
void ArgumentsAspect::fromMap(const QVariantMap &map)
{
- m_arguments = map.value(m_key).toString();
+ m_arguments = map.value(settingsKey()).toString();
}
void ArgumentsAspect::toMap(QVariantMap &map) const
{
- map.insert(m_key, m_arguments);
-}
-
-ArgumentsAspect *ArgumentsAspect::create(RunConfiguration *runConfig) const
-{
- return new ArgumentsAspect(runConfig, m_key);
-}
-
-ArgumentsAspect *ArgumentsAspect::clone(RunConfiguration *runConfig) const
-{
- return new ArgumentsAspect(runConfig, m_key, m_arguments);
+ map.insert(settingsKey(), m_arguments);
}
void ArgumentsAspect::addToMainConfigurationWidget(QWidget *parent, QFormLayout *layout)
{
QTC_CHECK(!m_chooser);
m_chooser = new FancyLineEdit(parent);
- m_chooser->setHistoryCompleter(m_key);
+ m_chooser->setHistoryCompleter(settingsKey());
m_chooser->setText(m_arguments);
connect(m_chooser.data(), &QLineEdit::textChanged, this, &ArgumentsAspect::setArguments);
diff --git a/src/plugins/projectexplorer/runconfigurationaspects.h b/src/plugins/projectexplorer/runconfigurationaspects.h
index d20fd15526..4d94396ba5 100644
--- a/src/plugins/projectexplorer/runconfigurationaspects.h
+++ b/src/plugins/projectexplorer/runconfigurationaspects.h
@@ -33,7 +33,6 @@
QT_BEGIN_NAMESPACE
class QCheckBox;
class QFormLayout;
-class QLineEdit;
class QToolButton;
QT_END_NAMESPACE
@@ -49,11 +48,8 @@ class PROJECTEXPLORER_EXPORT TerminalAspect : public IRunConfigurationAspect
Q_OBJECT
public:
- explicit TerminalAspect(RunConfiguration *rc, const QString &key,
- bool useTerminal = false, bool userSet = false);
-
- TerminalAspect *create(RunConfiguration *runConfig) const override;
- TerminalAspect *clone(RunConfiguration *runConfig) const override;
+ TerminalAspect(RunConfiguration *rc, const QString &settingsKey,
+ bool useTerminal = false);
void addToMainConfigurationWidget(QWidget *parent, QFormLayout *layout);
@@ -75,7 +71,6 @@ private:
bool m_useTerminal = false;
bool m_userSet = false;
QPointer<QCheckBox> m_checkBox; // Owned by RunConfigWidget
- QString m_key;
};
class PROJECTEXPLORER_EXPORT WorkingDirectoryAspect : public IRunConfigurationAspect
@@ -83,10 +78,7 @@ class PROJECTEXPLORER_EXPORT WorkingDirectoryAspect : public IRunConfigurationAs
Q_OBJECT
public:
- explicit WorkingDirectoryAspect(RunConfiguration *runConfig, const QString &key);
-
- WorkingDirectoryAspect *create(RunConfiguration *runConfig) const override;
- WorkingDirectoryAspect *clone(RunConfiguration *runConfig) const override;
+ explicit WorkingDirectoryAspect(RunConfiguration *runConfig, const QString &settingsKey);
void addToMainConfigurationWidget(QWidget *parent, QFormLayout *layout);
@@ -107,7 +99,6 @@ private:
Utils::FileName m_defaultWorkingDirectory;
QPointer<Utils::PathChooser> m_chooser;
QPointer<QToolButton> m_resetButton;
- QString m_key;
};
class PROJECTEXPLORER_EXPORT ArgumentsAspect : public IRunConfigurationAspect
@@ -115,10 +106,7 @@ class PROJECTEXPLORER_EXPORT ArgumentsAspect : public IRunConfigurationAspect
Q_OBJECT
public:
- explicit ArgumentsAspect(RunConfiguration *runConfig, const QString &key, const QString &arguments = QString());
-
- ArgumentsAspect *create(RunConfiguration *runConfig) const override;
- ArgumentsAspect *clone(RunConfiguration *runConfig) const override;
+ explicit ArgumentsAspect(RunConfiguration *runConfig, const QString &settingsKey);
void addToMainConfigurationWidget(QWidget *parent, QFormLayout *layout);
@@ -136,7 +124,6 @@ private:
QString m_arguments;
QPointer<Utils::FancyLineEdit> m_chooser;
- QString m_key;
};
} // namespace ProjectExplorer
diff --git a/src/plugins/pythoneditor/pythoneditorplugin.cpp b/src/plugins/pythoneditor/pythoneditorplugin.cpp
index 9290a2cd98..b81f02eca5 100644
--- a/src/plugins/pythoneditor/pythoneditorplugin.cpp
+++ b/src/plugins/pythoneditor/pythoneditorplugin.cpp
@@ -167,7 +167,6 @@ public:
private:
friend class ProjectExplorer::IRunConfigurationFactory;
void initialize(Core::Id id);
- void copyFrom(const PythonRunConfiguration *source);
QString defaultDisplayName() const;
@@ -198,13 +197,6 @@ void PythonRunConfiguration::initialize(Core::Id id)
m_interpreter = exec.isEmpty() ? "python" : exec;
}
-void PythonRunConfiguration::copyFrom(const PythonRunConfiguration *source)
-{
- RunConfiguration::copyFrom(source);
- m_interpreter = source->interpreter();
- m_mainScript = source->m_mainScript;
-}
-
QVariantMap PythonRunConfiguration::toMap() const
{
QVariantMap map(RunConfiguration::toMap());
diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
index 7f551609cb..fd0c183535 100644
--- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
+++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.cpp
@@ -144,21 +144,7 @@ void QbsRunConfiguration::initialize(Core::Id id)
{
RunConfiguration::initialize(id);
m_uniqueProductName = uniqueProductNameFromId(id);
- ctor();
-}
-
-void QbsRunConfiguration::copyFrom(const QbsRunConfiguration *source)
-{
- RunConfiguration::copyFrom(source);
- m_uniqueProductName = source->m_uniqueProductName;
- m_currentInstallStep = nullptr; // no need to copy this, we will get if from the DC anyway.
- m_currentBuildStepList = nullptr; // ditto
- ctor();
-}
-
-void QbsRunConfiguration::ctor()
-{
setDefaultDisplayName(defaultDisplayName());
installStepChanged();
}
diff --git a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h
index 5367cd2d90..11541491f3 100644
--- a/src/plugins/qbsprojectmanager/qbsrunconfiguration.h
+++ b/src/plugins/qbsprojectmanager/qbsrunconfiguration.h
@@ -71,15 +71,12 @@ signals:
private:
void initialize(Core::Id id);
- void copyFrom(const QbsRunConfiguration *source);
void installStepChanged();
void installStepToBeRemoved(int pos);
QString baseWorkingDirectory() const;
QString defaultDisplayName();
- void ctor();
-
void updateTarget();
QString m_uniqueProductName;
diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidrunconfiguration.cpp b/src/plugins/qmakeandroidsupport/qmakeandroidrunconfiguration.cpp
index deb380e49c..5d957b8597 100644
--- a/src/plugins/qmakeandroidsupport/qmakeandroidrunconfiguration.cpp
+++ b/src/plugins/qmakeandroidsupport/qmakeandroidrunconfiguration.cpp
@@ -63,19 +63,6 @@ void QmakeAndroidRunConfiguration::initialize(Core::Id id)
AndroidRunConfiguration::initialize(id);
m_proFilePath = pathFromId(id);
- ctor();
-}
-
-void QmakeAndroidRunConfiguration::copyFrom(const QmakeAndroidRunConfiguration *source)
-{
- AndroidRunConfiguration::copyFrom(source);
- m_proFilePath = source->m_proFilePath;
-
- ctor();
-}
-
-void QmakeAndroidRunConfiguration::ctor()
-{
setDefaultDisplayName(defaultDisplayName());
QTC_CHECK(!m_proFilePath.isEmpty());
}
diff --git a/src/plugins/qmakeandroidsupport/qmakeandroidrunconfiguration.h b/src/plugins/qmakeandroidsupport/qmakeandroidrunconfiguration.h
index c0265b9abb..0f1796ddec 100644
--- a/src/plugins/qmakeandroidsupport/qmakeandroidrunconfiguration.h
+++ b/src/plugins/qmakeandroidsupport/qmakeandroidrunconfiguration.h
@@ -55,14 +55,12 @@ public:
private:
friend class ProjectExplorer::IRunConfigurationFactory;
void initialize(Core::Id id);
- void copyFrom(const QmakeAndroidRunConfiguration *source);
bool fromMap(const QVariantMap &map) override;
QVariantMap toMap() const override;
QString defaultDisplayName();
QmakeProjectManager::QmakeProject *qmakeProject() const;
- void ctor();
mutable Utils::FileName m_proFilePath;
};
diff --git a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp
index 60ba152359..c5330b749c 100644
--- a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp
+++ b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.cpp
@@ -85,6 +85,12 @@ DesktopQmakeRunConfiguration::DesktopQmakeRunConfiguration(Target *target)
addExtraAspect(new ArgumentsAspect(this, "Qt4ProjectManager.Qt4RunConfiguration.CommandLineArguments"));
addExtraAspect(new TerminalAspect(this, "Qt4ProjectManager.Qt4RunConfiguration.UseTerminal"));
addExtraAspect(new WorkingDirectoryAspect(this, "Qt4ProjectManager.Qt4RunConfiguration.UserWorkingDirectory"));
+
+ QmakeProject *project = qmakeProject();
+ connect(project, &Project::parsingFinished,
+ this, &DesktopQmakeRunConfiguration::updateTargetInformation);
+ connect(project, &QmakeProject::proFilesEvaluated,
+ this, &DesktopQmakeRunConfiguration::proFileEvaluated);
}
void DesktopQmakeRunConfiguration::initialize(Core::Id id)
@@ -92,17 +98,7 @@ void DesktopQmakeRunConfiguration::initialize(Core::Id id)
RunConfiguration::initialize(id);
m_proFilePath = pathFromId(id);
- ctor();
-}
-
-void DesktopQmakeRunConfiguration::copyFrom(const DesktopQmakeRunConfiguration *source)
-{
- RunConfiguration::copyFrom(source);
- m_proFilePath = source->m_proFilePath;
- m_isUsingDyldImageSuffix = source->m_isUsingDyldImageSuffix;
- m_isUsingLibrarySearchPath = source->m_isUsingLibrarySearchPath;
-
- ctor();
+ updateTargetInformation();
}
void DesktopQmakeRunConfiguration::proFileEvaluated()
@@ -129,19 +125,6 @@ void DesktopQmakeRunConfiguration::updateTargetInformation()
emit effectiveTargetInformationChanged();
}
-void DesktopQmakeRunConfiguration::ctor()
-{
- setDefaultDisplayName(defaultDisplayName());
-
- QmakeProject *project = qmakeProject();
- connect(project, &Project::parsingFinished,
- this, &DesktopQmakeRunConfiguration::updateTargetInformation);
- connect(project, &QmakeProject::proFilesEvaluated,
- this, &DesktopQmakeRunConfiguration::proFileEvaluated);
-
- updateTargetInformation();
-}
-
//////
/// DesktopQmakeRunConfigurationWidget
/////
diff --git a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h
index 5dde3c3534..283cf2d21a 100644
--- a/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h
+++ b/src/plugins/qmakeprojectmanager/desktopqmakerunconfiguration.h
@@ -88,8 +88,6 @@ signals:
protected:
void initialize(Core::Id id);
- void copyFrom(const DesktopQmakeRunConfiguration *source);
-
bool fromMap(const QVariantMap &map) override;
private:
@@ -103,8 +101,6 @@ private:
QmakeProject *qmakeProject() const;
QmakeProFile *proFile() const;
- void ctor();
-
void updateTarget();
Utils::FileName m_proFilePath; // Full path to the Application Pro File
diff --git a/src/plugins/qmlprofiler/qmlprofilerrunconfigurationaspect.cpp b/src/plugins/qmlprofiler/qmlprofilerrunconfigurationaspect.cpp
index fdee60783d..098b53bc97 100644
--- a/src/plugins/qmlprofiler/qmlprofilerrunconfigurationaspect.cpp
+++ b/src/plugins/qmlprofiler/qmlprofilerrunconfigurationaspect.cpp
@@ -46,11 +46,5 @@ QmlProfilerRunConfigurationAspect::QmlProfilerRunConfigurationAspect(
setRunConfigWidgetCreator([this] { return new Debugger::AnalyzerRunConfigWidget(this); });
}
-ProjectExplorer::IRunConfigurationAspect *QmlProfilerRunConfigurationAspect::create(
- ProjectExplorer::RunConfiguration *runConfig) const
-{
- return new QmlProfilerRunConfigurationAspect(runConfig);
-}
-
} // Internal
} // QmlProfiler
diff --git a/src/plugins/qmlprofiler/qmlprofilerrunconfigurationaspect.h b/src/plugins/qmlprofiler/qmlprofilerrunconfigurationaspect.h
index aff08f0a0d..efdf4a7a41 100644
--- a/src/plugins/qmlprofiler/qmlprofilerrunconfigurationaspect.h
+++ b/src/plugins/qmlprofiler/qmlprofilerrunconfigurationaspect.h
@@ -34,9 +34,6 @@ class QmlProfilerRunConfigurationAspect : public ProjectExplorer::IRunConfigurat
{
public:
QmlProfilerRunConfigurationAspect(ProjectExplorer::RunConfiguration *parent);
-
- ProjectExplorer::IRunConfigurationAspect *create(
- ProjectExplorer::RunConfiguration *runConfig) const;
};
} // Internal
diff --git a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
index 1771e3dbc8..626c889551 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.cpp
@@ -64,9 +64,4 @@ QmlProjectEnvironmentAspect::QmlProjectEnvironmentAspect(ProjectExplorer::RunCon
ProjectExplorer::EnvironmentAspect(rc)
{ }
-QmlProjectEnvironmentAspect *QmlProjectEnvironmentAspect::create(ProjectExplorer::RunConfiguration *parent) const
-{
- return new QmlProjectEnvironmentAspect(parent);
-}
-
} // namespace QmlProjectManager
diff --git a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h
index 177d2d89cd..14c460085f 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectenvironmentaspect.h
@@ -35,11 +35,10 @@ class QmlProjectEnvironmentAspect : public ProjectExplorer::EnvironmentAspect
public:
QmlProjectEnvironmentAspect(ProjectExplorer::RunConfiguration *rc);
- QmlProjectEnvironmentAspect *create(ProjectExplorer::RunConfiguration *parent) const;
- QList<int> possibleBaseEnvironments() const;
- QString baseEnvironmentDisplayName(int base) const;
- Utils::Environment baseEnvironment() const;
+ QList<int> possibleBaseEnvironments() const override;
+ QString baseEnvironmentDisplayName(int base) const override;
+ Utils::Environment baseEnvironment() const override;
private:
enum BaseEnvironmentBase {
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
index 5af405891b..2d128f2012 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp
@@ -79,17 +79,6 @@ void QmlProjectRunConfiguration::initialize(Id id)
updateEnabledState();
}
-void QmlProjectRunConfiguration::copyFrom(const QmlProjectRunConfiguration *source)
-{
- RunConfiguration::copyFrom(source);
- m_currentFileFilename = source->m_currentFileFilename;
- m_mainScriptFilename = source->m_mainScriptFilename;
- m_scriptFile = source->m_scriptFile;
- m_qmlViewerArgs = source->m_qmlViewerArgs;
-
- updateEnabledState();
-}
-
Runnable QmlProjectRunConfiguration::runnable() const
{
StandardRunnable r;
diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
index 0dcdf19a59..20b63b4f72 100644
--- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
+++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.h
@@ -78,8 +78,7 @@ signals:
private:
void initialize(Core::Id id);
- void copyFrom(const QmlProjectRunConfiguration *source);
- virtual bool fromMap(const QVariantMap &map) override;
+ bool fromMap(const QVariantMap &map) override;
void changeCurrentFile(Core::IEditor* = 0);
void updateEnabledState() final;
diff --git a/src/plugins/qnx/qnxrunconfiguration.cpp b/src/plugins/qnx/qnxrunconfiguration.cpp
index c7b4b80559..d4145b233f 100644
--- a/src/plugins/qnx/qnxrunconfiguration.cpp
+++ b/src/plugins/qnx/qnxrunconfiguration.cpp
@@ -45,17 +45,6 @@ QnxRunConfiguration::QnxRunConfiguration(Target *target)
: RemoteLinuxRunConfiguration(target)
{}
-void QnxRunConfiguration::initialize(Core::Id id, const QString &targetName)
-{
- RemoteLinuxRunConfiguration::initialize(id, targetName);
-}
-
-void QnxRunConfiguration::copyFrom(const QnxRunConfiguration *source)
-{
- RemoteLinuxRunConfiguration::copyFrom(source);
- m_qtLibPath = source->m_qtLibPath;
-}
-
Runnable QnxRunConfiguration::runnable() const
{
auto r = RemoteLinuxRunConfiguration::runnable().as<StandardRunnable>();
diff --git a/src/plugins/qnx/qnxrunconfiguration.h b/src/plugins/qnx/qnxrunconfiguration.h
index 7ce0ec9114..639badc999 100644
--- a/src/plugins/qnx/qnxrunconfiguration.h
+++ b/src/plugins/qnx/qnxrunconfiguration.h
@@ -37,17 +37,11 @@ class QnxRunConfiguration : public RemoteLinux::RemoteLinuxRunConfiguration
public:
explicit QnxRunConfiguration(ProjectExplorer::Target *target);
+private:
ProjectExplorer::Runnable runnable() const override;
-
QWidget *createConfigurationWidget() override;
- QVariantMap toMap() const override;
-
-private:
- friend class ProjectExplorer::IRunConfigurationFactory;
-
- void copyFrom(const QnxRunConfiguration *source);
- void initialize(Core::Id id, const QString &targetName);
+ QVariantMap toMap() const override;
bool fromMap(const QVariantMap &map) override;
QString m_qtLibPath;
diff --git a/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.cpp b/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.cpp
index 7ae8d9b9fa..9aed504bbe 100644
--- a/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.cpp
+++ b/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.cpp
@@ -109,18 +109,6 @@ void RemoteLinuxCustomRunConfiguration::initialize()
setDefaultDisplayName(runConfigDefaultDisplayName());
}
-void RemoteLinuxCustomRunConfiguration::copyFrom(const RemoteLinuxCustomRunConfiguration *source)
-{
- RunConfiguration::copyFrom(source);
-
- m_localExecutable = source->m_localExecutable;
- m_remoteExecutable = source->m_remoteExecutable;
- m_arguments = source->m_arguments;
- m_workingDirectory = source->m_workingDirectory;
-
- setDefaultDisplayName(runConfigDefaultDisplayName());
-}
-
bool RemoteLinuxCustomRunConfiguration::isConfigured() const
{
return !m_remoteExecutable.isEmpty();
diff --git a/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.h b/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.h
index 06d29cf48c..848e1a2801 100644
--- a/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.h
+++ b/src/plugins/remotelinux/remotelinuxcustomrunconfiguration.h
@@ -37,7 +37,6 @@ public:
explicit RemoteLinuxCustomRunConfiguration(ProjectExplorer::Target *target);
void initialize();
- void copyFrom(const RemoteLinuxCustomRunConfiguration *source);
bool fromMap(const QVariantMap &map) override;
QVariantMap toMap() const override;
diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp b/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
index c9910d5d09..7a2bc8c1ba 100644
--- a/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
+++ b/src/plugins/remotelinux/remotelinuxenvironmentaspect.cpp
@@ -55,11 +55,6 @@ RemoteLinuxEnvironmentAspect::RemoteLinuxEnvironmentAspect(ProjectExplorer::RunC
setRunConfigWidgetCreator([this] { return new RemoteLinuxEnvironmentAspectWidget(this); });
}
-RemoteLinuxEnvironmentAspect *RemoteLinuxEnvironmentAspect::create(ProjectExplorer::RunConfiguration *parent) const
-{
- return new RemoteLinuxEnvironmentAspect(parent);
-}
-
QList<int> RemoteLinuxEnvironmentAspect::possibleBaseEnvironments() const
{
return QList<int>() << static_cast<int>(RemoteBaseEnvironment)
diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
index 227d751906..4a3126340e 100644
--- a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
+++ b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h
@@ -37,7 +37,6 @@ class REMOTELINUX_EXPORT RemoteLinuxEnvironmentAspect : public ProjectExplorer::
public:
RemoteLinuxEnvironmentAspect(ProjectExplorer::RunConfiguration *rc);
- RemoteLinuxEnvironmentAspect *create(ProjectExplorer::RunConfiguration *parent) const override;
QList<int> possibleBaseEnvironments() const override;
QString baseEnvironmentDisplayName(int base) const override;
diff --git a/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp b/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp
index ea8b4f6505..3195634c7a 100644
--- a/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp
+++ b/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp
@@ -88,14 +88,6 @@ void RemoteLinuxRunConfiguration::initialize(Core::Id id, const QString &targetN
setDefaultDisplayName(defaultDisplayName());
}
-void RemoteLinuxRunConfiguration::copyFrom(const RemoteLinuxRunConfiguration *source)
-{
- RunConfiguration::copyFrom(source);
- *d = *source->d;
-
- setDefaultDisplayName(defaultDisplayName());
-}
-
RemoteLinuxRunConfiguration::~RemoteLinuxRunConfiguration()
{
delete d;
diff --git a/src/plugins/remotelinux/remotelinuxrunconfiguration.h b/src/plugins/remotelinux/remotelinuxrunconfiguration.h
index b4ef39a737..9371eba983 100644
--- a/src/plugins/remotelinux/remotelinuxrunconfiguration.h
+++ b/src/plugins/remotelinux/remotelinuxrunconfiguration.h
@@ -75,7 +75,6 @@ signals:
protected:
void initialize(Core::Id id, const QString &targetName);
- void copyFrom(const RemoteLinuxRunConfiguration *source);
bool fromMap(const QVariantMap &map) override;
QString defaultDisplayName();
diff --git a/src/plugins/valgrind/valgrindplugin.cpp b/src/plugins/valgrind/valgrindplugin.cpp
index 4e250b8b19..bc1b9d1827 100644
--- a/src/plugins/valgrind/valgrindplugin.cpp
+++ b/src/plugins/valgrind/valgrindplugin.cpp
@@ -103,11 +103,6 @@ public:
resetProjectToGlobalSettings();
setRunConfigWidgetCreator([this] { return new Debugger::AnalyzerRunConfigWidget(this); });
}
-
- ValgrindRunConfigurationAspect *create(RunConfiguration *parent) const override
- {
- return new ValgrindRunConfigurationAspect(parent);
- }
};
ValgrindPlugin::~ValgrindPlugin()