diff --git a/src/properties/propertieswidget.cpp b/src/properties/propertieswidget.cpp index 1e88ff6e3..95fd5fd1f 100644 --- a/src/properties/propertieswidget.cpp +++ b/src/properties/propertieswidget.cpp @@ -335,7 +335,7 @@ void PropertiesWidget::loadDynamicData() { // Update next announce time reannounce_lbl->setText(h.next_announce()); // Update ratio info - const qreal ratio = QBtSession::instance()->getRealRatio(h.hash()); + const qreal ratio = QBtSession::instance()->getRealRatio(h); shareRatio->setText(ratio > QBtSession::MAX_RATIO ? QString::fromUtf8("∞") : misc::accurateDoubleToString(ratio, 2)); if (!h.is_seed() && h.has_metadata()) { showPiecesDownloaded(true); diff --git a/src/qtlibtorrent/qbtsession.cpp b/src/qtlibtorrent/qbtsession.cpp index acb6863ce..eeaa1ab31 100755 --- a/src/qtlibtorrent/qbtsession.cpp +++ b/src/qtlibtorrent/qbtsession.cpp @@ -220,7 +220,7 @@ void QBtSession::processBigRatios() { if (!h.is_valid()) continue; if (h.is_seed()) { const QString hash = h.hash(); - const qreal ratio = getRealRatio(hash); + const qreal ratio = getRealRatio(h); qreal ratio_limit = TorrentPersistentData::getRatioLimit(hash); if (ratio_limit == TorrentPersistentData::USE_GLOBAL_RATIO) ratio_limit = global_ratio_limit; @@ -1556,8 +1556,7 @@ bool QBtSession::enableDHT(bool b) { return true; } -qreal QBtSession::getRealRatio(const QString &hash) const { - QTorrentHandle h = getTorrentHandle(hash); +qreal QBtSession::getRealRatio(QTorrentHandle h) const { if (!h.is_valid()) { return 0.; } diff --git a/src/qtlibtorrent/qbtsession.h b/src/qtlibtorrent/qbtsession.h index c0bf51e0b..f69d8d0d0 100755 --- a/src/qtlibtorrent/qbtsession.h +++ b/src/qtlibtorrent/qbtsession.h @@ -92,7 +92,7 @@ public: qreal getPayloadUploadRate() const; libtorrent::session_status getSessionStatus() const; int getListenPort() const; - qreal getRealRatio(const QString& hash) const; + qreal getRealRatio(QTorrentHandle h) const; QHash getTrackersInfo(const QString &hash) const; bool hasActiveTorrents() const; bool hasDownloadingTorrents() const; diff --git a/src/qtlibtorrent/torrentmodel.cpp b/src/qtlibtorrent/torrentmodel.cpp index 58df2e413..2efcdc4f8 100644 --- a/src/qtlibtorrent/torrentmodel.cpp +++ b/src/qtlibtorrent/torrentmodel.cpp @@ -191,10 +191,10 @@ QVariant TorrentModelItem::data(int column, int role) const case TR_ETA: { // XXX: Is this correct? if (m_torrent.is_paused() || m_torrent.is_queued()) return MAX_ETA; - return QBtSession::instance()->getETA(m_torrent.hash()); + return QBtSession::instance()->getETA(m_hash); } case TR_RATIO: - return QBtSession::instance()->getRealRatio(m_torrent.hash()); + return QBtSession::instance()->getRealRatio(m_torrent); case TR_LABEL: return m_label; case TR_ADD_DATE: diff --git a/src/webui/btjson.cpp b/src/webui/btjson.cpp index 373632cd4..b8f87b989 100644 --- a/src/webui/btjson.cpp +++ b/src/webui/btjson.cpp @@ -143,7 +143,7 @@ static JsonDict toJson(const QTorrentHandle& h) if (h.num_incomplete() > 0) leechs += " ("+QString::number(h.num_incomplete())+")"; ret.add(KEY_TORRENT_LEECHS, leechs); - const qreal ratio = QBtSession::instance()->getRealRatio(h.hash()); + const qreal ratio = QBtSession::instance()->getRealRatio(h); ret.add(KEY_TORRENT_RATIO, (ratio > 100.) ? QString::fromUtf8("∞") : misc::accurateDoubleToString(ratio, 1)); QString eta; QString state; @@ -305,7 +305,7 @@ QString btjson::getPropertiesForTorrent(const QString& hash) elapsed_txt += " ("+tr("Seeded for %1", "e.g. Seeded for 3m10s").arg(misc::userFriendlyDuration(h.seeding_time()))+")"; data.add(KEY_PROP_TIME_ELAPSED, elapsed_txt); data.add(KEY_PROP_CONNECT_COUNT, QString(QString::number(h.num_connections()) + " (" + tr("%1 max", "e.g. 10 max").arg(QString::number(h.connections_limit())) + ")")); - const qreal ratio = QBtSession::instance()->getRealRatio(h.hash()); + const qreal ratio = QBtSession::instance()->getRealRatio(h); data.add(KEY_PROP_RATIO, ratio > 100. ? QString::fromUtf8("∞") : misc::accurateDoubleToString(ratio, 1)); } catch(const std::exception& e) { qWarning() << Q_FUNC_INFO << "Invalid torrent: " << e.what();