diff --git a/src/plugins/studiowelcome/studiowelcomeplugin.cpp b/src/plugins/studiowelcome/studiowelcomeplugin.cpp index fae0c83d41d..5cbc0b673cb 100644 --- a/src/plugins/studiowelcome/studiowelcomeplugin.cpp +++ b/src/plugins/studiowelcome/studiowelcomeplugin.cpp @@ -338,30 +338,27 @@ public: if (exampleVersion.isEmpty()) return true; - const QStringList exampleVersionParts = exampleVersion.split('.'); - const QStringList qdsVersionParts = QCoreApplication::applicationVersion().split('.'); + // Split versions into parts (major, minor, patch) + QStringList qdsVersionParts = QCoreApplication::applicationVersion().split('.'); + QStringList exampleVersionParts = exampleVersion.split('.'); - QList exampleVerInts; - QList qdsVerInts; - for (const QString &part : exampleVersionParts) - exampleVerInts.append(part.toInt()); + // Fill missing parts with zeros + while (qdsVersionParts.size() < 3) + qdsVersionParts.append("0"); - for (const QString &part : qdsVersionParts) - qdsVerInts.append(part.toInt()); + while (exampleVersionParts.size() < 3) + exampleVersionParts.append("0"); - // pad zeros so both lists are same size - while (qdsVerInts.size() < exampleVerInts.size()) - qdsVerInts.append(0); + int qdsMajor = qdsVersionParts.at(0).toInt(); + int qdsMinor = qdsVersionParts.at(1).toInt(); + int qdsPatch = qdsVersionParts.at(2).toInt(); - while (exampleVerInts.size() < qdsVerInts.size()) - exampleVerInts.append(0); + int exMajor = exampleVersionParts.at(0).toInt(); + int exMinor = exampleVersionParts.at(1).toInt(); + int exPatch = exampleVersionParts.at(2).toInt(); - for (int i = 0; i < qdsVerInts.size(); ++i) { - if (exampleVerInts[i] < qdsVerInts[i]) - return false; - } - - return true; + return QT_VERSION_CHECK(exMajor, exMinor, exPatch) + <= QT_VERSION_CHECK(qdsMajor, qdsMinor, qdsPatch); } public slots: