From 3be945a40174c0cc7e408879ac9b178911b51588 Mon Sep 17 00:00:00 2001 From: "Vladimir Golovnev (Glassez)" Date: Fri, 18 May 2018 19:22:42 +0300 Subject: [PATCH] Add last used save path to the front of history --- src/gui/addnewtorrentdialog.cpp | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/gui/addnewtorrentdialog.cpp b/src/gui/addnewtorrentdialog.cpp index bc2763068..aa0c16c11 100644 --- a/src/gui/addnewtorrentdialog.cpp +++ b/src/gui/addnewtorrentdialog.cpp @@ -35,11 +35,13 @@ #include #include #include +#include #include "base/bittorrent/magneturi.h" #include "base/bittorrent/session.h" #include "base/bittorrent/torrenthandle.h" #include "base/bittorrent/torrentinfo.h" +#include "base/global.h" #include "base/net/downloadhandler.h" #include "base/net/downloadmanager.h" #include "base/preferences.h" @@ -399,23 +401,22 @@ void AddNewTorrentDialog::showAdvancedSettings(bool show) void AddNewTorrentDialog::saveSavePathHistory() const { - QDir selectedSavePath(m_ui->savePath->selectedPath()); // Get current history QStringList history = settings()->loadValue(KEY_SAVEPATHHISTORY).toStringList(); - if (history.size() > savePathHistoryLength()) - history = history.mid(0, savePathHistoryLength()); - QList historyDirs; - foreach (const QString dir, history) - historyDirs << QDir(dir); - if (!historyDirs.contains(selectedSavePath)) { - // Add save path to history + QVector historyDirs; + for (const QString &path : qAsConst(history)) + historyDirs << QDir {path}; + + const QDir selectedSavePath {m_ui->savePath->selectedPath()}; + const int selectedSavePathIndex = historyDirs.indexOf(selectedSavePath); + if (selectedSavePathIndex > 0) + history.removeAt(selectedSavePathIndex); + if (selectedSavePathIndex != 0) + // Add last used save path to the front of history history.push_front(selectedSavePath.absolutePath()); - // Limit list size - if (history.size() > savePathHistoryLength()) - history.pop_back(); - // Save history - settings()->storeValue(KEY_SAVEPATHHISTORY, history); - } + + // Save history + settings()->storeValue(KEY_SAVEPATHHISTORY, QStringList {history.mid(0, savePathHistoryLength())}); } // savePath is a folder, not an absolute file path