diff --git a/src/plugins/analyzerbase/analyzersettings.cpp b/src/plugins/analyzerbase/analyzersettings.cpp index 6244eda84ffd71c341b50901f709ce8296908238..41cb7752c3a7b87cabf2c60cfd7971b63f8b656b 100644 --- a/src/plugins/analyzerbase/analyzersettings.cpp +++ b/src/plugins/analyzerbase/analyzersettings.cpp @@ -46,6 +46,15 @@ static const char useGlobalC[] = "Analyzer.Project.UseGlobal"; namespace Analyzer { +ISettingsAspect *ISettingsAspect::clone() const +{ + ISettingsAspect *other = create(); + QVariantMap data; + toMap(data); + other->fromMap(data); + return other; +} + AnalyzerRunConfigurationAspect::AnalyzerRunConfigurationAspect(ISettingsAspect *projectSettings, ISettingsAspect *globalSettings) { diff --git a/src/plugins/analyzerbase/analyzersettings.h b/src/plugins/analyzerbase/analyzersettings.h index 7b05bab8bd71aefcb25955bdb4f3e6afda3db3cd..948701b186fdd4dfca1f068c5a813ac41e9ec66f 100644 --- a/src/plugins/analyzerbase/analyzersettings.h +++ b/src/plugins/analyzerbase/analyzersettings.h @@ -59,8 +59,10 @@ public: /// Create a configuration widget for this settings aspect. virtual QWidget *createConfigWidget(QWidget *parent) = 0; - /// Clones the object. - virtual ISettingsAspect *clone() = 0; + /// "Virtual default constructor" + virtual ISettingsAspect *create() const = 0; + /// "Virtual copy constructor" + ISettingsAspect *clone() const; }; diff --git a/src/plugins/valgrind/valgrindsettings.cpp b/src/plugins/valgrind/valgrindsettings.cpp index 058a975d3abb1b2697d5b63440000d9218e28e97..0756c561e648bf1a1afcd766488c34f53f256919 100644 --- a/src/plugins/valgrind/valgrindsettings.cpp +++ b/src/plugins/valgrind/valgrindsettings.cpp @@ -282,15 +282,6 @@ void ValgrindGlobalSettings::fromMap(const QVariantMap &map) setIfPresent(map, QLatin1String(callgrindShortenTemplates), &m_shortenTemplates); } -ISettingsAspect *ValgrindGlobalSettings::clone() -{ - ValgrindGlobalSettings *other = new ValgrindGlobalSettings; - QVariantMap data; - toMap(data); - other->fromMap(data); - return other; -} - void ValgrindGlobalSettings::toMap(QVariantMap &map) const { ValgrindBaseSettings::toMap(map); @@ -461,15 +452,6 @@ void ValgrindProjectSettings::fromMap(const QVariantMap &map) setIfPresent(map, QLatin1String(removedSuppressionFilesC), &m_disabledGlobalSuppressionFiles); } -ISettingsAspect *ValgrindProjectSettings::clone() -{ - ValgrindProjectSettings *other = new ValgrindProjectSettings; - QVariantMap data; - toMap(data); - other->fromMap(data); - return other; -} - void ValgrindProjectSettings::toMap(QVariantMap &map) const { ValgrindBaseSettings::toMap(map); diff --git a/src/plugins/valgrind/valgrindsettings.h b/src/plugins/valgrind/valgrindsettings.h index 22ff1f6248c2021fb4d6b2f8a72e36aaa3537847..cd2494cced2a6f21e64ef4ea765770348c630a56 100644 --- a/src/plugins/valgrind/valgrindsettings.h +++ b/src/plugins/valgrind/valgrindsettings.h @@ -170,7 +170,8 @@ public: QWidget *createConfigWidget(QWidget *parent); void toMap(QVariantMap &map) const; void fromMap(const QVariantMap &map); - virtual ISettingsAspect *clone(); + ISettingsAspect *create() const { return new ValgrindGlobalSettings; } + /* * Global memcheck settings @@ -230,7 +231,7 @@ public: QWidget *createConfigWidget(QWidget *parent); void toMap(QVariantMap &map) const; void fromMap(const QVariantMap &map); - virtual ISettingsAspect *clone(); + ISettingsAspect *create() const { return new ValgrindProjectSettings; } /** * Per-project memcheck settings, saves a diff to the global suppression files list