Ensure newly whitelisted or blacklisted paths are removed from undecided list

Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
This commit is contained in:
Claudio Cambra 2023-07-05 23:44:45 +08:00
parent 7d1fa16a3f
commit 5f250a5dad
No known key found for this signature in database
GPG key ID: C839200C384636B0
2 changed files with 16 additions and 0 deletions

View file

@ -856,14 +856,29 @@ void Folder::appendPathToSelectiveSyncList(const QString &path, const SyncJourna
}
}
void Folder::removePathFromSelectiveSyncList(const QString &path, const SyncJournalDb::SelectiveSyncListType listType)
{
const auto folderPath = trailingSlashPath(path);
const auto journal = journalDb();
auto ok = false;
auto list = journal->getSelectiveSyncList(listType, &ok);
if (ok) {
list.removeAll(folderPath);
journal->setSelectiveSyncList(listType, list);
}
}
void Folder::whitelistPath(const QString &path)
{
appendPathToSelectiveSyncList(path, SyncJournalDb::SelectiveSyncWhiteList);
removePathFromSelectiveSyncList(path, SyncJournalDb::SelectiveSyncUndecidedList);
}
void Folder::blacklistPath(const QString &path)
{
appendPathToSelectiveSyncList(path, SyncJournalDb::SelectiveSyncBlackList);
removePathFromSelectiveSyncList(path, SyncJournalDb::SelectiveSyncUndecidedList);
}
bool Folder::isFileExcludedAbsolute(const QString &fullPath) const

View file

@ -472,6 +472,7 @@ private:
void correctPlaceholderFiles();
void appendPathToSelectiveSyncList(const QString &path, const SyncJournalDb::SelectiveSyncListType listType);
void removePathFromSelectiveSyncList(const QString &path, const SyncJournalDb::SelectiveSyncListType listType);
AccountStatePtr _accountState;
FolderDefinition _definition;