ProjectExplorer: Fix sorting predicate to have a strict weak order

Fixes random crashes when opening the 'Manage session' dialog.

Amends 8c0906e8fb

Fixes: QTCREATORBUG-24797
Change-Id: Ic3118163d1a9a10eacc1ea1cc90f54c86ac790d9
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
This commit is contained in:
Alexandru Croitor
2020-10-19 18:26:20 +02:00
parent f21d0b531f
commit fb0db5c745

View File

@@ -183,10 +183,18 @@ void SessionModel::sort(int column, Qt::SortOrder order)
beginResetModel();
const auto cmp = [column, order](const QString &s1, const QString &s2) {
bool isLess;
if (column == 0)
if (column == 0) {
if (s1 == s2)
return false;
isLess = s1 < s2;
else
isLess = SessionManager::sessionDateTime(s1) < SessionManager::sessionDateTime(s2);
}
else {
const auto s1time = SessionManager::sessionDateTime(s1);
const auto s2time = SessionManager::sessionDateTime(s2);
if (s1time == s2time)
return false;
isLess = s1time < s2time;
}
if (order == Qt::DescendingOrder)
isLess = !isLess;
return isLess;