From 3906ae09228af393f08cfea6a05b516f7880eaaa Mon Sep 17 00:00:00 2001 From: allexzander Date: Wed, 31 Mar 2021 17:19:01 +0300 Subject: [PATCH] Another way to fix this. Signed-off-by: allexzander --- src/libsync/discovery.cpp | 8 +++++--- src/libsync/syncengine.cpp | 6 +----- src/libsync/vfs/cfapi/vfs_cfapi.cpp | 4 +++- 3 files changed, 9 insertions(+), 9 deletions(-) diff --git a/src/libsync/discovery.cpp b/src/libsync/discovery.cpp index 47b4f2cf5..a24cb4d68 100644 --- a/src/libsync/discovery.cpp +++ b/src/libsync/discovery.cpp @@ -510,11 +510,13 @@ void ProcessDirectoryJob::processFileAnalyzeRemoteInfo( && item->_type == ItemTypeFile && opts._vfs->mode() != Vfs::Off && _pinState != PinState::AlwaysLocal -#ifdef Q_OS_WIN - && !FileSystem::isLnkFile(path._server) -#endif ) { item->_type = ItemTypeVirtualFile; +#ifdef Q_OS_WIN + if(FileSystem::isLnkFile(path._server)) { + item->_type = ItemTypeVirtualFileDownload; + } +#endif if (isVfsWithSuffix()) addVirtualFileSuffix(tmp_path._original); } diff --git a/src/libsync/syncengine.cpp b/src/libsync/syncengine.cpp index 086da5cac..f6a23261a 100644 --- a/src/libsync/syncengine.cpp +++ b/src/libsync/syncengine.cpp @@ -345,11 +345,7 @@ void OCC::SyncEngine::slotItemDiscovered(const OCC::SyncFileItemPtr &item) rec._serverHasIgnoredFiles |= prev._serverHasIgnoredFiles; // Ensure it's a placeholder file on disk - if (item->_type == ItemTypeFile -#ifdef Q_OS_WIN - && !FileSystem::isLnkFile(filePath) -#endif - ) { + if (item->_type == ItemTypeFile) { const auto result = _syncOptions._vfs->convertToPlaceholder(filePath, *item); if (!result) { item->_instruction = CSYNC_INSTRUCTION_ERROR; diff --git a/src/libsync/vfs/cfapi/vfs_cfapi.cpp b/src/libsync/vfs/cfapi/vfs_cfapi.cpp index c9d05ce07..b5b2cb9e2 100644 --- a/src/libsync/vfs/cfapi/vfs_cfapi.cpp +++ b/src/libsync/vfs/cfapi/vfs_cfapi.cpp @@ -196,7 +196,9 @@ bool VfsCfApi::statTypeVirtualFile(csync_file_stat_t *stat, void *statData) stat->type = ItemTypeVirtualFileDownload; return true; } else if (!isSparseFile && isUnpinned){ - stat->type = ItemTypeVirtualFileDehydration; + if (!FileSystem::isLnkFile(stat->path)) { + stat->type = ItemTypeVirtualFileDehydration; + } return true; } else if (isSparseFile) { stat->type = ItemTypeVirtualFile;