diff options
Diffstat (limited to 'src/libsync/discovery.cpp')
-rw-r--r-- | src/libsync/discovery.cpp | 16 |
1 files changed, 8 insertions, 8 deletions
diff --git a/src/libsync/discovery.cpp b/src/libsync/discovery.cpp index 9c3f2d9d0..636e64c9d 100644 --- a/src/libsync/discovery.cpp +++ b/src/libsync/discovery.cpp @@ -180,9 +180,15 @@ void ProcessDirectoryJob::process() // local stat function. // Recall file shall not be ignored (#4420) bool isHidden = e.localEntry.isHidden || (f.first[0] == '.' && f.first != QLatin1String(".sys.admin#recall#")); +#ifdef Q_OS_WIN + // exclude ".lnk" files as they are not essential, but, causing troubles when enabling the VFS due to QFileInfo::isDir() and other methods are freezing, which causes the ".lnk" files to start hydrating and freezing the app eventually. + const bool isServerEntrySymLink = !e.localEntry.isValid() && e.serverEntry.isValid() && !e.serverEntry.isDirectory && FileSystem::isLnkFile(e.serverEntry.name); +#else + const bool isServerEntrySymLink = false; +#endif if (handleExcluded(path._target, e.localEntry.name, e.localEntry.isDirectory || e.serverEntry.isDirectory, isHidden, - e.localEntry.isSymLink)) + e.localEntry.isSymLink || isServerEntrySymLink)) continue; if (_queryServer == InBlackList || _discoveryData->isInSelectiveSyncBlackList(path._original)) { @@ -509,14 +515,8 @@ void ProcessDirectoryJob::processFileAnalyzeRemoteInfo( if (!localEntry.isValid() && item->_type == ItemTypeFile && opts._vfs->mode() != Vfs::Off - && _pinState != PinState::AlwaysLocal -#ifdef Q_OS_WIN - // on Windows, ".lnk" files are causing troubles with QFileInfo - always treat them as normal files - && !FileSystem::isLnkFile(path._server) -#endif - ) { + && _pinState != PinState::AlwaysLocal) { item->_type = ItemTypeVirtualFile; - if (isVfsWithSuffix()) addVirtualFileSuffix(tmp_path._original); } |