diff options
author | Christian Kamm <mail@ckamm.de> | 2015-10-02 14:22:52 +0300 |
---|---|---|
committer | Christian Kamm <mail@ckamm.de> | 2015-10-02 16:56:39 +0300 |
commit | d610693af104e98f934878f228f6da57a2380fb2 (patch) | |
tree | d136afca137267cd4b1f693ee6b7ff48fef2f2de /src/gui/selectivesyncdialog.cpp | |
parent | 7d1886684ebb5875d9ae408760056a4152257b99 (diff) |
SelectiveSync: Apply excludes #3876
Diffstat (limited to 'src/gui/selectivesyncdialog.cpp')
-rw-r--r-- | src/gui/selectivesyncdialog.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/gui/selectivesyncdialog.cpp b/src/gui/selectivesyncdialog.cpp index 273cbf796..b041ee884 100644 --- a/src/gui/selectivesyncdialog.cpp +++ b/src/gui/selectivesyncdialog.cpp @@ -156,7 +156,7 @@ void SelectiveSyncTreeView::recursiveInsert(QTreeWidgetItem* parent, QStringList } } -void SelectiveSyncTreeView::slotUpdateDirectories(const QStringList&list) +void SelectiveSyncTreeView::slotUpdateDirectories(QStringList list) { auto job = qobject_cast<LsColJob *>(sender()); @@ -174,6 +174,22 @@ void SelectiveSyncTreeView::slotUpdateDirectories(const QStringList&list) if (!_folderPath.isEmpty()) pathToRemove.append('/'); + // Check for excludes. + // + // We would like to use Folder::isFileExcluded, but the folder doesn't + // exist yet. So we just create one temporarily... + FolderDefinition def; + def.localPath = pathToRemove; + def.ignoreHiddenFiles = FolderMan::instance()->ignoreHiddenFiles(); + Folder f(def); + QMutableListIterator<QString> it(list); + while (it.hasNext()) { + it.next(); + if (f.isFileExcluded(it.value())) { + it.remove(); + } + } + // Since / cannot be in the blacklist, expand it to the actual // list of top-level folders as soon as possible. if (_oldBlackList == QStringList("/")) { |