Merge remote-tracking branch 'origin/il'

This commit is contained in:
Olivier Goffart 2014-06-24 08:40:27 +02:00
commit 94ddf7e5d8
4 changed files with 14 additions and 11 deletions

View file

@ -45,7 +45,7 @@ void PropagateItemJob::done(SyncFileItem::Status status, const QString &errorStr
{ {
if (_item._isRestoration) { if (_item._isRestoration) {
if( status == SyncFileItem::Success || status == SyncFileItem::Conflict) { if( status == SyncFileItem::Success || status == SyncFileItem::Conflict) {
status = SyncFileItem::SoftError; status = SyncFileItem::Restoration;
} else { } else {
_item._errorString += tr("; Restoration Failed: ") + errorString; _item._errorString += tr("; Restoration Failed: ") + errorString;
} }
@ -85,6 +85,7 @@ void PropagateItemJob::done(SyncFileItem::Status status, const QString &errorStr
_propagator->_journal->updateBlacklistEntry( record ); _propagator->_journal->updateBlacklistEntry( record );
break; break;
case SyncFileItem::Success: case SyncFileItem::Success:
case SyncFileItem::Restoration:
if( _item._blacklistedInDb ) { if( _item._blacklistedInDb ) {
// wipe blacklist entry. // wipe blacklist entry.
_propagator->_journal->wipeBlacklistEntry(_item._file); _propagator->_journal->wipeBlacklistEntry(_item._file);
@ -161,7 +162,8 @@ void PropagateItemJob::slotRestoreJobCompleted(const SyncFileItem& item )
_restoreJob->setRestoreJobMsg(); _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); done( SyncFileItem::SoftError, msg);
} else { } else {
done( item._status, tr("A file or directory was removed from a read only share, but restoring failed: %1").arg(item._errorString) ); 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) 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(); abort();
emit finished(status); emit finished(status);
return; return;

View file

@ -84,7 +84,7 @@ bool Progress::isWarningKind( SyncFileItem::Status kind)
{ {
return kind == SyncFileItem::SoftError || kind == SyncFileItem::NormalError return kind == SyncFileItem::SoftError || kind == SyncFileItem::NormalError
|| kind == SyncFileItem::FatalError || kind == SyncFileItem::FileIgnored || kind == SyncFileItem::FatalError || kind == SyncFileItem::FileIgnored
|| kind == SyncFileItem::Conflict; || kind == SyncFileItem::Conflict || kind == SyncFileItem::Restoration;
} }

View file

@ -273,13 +273,17 @@ int SyncEngine::treewalkFile( TREE_WALK_FILE *file, bool remote )
if (file->directDownloadCookies) { if (file->directDownloadCookies) {
item._directDownloadCookies = QString::fromUtf8( file->directDownloadCookies ); item._directDownloadCookies = QString::fromUtf8( file->directDownloadCookies );
} }
if (file->remotePerm) { if (file->remotePerm && file->remotePerm[0]) {
item._remotePerm = QByteArray(file->remotePerm); item._remotePerm = QByteArray(file->remotePerm);
} }
// record the seen files to be able to clean the journal later // record the seen files to be able to clean the journal later
_seenFiles.insert(item._file); _seenFiles.insert(item._file);
if (remote && file->remotePerm && file->remotePerm[0]) {
_remotePerms[item._file] = file->remotePerm;
}
switch(file->error_status) { switch(file->error_status) {
case CSYNC_STATUS_OK: case CSYNC_STATUS_OK:
break; break;
@ -399,10 +403,6 @@ int SyncEngine::treewalkFile( TREE_WALK_FILE *file, bool remote )
_syncedItems.append(item); _syncedItems.append(item);
if (remote && file->remotePerm) {
_remotePerms[item._file] = file->remotePerm;
}
emit syncItemDiscovered(item); emit syncItemDiscovered(item);
return re; return re;
} }
@ -880,7 +880,6 @@ void SyncEngine::checkForPermission()
QByteArray SyncEngine::getPermissions(const QString& file) const QByteArray SyncEngine::getPermissions(const QString& file) const
{ {
//FIXME;
static bool isTest = qgetenv("OWNCLOUD_TEST_PERMISSIONS").toInt(); static bool isTest = qgetenv("OWNCLOUD_TEST_PERMISSIONS").toInt();
if (isTest) { if (isTest) {
QRegExp rx("_PERM_([^_]*)_[^/]*$"); QRegExp rx("_PERM_([^_]*)_[^/]*$");

View file

@ -46,7 +46,8 @@ public:
Success, ///< The file was properly synced Success, ///< The file was properly synced
Conflict, ///< The file was properly synced, but a conflict was created 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), SyncFileItem() : _type(UnknownType), _direction(None), _isDirectory(false),