Add forcefoldersync method to folder manager
authorClaudio Cambra <claudio.cambra@nextcloud.com>
Mon, 24 Oct 2022 11:46:12 +0000 (13:46 +0200)
committeralex-z <blackslayer4@gmail.com>
Tue, 6 Dec 2022 10:15:15 +0000 (11:15 +0100)
Signed-off-by: Claudio Cambra <claudio.cambra@nextcloud.com>
src/gui/accountsettings.cpp
src/gui/folderman.cpp
src/gui/folderman.h

index 87d86f97338f07cf0fee8eb810ac539f30bfd0a4..0d8ea92cf9411c9f2a3d99a95cf6133a7ef3c118 100644 (file)
@@ -1091,20 +1091,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 66f1486604746b0f5b3dbc23e22ad95d9c15bd11..8d57a72b844f3f65d505524e2dba659ff2ef8ca7 100644 (file)
@@ -599,6 +599,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 c15be05295b6445786941a12e5faafa941daca38..bda66138d6e7684fd584a5de6c659f1071406e38 100644 (file)
@@ -263,6 +263,8 @@ public slots:
     /** Wipe folder */
     void slotWipeFolderForAccount(AccountState *accountState);
 
+    void forceSyncForFolder(Folder *folder);
+
 private slots:
     void slotFolderSyncPaused(Folder *, bool paused);
     void slotFolderCanSyncChanged();