Fix "Set location" action

This commit is contained in:
Christophe Dumez 2010-08-18 08:46:04 +00:00
parent ff16f59be1
commit e7e5a2b4e9
3 changed files with 10 additions and 3 deletions

View file

@ -69,6 +69,7 @@ public:
QWidget* getCurrentTabWidget() const;
TransferListWidget* getTransferList() const { return transferList; }
QMenu* getTrayIconMenu();
PropertiesWidget *getProperties() const { return properties; }
public slots:
void trackerAuthenticationRequired(QTorrentHandle& h);

View file

@ -99,7 +99,6 @@ protected slots:
void filteredFilesChanged();
void showPiecesDownloaded(bool show);
void showPiecesAvailability(bool show);
void updateSavePath(QTorrentHandle& h);
void renameSelectedFile();
void selectAllFiles();
void selectNoneFiles();
@ -113,6 +112,7 @@ public slots:
void saveSettings();
void reloadPreferences();
void openDoubleClickedFile(QModelIndex);
void updateSavePath(QTorrentHandle& h);
};

View file

@ -38,6 +38,7 @@
#include "GUI.h"
#include "preferences.h"
#include "deletionconfirmationdlg.h"
#include "propertieswidget.h"
#include <libtorrent/version.hpp>
#include <QStandardItemModel>
#include <QSortFilterProxyModel>
@ -630,7 +631,8 @@ void TransferListWidget::setSelectedTorrentsLocation() {
const QStringList hashes = getSelectedTorrentsHashes();
if(hashes.isEmpty()) return;
QString dir;
const QDir saveDir(BTSession->getTorrentHandle(hashes.first()).save_path());
const QDir saveDir(TorrentPersistentData::getSavePath(hashes.first()));
qDebug("Torrent save path is %s", qPrintable(saveDir.absolutePath()));
if(saveDir.exists()){
dir = QFileDialog::getExistingDirectory(this, tr("Choose save path"), saveDir.path());
}else{
@ -648,8 +650,12 @@ void TransferListWidget::setSelectedTorrentsLocation() {
foreach(const QString & hash, hashes) {
// Actually move storage
QTorrentHandle h = BTSession->getTorrentHandle(hash);
if(!BTSession->useTemporaryFolder() || h.is_seed())
if(!BTSession->useTemporaryFolder() || h.is_seed()) {
h.move_storage(savePath.absolutePath());
} else {
TorrentPersistentData::saveSavePath(h.hash(), savePath.absolutePath());
main_window->getProperties()->updateSavePath(h);
}
}
}
}