From: alex-z Date: Fri, 9 Dec 2022 15:25:29 +0000 (+0100) Subject: Silence sync termination errors when running EditLocallyJob. X-Git-Tag: archive/raspbian/3.16.7-1_deb13u1+rpi1~1^2~12^2~11^2~73^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=f7ef2e5f44d1722cff43fadc437e570a9894a921;p=nextcloud-desktop.git Silence sync termination errors when running EditLocallyJob. Signed-off-by: alex-z --- diff --git a/src/gui/editlocallyjob.cpp b/src/gui/editlocallyjob.cpp index 69eccd62f..56de2cb2a 100644 --- a/src/gui/editlocallyjob.cpp +++ b/src/gui/editlocallyjob.cpp @@ -450,6 +450,7 @@ void EditLocallyJob::startEditLocally() _syncTerminatedConnection = {}; startSyncBeforeOpening(); }); + _folderForFile->setSilenceErrorsUntilNextSync(true); _folderForFile->slotTerminateSync(); return; diff --git a/src/gui/folder.cpp b/src/gui/folder.cpp index c19212290..3dc9b98cd 100644 --- a/src/gui/folder.cpp +++ b/src/gui/folder.cpp @@ -308,6 +308,10 @@ void Folder::setSyncPaused(bool paused) void Folder::setSyncState(SyncResult::Status state) { + if (_silenceErrorsUntilNextSync && state == SyncResult::Error) { + _syncResult.setStatus(SyncResult::Status::Success); + return; + } _syncResult.setStatus(state); } @@ -832,6 +836,7 @@ bool Folder::reloadExcludes() void Folder::startSync(const QStringList &pathList) { Q_UNUSED(pathList); + setSilenceErrorsUntilNextSync(false); const auto singleItemDiscoveryOptions = _engine->singleItemDiscoveryOptions(); Q_ASSERT(!singleItemDiscoveryOptions.discoveryDirItem || singleItemDiscoveryOptions.discoveryDirItem->isDirectory()); if (singleItemDiscoveryOptions.discoveryDirItem && !singleItemDiscoveryOptions.discoveryDirItem->isDirectory()) { @@ -962,8 +967,10 @@ void Folder::setDirtyNetworkLimits() void Folder::slotSyncError(const QString &message, ErrorCategory category) { - _syncResult.appendErrorString(message); - emit ProgressDispatcher::instance()->syncError(alias(), message, category); + if (!_silenceErrorsUntilNextSync) { + _syncResult.appendErrorString(message); + emit ProgressDispatcher::instance()->syncError(alias(), message, category); + } } void Folder::slotAddErrorToGui(SyncFileItem::Status status, const QString &errorMessage, const QString &subject) @@ -998,6 +1005,9 @@ void Folder::slotSyncFinished(bool success) if (syncError) { _syncResult.setStatus(SyncResult::Error); + if (_silenceErrorsUntilNextSync) { + _syncResult.setStatus(SyncResult::Status::Success); + } } else if (_syncResult.foundFilesNotSynced()) { _syncResult.setStatus(SyncResult::Problem); } else if (_definition.paused) { @@ -1151,6 +1161,11 @@ void Folder::slotNextSyncFullLocalDiscovery() _timeSinceLastFullLocalDiscovery.invalidate(); } +void Folder::setSilenceErrorsUntilNextSync(bool silenceErrors) +{ + _silenceErrorsUntilNextSync = silenceErrors; +} + void Folder::schedulePathForLocalDiscovery(const QString &relativePath) { _localDiscoveryTracker->addTouchedPath(relativePath.toUtf8()); diff --git a/src/gui/folder.h b/src/gui/folder.h index e5541460a..8b0e5a8f5 100644 --- a/src/gui/folder.h +++ b/src/gui/folder.h @@ -368,6 +368,8 @@ public slots: /** Ensures that the next sync performs a full local discovery. */ void slotNextSyncFullLocalDiscovery(); + void setSilenceErrorsUntilNextSync(bool silenceErrors); + private slots: void slotSyncStarted(); void slotSyncFinished(bool); @@ -506,6 +508,8 @@ private: */ bool _hasSwitchedToVfs = false; + bool _silenceErrorsUntilNextSync = false; + /** * Watches this folder's local directory for changes. *