Browse Source

Remember last selected paths in torrent creation dialog

adaptive-webui-19844
Christophe Dumez 14 years ago
parent
commit
0bcbaf6521
  1. 23
      src/createtorrent_imp.cpp
  2. 9
      src/misc.h

23
src/createtorrent_imp.cpp

@ -50,6 +50,7 @@
#include "torrentpersistentdata.h" #include "torrentpersistentdata.h"
#include "createtorrent_imp.h" #include "createtorrent_imp.h"
#include "misc.h" #include "misc.h"
#include "qinisettings.h"
using namespace libtorrent; using namespace libtorrent;
using namespace boost::filesystem; using namespace boost::filesystem;
@ -80,8 +81,11 @@ createtorrent::~createtorrent() {
} }
void createtorrent::on_addFolder_button_clicked(){ void createtorrent::on_addFolder_button_clicked(){
QString dir = QFileDialog::getExistingDirectory(this, tr("Select a folder to add to the torrent"), QDir::homePath(), QFileDialog::ShowDirsOnly); QIniSettings settings("qBittorrent", "qBittorrent");
QString last_path = settings.value("CreateTorrent/last_add_path", QDir::homePath()).toString();
QString dir = QFileDialog::getExistingDirectory(this, tr("Select a folder to add to the torrent"), last_path, QFileDialog::ShowDirsOnly);
if(!dir.isEmpty()) { if(!dir.isEmpty()) {
settings.setValue("CreateTorrent/last_add_path", dir);
#if defined(Q_WS_WIN) || defined(Q_OS_OS2) #if defined(Q_WS_WIN) || defined(Q_OS_OS2)
dir = dir.replace("/", "\\"); dir = dir.replace("/", "\\");
#endif #endif
@ -90,8 +94,11 @@ void createtorrent::on_addFolder_button_clicked(){
} }
void createtorrent::on_addFile_button_clicked(){ void createtorrent::on_addFile_button_clicked(){
QString file = QFileDialog::getOpenFileName(this, tr("Select a file to add to the torrent"), QDir::homePath()); QIniSettings settings("qBittorrent", "qBittorrent");
QString last_path = settings.value("CreateTorrent/last_add_path", QDir::homePath()).toString();
QString file = QFileDialog::getOpenFileName(this, tr("Select a file to add to the torrent"), last_path);
if(!file.isEmpty()) { if(!file.isEmpty()) {
settings.setValue("CreateTorrent/last_add_path", misc::removeLastPathPart(file));
#if defined(Q_WS_WIN) || defined(Q_OS_OS2) #if defined(Q_WS_WIN) || defined(Q_OS_OS2)
file = file.replace("/", "\\"); file = file.replace("/", "\\");
#endif #endif
@ -177,13 +184,13 @@ void createtorrent::on_createButton_clicked(){
return; return;
} }
QStringList trackers = allItems(trackers_list); QStringList trackers = allItems(trackers_list);
/*if(!trackers.size()){
QMessageBox::critical(0, tr("No tracker path set"), tr("Please set at least one tracker")); QIniSettings settings("qBittorrent", "qBittorrent");
return; QString last_path = settings.value("CreateTorrent/last_save_path", QDir::homePath()).toString();
}*/
QString destination = QFileDialog::getSaveFileName(this, tr("Select destination torrent file"), QDir::homePath(), tr("Torrent Files")+QString::fromUtf8(" (*.torrent)")); QString destination = QFileDialog::getSaveFileName(this, tr("Select destination torrent file"), last_path, tr("Torrent Files")+QString::fromUtf8(" (*.torrent)"));
if(!destination.isEmpty()) { if(!destination.isEmpty()) {
if(!destination.endsWith(QString::fromUtf8(".torrent"))) settings.setValue("CreateTorrent/last_save_path", misc::removeLastPathPart(destination));
destination += QString::fromUtf8(".torrent"); destination += QString::fromUtf8(".torrent");
} else { } else {
return; return;

9
src/misc.h

@ -33,6 +33,7 @@
#include <sstream> #include <sstream>
#include <QString> #include <QString>
#include <QStringList>
#include <QThread> #include <QThread>
#include <ctime> #include <ctime>
#include <boost/date_time/posix_time/posix_time_types.hpp> #include <boost/date_time/posix_time/posix_time_types.hpp>
@ -74,6 +75,14 @@ public:
return QString(o.str().c_str()); return QString(o.str().c_str());
} }
static inline QString removeLastPathPart(QString path) {
if(path.isEmpty()) return path;
path = path.replace("\\", "/");
QStringList tmp = path.split("/");
tmp.removeLast();
return tmp.join("/");
}
static inline sha1_hash QStringToSha1(const QString& s) { static inline sha1_hash QStringToSha1(const QString& s) {
std::string str(s.toLocal8Bit().data()); std::string str(s.toLocal8Bit().data());
std::istringstream i(str); std::istringstream i(str);

Loading…
Cancel
Save