diff --git a/src/libs/utils/aspects.h b/src/libs/utils/aspects.h index 762b71c023c..0bdecdbd605 100644 --- a/src/libs/utils/aspects.h +++ b/src/libs/utils/aspects.h @@ -97,6 +97,7 @@ public: virtual void fromMap(const QVariantMap &map); virtual void toMap(QVariantMap &map) const; + virtual void toActiveMap(QVariantMap &map) const { toMap(map); } virtual void acquaintSiblings(const BaseAspects &); virtual void addToLayout(LayoutBuilder &builder); diff --git a/src/plugins/projectexplorer/runconfiguration.cpp b/src/plugins/projectexplorer/runconfiguration.cpp index 953fd1b91e4..b6759ee5f52 100644 --- a/src/plugins/projectexplorer/runconfiguration.cpp +++ b/src/plugins/projectexplorer/runconfiguration.cpp @@ -134,6 +134,16 @@ void GlobalOrProjectAspect::toMap(QVariantMap &map) const map.insert(id().toString() + ".UseGlobalSettings", m_useGlobalSettings); } +void GlobalOrProjectAspect::toActiveMap(QVariantMap &data) const +{ + if (m_useGlobalSettings) + m_globalSettings->toMap(data); + else if (m_projectSettings) + m_projectSettings->toMap(data); + else + QTC_CHECK(false); +} + void GlobalOrProjectAspect::resetProjectToGlobalSettings() { QTC_ASSERT(m_globalSettings, return); @@ -235,7 +245,7 @@ QMap RunConfiguration::aspectData() const { QMap data; for (BaseAspect *aspect : qAsConst(m_aspects)) - aspect->toMap(data[aspect->id()]); + aspect->toActiveMap(data[aspect->id()]); return data; } diff --git a/src/plugins/projectexplorer/runconfiguration.h b/src/plugins/projectexplorer/runconfiguration.h index 9382c46be0c..38f1170f6cd 100644 --- a/src/plugins/projectexplorer/runconfiguration.h +++ b/src/plugins/projectexplorer/runconfiguration.h @@ -114,6 +114,7 @@ protected: friend class RunConfiguration; void fromMap(const QVariantMap &map) override; void toMap(QVariantMap &data) const override; + void toActiveMap(QVariantMap &data) const override; private: bool m_useGlobalSettings = false;