diff options
author | Christian Kamm <mail@ckamm.de> | 2019-04-10 11:48:03 +0300 |
---|---|---|
committer | Christian Kamm <mail@ckamm.de> | 2019-04-11 14:48:56 +0300 |
commit | 702a494cbbd5fbdab39ee25a5d6c0c703b467d6d (patch) | |
tree | 13273edcc782d72f5f3156fa6530b1a8617cc5ab | |
parent | 5cbf60c6f4c3e57cfeb679bee6e9fb28c829a562 (diff) |
PropagateIgnore: Default to NormalError for INSTRUCTION_ERROR
Previously if one set the instruction to ERROR while forgetting to set
an error status, it'd propagate as FileIgnored. Now the default is
NormalError for INSTRUCTION_ERROR and FileIgnored for
INSTRUCTION_IGNORE.
-rw-r--r-- | src/libsync/discovery.cpp | 3 | ||||
-rw-r--r-- | src/libsync/owncloudpropagator.h | 10 | ||||
-rw-r--r-- | src/libsync/syncengine.cpp | 1 |
3 files changed, 9 insertions, 5 deletions
diff --git a/src/libsync/discovery.cpp b/src/libsync/discovery.cpp index 13de3edb3..93d8a24d7 100644 --- a/src/libsync/discovery.cpp +++ b/src/libsync/discovery.cpp @@ -383,7 +383,6 @@ void ProcessDirectoryJob::processFileAnalyzeRemoteInfo( missingData.append(tr("file id")); if (!missingData.isEmpty()) { item->_instruction = CSYNC_INSTRUCTION_ERROR; - item->_status = SyncFileItem::NormalError; _childIgnored = true; item->_errorString = tr("server reported no %1").arg(missingData.join(QLatin1String(", "))); emit _discoveryData->itemDiscovered(item); @@ -1137,13 +1136,11 @@ bool ProcessDirectoryJob::checkPermissions(const OCC::SyncFileItemPtr &item) } else if (item->isDirectory() && !perms.hasPermission(RemotePermissions::CanAddSubDirectories)) { qCWarning(lcDisco) << "checkForPermission: ERROR" << item->_file; item->_instruction = CSYNC_INSTRUCTION_ERROR; - item->_status = SyncFileItem::NormalError; item->_errorString = tr("Not allowed because you don't have permission to add subfolders to that folder"); return false; } else if (!item->isDirectory() && !perms.hasPermission(RemotePermissions::CanAddFile)) { qCWarning(lcDisco) << "checkForPermission: ERROR" << item->_file; item->_instruction = CSYNC_INSTRUCTION_ERROR; - item->_status = SyncFileItem::NormalError; item->_errorString = tr("Not allowed because you don't have permission to add files in that folder"); return false; } diff --git a/src/libsync/owncloudpropagator.h b/src/libsync/owncloudpropagator.h index 3005a847b..6abe7bd38 100644 --- a/src/libsync/owncloudpropagator.h +++ b/src/libsync/owncloudpropagator.h @@ -353,7 +353,15 @@ public: void start() Q_DECL_OVERRIDE { SyncFileItem::Status status = _item->_status; - done(status == SyncFileItem::NoStatus ? SyncFileItem::FileIgnored : status, _item->_errorString); + if (status == SyncFileItem::NoStatus) { + if (_item->_instruction == CSYNC_INSTRUCTION_ERROR) { + status = SyncFileItem::NormalError; + } else { + status = SyncFileItem::FileIgnored; + ASSERT(_item->_instruction == CSYNC_INSTRUCTION_IGNORE); + } + } + done(status, _item->_errorString); } }; diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp index 551106a46..fb1c888a3 100644 --- a/src/libsync/syncengine.cpp +++ b/src/libsync/syncengine.cpp @@ -347,7 +347,6 @@ void OCC::SyncEngine::slotItemDiscovered(const OCC::SyncFileItemPtr &item) QString error; if (!_syncOptions._vfs->updateMetadata(filePath, item->_modtime, item->_size, item->_fileId, &error)) { item->_instruction = CSYNC_INSTRUCTION_ERROR; - item->_status = SyncFileItem::NormalError; item->_errorString = tr("Could not update virtual file metadata: %1").arg(error); return; } |