From 5e8e3da0c250dbf91c6e0b37c477b080f9e83d87 Mon Sep 17 00:00:00 2001 From: Yat Ho Date: Thu, 19 Mar 2026 23:04:00 +0800 Subject: [PATCH] refactor(qt): use percent complete value from RPC (#8705) --- qt/Session.cc | 2 ++ qt/Torrent.cc | 1 + qt/Torrent.h | 4 +++- 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/qt/Session.cc b/qt/Session.cc index db2fc3849..abbf249cf 100644 --- a/qt/Session.cc +++ b/qt/Session.cc @@ -569,6 +569,7 @@ using TorrentProperties = Session::TorrentProperties; TR_KEY_peers_connected, TR_KEY_peers_getting_from_us, TR_KEY_peers_sending_to_us, + TR_KEY_percent_complete, TR_KEY_percent_done, TR_KEY_primary_mime_type, TR_KEY_queue_position, @@ -619,6 +620,7 @@ using TorrentProperties = Session::TorrentProperties; TR_KEY_peers_connected, TR_KEY_peers_getting_from_us, TR_KEY_peers_sending_to_us, + TR_KEY_percent_complete, TR_KEY_percent_done, TR_KEY_queue_position, TR_KEY_rate_download, diff --git a/qt/Torrent.cc b/qt/Torrent.cc index e15848b36..a6f4ca8a9 100644 --- a/qt/Torrent.cc +++ b/qt/Torrent.cc @@ -214,6 +214,7 @@ Torrent::fields_t Torrent::update(tr_quark const* keys, tr_variant const* const* HANDLE_KEY(peers_connected, peers_connected, PEERS_CONNECTED) HANDLE_KEY(peers_getting_from_us, peers_getting_from_us, PEERS_GETTING_FROM_US) HANDLE_KEY(peers_sending_to_us, peers_sending_to_us, PEERS_SENDING_TO_US) + HANDLE_KEY(percent_complete, percent_complete, PERCENT_COMPLETE) HANDLE_KEY(percent_done, percent_done, PERCENT_DONE) HANDLE_KEY(piece_count, piece_count, PIECE_COUNT) HANDLE_KEY(piece_size, piece_size, PIECE_SIZE) diff --git a/qt/Torrent.h b/qt/Torrent.h index de24c64c8..7bc9e506f 100644 --- a/qt/Torrent.h +++ b/qt/Torrent.h @@ -297,7 +297,7 @@ public: [[nodiscard]] constexpr double percentComplete() const noexcept { - return totalSize() != 0 ? haveTotal() / static_cast(totalSize()) : 0; + return percent_complete_; } [[nodiscard]] constexpr double percentDone() const noexcept @@ -591,6 +591,7 @@ public: PEERS_GETTING_FROM_US, PEERS_SENDING_TO_US, PEER_LIMIT, + PERCENT_COMPLETE, PERCENT_DONE, PIECE_COUNT, PIECE_SIZE, @@ -668,6 +669,7 @@ private: uint64_t uploaded_ever_ = {}; double metadata_percent_complete_ = {}; + double percent_complete_ = {}; double percent_done_ = {}; double recheck_progress_ = {}; double seed_ratio_limit_ = {};