From 5ca90a4a5e779f20f4c02c77efb24cdc9614f5fd Mon Sep 17 00:00:00 2001 From: hjk Date: Thu, 9 Nov 2017 16:06:19 +0100 Subject: [PATCH] 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 Reviewed-by: Christian Kandeler --- .../baremetalcustomrunconfiguration.cpp | 6 -- .../baremetalcustomrunconfiguration.h | 1 - .../baremetal/baremetalrunconfiguration.cpp | 9 --- .../baremetal/baremetalrunconfiguration.h | 1 - .../cmakerunconfiguration.cpp | 11 --- .../cmakerunconfiguration.h | 1 - .../debuggerrunconfigurationaspect.cpp | 6 -- .../debugger/debuggerrunconfigurationaspect.h | 5 +- src/plugins/ios/iosrunconfiguration.cpp | 9 --- src/plugins/ios/iosrunconfiguration.h | 1 - .../customexecutableconfigurationwidget.cpp | 6 +- .../customexecutablerunconfiguration.cpp | 9 --- .../customexecutablerunconfiguration.h | 3 +- .../localenvironmentaspect.cpp | 7 -- .../projectexplorer/localenvironmentaspect.h | 1 - .../projectexplorer/runconfiguration.cpp | 42 +++++------ .../projectexplorer/runconfiguration.h | 11 +-- .../runconfigurationaspects.cpp | 72 ++++++------------- .../projectexplorer/runconfigurationaspects.h | 21 ++---- .../pythoneditor/pythoneditorplugin.cpp | 8 --- .../qbsprojectmanager/qbsrunconfiguration.cpp | 14 ---- .../qbsprojectmanager/qbsrunconfiguration.h | 3 - .../qmakeandroidrunconfiguration.cpp | 13 ---- .../qmakeandroidrunconfiguration.h | 2 - .../desktopqmakerunconfiguration.cpp | 31 ++------ .../desktopqmakerunconfiguration.h | 4 -- .../qmlprofilerrunconfigurationaspect.cpp | 6 -- .../qmlprofilerrunconfigurationaspect.h | 3 - .../qmlprojectenvironmentaspect.cpp | 5 -- .../qmlprojectenvironmentaspect.h | 7 +- .../qmlprojectrunconfiguration.cpp | 11 --- .../qmlprojectrunconfiguration.h | 3 +- src/plugins/qnx/qnxrunconfiguration.cpp | 11 --- src/plugins/qnx/qnxrunconfiguration.h | 12 +--- .../remotelinuxcustomrunconfiguration.cpp | 12 ---- .../remotelinuxcustomrunconfiguration.h | 1 - .../remotelinuxenvironmentaspect.cpp | 5 -- .../remotelinuxenvironmentaspect.h | 1 - .../remotelinuxrunconfiguration.cpp | 8 --- .../remotelinux/remotelinuxrunconfiguration.h | 1 - src/plugins/valgrind/valgrindplugin.cpp | 5 -- 41 files changed, 70 insertions(+), 318 deletions(-) diff --git a/src/plugins/baremetal/baremetalcustomrunconfiguration.cpp b/src/plugins/baremetal/baremetalcustomrunconfiguration.cpp index 9b7b8606be1..1e858fd47b8 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 30812fc3cd9..9425d30ffbf 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 c0155f7bf79..d2a5760d576 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 c5e8e47b00a..98d2cb6faad 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 435c691dde4..67823d4b68f 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 1b04ebb5315..9c9b6f04754 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 8eff840de82..58263c97bb2 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 1a6c67f96e6..87b7bde779d 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 d1c5cc69845..33b7275be47 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 86401ea094c..43c429f8c87 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 e66190d1c32..e5aef0395ff 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 c349e850896..f3fa5488e3d 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 65cdec20c44..5922b01b460 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 9d7cd8dcdc8..e06eeab3534 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 1d394b12ebc..30b4fee3a11 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 BaseEnvironmentModifier; LocalEnvironmentAspect(RunConfiguration *parent, const BaseEnvironmentModifier &modifier); - LocalEnvironmentAspect *create(RunConfiguration *parent) const override; QList possibleBaseEnvironments() const override; QString baseEnvironmentDisplayName(int base) const override; diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 9c81c19dbdc..03843d3a9ea 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 7e73c5b0c05..44ac9572a4d 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; 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 static RunConfig *cloneHelper(Target *target, const RunConfiguration *source) { auto runConfig = new RunConfig(target); - runConfig->copyFrom(static_cast(source)); + runConfig->copyFrom(source); return runConfig; } diff --git a/src/plugins/projectexplorer/runconfigurationaspects.cpp b/src/plugins/projectexplorer/runconfigurationaspects.cpp index 270e600c1d8..6b5b204af71 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 d20fd15526d..4d94396ba5e 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 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 m_chooser; QPointer 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 m_chooser; - QString m_key; }; } // namespace ProjectExplorer diff --git a/src/plugins/pythoneditor/pythoneditorplugin.cpp b/src/plugins/pythoneditor/pythoneditorplugin.cpp index 9290a2cd989..b81f02eca55 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 7f551609cb8..fd0c183535c 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 5367cd2d90e..11541491f31 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 deb380e49ce..5d957b85978 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 c0265b9abbc..0f1796ddeca 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 60ba1523590..c5330b749c9 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 5dde3c35349..283cf2d21a3 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 fdee60783d5..098b53bc971 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 aff08f0a0d8..efdf4a7a41d 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 1771e3dbc87..626c8895518 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 177d2d89cd8..14c460085f6 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 possibleBaseEnvironments() const; - QString baseEnvironmentDisplayName(int base) const; - Utils::Environment baseEnvironment() const; + QList 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 5af405891b8..2d128f20120 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 0dcdf19a59a..20b63b4f72f 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 c7b4b80559b..d4145b233f5 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(); diff --git a/src/plugins/qnx/qnxrunconfiguration.h b/src/plugins/qnx/qnxrunconfiguration.h index 7ce0ec9114a..639badc999c 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); - 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); + ProjectExplorer::Runnable runnable() const override; + QWidget *createConfigurationWidget() override; + 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 7ae8d9b9fad..9aed504bbeb 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 06d29cf48c9..848e1a28019 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 c9910d5d09b..7a2bc8c1ba4 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 RemoteLinuxEnvironmentAspect::possibleBaseEnvironments() const { return QList() << static_cast(RemoteBaseEnvironment) diff --git a/src/plugins/remotelinux/remotelinuxenvironmentaspect.h b/src/plugins/remotelinux/remotelinuxenvironmentaspect.h index 227d751906e..4a3126340ea 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 possibleBaseEnvironments() const override; QString baseEnvironmentDisplayName(int base) const override; diff --git a/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp b/src/plugins/remotelinux/remotelinuxrunconfiguration.cpp index ea8b4f65058..3195634c7ae 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 b4ef39a7370..9371eba983a 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 4e250b8b19d..bc1b9d18279 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()