diff --git a/src/libsync/propagatedownload.cpp b/src/libsync/propagatedownload.cpp index c5bd0a4043f1e..d9ed93dbb0ff5 100644 --- a/src/libsync/propagatedownload.cpp +++ b/src/libsync/propagatedownload.cpp @@ -1207,16 +1207,6 @@ void PropagateDownloadFile::downloadFinished() } } - if (_item->_locked == SyncFileItem::LockStatus::LockedItem && (_item->_lockOwnerType != SyncFileItem::LockOwnerType::UserLock || _item->_lockOwnerId != propagator()->account()->davUser())) { - qCDebug(lcPropagateDownload()) << _tmpFile.fileName() << "file is locked: making it read only"; - FileSystem::setFileReadOnly(_tmpFile.fileName(), true); - } else { - qCDebug(lcPropagateDownload()) << _tmpFile.fileName() << "file is not locked: making it" - << ((!_item->_remotePerm.isNull() && !_item->_remotePerm.hasPermission(RemotePermissions::CanWrite)) ? "read only" - : "read write"); - FileSystem::setFileReadOnlyWeak(_tmpFile.fileName(), (!_item->_remotePerm.isNull() && !_item->_remotePerm.hasPermission(RemotePermissions::CanWrite))); - } - const auto isConflict = (_item->_instruction == CSYNC_INSTRUCTION_CONFLICT && (FileSystem::isDir(filename) || !FileSystem::fileEquals(filename, _tmpFile.fileName()))) || _item->_instruction == CSYNC_INSTRUCTION_CASE_CLASH_CONFLICT; @@ -1281,6 +1271,16 @@ void PropagateDownloadFile::downloadFinished() FileSystem::setFileHidden(filename, false); + if (_item->_locked == SyncFileItem::LockStatus::LockedItem && (_item->_lockOwnerType != SyncFileItem::LockOwnerType::UserLock || _item->_lockOwnerId != propagator()->account()->davUser())) { + qCDebug(lcPropagateDownload()) << filename << "file is locked: making it read only"; + FileSystem::setFileReadOnly(filename, true); + } else { + qCDebug(lcPropagateDownload()) << filename << "file is not locked: making it" + << ((!_item->_remotePerm.isNull() && !_item->_remotePerm.hasPermission(RemotePermissions::CanWrite)) ? "read only" + : "read write"); + FileSystem::setFileReadOnlyWeak(filename, (!_item->_remotePerm.isNull() && !_item->_remotePerm.hasPermission(RemotePermissions::CanWrite))); + } + if (_needParentFolderRestorePermissions) { FileSystem::setFolderPermissions(QString::fromStdWString(_parentPath.wstring()), FileSystem::FolderPermissions::ReadOnly); emit propagator()->touchedFile(QString::fromStdWString(_parentPath.wstring()));