diff --git a/src/mirall/owncloudpropagator.cpp b/src/mirall/owncloudpropagator.cpp index 8644d6fc1c..f769277e45 100644 --- a/src/mirall/owncloudpropagator.cpp +++ b/src/mirall/owncloudpropagator.cpp @@ -45,7 +45,7 @@ void PropagateItemJob::done(SyncFileItem::Status status, const QString &errorStr { if (_item._isRestoration) { if( status == SyncFileItem::Success || status == SyncFileItem::Conflict) { - status = SyncFileItem::SoftError; + status = SyncFileItem::Restoration; } else { _item._errorString += tr("; Restoration Failed: ") + errorString; } @@ -85,6 +85,7 @@ void PropagateItemJob::done(SyncFileItem::Status status, const QString &errorStr _propagator->_journal->updateBlacklistEntry( record ); break; case SyncFileItem::Success: + case SyncFileItem::Restoration: if( _item._blacklistedInDb ) { // wipe blacklist entry. _propagator->_journal->wipeBlacklistEntry(_item._file); @@ -161,7 +162,8 @@ void PropagateItemJob::slotRestoreJobCompleted(const SyncFileItem& item ) _restoreJob->setRestoreJobMsg(); } - if( item._status == SyncFileItem::Success || item._status == SyncFileItem::Conflict) { + if( item._status == SyncFileItem::Success || item._status == SyncFileItem::Conflict + || item._status == SyncFileItem::Restoration) { done( SyncFileItem::SoftError, msg); } else { done( item._status, tr("A file or directory was removed from a read only share, but restoring failed: %1").arg(item._errorString) ); @@ -388,7 +390,8 @@ void PropagateDirectory::start() void PropagateDirectory::slotSubJobFinished(SyncFileItem::Status status) { - if (status == SyncFileItem::FatalError || (_current == -1 && status != SyncFileItem::Success)) { + if (status == SyncFileItem::FatalError || + (_current == -1 && status != SyncFileItem::Success && status != SyncFileItem::Restoration)) { abort(); emit finished(status); return; diff --git a/src/mirall/progressdispatcher.cpp b/src/mirall/progressdispatcher.cpp index d14c4c47b3..384b78d034 100644 --- a/src/mirall/progressdispatcher.cpp +++ b/src/mirall/progressdispatcher.cpp @@ -84,7 +84,7 @@ bool Progress::isWarningKind( SyncFileItem::Status kind) { return kind == SyncFileItem::SoftError || kind == SyncFileItem::NormalError || kind == SyncFileItem::FatalError || kind == SyncFileItem::FileIgnored - || kind == SyncFileItem::Conflict; + || kind == SyncFileItem::Conflict || kind == SyncFileItem::Restoration; } diff --git a/src/mirall/syncfileitem.h b/src/mirall/syncfileitem.h index 30d3c2730a..4ce515f4a7 100644 --- a/src/mirall/syncfileitem.h +++ b/src/mirall/syncfileitem.h @@ -46,7 +46,8 @@ public: Success, ///< The file was properly synced Conflict, ///< The file was properly synced, but a conflict was created - FileIgnored ///< The file is in the ignored list + FileIgnored, ///< The file is in the ignored list + Restoration ///< The file was restored because what should have been done was not allowed }; SyncFileItem() : _type(UnknownType), _direction(None), _isDirectory(false),