diff --git a/src/preferences/preferences.h b/src/preferences/preferences.h
index afb85944d..a77bb2a6d 100644
--- a/src/preferences/preferences.h
+++ b/src/preferences/preferences.h
@@ -229,6 +229,22 @@ public:
setValue("Preferences/Downloads/AppendLabel", b);
}
+ bool rememberLastLocation() const {
+ return value(QString::fromUtf8("Preferences/Downloads/RememberLastLocation"), false).toBool();
+ }
+
+ void setRememberLastLocation(bool b) {
+ setValue("Preferences/Downloads/RememberLastLocation", b);
+ }
+
+ QString lastLocationPath() const {
+ return value(QString::fromUtf8("Preferences/Downloads/LastLocationPath"), QString()).toString();
+}
+
+ void setLastLocationPath(const QString &path) {
+ setValue(QString::fromUtf8("Preferences/Downloads/LastLocationPath"), path);
+ }
+
bool preAllocateAllFiles() const {
return value(QString::fromUtf8("Preferences/Downloads/PreAllocation"), false).toBool();
}
diff --git a/src/torrentadditiondlg.cpp b/src/torrentadditiondlg.cpp
index 907d19127..b63561a82 100644
--- a/src/torrentadditiondlg.cpp
+++ b/src/torrentadditiondlg.cpp
@@ -60,7 +60,7 @@ using namespace libtorrent;
torrentAdditionDialog::torrentAdditionDialog(QWidget *parent) :
QDialog(parent), old_label(""), hidden_height(0), m_showContentList(true) {
- const Preferences pref;
+ Preferences pref;
setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
setMinimumSize(0, 0);
@@ -87,7 +87,19 @@ torrentAdditionDialog::torrentAdditionDialog(QWidget *parent) :
// Important: as a default, it inserts at the bottom which is not desirable
savePathTxt->setInsertPolicy(QComboBox::InsertAtCurrent);
//torrentContentList->header()->setResizeMode(0, QHeaderView::Stretch);
- defaultSavePath = pref.getSavePath();
+ QString lastLocation = pref.lastLocationPath();
+ checkLastFolder->setChecked(pref.rememberLastLocation());
+ //lastLocation will always have '/' as separator since it is saved in
+ //::on_OkButton_clicked() after the conversion is done.
+ if (pref.rememberLastLocation() && !lastLocation.isEmpty() && QFile(lastLocation).exists())
+ defaultSavePath = lastLocation;
+ else
+ {
+ defaultSavePath = pref.getSavePath();
+ //In case of the LastLocationPath doesn't exist anymore, empty the string
+ pref.setLastLocationPath(QString());
+ }
+
appendLabelToSavePath = pref.appendTorrentLabel();
QString display_path = defaultSavePath.replace("\\", "/");
if(!display_path.endsWith("/"))
@@ -686,6 +698,14 @@ void torrentAdditionDialog::on_OkButton_clicked(){
return;
}
}
+ //Save last location path
+ {//limit the scope of pref
+ Preferences pref;
+ bool isChecked = checkLastFolder->isChecked();
+ if (pref.rememberLastLocation() != isChecked) pref.setRememberLastLocation(isChecked);
+ if (pref.rememberLastLocation() && save_path != pref.lastLocationPath())
+ pref.setLastLocationPath(save_path);
+}
// save filtered files
if(!is_magnet && t->num_files() > 1)
savePiecesPriorities();
diff --git a/src/torrentadditiondlg.ui b/src/torrentadditiondlg.ui
index 6353a698c..b91efd640 100644
--- a/src/torrentadditiondlg.ui
+++ b/src/torrentadditiondlg.ui
@@ -190,6 +190,12 @@
Qt::Horizontal
+
+
+ 0
+ 0
+
+
@@ -217,6 +223,12 @@
Qt::Horizontal
+
+
+ 0
+ 0
+
+
-
@@ -238,6 +250,12 @@
Qt::Horizontal
+
+
+ 0
+ 0
+
+
@@ -263,6 +281,13 @@
+ -
+
+
+ Remember last used folder
+
+
+
-