Browse Source

Merge pull request #1824 from bryanroscoe/rememberLocation

Scan Folder dialog now remembers last location
adaptive-webui-19844
sledgehammer999 11 years ago
parent
commit
397268d4cc
  1. 32
      src/fs_utils.cpp
  2. 1
      src/fs_utils.h
  3. 6
      src/preferences/options_imp.cpp
  4. 8
      src/preferences/preferences.h

32
src/fs_utils.cpp

@ -86,14 +86,12 @@ QString fsutils::fromNativePath(const QString &path) { @@ -86,14 +86,12 @@ QString fsutils::fromNativePath(const QString &path) {
/**
* 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(".");
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);
const int slash_index = path.lastIndexOf("/");
if (slash_index == -1)
@ -101,6 +99,14 @@ QString fsutils::fileName(const QString& file_path) @@ -101,6 +99,14 @@ QString fsutils::fileName(const QString& file_path)
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) {
try {
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) { @@ -118,8 +124,7 @@ bool fsutils::isValidTorrentFile(const QString& torrent_path) {
* This function will also remove .DS_Store files on Mac OS and
* Thumbs.db on Windows.
*/
bool fsutils::smartRemoveEmptyFolderTree(const QString& dir_path)
{
bool fsutils::smartRemoveEmptyFolderTree(const QString& dir_path) {
qDebug() << Q_FUNC_INFO << dir_path;
if (dir_path.isEmpty())
return false;
@ -169,8 +174,7 @@ bool fsutils::smartRemoveEmptyFolderTree(const QString& dir_path) @@ -169,8 +174,7 @@ bool fsutils::smartRemoveEmptyFolderTree(const QString& dir_path)
*
* 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);
if (!f.exists())
return true;
@ -186,8 +190,7 @@ bool fsutils::forceRemove(const QString& file_path) @@ -186,8 +190,7 @@ bool fsutils::forceRemove(const QString& file_path)
*
* Returns -1 in case of error.
*/
qint64 fsutils::computePathSize(const QString& path)
{
qint64 fsutils::computePathSize(const QString& path) {
// Check if it is a file
QFileInfo fi(path);
if (!fi.exists()) return -1;
@ -207,8 +210,7 @@ qint64 fsutils::computePathSize(const QString& path) @@ -207,8 +210,7 @@ qint64 fsutils::computePathSize(const QString& path)
/**
* 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);
if (!f1.exists() || !f2.exists()) return false;
if (f1.size() != f2.size()) return false;
@ -326,8 +328,7 @@ long long fsutils::freeDiskSpaceOnPath(QString path) { @@ -326,8 +328,7 @@ long long fsutils::freeDiskSpaceOnPath(QString path) {
#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);
if (ret.endsWith("/"))
ret.chop(1);
@ -340,8 +341,7 @@ QString fsutils::branchPath(const QString& file_path, QString* removed) @@ -340,8 +341,7 @@ QString fsutils::branchPath(const QString& file_path, QString* removed)
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)
return QString::compare(first, second, Qt::CaseSensitive) == 0;
#else

1
src/fs_utils.h

@ -44,6 +44,7 @@ namespace fsutils @@ -44,6 +44,7 @@ namespace fsutils
QString fromNativePath(const QString& path);
QString fileExtension(const QString& filename);
QString fileName(const QString& file_path);
QString folderName(const QString& file_path);
qint64 computePathSize(const QString& path);
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);

6
src/preferences/options_imp.cpp

@ -1056,7 +1056,9 @@ int options_imp::getActionOnDblClOnTorrentFn() const { @@ -1056,7 +1056,9 @@ int options_imp::getActionOnDblClOnTorrentFn() const {
}
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()) {
const ScanFoldersModel::PathStatus status = ScanFoldersModel::instance()->addPath(dir, false);
QString error;
@ -1071,7 +1073,9 @@ void options_imp::on_addScanFolderButton_clicked() { @@ -1071,7 +1073,9 @@ void options_imp::on_addScanFolderButton_clicked() {
error = tr("Folder is not readable.");
break;
default:
pref.setScanDirsLastPath(dir);
addedScanDirs << dir;
scanFoldersView->resizeColumnsToContents();
enableApplyButton();
}

8
src/preferences/preferences.h

@ -325,6 +325,14 @@ public: @@ -325,6 +325,14 @@ public:
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 {
return !value(QString::fromUtf8("Preferences/Downloads/TorrentExportDir"), QString()).toString().isEmpty();
}

Loading…
Cancel
Save