Add forcefoldersync method to folder manager
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Mon, 24 Oct 2022 11:46:12 +0000 (13:46 +0200)
committerClaudio Cambra <claudio.cambra@gmail.com>
Tue, 25 Oct 2022 17:14:40 +0000 (19:14 +0200)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/accountsettings.cpp
src/gui/folderman.cpp
src/gui/folderman.h

index c928c365fb6130d1f09a1bc5eaa549c0dca6b081..d5543d90a0e9cbbe20013422b17da38fa2e403c9 100644 (file)
@@ -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()
index cd4bac264b41d4445d449c443c626e2b49698bcc..00818e80a8da4f3f77a2c28ec1efad941c3120b4 100644 (file)
@@ -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;
index 444eedff869ae3be3eee9984644c2423f4845505..55db5babae1a18e8390e961e6537a686e7de76e1 100644 (file)
@@ -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();