Fix previous commit.

This commit is contained in:
sledgehammer999 2017-02-06 18:28:49 +02:00
parent 37673cd86f
commit 7c85866881
No known key found for this signature in database
GPG key ID: 6E4A2D025B7CC9A2
2 changed files with 9 additions and 11 deletions

View file

@ -86,7 +86,7 @@ bool TransferListSortModel::lessThan(const QModelIndex &left, const QModelIndex
case TorrentModel::TR_ADD_DATE:
case TorrentModel::TR_SEED_DATE:
case TorrentModel::TR_SEEN_COMPLETE_DATE: {
return dateLessThan(column, left, right);
return dateLessThan(sortColumn(), left, right, true);
}
case TorrentModel::TR_PRIORITY: {
@ -138,12 +138,10 @@ bool TransferListSortModel::lessThan(const QModelIndex &left, const QModelIndex
}
if (invalidL && invalidR) {
if (seedingL) { //Both seeding
return dateLessThan(TorrentModelItem::TR_SEED_DATE, left, right);
}
else {
if (seedingL) //Both seeding
return dateLessThan(TorrentModel::TR_SEED_DATE, left, right, true);
else
return prioL < prioR;
}
}
else if (!invalidL && !invalidR) {
return etaL < etaR;
@ -196,13 +194,13 @@ bool TransferListSortModel::lowerPositionThan(const QModelIndex &left, const QMo
}
// Sort according to TR_SEED_DATE
return dateLessThan(TorrentModelItem::TR_SEED_DATE, left, right);
return dateLessThan(TorrentModel::TR_SEED_DATE, left, right, false);
}
// Every time we compare QDateTimes we need a fallback comparison in case both
// values are empty. This is a workaround for unstable sort in QSortFilterProxyModel
// (detailed discussion in #2526 and #2158).
bool TransferListSortModel::dateLessThan(const int dateColumn, const QModelIndex &left, const QModelIndex &right) const
bool TransferListSortModel::dateLessThan(const int dateColumn, const QModelIndex &left, const QModelIndex &right, bool sortInvalidInBottom) const
{
const TorrentModel *model = dynamic_cast<TorrentModel*>(sourceModel());
const QDateTime dateL = model->data(model->index(left.row(), dateColumn)).toDateTime();
@ -212,9 +210,9 @@ bool TransferListSortModel::dateLessThan(const int dateColumn, const QModelIndex
return dateL < dateR;
}
else if (dateL.isValid())
return false;
return sortInvalidInBottom;
else if (dateR.isValid())
return true;
return !sortInvalidInBottom;
// Finally, sort by hash
const QString hashL(model->torrentHandle(model->index(left.row()))->hash());

View file

@ -52,7 +52,7 @@ public:
private:
bool lessThan(const QModelIndex &left, const QModelIndex &right) const;
bool lowerPositionThan(const QModelIndex &left, const QModelIndex &right) const;
bool dateLessThan(const int dateColumn, const QModelIndex &left, const QModelIndex &right) const;
bool dateLessThan(const int dateColumn, const QModelIndex &left, const QModelIndex &right, bool sortInvalidInBottom) const;
bool filterAcceptsRow(int sourceRow, const QModelIndex &sourceParent) const;
bool matchFilter(int sourceRow, const QModelIndex &sourceParent) const;