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

github.com/nextcloud/desktop.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthieu Gallien <matthieu.gallien@nextcloud.com>2022-05-12 10:56:50 +0300
committerMatthieu Gallien <matthieu.gallien@nextcloud.com>2022-05-12 10:56:50 +0300
commitda9e3bd7fe1650d7e730d2ec4273f0f39b88b11f (patch)
tree9ec739f466aac8d4bd0e810b43acb48c93b9783e
parent952eefcf69c65831c1a6a853f3cc15965c1eeb3a (diff)
if an exclude file is deleted, skip it and remove it from internal listbugfix/syncExcludeLstCanBeRemoved
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
-rw-r--r--src/csync/csync_exclude.cpp21
1 files changed, 16 insertions, 5 deletions
diff --git a/src/csync/csync_exclude.cpp b/src/csync/csync_exclude.cpp
index eb8507589..8e2786bd3 100644
--- a/src/csync/csync_exclude.cpp
+++ b/src/csync/csync_exclude.cpp
@@ -320,13 +320,24 @@ bool ExcludedFiles::reloadExcludeFiles()
bool success = true;
const auto keys = _excludeFiles.keys();
for (const auto& basePath : keys) {
- for (const auto &excludeFile : _excludeFiles.value(basePath)) {
+ auto itValue = _excludeFiles.find(basePath);
+ if (itValue == std::end(_excludeFiles)) {
+ continue;
+ }
+ auto &excludeFiles = *itValue;
+ for (auto excludeFileIt = std::begin(excludeFiles); excludeFileIt != std::end(excludeFiles); ) {
+ const auto &excludeFile = *excludeFileIt;
QFile file(excludeFile);
- if (file.exists() && file.open(QIODevice::ReadOnly)) {
- loadExcludeFilePatterns(basePath, file);
+ if (!file.exists()) {
+ excludeFileIt = excludeFiles.erase(excludeFileIt);
} else {
- success = false;
- qWarning() << "System exclude list file could not be opened:" << excludeFile;
+ if (file.open(QIODevice::ReadOnly)) {
+ loadExcludeFilePatterns(basePath, file);
+ } else {
+ success = false;
+ qWarning() << "System exclude list file could not be opened:" << excludeFile;
+ }
+ ++excludeFileIt;
}
}
}