From daf9d0eaa7e762ad8571f91a266098631b1843e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Thu, 14 Dec 2017 02:22:20 +0100 Subject: NOISSUE do not override already loaded metadata entities with partial data --- api/logic/meta/Version.cpp | 42 +++++++++++++++++++++++------------------- 1 file changed, 23 insertions(+), 19 deletions(-) (limited to 'api/logic/meta/Version.cpp') diff --git a/api/logic/meta/Version.cpp b/api/logic/meta/Version.cpp index d82878a1..55b92966 100644 --- a/api/logic/meta/Version.cpp +++ b/api/logic/meta/Version.cpp @@ -54,43 +54,47 @@ void Meta::Version::parse(const QJsonObject& obj) parseVersion(obj, this); } -void Meta::Version::merge(const std::shared_ptr &other) +void Meta::Version::mergeFromList(const Meta::VersionPtr& other) { - VersionPtr version = std::dynamic_pointer_cast(other); - if(version->m_providesRecommendations) + if(other->m_providesRecommendations) { - if(m_recommended != version->m_recommended) + if(m_recommended != other->m_recommended) { - setRecommended(version->m_recommended); + setRecommended(other->m_recommended); } } - if (m_type != version->m_type) + if (m_type != other->m_type) { - setType(version->m_type); + setType(other->m_type); } - if (m_time != version->m_time) + if (m_time != other->m_time) { - setTime(version->m_time); + setTime(other->m_time); } - if (m_requires != version->m_requires) + if (m_requires != other->m_requires) { - m_requires = version->m_requires; + m_requires = other->m_requires; } - if (m_conflicts != version->m_conflicts) + if (m_conflicts != other->m_conflicts) { - m_conflicts = version->m_conflicts; + m_conflicts = other->m_conflicts; } - if (m_parentUid != version->m_parentUid) + if (m_parentUid != other->m_parentUid) { - setParentUid(version->m_parentUid); + setParentUid(other->m_parentUid); } - if(m_volatile != version->m_volatile) + if(m_volatile != other->m_volatile) { - setVolatile(version->m_volatile); + setVolatile(other->m_volatile); } - if(version->m_data) +} + +void Meta::Version::merge(const VersionPtr &other) +{ + mergeFromList(other); + if(other->m_data) { - setData(version->m_data); + setData(other->m_data); } } -- cgit v1.2.3