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