diff options
author | João Abecasis <joao.abecasis@nokia.com> | 2010-09-10 08:21:18 (GMT) |
---|---|---|
committer | João Abecasis <joao.abecasis@nokia.com> | 2010-09-10 08:50:41 (GMT) |
commit | 4506d57fc0320234efcd4ab39e2fe9c2810b4d3c (patch) | |
tree | fdd499b1a967e2d7cc003557404eddcae194caa4 | |
parent | 5f0e9b7666c689a8b7ea23eefa5a7a68b0a0ed78 (diff) | |
download | Qt-4506d57fc0320234efcd4ab39e2fe9c2810b4d3c.zip Qt-4506d57fc0320234efcd4ab39e2fe9c2810b4d3c.tar.gz Qt-4506d57fc0320234efcd4ab39e2fe9c2810b4d3c.tar.bz2 |
QFileinfo: fix isSymLink on Mac
On Mac OS X, we also flag Alias Records as symbolic links. Since we now
make the distinction in the engine, we need to query for it explicitly.
Added a new type LegacyLinkType to QFileSystemMetaData to document this
old behavior.
-rw-r--r-- | src/corelib/io/qfileinfo.cpp | 6 | ||||
-rw-r--r-- | src/corelib/io/qfilesystemmetadata_p.h | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/src/corelib/io/qfileinfo.cpp b/src/corelib/io/qfileinfo.cpp index 5d632d3..68f1f55 100644 --- a/src/corelib/io/qfileinfo.cpp +++ b/src/corelib/io/qfileinfo.cpp @@ -1001,9 +1001,9 @@ bool QFileInfo::isSymLink() const if (d->isDefaultConstructed) return false; if (d->fileEngine == 0) { - if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::LinkType)) - QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::LinkType); - return d->metaData.isLink(); + if (!d->cache_enabled || !d->metaData.hasFlags(QFileSystemMetaData::LegacyLinkType)) + QFileSystemEngine::fillMetaData(d->fileEntry, d->metaData, QFileSystemMetaData::LegacyLinkType); + return d->metaData.isLegacyLink(); } return d->getFileFlags(QAbstractFileEngine::LinkType); } diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 1164d42..9df762c 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -112,6 +112,8 @@ struct QFileSystemMetaData #endif SequentialType = 0x00800000, // Note: overlaps with QAbstractFileEngine::RootFlag + LegacyLinkType = LinkType | AliasType, + Type = LinkType | FileType | DirectoryType | BundleType | SequentialType | AliasType, // Attributes @@ -195,6 +197,7 @@ struct QFileSystemMetaData bool isBundle() const { return false; } bool isAlias() const { return false; } #endif + bool isLegacyLink() const { return (entryFlags & LegacyLinkType); } bool isSequential() const { return (entryFlags & SequentialType); } bool isHidden() const { return (entryFlags & HiddenAttribute); } |