1
mirror of https://github.com/qbittorrent/qBittorrent synced 2024-10-22 06:11:55 +02:00

Merge pull request #8185 from sledgehammer999/fix_status_state

Fix constant status of '[F] Downloading'. Closes #7628.
This commit is contained in:
sledgehammer999 2018-01-02 18:13:10 +02:00 committed by GitHub
commit 38d3eea6ee
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 15 additions and 1 deletions

View File

@ -184,7 +184,7 @@ QVariant TorrentModel::data(const QModelIndex &index, int role) const
case TR_PROGRESS:
return torrent->progress();
case TR_STATUS:
return static_cast<int>(torrent->state());
return QVariant::fromValue(torrent->state());
case TR_SEEDS:
return (role == Qt::DisplayRole) ? torrent->seedsCount() : torrent->totalSeedsCount();
case TR_PEERS:

View File

@ -98,6 +98,20 @@ bool TransferListSortModel::lessThan(const QModelIndex &left, const QModelIndex
return (result < 0);
}
case TorrentModel::TR_STATUS: {
// QSortFilterProxyModel::lessThan() uses the < operator only for specific QVariant types
// so our custom type is outside that list.
// In this case QSortFilterProxyModel::lessThan() converts other types to QString and
// sorts them.
// Thus we can't use the code in the default label.
const BitTorrent::TorrentState leftValue = left.data().value<BitTorrent::TorrentState>();
const BitTorrent::TorrentState rightValue = right.data().value<BitTorrent::TorrentState>();
if (leftValue != rightValue)
return leftValue < rightValue;
return lowerPositionThan(left, right);
}
case TorrentModel::TR_ADD_DATE:
case TorrentModel::TR_SEED_DATE:
case TorrentModel::TR_SEEN_COMPLETE_DATE: {