summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Abecasis <joao.abecasis@nokia.com>2010-09-10 08:21:18 (GMT)
committerJoão Abecasis <joao.abecasis@nokia.com>2010-09-10 08:50:41 (GMT)
commit4506d57fc0320234efcd4ab39e2fe9c2810b4d3c (patch)
treefdd499b1a967e2d7cc003557404eddcae194caa4
parent5f0e9b7666c689a8b7ea23eefa5a7a68b0a0ed78 (diff)
downloadQt-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.cpp6
-rw-r--r--src/corelib/io/qfilesystemmetadata_p.h3
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); }