diff --git a/src/addnewtorrentdialog.cpp b/src/addnewtorrentdialog.cpp index 2a6f8e9c8..890b552ad 100644 --- a/src/addnewtorrentdialog.cpp +++ b/src/addnewtorrentdialog.cpp @@ -65,7 +65,7 @@ AddNewTorrentDialog::AddNewTorrentDialog(QWidget *parent) : QIniSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent")); Preferences pref; ui->start_torrent_cb->setChecked(!pref.addTorrentsInPause()); - ui->save_path_combo->addItem(fsutils::toDisplayPath(pref.getSavePath())); + ui->save_path_combo->addItem(fsutils::toDisplayPath(pref.getSavePath()), pref.getSavePath()); loadSavePathHistory(); ui->save_path_combo->insertSeparator(ui->save_path_combo->count()); ui->save_path_combo->addItem(tr("Other...", "Other save path...")); @@ -594,6 +594,8 @@ void AddNewTorrentDialog::on_buttonBox_accepted() saveSavePathHistory(); // Save settings pref.useAdditionDialog(!ui->never_show_cb->isChecked()); - if (ui->default_save_path_cb->isChecked()) + if (ui->default_save_path_cb->isChecked()) { pref.setSavePath(ui->save_path_combo->itemData(ui->save_path_combo->currentIndex()).toString()); + QBtSession::instance()->setDefaultSavePath(pref.getSavePath()); + } } diff --git a/src/qtlibtorrent/qbtsession.cpp b/src/qtlibtorrent/qbtsession.cpp index 4400279f5..24e7d8c5c 100755 --- a/src/qtlibtorrent/qbtsession.cpp +++ b/src/qtlibtorrent/qbtsession.cpp @@ -1773,9 +1773,17 @@ void QBtSession::addTorrentsFromScanFolder(QStringList &pathList) { } } -void QBtSession::setDefaultTempPath(QString temppath) { - if (defaultTempPath == temppath) +void QBtSession::setDefaultSavePath(const QString &savepath) { + if (savepath.isEmpty()) return; + + defaultSavePath = QDir::fromNativeSeparators(savepath); +} + +void QBtSession::setDefaultTempPath(const QString &temppath) { + if (QDir(defaultTempPath) == QDir(temppath)) + return; + if (temppath.isEmpty()) { // Disabling temp dir // Moving all torrents to their destination folder @@ -1799,13 +1807,13 @@ void QBtSession::setDefaultTempPath(QString temppath) { QTorrentHandle h = QTorrentHandle(*torrentIT); if (!h.is_valid()) continue; if (!h.is_seed()) { - QString torrent_tmp_path = temppath.replace("\\", "/"); - qDebug("Moving torrent to its temp save path: %s", qPrintable(torrent_tmp_path)); + QString torrent_tmp_path = QDir::fromNativeSeparators(temppath); + qDebug("Moving torrent to its temp save path: %s", qPrintable(fsutils::toDisplayPath(torrent_tmp_path))); h.move_storage(torrent_tmp_path); } } } - defaultTempPath = temppath; + defaultTempPath = QDir::fromNativeSeparators(temppath); } void QBtSession::appendqBextensionToTorrent(const QTorrentHandle &h, bool append) { diff --git a/src/qtlibtorrent/qbtsession.h b/src/qtlibtorrent/qbtsession.h index 67aac09da..1ddb09b6f 100755 --- a/src/qtlibtorrent/qbtsession.h +++ b/src/qtlibtorrent/qbtsession.h @@ -147,7 +147,8 @@ public slots: void setDHTPort(int dht_port); void setProxySettings(libtorrent::proxy_settings proxySettings); void setSessionSettings(const libtorrent::session_settings &sessionSettings); - void setDefaultTempPath(QString temppath); + void setDefaultSavePath(const QString &savepath); + void setDefaultTempPath(const QString &temppath); void setAppendLabelToSavePath(bool append); void appendLabelToTorrentSavePath(const QTorrentHandle &h); void changeLabelInTorrentSavePath(const QTorrentHandle &h, QString old_label, QString new_label);