From: APTX Date: Fri, 26 Apr 2013 20:02:53 +0000 (+0200) Subject: Add setting to control removal of directories during rename. X-Git-Url: https://gitweb.tyo.aptx.org/?a=commitdiff_plain;h=66a0f5ed8f0abb20964fc035a217d3844f55489b;p=localmylist.git Add setting to control removal of directories during rename. --- diff --git a/localmylist/renamehandler.cpp b/localmylist/renamehandler.cpp index 75fc24a..52c160c 100644 --- a/localmylist/renamehandler.cpp +++ b/localmylist/renamehandler.cpp @@ -182,26 +182,29 @@ void RenameHandler::handleRename() db->log(tr("Rename: File <%1> was renamed to <%2>").arg(oldFile.canonicalFilePath()).arg(newFileString)); - QDir dir = oldFile.dir(); - dir.setFilter(QDir::NoDotAndDotDot | QDir::AllEntries); - while (!dir.count()) + if (settings->get("renameRemoveEmptyDirectories", false)) { - for (const QString &path : watchedDirectories) + QDir dir = oldFile.dir(); + dir.setFilter(QDir::NoDotAndDotDot | QDir::AllEntries); + while (!dir.count()) { - QDir watchedDirectory(path); - if (dir.canonicalPath() == watchedDirectory.canonicalPath()) - goto endDirRemove; + for (const QString &path : watchedDirectories) + { + QDir watchedDirectory(path); + if (dir.canonicalPath() == watchedDirectory.canonicalPath()) + goto endDirRemove; + } + // QDir::rmdir only removes empty directories + if (!dir.rmdir(dir.canonicalPath())) + { + qDebug() << "Failed to remove directory " << dir.path(); + break; + } + if (!dir.cdUp()) + break; } - // QDir::rmdir only removes empty directories - if (!dir.rmdir(dir.canonicalPath())) - { - qDebug() << "Failed to remove directory " << dir.path(); - break; - } - if (!dir.cdUp()) - break; - } endDirRemove: ; + } } emit renameBatchFinished(); diff --git a/localmylist/share/schema/default_config.sql b/localmylist/share/schema/default_config.sql index 3997932..6ad9cdb 100644 --- a/localmylist/share/schema/default_config.sql +++ b/localmylist/share/schema/default_config.sql @@ -22,6 +22,7 @@ INSERT INTO config VALUES ('myListDefaultSource', NULL, true); INSERT INTO config VALUES ('renameScript', NULL, true); INSERT INTO config VALUES ('renameLanguage', NULL, true); INSERT INTO config VALUES ('renameSanitizeRegex', '[/\:*"?<>|\r\n]', true); -- This assumes \ does not need escaping, which is what current pg does by default. +INSERT INTO config VALUES ('renameRemoveEmptyDirectories', '1', true); INSERT INTO config VALUES ('enableRename', '0', true); INSERT INTO config VALUES ('fileFilters', '*.mkv *.mp4 *.ogg *.ogm *.wmv *.avi *.mpg *.flv', true);