mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-01-12 07:48:04 +00:00
Merge pull request #1824 from bryanroscoe/rememberLocation
Scan Folder dialog now remembers last location
This commit is contained in:
commit
397268d4cc
@ -86,14 +86,12 @@ QString fsutils::fromNativePath(const QString &path) {
|
|||||||
/**
|
/**
|
||||||
* Returns the file extension part of a file name.
|
* Returns the file extension part of a file name.
|
||||||
*/
|
*/
|
||||||
QString fsutils::fileExtension(const QString &filename)
|
QString fsutils::fileExtension(const QString &filename) {
|
||||||
{
|
|
||||||
const int point_index = filename.lastIndexOf(".");
|
const int point_index = filename.lastIndexOf(".");
|
||||||
return (point_index >= 0) ? filename.mid(point_index + 1) : QString();
|
return (point_index >= 0) ? filename.mid(point_index + 1) : QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString fsutils::fileName(const QString& file_path)
|
QString fsutils::fileName(const QString& file_path) {
|
||||||
{
|
|
||||||
QString path = fsutils::fromNativePath(file_path);
|
QString path = fsutils::fromNativePath(file_path);
|
||||||
const int slash_index = path.lastIndexOf("/");
|
const int slash_index = path.lastIndexOf("/");
|
||||||
if (slash_index == -1)
|
if (slash_index == -1)
|
||||||
@ -101,6 +99,14 @@ QString fsutils::fileName(const QString& file_path)
|
|||||||
return path.mid(slash_index + 1);
|
return path.mid(slash_index + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString fsutils::folderName(const QString& file_path) {
|
||||||
|
QString path = fsutils::fromNativePath(file_path);
|
||||||
|
const int slash_index = path.lastIndexOf("/");
|
||||||
|
if (slash_index == -1)
|
||||||
|
return path;
|
||||||
|
return path.left(slash_index);
|
||||||
|
}
|
||||||
|
|
||||||
bool fsutils::isValidTorrentFile(const QString& torrent_path) {
|
bool fsutils::isValidTorrentFile(const QString& torrent_path) {
|
||||||
try {
|
try {
|
||||||
boost::intrusive_ptr<libtorrent::torrent_info> t = new torrent_info(fsutils::toNativePath(torrent_path).toUtf8().constData());
|
boost::intrusive_ptr<libtorrent::torrent_info> t = new torrent_info(fsutils::toNativePath(torrent_path).toUtf8().constData());
|
||||||
@ -118,8 +124,7 @@ bool fsutils::isValidTorrentFile(const QString& torrent_path) {
|
|||||||
* This function will also remove .DS_Store files on Mac OS and
|
* This function will also remove .DS_Store files on Mac OS and
|
||||||
* Thumbs.db on Windows.
|
* Thumbs.db on Windows.
|
||||||
*/
|
*/
|
||||||
bool fsutils::smartRemoveEmptyFolderTree(const QString& dir_path)
|
bool fsutils::smartRemoveEmptyFolderTree(const QString& dir_path) {
|
||||||
{
|
|
||||||
qDebug() << Q_FUNC_INFO << dir_path;
|
qDebug() << Q_FUNC_INFO << dir_path;
|
||||||
if (dir_path.isEmpty())
|
if (dir_path.isEmpty())
|
||||||
return false;
|
return false;
|
||||||
@ -169,8 +174,7 @@ bool fsutils::smartRemoveEmptyFolderTree(const QString& dir_path)
|
|||||||
*
|
*
|
||||||
* This function will try to fix the file permissions before removing it.
|
* This function will try to fix the file permissions before removing it.
|
||||||
*/
|
*/
|
||||||
bool fsutils::forceRemove(const QString& file_path)
|
bool fsutils::forceRemove(const QString& file_path) {
|
||||||
{
|
|
||||||
QFile f(file_path);
|
QFile f(file_path);
|
||||||
if (!f.exists())
|
if (!f.exists())
|
||||||
return true;
|
return true;
|
||||||
@ -186,8 +190,7 @@ bool fsutils::forceRemove(const QString& file_path)
|
|||||||
*
|
*
|
||||||
* Returns -1 in case of error.
|
* Returns -1 in case of error.
|
||||||
*/
|
*/
|
||||||
qint64 fsutils::computePathSize(const QString& path)
|
qint64 fsutils::computePathSize(const QString& path) {
|
||||||
{
|
|
||||||
// Check if it is a file
|
// Check if it is a file
|
||||||
QFileInfo fi(path);
|
QFileInfo fi(path);
|
||||||
if (!fi.exists()) return -1;
|
if (!fi.exists()) return -1;
|
||||||
@ -207,8 +210,7 @@ qint64 fsutils::computePathSize(const QString& path)
|
|||||||
/**
|
/**
|
||||||
* Makes deep comparison of two files to make sure they are identical.
|
* Makes deep comparison of two files to make sure they are identical.
|
||||||
*/
|
*/
|
||||||
bool fsutils::sameFiles(const QString& path1, const QString& path2)
|
bool fsutils::sameFiles(const QString& path1, const QString& path2) {
|
||||||
{
|
|
||||||
QFile f1(path1), f2(path2);
|
QFile f1(path1), f2(path2);
|
||||||
if (!f1.exists() || !f2.exists()) return false;
|
if (!f1.exists() || !f2.exists()) return false;
|
||||||
if (f1.size() != f2.size()) return false;
|
if (f1.size() != f2.size()) return false;
|
||||||
@ -326,8 +328,7 @@ long long fsutils::freeDiskSpaceOnPath(QString path) {
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
QString fsutils::branchPath(const QString& file_path, QString* removed)
|
QString fsutils::branchPath(const QString& file_path, QString* removed) {
|
||||||
{
|
|
||||||
QString ret = fsutils::fromNativePath(file_path);
|
QString ret = fsutils::fromNativePath(file_path);
|
||||||
if (ret.endsWith("/"))
|
if (ret.endsWith("/"))
|
||||||
ret.chop(1);
|
ret.chop(1);
|
||||||
@ -340,8 +341,7 @@ QString fsutils::branchPath(const QString& file_path, QString* removed)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool fsutils::sameFileNames(const QString &first, const QString &second)
|
bool fsutils::sameFileNames(const QString &first, const QString &second) {
|
||||||
{
|
|
||||||
#if defined(Q_OS_UNIX) || defined(Q_WS_QWS)
|
#if defined(Q_OS_UNIX) || defined(Q_WS_QWS)
|
||||||
return QString::compare(first, second, Qt::CaseSensitive) == 0;
|
return QString::compare(first, second, Qt::CaseSensitive) == 0;
|
||||||
#else
|
#else
|
||||||
|
@ -44,6 +44,7 @@ namespace fsutils
|
|||||||
QString fromNativePath(const QString& path);
|
QString fromNativePath(const QString& path);
|
||||||
QString fileExtension(const QString& filename);
|
QString fileExtension(const QString& filename);
|
||||||
QString fileName(const QString& file_path);
|
QString fileName(const QString& file_path);
|
||||||
|
QString folderName(const QString& file_path);
|
||||||
qint64 computePathSize(const QString& path);
|
qint64 computePathSize(const QString& path);
|
||||||
bool sameFiles(const QString& path1, const QString& path2);
|
bool sameFiles(const QString& path1, const QString& path2);
|
||||||
QString updateLabelInSavePath(const QString &defaultSavePath, const QString &save_path, const QString& old_label, const QString& new_label);
|
QString updateLabelInSavePath(const QString &defaultSavePath, const QString &save_path, const QString& old_label, const QString& new_label);
|
||||||
|
@ -1056,7 +1056,9 @@ int options_imp::getActionOnDblClOnTorrentFn() const {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void options_imp::on_addScanFolderButton_clicked() {
|
void options_imp::on_addScanFolderButton_clicked() {
|
||||||
const QString dir = QFileDialog::getExistingDirectory(this, tr("Add directory to scan"));
|
Preferences pref;
|
||||||
|
const QString dir = QFileDialog::getExistingDirectory(this, tr("Add directory to scan"),
|
||||||
|
fsutils::toNativePath(fsutils::folderName(pref.getScanDirsLastPath())));
|
||||||
if (!dir.isEmpty()) {
|
if (!dir.isEmpty()) {
|
||||||
const ScanFoldersModel::PathStatus status = ScanFoldersModel::instance()->addPath(dir, false);
|
const ScanFoldersModel::PathStatus status = ScanFoldersModel::instance()->addPath(dir, false);
|
||||||
QString error;
|
QString error;
|
||||||
@ -1071,7 +1073,9 @@ void options_imp::on_addScanFolderButton_clicked() {
|
|||||||
error = tr("Folder is not readable.");
|
error = tr("Folder is not readable.");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
pref.setScanDirsLastPath(dir);
|
||||||
addedScanDirs << dir;
|
addedScanDirs << dir;
|
||||||
|
scanFoldersView->resizeColumnsToContents();
|
||||||
enableApplyButton();
|
enableApplyButton();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -325,6 +325,14 @@ public:
|
|||||||
setValue(QString::fromUtf8("Preferences/Downloads/DownloadInScanDirs"), misc::toStringList(list));
|
setValue(QString::fromUtf8("Preferences/Downloads/DownloadInScanDirs"), misc::toStringList(list));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString getScanDirsLastPath() const {
|
||||||
|
return fsutils::fromNativePath(value(QString::fromUtf8("Preferences/Downloads/ScanDirsLastPath"), QString()).toString());
|
||||||
|
}
|
||||||
|
|
||||||
|
void setScanDirsLastPath(const QString &path) {
|
||||||
|
setValue(QString::fromUtf8("Preferences/Downloads/ScanDirsLastPath"), fsutils::fromNativePath(path));
|
||||||
|
}
|
||||||
|
|
||||||
bool isTorrentExportEnabled() const {
|
bool isTorrentExportEnabled() const {
|
||||||
return !value(QString::fromUtf8("Preferences/Downloads/TorrentExportDir"), QString()).toString().isEmpty();
|
return !value(QString::fromUtf8("Preferences/Downloads/TorrentExportDir"), QString()).toString().isEmpty();
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user