From 8eb93e0d226dae96ae05b9169aece61cd8f962da Mon Sep 17 00:00:00 2001 From: Peter Repukat Date: Mon, 3 Oct 2022 10:53:11 +0200 Subject: [PATCH] GlosSIConfig: Refactor update check filter --- GlosSIConfig/UIModel.cpp | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/GlosSIConfig/UIModel.cpp b/GlosSIConfig/UIModel.cpp index a482a57..04e1371 100644 --- a/GlosSIConfig/UIModel.cpp +++ b/GlosSIConfig/UIModel.cpp @@ -501,18 +501,28 @@ void UIModel::onAvailFilesResponse(QNetworkReply* reply) versionSplits[3].toInt(), versionString.count('-') == 2 ? versionString.split("-")[1].toInt() : 0}}; }) | std::views::filter([](const auto& info) { - return info.second.major > version::VERSION_MAJOR || - (info.second.minor > version::VERSION_MINOR && info.second.major >= version::VERSION_MAJOR) || - (info.second.patch > version::VERSION_PATCH && info.second.major >= version::VERSION_MAJOR - && info.second.minor >= version::VERSION_MINOR) || - (info.second.revision > version::VERSION_REVISION && - info.second.major >= version::VERSION_MAJOR && info.second.minor >= version::VERSION_MINOR && - info.second.patch >= version::VERSION_PATCH) || - (info.second.commits_since_last > (QString(version::VERSION_STR).count('-') == 2 - ? QString(version::VERSION_STR).split("-")[1].toInt() - : 0) && - info.second.major >= version::VERSION_MAJOR && info.second.minor >= version::VERSION_MINOR && - info.second.patch >= version::VERSION_PATCH && info.second.revision >= version::VERSION_REVISION ); + if (info.second.major > version::VERSION_MAJOR) { + return true; + } + if (info.second.major == version::VERSION_MAJOR && info.second.minor > version::VERSION_MINOR) { + return true; + } + if (info.second.major == version::VERSION_MAJOR && info.second.minor == version::VERSION_MINOR && + info.second.patch > version::VERSION_PATCH) { + return true; + } + if (info.second.major == version::VERSION_MAJOR && info.second.minor == version::VERSION_MINOR && + info.second.patch == version::VERSION_PATCH && info.second.revision > version::VERSION_REVISION) { + return true; + } + if (info.second.major == version::VERSION_MAJOR && info.second.minor == version::VERSION_MINOR && + info.second.patch == version::VERSION_PATCH && info.second.revision == version::VERSION_REVISION && + info.second.commits_since_last > (QString(version::VERSION_STR).count('-') == 2 + ? QString(version::VERSION_STR).split("-")[1].toInt() + : 0)) { + return true; + } + return false; }) | std::ranges::views::all) { new_versions.push_back(info); }