Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/owncloud/client.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Kamm <mail@ckamm.de>2015-10-02 14:22:52 +0300
committerChristian Kamm <mail@ckamm.de>2015-10-02 16:56:39 +0300
commitd610693af104e98f934878f228f6da57a2380fb2 (patch)
treed136afca137267cd4b1f693ee6b7ff48fef2f2de /src/gui/selectivesyncdialog.cpp
parent7d1886684ebb5875d9ae408760056a4152257b99 (diff)
SelectiveSync: Apply excludes #3876
Diffstat (limited to 'src/gui/selectivesyncdialog.cpp')
-rw-r--r--src/gui/selectivesyncdialog.cpp18
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("/")) {