mirror of
https://github.com/nextcloud/desktop.git
synced 2025-10-26 11:17:43 +00:00
ensure proper VFS metadata when restoring folders
when remote move is forbidden, desktop client will move back the folder to its original name in such cases, we were forgetting to set VFS metadata in their proper state (i.e. placeholder in sync) so ensure that when a remote move fails, we still touch VFS metadata when appropriate and handle errors Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
This commit is contained in:
parent
a003a0789f
commit
da920f6d4e
@ -217,7 +217,19 @@ void PropagateRemoteMove::slotMoveJobFinished()
|
||||
qCWarning(lcPropagateRemoteMove)
|
||||
<< "Could not MOVE file" << filePathOriginal << " to" << filePath
|
||||
<< " with error:" << _job->errorString() << " and successfully restored it.";
|
||||
|
||||
auto restoredItem = *_item;
|
||||
restoredItem._renameTarget = _item->_originalFile;
|
||||
const auto result = propagator()->updateMetadata(restoredItem);
|
||||
if (!result) {
|
||||
done(SyncFileItem::FatalError, tr("Error updating metadata: %1").arg(result.error()), ErrorCategory::GenericError);
|
||||
return;
|
||||
} else if (*result == Vfs::ConvertToPlaceholderResult::Locked) {
|
||||
done(SyncFileItem::SoftError, tr("The file %1 is currently in use").arg(restoredItem._file), ErrorCategory::GenericError);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
done(status, _job->errorString(), ErrorCategory::GenericError);
|
||||
return;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user