Skip to content

Commit

Permalink
Merge pull request #5261 from nextcloud/feature/do-not-show-error-sta…
Browse files Browse the repository at this point in the history
…tus-on-editlocally-abort

Silence sync termination errors when running EditLocallyJob.
  • Loading branch information
allexzander authored Dec 12, 2022
2 parents 2dccea8 + f7ef2e5 commit 73307a1
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 2 deletions.
1 change: 1 addition & 0 deletions src/gui/editlocallyjob.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,7 @@ void EditLocallyJob::startEditLocally()
_syncTerminatedConnection = {};
startSyncBeforeOpening();
});
_folderForFile->setSilenceErrorsUntilNextSync(true);
_folderForFile->slotTerminateSync();

return;
Expand Down
19 changes: 17 additions & 2 deletions src/gui/folder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -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);
}

Expand Down Expand Up @@ -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()) {
Expand Down Expand Up @@ -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)
Expand Down Expand Up @@ -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) {
Expand Down Expand Up @@ -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());
Expand Down
4 changes: 4 additions & 0 deletions src/gui/folder.h
Original file line number Diff line number Diff line change
Expand Up @@ -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);
Expand Down Expand Up @@ -506,6 +508,8 @@ private slots:
*/
bool _hasSwitchedToVfs = false;

bool _silenceErrorsUntilNextSync = false;

/**
* Watches this folder's local directory for changes.
*
Expand Down

0 comments on commit 73307a1

Please sign in to comment.