From 2a4647125d6fe25237256dd615c8c0338533a2b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Wed, 6 May 2015 09:00:21 +0200 Subject: GH-942 fix vanilla version list Latest release gets the star Latest snapshot, if it's newer than latest release gets the bug --- logic/BaseVersionList.h | 1 + logic/minecraft/MinecraftVersionList.cpp | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 10 deletions(-) (limited to 'logic') diff --git a/logic/BaseVersionList.h b/logic/BaseVersionList.h index 432f6593..ce36e286 100644 --- a/logic/BaseVersionList.h +++ b/logic/BaseVersionList.h @@ -46,6 +46,7 @@ public: VersionIdRole, ParentGameVersionRole, RecommendedRole, + LatestRole, TypeRole, BranchRole, PathRole, diff --git a/logic/minecraft/MinecraftVersionList.cpp b/logic/minecraft/MinecraftVersionList.cpp index 5f29bfec..0e2cbf90 100644 --- a/logic/minecraft/MinecraftVersionList.cpp +++ b/logic/minecraft/MinecraftVersionList.cpp @@ -364,7 +364,21 @@ QVariant MinecraftVersionList::data(const QModelIndex& index, int role) const return version->descriptor(); case RecommendedRole: - return version->descriptor() == g_VersionFilterData.recommendedMinecraftVersion; + return version->descriptor() == m_latestReleaseID; + + case LatestRole: + { + if(version->descriptor() != m_latestSnapshotID) + return false; + MinecraftVersionPtr latestRelease = std::dynamic_pointer_cast(getLatestStable()); + /* + if(latestRelease && latestRelease->m_releaseTime > version->m_releaseTime) + { + return false; + } + */ + return true; + } case TypeRole: return version->typeString(); @@ -376,7 +390,7 @@ QVariant MinecraftVersionList::data(const QModelIndex& index, int role) const BaseVersionList::RoleList MinecraftVersionList::providesRoles() { - return {VersionPointerRole, VersionRole, VersionIdRole, RecommendedRole, TypeRole}; + return {VersionPointerRole, VersionRole, VersionIdRole, RecommendedRole, LatestRole, TypeRole}; } BaseVersionPtr MinecraftVersionList::getLatestStable() const @@ -388,14 +402,6 @@ BaseVersionPtr MinecraftVersionList::getLatestStable() const BaseVersionPtr MinecraftVersionList::getRecommended() const { - for(auto item: m_vlist) - { - auto version = std::dynamic_pointer_cast(item); - if(version->descriptor() == g_VersionFilterData.recommendedMinecraftVersion) - { - return item; - } - } return getLatestStable(); } -- cgit v1.2.3