From: Claudio Cambra Date: Mon, 24 Oct 2022 11:46:12 +0000 (+0200) Subject: Add forcefoldersync method to folder manager X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~11^2~185^2~1 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=94b45d6d6819a555678deca20817a4a97abdd0cf;p=nextcloud-desktop.git Add forcefoldersync method to folder manager Signed-off-by: Claudio Cambra --- diff --git a/src/gui/accountsettings.cpp b/src/gui/accountsettings.cpp index c928c365f..d5543d90a 100644 --- a/src/gui/accountsettings.cpp +++ b/src/gui/accountsettings.cpp @@ -1039,20 +1039,8 @@ void AccountSettings::slotScheduleCurrentFolderForceRemoteDiscovery() void AccountSettings::slotForceSyncCurrentFolder() { FolderMan *folderMan = FolderMan::instance(); - if (auto selectedFolder = folderMan->folder(selectedFolderAlias())) { - // Terminate and reschedule any running sync - for (auto f : folderMan->map()) { - if (f->isSyncRunning()) { - f->slotTerminateSync(); - folderMan->scheduleFolder(f); - } - } - - selectedFolder->slotWipeErrorBlacklist(); // issue #6757 - - // Insert the selected folder at the front of the queue - folderMan->scheduleFolderNext(selectedFolder); - } + auto selectedFolder = folderMan->folder(selectedFolderAlias()); + folderMan->forceSyncForFolder(selectedFolder); } void AccountSettings::slotOpenOC() diff --git a/src/gui/folderman.cpp b/src/gui/folderman.cpp index cd4bac264..00818e80a 100644 --- a/src/gui/folderman.cpp +++ b/src/gui/folderman.cpp @@ -601,6 +601,21 @@ void FolderMan::scheduleAllFolders() } } +void FolderMan::forceSyncForFolder(Folder *folder) +{ + // Terminate and reschedule any running sync + for (const auto folderInMap : map()) { + if (folderInMap->isSyncRunning()) { + folderInMap->slotTerminateSync(); + scheduleFolder(folderInMap); + } + } + + folder->slotWipeErrorBlacklist(); // issue #6757 + // Insert the selected folder at the front of the queue + scheduleFolderNext(folder); +} + void FolderMan::slotScheduleAppRestart() { _appRestartRequired = true; diff --git a/src/gui/folderman.h b/src/gui/folderman.h index 444eedff8..55db5baba 100644 --- a/src/gui/folderman.h +++ b/src/gui/folderman.h @@ -266,6 +266,8 @@ public slots: /** Wipe folder */ void slotWipeFolderForAccount(AccountState *accountState); + void forceSyncForFolder(Folder *folder); + private slots: void slotFolderSyncPaused(Folder *, bool paused); void slotFolderCanSyncChanged();