Fix Incomplete Save Path cannot be changed for torrents without metadata

PR #21152.
Closes #21140.
This commit is contained in:
Vladimir Golovnev 2024-08-08 08:20:26 +03:00 committed by Vladimir Golovnev (Glassez)
parent 827f9d1345
commit d9023c647a
No known key found for this signature in database
GPG key ID: 52A2C7DEE2DFA6F7

View file

@ -425,6 +425,8 @@ Path TorrentImpl::savePath() const
void TorrentImpl::setSavePath(const Path &path)
{
Q_ASSERT(!isAutoTMMEnabled());
if (Q_UNLIKELY(isAutoTMMEnabled()))
return;
const Path basePath = m_session->useCategoryPathsInManualMode()
? m_session->categorySavePath(category()) : m_session->savePath();
@ -452,6 +454,8 @@ Path TorrentImpl::downloadPath() const
void TorrentImpl::setDownloadPath(const Path &path)
{
Q_ASSERT(!isAutoTMMEnabled());
if (Q_UNLIKELY(isAutoTMMEnabled()))
return;
const Path basePath = m_session->useCategoryPathsInManualMode()
? m_session->categoryDownloadPath(category()) : m_session->downloadPath();
@ -1822,9 +1826,18 @@ void TorrentImpl::resume(const TorrentOperatingMode mode)
void TorrentImpl::moveStorage(const Path &newPath, const MoveStorageContext context)
{
if (!hasMetadata())
{
if (context == MoveStorageContext::ChangeSavePath)
{
m_savePath = newPath;
m_session->handleTorrentSavePathChanged(this);
}
else if (context == MoveStorageContext::ChangeDownloadPath)
{
m_downloadPath = newPath;
m_session->handleTorrentSavePathChanged(this);
}
return;
}