From 8b1c7d3865ebba38bfff8d58bc8d9cfadc8b81a3 Mon Sep 17 00:00:00 2001 From: Alessandro Portale Date: Mon, 1 Jul 2024 17:55:38 +0200 Subject: [PATCH] QtSupport: Stabilize Example sets sorting Design Studio examples entries come without version numbers. The lessThan implementation was called twice with the same two QDS items. To my understanding lessThan confused the algorithm by returning contradicting results. With this change only different QVersionNumbers are lessThan-ranked. Change-Id: I24fed43457c1f53c3fea693b20bdf2fd4db44b7a Reviewed-by: Eike Ziller --- src/plugins/qtsupport/exampleslistmodel.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/plugins/qtsupport/exampleslistmodel.cpp b/src/plugins/qtsupport/exampleslistmodel.cpp index 01c808275d3..bd73137b00d 100644 --- a/src/plugins/qtsupport/exampleslistmodel.cpp +++ b/src/plugins/qtsupport/exampleslistmodel.cpp @@ -161,14 +161,10 @@ void ExampleSetModel::recreateModel(const QtVersions &qtVersionsIn) // Sort by Qt version, example sets not associated to Qt last Utils::sort(items, [](QStandardItem *a, QStandardItem *b) { const QVersionNumber versionB = b->data(kVersionRole).value(); - if (versionB.isNull()) - return true; const QVersionNumber versionA = a->data(kVersionRole).value(); - if (versionA.isNull()) - return false; - if (versionA == versionB) - return a->data(Qt::DisplayRole).toString() < b->data(Qt::DisplayRole).toString(); - return versionA < versionB; + if (versionA != versionB) + return versionA < versionB; + return a->data(Qt::DisplayRole).toString() < b->data(Qt::DisplayRole).toString(); }); for (QStandardItem *item : std::as_const(items))