diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/corelib/io/qfilesystemengine_unix.cpp | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index 6e8229daec..108f212334 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -884,6 +884,8 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM if (!data.hasFlags(QFileSystemMetaData::DirectoryType)) what |= QFileSystemMetaData::DirectoryType; } + if (what & QFileSystemMetaData::AliasType) + what |= QFileSystemMetaData::LinkType; #endif #ifdef UF_HIDDEN if (what & QFileSystemMetaData::HiddenAttribute) { @@ -1019,8 +1021,11 @@ bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemM #if defined(Q_OS_DARWIN) if (what & QFileSystemMetaData::AliasType) { - if (entryErrno == 0 && hasResourcePropertyFlag(data, entry, kCFURLIsAliasFileKey)) - data.entryFlags |= QFileSystemMetaData::AliasType; + if (entryErrno == 0 && hasResourcePropertyFlag(data, entry, kCFURLIsAliasFileKey)) { + // kCFURLIsAliasFileKey includes symbolic links, so filter those out + if (!(data.entryFlags & QFileSystemMetaData::LinkType)) + data.entryFlags |= QFileSystemMetaData::AliasType; + } data.knownFlagsMask |= QFileSystemMetaData::AliasType; } |