From 8210f9841e9f30225652d9f6cd22da68889b5640 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Sat, 6 Feb 2021 14:59:51 +0300 Subject: [PATCH] Restart "missing files" torrents after changing location --- src/base/bittorrent/torrentimpl.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/src/base/bittorrent/torrentimpl.cpp b/src/base/bittorrent/torrentimpl.cpp index 7235cc022..483742336 100644 --- a/src/base/bittorrent/torrentimpl.cpp +++ b/src/base/bittorrent/torrentimpl.cpp @@ -1387,6 +1387,7 @@ void TorrentImpl::resume(const TorrentOperatingMode mode) { m_hasMissingFiles = false; m_isStopped = false; + m_ltAddTorrentParams.ti = std::const_pointer_cast(m_nativeHandle.torrent_file()); reload(); updateStatus(); return; @@ -1446,8 +1447,21 @@ void TorrentImpl::handleMoveStorageJobFinished(const bool hasOutstandingJob) saveResumeData(); - while ((m_renameCount == 0) && !m_moveFinishedTriggers.isEmpty()) - m_moveFinishedTriggers.takeFirst()(); + if (!m_storageIsMoving) + { + if (m_hasMissingFiles) + { + // it can be moved to the proper location + m_hasMissingFiles = false; + m_ltAddTorrentParams.save_path = m_nativeStatus.save_path; + m_ltAddTorrentParams.ti = std::const_pointer_cast(m_nativeHandle.torrent_file()); + reload(); + updateStatus(); + } + + while ((m_renameCount == 0) && !m_moveFinishedTriggers.isEmpty()) + m_moveFinishedTriggers.takeFirst()(); + } } void TorrentImpl::handleTrackerReplyAlert(const lt::tracker_reply_alert *p)