diff --git a/src/qtlibtorrent/qtorrenthandle.cpp b/src/qtlibtorrent/qtorrenthandle.cpp index 1997598fe..8138a3881 100644 --- a/src/qtlibtorrent/qtorrenthandle.cpp +++ b/src/qtlibtorrent/qtorrenthandle.cpp @@ -317,9 +317,7 @@ bool QTorrentHandle::has_missing_files() const { } int QTorrentHandle::queue_position() const { - if (torrent_handle::queue_position() < 0) - return -1; - return torrent_handle::queue_position()+1; + return queue_position(status(0x0)); } bool QTorrentHandle::is_seed() const { @@ -621,6 +619,12 @@ bool QTorrentHandle::is_paused(const libtorrent::torrent_status &status) { return status.paused && !status.auto_managed; } +int QTorrentHandle::queue_position(const libtorrent::torrent_status &status) { + if (status.queue_position < 0) + return -1; + return status.queue_position+1; +} + bool QTorrentHandle::is_queued(const libtorrent::torrent_status &status) { return status.paused && status.auto_managed; } diff --git a/src/qtlibtorrent/qtorrenthandle.h b/src/qtlibtorrent/qtorrenthandle.h index 9c79e93e2..ac6439cc0 100644 --- a/src/qtlibtorrent/qtorrenthandle.h +++ b/src/qtlibtorrent/qtorrenthandle.h @@ -117,6 +117,7 @@ public: bool operator ==(const QTorrentHandle& new_h) const; static bool is_paused(const libtorrent::torrent_status &status); + static int queue_position(const libtorrent::torrent_status &status); static bool is_queued(const libtorrent::torrent_status &status); static bool is_seed(const libtorrent::torrent_status &status); static bool is_checking(const libtorrent::torrent_status &status); diff --git a/src/qtlibtorrent/torrentmodel.cpp b/src/qtlibtorrent/torrentmodel.cpp index dd001711a..6df338eb7 100644 --- a/src/qtlibtorrent/torrentmodel.cpp +++ b/src/qtlibtorrent/torrentmodel.cpp @@ -212,7 +212,7 @@ QVariant TorrentModelItem::data(int column, int role) const case TR_NAME: return m_name.isEmpty() ? m_torrent.name() : m_name; case TR_PRIORITY: { - int pos = m_torrent.queue_position(); + int pos = m_torrent.queue_position(m_lastStatus);; if (pos > -1) return pos - HiddenData::getSize(); else diff --git a/src/webui/btjson.cpp b/src/webui/btjson.cpp index 109c6bb32..77096eb80 100644 --- a/src/webui/btjson.cpp +++ b/src/webui/btjson.cpp @@ -128,12 +128,12 @@ static QVariantMap toMap(const QTorrentHandle& h) QVariantMap ret; ret[KEY_TORRENT_HASH] = h.hash(); ret[KEY_TORRENT_NAME] = h.name(); - ret[KEY_TORRENT_SIZE] = misc::friendlyUnit(h.actual_size()); // FIXME: Should pass as Number, not formatted String (for sorting). + ret[KEY_TORRENT_SIZE] = misc::friendlyUnit(status.total_wanted); // FIXME: Should pass as Number, not formatted String (for sorting). ret[KEY_TORRENT_PROGRESS] = (double)h.progress(status); ret[KEY_TORRENT_DLSPEED] = misc::friendlyUnit(status.download_payload_rate, true); // FIXME: Should be passed as a Number ret[KEY_TORRENT_UPSPEED] = misc::friendlyUnit(status.upload_payload_rate, true); // FIXME: Should be passed as a Number - if (QBtSession::instance()->isQueueingEnabled() && h.queue_position() >= 0) - ret[KEY_TORRENT_PRIORITY] = QString::number(h.queue_position()); + if (QBtSession::instance()->isQueueingEnabled() && h.queue_position(status) >= 0) + ret[KEY_TORRENT_PRIORITY] = QString::number(h.queue_position(status)); else ret[KEY_TORRENT_PRIORITY] = "*"; QString seeds = QString::number(status.num_seeds);