1
0
mirror of https://github.com/d47081/qBittorrent.git synced 2025-01-09 14:27:56 +00:00

Save fastresumes when changing torrent priorities

This commit is contained in:
thalieht 2018-08-23 07:38:08 +03:00
parent 386d0565fe
commit 95b02bbb2e
2 changed files with 21 additions and 0 deletions

View File

@ -1998,6 +1998,8 @@ void Session::increaseTorrentsPriority(const QStringList &hashes)
torrentQueuePositionUp(torrent->nativeHandle());
torrentQueue.pop();
}
handleTorrentsPrioritiesChanged();
}
void Session::decreaseTorrentsPriority(const QStringList &hashes)
@ -2022,6 +2024,8 @@ void Session::decreaseTorrentsPriority(const QStringList &hashes)
for (auto i = m_loadedMetadata.cbegin(); i != m_loadedMetadata.cend(); ++i)
torrentQueuePositionBottom(m_nativeSession->find_torrent(i.key()));
handleTorrentsPrioritiesChanged();
}
void Session::topTorrentsPriority(const QStringList &hashes)
@ -2043,6 +2047,8 @@ void Session::topTorrentsPriority(const QStringList &hashes)
torrentQueuePositionTop(torrent->nativeHandle());
torrentQueue.pop();
}
handleTorrentsPrioritiesChanged();
}
void Session::bottomTorrentsPriority(const QStringList &hashes)
@ -2067,6 +2073,8 @@ void Session::bottomTorrentsPriority(const QStringList &hashes)
for (auto i = m_loadedMetadata.cbegin(); i != m_loadedMetadata.cend(); ++i)
torrentQueuePositionBottom(m_nativeSession->find_torrent(i.key()));
handleTorrentsPrioritiesChanged();
}
QHash<InfoHash, TorrentHandle *> Session::torrents() const
@ -3531,6 +3539,18 @@ void Session::handleTorrentShareLimitChanged(TorrentHandle *const torrent)
updateSeedingLimitTimer();
}
void Session::handleTorrentsPrioritiesChanged()
{
// Save fastresume for the torrents that changed queue position
for (TorrentHandle *const torrent : torrents()) {
if (!torrent->isSeed()) {
// cached vs actual queue position, qBt starts queue at 1
if (torrent->queuePosition() != (torrent->nativeHandle().queue_position() + 1))
saveTorrentResumeData(torrent);
}
}
}
void Session::saveTorrentResumeData(TorrentHandle *const torrent)
{
qDebug("Saving fastresume data for %s", qUtf8Printable(torrent->name()));

View File

@ -481,6 +481,7 @@ namespace BitTorrent
// TorrentHandle interface
void handleTorrentShareLimitChanged(TorrentHandle *const torrent);
void handleTorrentsPrioritiesChanged();
void handleTorrentNameChanged(TorrentHandle *const torrent);
void handleTorrentSavePathChanged(TorrentHandle *const torrent);
void handleTorrentCategoryChanged(TorrentHandle *const torrent, const QString &oldCategory);