diff --git a/src/mirall/owncloudpropagator.cpp b/src/mirall/owncloudpropagator.cpp index b8295cf55..0003b0ed8 100644 --- a/src/mirall/owncloudpropagator.cpp +++ b/src/mirall/owncloudpropagator.cpp @@ -198,6 +198,7 @@ PropagateItemJob* OwncloudPropagator::createJob(const SyncFileItem& item) { return new PropagateLocalRename(this, item); } case CSYNC_INSTRUCTION_IGNORE: + case CSYNC_INSTRUCTION_ERROR: return new PropagateIgnoreJob(this, item); default: return 0; diff --git a/src/mirall/owncloudpropagator.h b/src/mirall/owncloudpropagator.h index aeede4ad3..33146aa50 100644 --- a/src/mirall/owncloudpropagator.h +++ b/src/mirall/owncloudpropagator.h @@ -164,7 +164,8 @@ public: PropagateIgnoreJob(OwncloudPropagator* propagator,const SyncFileItem& item) : PropagateItemJob(propagator, item) {} void start() { - done(SyncFileItem::FileIgnored, _item._errorString); + SyncFileItem::Status status = _item._status; + done(status == SyncFileItem::NoStatus ? SyncFileItem::FileIgnored : status, _item._errorString); } }; diff --git a/src/mirall/syncengine.cpp b/src/mirall/syncengine.cpp index b505a7b76..65267d186 100644 --- a/src/mirall/syncengine.cpp +++ b/src/mirall/syncengine.cpp @@ -236,7 +236,8 @@ bool SyncEngine::checkBlacklisting( SyncFileItem *item ) if( re ) { qDebug() << "Item is on blacklist: " << entry._file << "retries:" << entry._retryCount; - item->_instruction = CSYNC_INSTRUCTION_IGNORE; + item->_instruction = CSYNC_INSTRUCTION_ERROR; + item->_status = SyncFileItem::FileIgnored; item->_errorString = tr("The item is not synced because of previous errors: %1").arg(entry._errorString); } } @@ -368,7 +369,8 @@ int SyncEngine::treewalkFile( TREE_WALK_FILE *file, bool remote ) checkBlacklisting( &item ); if (file->instruction != CSYNC_INSTRUCTION_IGNORE - && file->instruction != CSYNC_INSTRUCTION_REMOVE) { + && file->instruction != CSYNC_INSTRUCTION_REMOVE + && file->instruction != CSYNC_INSTRUCTION_ERROR) { _hasFiles = true; }