mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-01-23 13:04:23 +00:00
Better on-demand reloading of torrent data
This commit is contained in:
parent
d639c16f72
commit
1f3bf75fff
@ -4376,6 +4376,9 @@ void Session::handleSessionStatsAlert(const lt::session_stats_alert *p)
|
||||
|
||||
void Session::handleStateUpdateAlert(const lt::state_update_alert *p)
|
||||
{
|
||||
QVector<BitTorrent::TorrentHandle *> updatedTorrents;
|
||||
updatedTorrents.reserve(p->status.size());
|
||||
|
||||
for (const lt::torrent_status &status : p->status) {
|
||||
TorrentHandle *const torrent = m_torrents.value(status.info_hash);
|
||||
|
||||
@ -4383,6 +4386,7 @@ void Session::handleStateUpdateAlert(const lt::state_update_alert *p)
|
||||
continue;
|
||||
|
||||
torrent->handleStateUpdate(status);
|
||||
updatedTorrents.push_back(torrent);
|
||||
}
|
||||
|
||||
m_torrentStatusReport = TorrentStatusReport();
|
||||
@ -4405,7 +4409,7 @@ void Session::handleStateUpdateAlert(const lt::state_update_alert *p)
|
||||
++m_torrentStatusReport.nbErrored;
|
||||
}
|
||||
|
||||
emit torrentsUpdated();
|
||||
emit torrentsUpdated(updatedTorrents);
|
||||
}
|
||||
|
||||
namespace
|
||||
|
@ -450,7 +450,7 @@ namespace BitTorrent
|
||||
|
||||
signals:
|
||||
void statsUpdated();
|
||||
void torrentsUpdated();
|
||||
void torrentsUpdated(const QVector<BitTorrent::TorrentHandle *> &torrents);
|
||||
void addTorrentFailed(const QString &error);
|
||||
void torrentAdded(BitTorrent::TorrentHandle *const torrent);
|
||||
void torrentNew(BitTorrent::TorrentHandle *const torrent);
|
||||
|
@ -315,9 +315,18 @@ void TransferListModel::handleTorrentStatusUpdated(BitTorrent::TorrentHandle *co
|
||||
emit dataChanged(index(row, 0), index(row, columnCount() - 1));
|
||||
}
|
||||
|
||||
void TransferListModel::handleTorrentsUpdated()
|
||||
void TransferListModel::handleTorrentsUpdated(const QVector<BitTorrent::TorrentHandle *> &torrents)
|
||||
{
|
||||
emit dataChanged(index(0, 0), index(rowCount() - 1, columnCount() - 1));
|
||||
const int columns = (columnCount() - 1);
|
||||
|
||||
for (BitTorrent::TorrentHandle *const torrent : torrents) {
|
||||
const int row = m_torrents.indexOf(torrent);
|
||||
|
||||
if (row < 0)
|
||||
continue;
|
||||
|
||||
emit dataChanged(index(row, 0), index(row, columns));
|
||||
}
|
||||
}
|
||||
|
||||
// Static functions
|
||||
|
@ -97,7 +97,7 @@ private slots:
|
||||
void addTorrent(BitTorrent::TorrentHandle *const torrent);
|
||||
void handleTorrentAboutToBeRemoved(BitTorrent::TorrentHandle *const torrent);
|
||||
void handleTorrentStatusUpdated(BitTorrent::TorrentHandle *const torrent);
|
||||
void handleTorrentsUpdated();
|
||||
void handleTorrentsUpdated(const QVector<BitTorrent::TorrentHandle *> &torrents);
|
||||
|
||||
private:
|
||||
QList<BitTorrent::TorrentHandle *> m_torrents;
|
||||
|
Loading…
x
Reference in New Issue
Block a user