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 <eike.ziller@qt.io>
This commit is contained in:
Alessandro Portale
2024-07-01 17:55:38 +02:00
parent f207707cc9
commit 8b1c7d3865

View File

@@ -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<QVersionNumber>();
if (versionB.isNull())
return true;
const QVersionNumber versionA = a->data(kVersionRole).value<QVersionNumber>();
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))