Browse Source

Immediately update torrent status on moving files

PR #19220.
adaptive-webui-19844
Vladimir Golovnev 1 year ago committed by GitHub
parent
commit
1c654d8f47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 5
      src/base/bittorrent/sessionimpl.cpp
  2. 1
      src/base/bittorrent/sessionimpl.h
  3. 11
      src/base/bittorrent/torrentimpl.cpp

5
src/base/bittorrent/sessionimpl.cpp

@ -4963,6 +4963,11 @@ void SessionImpl::handleTorrentInfoHashChanged(TorrentImpl *torrent, const InfoH
} }
} }
void SessionImpl::handleTorrentStorageMovingStateChanged(TorrentImpl *torrent)
{
emit torrentsUpdated({torrent});
}
bool SessionImpl::addMoveTorrentStorageJob(TorrentImpl *torrent, const Path &newPath, const MoveStorageMode mode, const MoveStorageContext context) bool SessionImpl::addMoveTorrentStorageJob(TorrentImpl *torrent, const Path &newPath, const MoveStorageMode mode, const MoveStorageContext context)
{ {
Q_ASSERT(torrent); Q_ASSERT(torrent);

1
src/base/bittorrent/sessionimpl.h

@ -451,6 +451,7 @@ namespace BitTorrent
void handleTorrentUrlSeedsRemoved(TorrentImpl *torrent, const QVector<QUrl> &urlSeeds); void handleTorrentUrlSeedsRemoved(TorrentImpl *torrent, const QVector<QUrl> &urlSeeds);
void handleTorrentResumeDataReady(TorrentImpl *torrent, const LoadTorrentParams &data); void handleTorrentResumeDataReady(TorrentImpl *torrent, const LoadTorrentParams &data);
void handleTorrentInfoHashChanged(TorrentImpl *torrent, const InfoHash &prevInfoHash); void handleTorrentInfoHashChanged(TorrentImpl *torrent, const InfoHash &prevInfoHash);
void handleTorrentStorageMovingStateChanged(TorrentImpl *torrent);
bool addMoveTorrentStorageJob(TorrentImpl *torrent, const Path &newPath, MoveStorageMode mode, MoveStorageContext context); bool addMoveTorrentStorageJob(TorrentImpl *torrent, const Path &newPath, MoveStorageMode mode, MoveStorageContext context);

11
src/base/bittorrent/torrentimpl.cpp

@ -1779,8 +1779,12 @@ void TorrentImpl::moveStorage(const Path &newPath, const MoveStorageContext cont
? MoveStorageMode::Overwrite : MoveStorageMode::KeepExistingFiles; ? MoveStorageMode::Overwrite : MoveStorageMode::KeepExistingFiles;
if (m_session->addMoveTorrentStorageJob(this, newPath, mode, context)) if (m_session->addMoveTorrentStorageJob(this, newPath, mode, context))
{ {
m_storageIsMoving = true; if (!m_storageIsMoving)
updateState(); {
m_storageIsMoving = true;
updateState();
m_session->handleTorrentStorageMovingStateChanged(this);
}
} }
} }
@ -1813,6 +1817,9 @@ void TorrentImpl::handleMoveStorageJobFinished(const Path &path, const MoveStora
if (!m_storageIsMoving) if (!m_storageIsMoving)
{ {
updateState();
m_session->handleTorrentStorageMovingStateChanged(this);
if (m_hasMissingFiles) if (m_hasMissingFiles)
{ {
// it can be moved to the proper location // it can be moved to the proper location

Loading…
Cancel
Save