diff options
author | Petr Mrázek <peterix@gmail.com> | 2017-12-14 02:22:20 +0100 |
---|---|---|
committer | Petr Mrázek <peterix@gmail.com> | 2017-12-14 02:22:20 +0100 |
commit | daf9d0eaa7e762ad8571f91a266098631b1843e6 (patch) | |
tree | d0a707e4742f787f9769c0bbc2c0e0213bd22b48 /api/logic/meta/Version.cpp | |
parent | f18afd3d1e73cc0020bfa1189e0b8fefc0f14e61 (diff) | |
download | PrismLauncher-daf9d0eaa7e762ad8571f91a266098631b1843e6.tar.gz PrismLauncher-daf9d0eaa7e762ad8571f91a266098631b1843e6.tar.bz2 PrismLauncher-daf9d0eaa7e762ad8571f91a266098631b1843e6.zip |
NOISSUE do not override already loaded metadata entities with partial data
Diffstat (limited to 'api/logic/meta/Version.cpp')
-rw-r--r-- | api/logic/meta/Version.cpp | 42 |
1 files changed, 23 insertions, 19 deletions
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<BaseEntity> &other) +void Meta::Version::mergeFromList(const Meta::VersionPtr& other) { - VersionPtr version = std::dynamic_pointer_cast<Version>(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); } } |