RunConfigurationAspect: Streamline data serialization

Change-Id: I6f49dd9eeff53eafc51bd5238ca655437df12111
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Reviewed-by: hjk <hjk121@nokiamail.com>
This commit is contained in:
hjk
2013-08-12 17:05:52 +02:00
parent e3ae9e80b5
commit cd460a3638
10 changed files with 36 additions and 41 deletions

View File

@@ -71,11 +71,10 @@ void AnalyzerRunConfigurationAspect::fromMap(const QVariantMap &map)
m_useGlobalSettings = map.value(QLatin1String(useGlobalC), true).toBool(); m_useGlobalSettings = map.value(QLatin1String(useGlobalC), true).toBool();
} }
QVariantMap AnalyzerRunConfigurationAspect::toMap() const void AnalyzerRunConfigurationAspect::toMap(QVariantMap &map) const
{ {
QVariantMap map = m_customConfiguration->toMap(); m_customConfiguration->toMap(map);
map.insert(QLatin1String(useGlobalC), m_useGlobalSettings); map.insert(QLatin1String(useGlobalC), m_useGlobalSettings);
return map;
} }
AnalyzerRunConfigurationAspect *AnalyzerRunConfigurationAspect::clone( AnalyzerRunConfigurationAspect *AnalyzerRunConfigurationAspect::clone(
@@ -97,7 +96,9 @@ void AnalyzerRunConfigurationAspect::resetCustomToGlobalSettings()
{ {
AbstractAnalyzerSubConfig *global = globalSubConfig(); AbstractAnalyzerSubConfig *global = globalSubConfig();
QTC_ASSERT(global, return); QTC_ASSERT(global, return);
m_customConfiguration->fromMap(global->toMap()); QVariantMap map;
global->toMap(map);
m_customConfiguration->fromMap(map);
} }
ProjectExplorer::RunConfigWidget *AnalyzerRunConfigurationAspect::createConfigurationWidget() ProjectExplorer::RunConfigWidget *AnalyzerRunConfigurationAspect::createConfigurationWidget()

View File

@@ -53,7 +53,7 @@ public:
AbstractAnalyzerSubConfig() {} AbstractAnalyzerSubConfig() {}
/// convert current configuration into map for storage /// convert current configuration into map for storage
virtual QVariantMap toMap() const = 0; virtual void toMap(QVariantMap &map) const = 0;
/// read configuration from @p map /// read configuration from @p map
virtual void fromMap(const QVariantMap &map) = 0; virtual void fromMap(const QVariantMap &map) = 0;
@@ -84,7 +84,6 @@ public:
~AnalyzerRunConfigurationAspect(); ~AnalyzerRunConfigurationAspect();
virtual QVariantMap toMap() const;
AnalyzerRunConfigurationAspect *clone(ProjectExplorer::RunConfiguration *parent) const; AnalyzerRunConfigurationAspect *clone(ProjectExplorer::RunConfiguration *parent) const;
bool isUsingGlobalSettings() const { return m_useGlobalSettings; } bool isUsingGlobalSettings() const { return m_useGlobalSettings; }
@@ -97,7 +96,8 @@ public:
ProjectExplorer::RunConfigWidget *createConfigurationWidget(); ProjectExplorer::RunConfigWidget *createConfigurationWidget();
protected: protected:
virtual void fromMap(const QVariantMap &map); void fromMap(const QVariantMap &map);
void toMap(QVariantMap &map) const;
private: private:
bool m_useGlobalSettings; bool m_useGlobalSettings;

View File

@@ -277,16 +277,14 @@ bool DebuggerRunConfigurationAspect::isQmlDebuggingSpinboxSuppressed() const
return dev->canAutoDetectPorts(); return dev->canAutoDetectPorts();
} }
QVariantMap DebuggerRunConfigurationAspect::toMap() const void DebuggerRunConfigurationAspect::toMap(QVariantMap &map) const
{ {
QVariantMap map;
map.insert(QLatin1String(USE_CPP_DEBUGGER_KEY), m_useCppDebugger == EnabledLanguage); map.insert(QLatin1String(USE_CPP_DEBUGGER_KEY), m_useCppDebugger == EnabledLanguage);
map.insert(QLatin1String(USE_CPP_DEBUGGER_AUTO_KEY), m_useCppDebugger == AutoEnabledLanguage); map.insert(QLatin1String(USE_CPP_DEBUGGER_AUTO_KEY), m_useCppDebugger == AutoEnabledLanguage);
map.insert(QLatin1String(USE_QML_DEBUGGER_KEY), m_useQmlDebugger == EnabledLanguage); map.insert(QLatin1String(USE_QML_DEBUGGER_KEY), m_useQmlDebugger == EnabledLanguage);
map.insert(QLatin1String(USE_QML_DEBUGGER_AUTO_KEY), m_useQmlDebugger == AutoEnabledLanguage); map.insert(QLatin1String(USE_QML_DEBUGGER_AUTO_KEY), m_useQmlDebugger == AutoEnabledLanguage);
map.insert(QLatin1String(QML_DEBUG_SERVER_PORT_KEY), m_qmlDebugServerPort); map.insert(QLatin1String(QML_DEBUG_SERVER_PORT_KEY), m_qmlDebugServerPort);
map.insert(QLatin1String(USE_MULTIPROCESS_KEY), m_useMultiProcess); map.insert(QLatin1String(USE_MULTIPROCESS_KEY), m_useMultiProcess);
return map;
} }
void DebuggerRunConfigurationAspect::fromMap(const QVariantMap &map) void DebuggerRunConfigurationAspect::fromMap(const QVariantMap &map)

View File

@@ -54,8 +54,8 @@ public:
AutoEnabledLanguage AutoEnabledLanguage
}; };
QVariantMap toMap() const;
void fromMap(const QVariantMap &map); void fromMap(const QVariantMap &map);
void toMap(QVariantMap &map) const;
DebuggerRunConfigurationAspect *clone(ProjectExplorer::RunConfiguration *parent) const; DebuggerRunConfigurationAspect *clone(ProjectExplorer::RunConfiguration *parent) const;
ProjectExplorer::RunConfigWidget *createConfigurationWidget(); ProjectExplorer::RunConfigWidget *createConfigurationWidget();

View File

@@ -58,14 +58,6 @@ EnvironmentAspect::EnvironmentAspect(const EnvironmentAspect *other, RunConfigur
m_runConfiguration(parent) m_runConfiguration(parent)
{ } { }
QVariantMap EnvironmentAspect::toMap() const
{
QVariantMap data;
data.insert(QLatin1String(BASE_KEY), m_base);
data.insert(QLatin1String(CHANGES_KEY), Utils::EnvironmentItem::toStringList(m_changes));
return data;
}
RunConfigWidget *EnvironmentAspect::createConfigurationWidget() RunConfigWidget *EnvironmentAspect::createConfigurationWidget()
{ {
return new EnvironmentAspectWidget(this); return new EnvironmentAspectWidget(this);
@@ -116,4 +108,10 @@ void EnvironmentAspect::fromMap(const QVariantMap &map)
m_changes = Utils::EnvironmentItem::fromStringList(map.value(QLatin1String(CHANGES_KEY)).toStringList()); m_changes = Utils::EnvironmentItem::fromStringList(map.value(QLatin1String(CHANGES_KEY)).toStringList());
} }
void EnvironmentAspect::toMap(QVariantMap &data) const
{
data.insert(QLatin1String(BASE_KEY), m_base);
data.insert(QLatin1String(CHANGES_KEY), Utils::EnvironmentItem::toStringList(m_changes));
}
} // namespace ProjectExplorer } // namespace ProjectExplorer

View File

@@ -47,7 +47,6 @@ class PROJECTEXPLORER_EXPORT EnvironmentAspect : public IRunConfigurationAspect
public: public:
// IRunConfigurationAspect: // IRunConfigurationAspect:
QVariantMap toMap() const;
RunConfigWidget *createConfigurationWidget(); RunConfigWidget *createConfigurationWidget();
virtual RunConfiguration *runConfiguration() const { return m_runConfiguration; } virtual RunConfiguration *runConfiguration() const { return m_runConfiguration; }
@@ -73,6 +72,7 @@ protected:
EnvironmentAspect(const EnvironmentAspect *other, RunConfiguration *parent); EnvironmentAspect(const EnvironmentAspect *other, RunConfiguration *parent);
EnvironmentAspect(RunConfiguration *rc); EnvironmentAspect(RunConfiguration *rc);
void fromMap(const QVariantMap &map); void fromMap(const QVariantMap &map);
void toMap(QVariantMap &map) const;
private: private:
mutable int m_base; mutable int m_base;

View File

@@ -224,7 +224,7 @@ QVariantMap RunConfiguration::toMap() const
QVariantMap map = ProjectConfiguration::toMap(); QVariantMap map = ProjectConfiguration::toMap();
foreach (IRunConfigurationAspect *aspect, m_aspects) foreach (IRunConfigurationAspect *aspect, m_aspects)
map.unite(aspect->toMap()); aspect->toMap(map);
return map; return map;
} }

View File

@@ -78,7 +78,6 @@ class PROJECTEXPLORER_EXPORT IRunConfigurationAspect : public QObject
public: public:
virtual ~IRunConfigurationAspect() {} virtual ~IRunConfigurationAspect() {}
virtual QVariantMap toMap() const = 0;
virtual IRunConfigurationAspect *clone(RunConfiguration *parent) const = 0; virtual IRunConfigurationAspect *clone(RunConfiguration *parent) const = 0;
virtual RunConfigWidget *createConfigurationWidget(); virtual RunConfigWidget *createConfigurationWidget();
@@ -91,6 +90,7 @@ public:
protected: protected:
friend class RunConfiguration; friend class RunConfiguration;
virtual void fromMap(const QVariantMap &map) = 0; virtual void fromMap(const QVariantMap &map) = 0;
virtual void toMap(QVariantMap &data) const = 0;
private: private:
QString m_displayName; QString m_displayName;

View File

@@ -113,10 +113,8 @@ void ValgrindBaseSettings::fromMap(const QVariantMap &map)
emit changed(); emit changed();
} }
QVariantMap ValgrindBaseSettings::toMap() const void ValgrindBaseSettings::toMap(QVariantMap &map) const
{ {
QVariantMap map;
// General // General
map.insert(QLatin1String(valgrindExeC), m_valgrindExecutable); map.insert(QLatin1String(valgrindExeC), m_valgrindExecutable);
@@ -138,7 +136,6 @@ QVariantMap ValgrindBaseSettings::toMap() const
map.insert(QLatin1String(callgrindMinimumCostRatioC), m_minimumInclusiveCostRatio); map.insert(QLatin1String(callgrindMinimumCostRatioC), m_minimumInclusiveCostRatio);
map.insert(QLatin1String(callgrindVisualisationMinimumCostRatioC), map.insert(QLatin1String(callgrindVisualisationMinimumCostRatioC),
m_visualisationMinimumInclusiveCostRatio); m_visualisationMinimumInclusiveCostRatio);
return map;
} }
void ValgrindBaseSettings::setValgrindExecutable(const QString &valgrindExecutable) void ValgrindBaseSettings::setValgrindExecutable(const QString &valgrindExecutable)
@@ -288,13 +285,15 @@ void ValgrindGlobalSettings::fromMap(const QVariantMap &map)
AbstractAnalyzerSubConfig *ValgrindGlobalSettings::clone() AbstractAnalyzerSubConfig *ValgrindGlobalSettings::clone()
{ {
ValgrindGlobalSettings *other = new ValgrindGlobalSettings; ValgrindGlobalSettings *other = new ValgrindGlobalSettings;
other->fromMap(toMap()); QVariantMap data;
toMap(data);
other->fromMap(data);
return other; return other;
} }
QVariantMap ValgrindGlobalSettings::toMap() const void ValgrindGlobalSettings::toMap(QVariantMap &map) const
{ {
QVariantMap map = ValgrindBaseSettings::toMap(); ValgrindBaseSettings::toMap(map);
// Memcheck // Memcheck
map.insert(QLatin1String(suppressionFilesC), m_suppressionFiles); map.insert(QLatin1String(suppressionFilesC), m_suppressionFiles);
@@ -305,8 +304,6 @@ QVariantMap ValgrindGlobalSettings::toMap() const
map.insert(QLatin1String(callgrindCostFormatC), m_costFormat); map.insert(QLatin1String(callgrindCostFormatC), m_costFormat);
map.insert(QLatin1String(callgrindCycleDetectionC), m_detectCycles); map.insert(QLatin1String(callgrindCycleDetectionC), m_detectCycles);
map.insert(QLatin1String(callgrindShortenTemplates), m_shortenTemplates); map.insert(QLatin1String(callgrindShortenTemplates), m_shortenTemplates);
return map;
} }
// //
@@ -400,7 +397,8 @@ void ValgrindGlobalSettings::writeSettings() const
{ {
QSettings *settings = Core::ICore::settings(); QSettings *settings = Core::ICore::settings();
settings->beginGroup(QLatin1String(groupC)); settings->beginGroup(QLatin1String(groupC));
const QVariantMap map = toMap(); QVariantMap map;
toMap(map);
for (QVariantMap::ConstIterator it = map.begin(); it != map.end(); ++it) for (QVariantMap::ConstIterator it = map.begin(); it != map.end(); ++it)
settings->setValue(it.key(), it.value()); settings->setValue(it.key(), it.value());
settings->endGroup(); settings->endGroup();
@@ -466,19 +464,19 @@ void ValgrindProjectSettings::fromMap(const QVariantMap &map)
AbstractAnalyzerSubConfig *ValgrindProjectSettings::clone() AbstractAnalyzerSubConfig *ValgrindProjectSettings::clone()
{ {
ValgrindProjectSettings *other = new ValgrindProjectSettings; ValgrindProjectSettings *other = new ValgrindProjectSettings;
other->fromMap(toMap()); QVariantMap data;
toMap(data);
other->fromMap(data);
return other; return other;
} }
QVariantMap ValgrindProjectSettings::toMap() const void ValgrindProjectSettings::toMap(QVariantMap &map) const
{ {
QVariantMap map = ValgrindBaseSettings::toMap(); ValgrindBaseSettings::toMap(map);
// Memcheck // Memcheck
map.insert(QLatin1String(addedSuppressionFilesC), m_addedSuppressionFiles); map.insert(QLatin1String(addedSuppressionFilesC), m_addedSuppressionFiles);
map.insert(QLatin1String(removedSuppressionFilesC), m_disabledGlobalSuppressionFiles); map.insert(QLatin1String(removedSuppressionFilesC), m_disabledGlobalSuppressionFiles);
return map;
} }
// //

View File

@@ -53,8 +53,8 @@ class ValgrindBaseSettings : public Analyzer::AbstractAnalyzerSubConfig
public: public:
ValgrindBaseSettings() {} ValgrindBaseSettings() {}
virtual QVariantMap toMap() const; void toMap(QVariantMap &map) const;
virtual void fromMap(const QVariantMap &map); void fromMap(const QVariantMap &map);
signals: signals:
void changed(); // sent when multiple values have changed simulatenously (e.g. fromMap) void changed(); // sent when multiple values have changed simulatenously (e.g. fromMap)
@@ -168,7 +168,7 @@ public:
ValgrindGlobalSettings(); ValgrindGlobalSettings();
QWidget *createConfigWidget(QWidget *parent); QWidget *createConfigWidget(QWidget *parent);
QVariantMap toMap() const; void toMap(QVariantMap &map) const;
void fromMap(const QVariantMap &map); void fromMap(const QVariantMap &map);
virtual AbstractAnalyzerSubConfig *clone(); virtual AbstractAnalyzerSubConfig *clone();
@@ -228,7 +228,7 @@ public:
ValgrindProjectSettings() {} ValgrindProjectSettings() {}
QWidget *createConfigWidget(QWidget *parent); QWidget *createConfigWidget(QWidget *parent);
QVariantMap toMap() const; void toMap(QVariantMap &map) const;
void fromMap(const QVariantMap &map); void fromMap(const QVariantMap &map);
virtual AbstractAnalyzerSubConfig *clone(); virtual AbstractAnalyzerSubConfig *clone();