Pause sync when remove all dialog is displayed
authorHannah von Reth <hannah.vonreth@owncloud.com>
Mon, 30 Nov 2020 11:20:27 +0000 (12:20 +0100)
committerKevin Ottens <kevin.ottens@nextcloud.com>
Tue, 15 Dec 2020 09:59:27 +0000 (10:59 +0100)
Fixes: #8263
src/gui/folder.cpp

index 376a58d60572ae6d132f0a262f16b76405cf2aca..c542de947de61f426f6c30683d11bce5fc29e975 100644 (file)
@@ -1247,15 +1247,18 @@ void Folder::slotAboutToRemoveAllFiles(SyncFileItem::Direction dir, std::functio
     msgBox->setWindowFlags(msgBox->windowFlags() | Qt::WindowStaysOnTopHint);
     msgBox->addButton(tr("Remove all files"), QMessageBox::DestructiveRole);
     QPushButton *keepBtn = msgBox->addButton(tr("Keep files"), QMessageBox::AcceptRole);
-    connect(msgBox, &QMessageBox::finished, this, [msgBox, keepBtn, callback, this]{
+    bool oldPaused = syncPaused();
+    setSyncPaused(true);
+    connect(msgBox, &QMessageBox::finished, this, [msgBox, keepBtn, callback, oldPaused, this] {
         const bool cancel = msgBox->clickedButton() == keepBtn;
         callback(cancel);
         if (cancel) {
             FileSystem::setFolderMinimumPermissions(path());
-                journalDb()->clearFileTable();
-                _lastEtag.clear();
-                slotScheduleThisFolder();
+            journalDb()->clearFileTable();
+            _lastEtag.clear();
+            slotScheduleThisFolder();
         }
+        setSyncPaused(oldPaused);
     });
     msgBox->open();
 }