Merge pull request #1421 from alfrix/queue_sort

Fix queue sorting order fixes #1120
This commit is contained in:
sledgehammer999 2014-02-11 00:02:45 +02:00
commit 0303d2bf55

View file

@ -66,16 +66,26 @@ protected:
if (!vR.isValid()) return true;
return vL < vR;
} else if (sortColumn() == TorrentModelItem::TR_PEERS || sortColumn() == TorrentModelItem::TR_SEEDS) {
int left_active = sourceModel()->data(left).toInt();
int left_total = sourceModel()->data(left, Qt::UserRole).toInt();
int right_active = sourceModel()->data(right).toInt();
int right_total = sourceModel()->data(right, Qt::UserRole).toInt();
}
else if (sortColumn() == TorrentModelItem::TR_PRIORITY) {
int vL = sourceModel()->data(left).toInt();
int vR = sourceModel()->data(right).toInt();
//finished torrents should be last
if (vL == -1) return false;
if (vR == -1) return true;
return vL < vR;
}
else if (sortColumn() == TorrentModelItem::TR_PEERS || sortColumn() == TorrentModelItem::TR_SEEDS) {
int left_active = sourceModel()->data(left).toInt();
int left_total = sourceModel()->data(left, Qt::UserRole).toInt();
int right_active = sourceModel()->data(right).toInt();
int right_total = sourceModel()->data(right, Qt::UserRole).toInt();
// Active peers/seeds take precedence over total peers/seeds.
if (left_active == right_active)
return (left_total < right_total);
else return (left_active < right_active);
// Active peers/seeds take precedence over total peers/seeds.
if (left_active == right_active)
return (left_total < right_total);
else return (left_active < right_active);
}
return QSortFilterProxyModel::lessThan(left, right);
}