Merge pull request #6140 from Chocobo1/relocateNoRemove

After files relocate, don't remove the old folder even if it is empty
This commit is contained in:
sledgehammer999 2017-01-19 15:52:09 +02:00 committed by GitHub
commit fed325a54d
2 changed files with 12 additions and 20 deletions

View File

@ -1286,7 +1286,7 @@ void TorrentHandle::moveStorage(const QString &newPath)
m_queuedPath = newPath;
}
else {
QString oldPath = nativeActualSavePath();
const QString oldPath = nativeActualSavePath();
if (QDir(oldPath) == QDir(newPath)) return;
qDebug("move storage: %s to %s", qPrintable(oldPath), qPrintable(newPath));
@ -1353,7 +1353,7 @@ void TorrentHandle::handleStorageMovedAlert(libtorrent::storage_moved_alert *p)
return;
}
QString newPath = Utils::String::fromStdString(p->path);
const QString newPath = Utils::String::fromStdString(p->path);
if (newPath != m_newPath) {
qWarning() << Q_FUNC_INFO << ": New path doesn't match a path in a queue.";
return;
@ -1373,13 +1373,6 @@ void TorrentHandle::handleStorageMovedAlert(libtorrent::storage_moved_alert *p)
m_session->handleTorrentSavePathChanged(this);
}
// Attempt to remove old folder if empty
QDir oldSaveDir(Utils::Fs::fromNativePath(m_oldPath));
if (oldSaveDir != QDir(m_session->defaultSavePath())) {
qDebug("Attempting to remove %s", qPrintable(m_oldPath));
QDir().rmpath(m_oldPath);
}
while (!isMoveInProgress() && (m_renameCount == 0) && !m_moveFinishedTriggers.isEmpty())
m_moveFinishedTriggers.takeFirst()();
}

View File

@ -249,18 +249,17 @@ void TransferListWidget::setSelectedTorrentsLocation()
const QList<BitTorrent::TorrentHandle *> torrents = getSelectedTorrents();
if (torrents.isEmpty()) return;
QString dir;
const QDir saveDir(torrents[0]->savePath());
qDebug("Old save path is %s", qPrintable(saveDir.absolutePath()));
dir = QFileDialog::getExistingDirectory(this, tr("Choose save path"), saveDir.absolutePath(),
const QString oldLocation = torrents[0]->savePath();
qDebug("Old location is %s", qPrintable(oldLocation));
const QString newLocation = QFileDialog::getExistingDirectory(this, tr("Choose save path"), oldLocation,
QFileDialog::DontConfirmOverwrite | QFileDialog::ShowDirsOnly | QFileDialog::HideNameFilterDetails);
if (!dir.isNull()) {
qDebug("New path is %s", qPrintable(dir));
foreach (BitTorrent::TorrentHandle *const torrent, torrents) {
if (!QDir(newLocation).exists()) return;
qDebug("New location is %s", qPrintable(newLocation));
// Actually move storage
torrent->move(Utils::Fs::expandPathAbs(dir));
}
}
foreach (BitTorrent::TorrentHandle *const torrent, torrents)
torrent->move(Utils::Fs::expandPathAbs(newLocation));
}
void TransferListWidget::pauseAllTorrents()