forked from qt-creator/qt-creator
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:
@@ -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))
|
||||
|
Reference in New Issue
Block a user