diff options
author | João Abecasis <joao.abecasis@nokia.com> | 2010-08-30 11:58:26 (GMT) |
---|---|---|
committer | João Abecasis <joao.abecasis@nokia.com> | 2010-09-01 12:26:08 (GMT) |
commit | a543c044234f2854a53f9a659e9004f4aa536bc7 (patch) | |
tree | ddf67fc7777e070a54c91014dba1b5fabc4a8099 | |
parent | 88ae6dc40e6f725a3dc15056a0b9e8f00d727c09 (diff) | |
download | Qt-a543c044234f2854a53f9a659e9004f4aa536bc7.zip Qt-a543c044234f2854a53f9a659e9004f4aa536bc7.tar.gz Qt-a543c044234f2854a53f9a659e9004f4aa536bc7.tar.bz2 |
Expanding the stub QFileSystemMetaData
Renamed FileFlags to MetaDataFlags. Added barebones structure and enum
values to be shared across different implementations, with placeholders
for platform-specific #includes and data members.
Reviewed-by: Thomas Zander
-rw-r--r-- | src/corelib/io/qfilesystemengine_mac.cpp | 2 | ||||
-rw-r--r-- | src/corelib/io/qfilesystemengine_p.h | 2 | ||||
-rw-r--r-- | src/corelib/io/qfilesystemengine_unix.cpp | 2 | ||||
-rw-r--r-- | src/corelib/io/qfilesystemengine_win.cpp | 2 | ||||
-rw-r--r-- | src/corelib/io/qfilesystemmetadata_p.h | 75 |
5 files changed, 75 insertions, 8 deletions
diff --git a/src/corelib/io/qfilesystemengine_mac.cpp b/src/corelib/io/qfilesystemengine_mac.cpp index 942415c..c915a2c 100644 --- a/src/corelib/io/qfilesystemengine_mac.cpp +++ b/src/corelib/io/qfilesystemengine_mac.cpp @@ -73,7 +73,7 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) } //static -bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::FileFlags what) +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) { return false; // TODO implement; } diff --git a/src/corelib/io/qfilesystemengine_p.h b/src/corelib/io/qfilesystemengine_p.h index 61ca085..982b782 100644 --- a/src/corelib/io/qfilesystemengine_p.h +++ b/src/corelib/io/qfilesystemengine_p.h @@ -71,7 +71,7 @@ public: static QString bundleName(const QFileSystemEntry &entry); static bool fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, - QFileSystemMetaData::FileFlags what); + QFileSystemMetaData::MetaDataFlags what); static bool createDirectory(const QFileSystemEntry &entry, bool createParents); static bool removeDirectory(const QFileSystemEntry &entry, bool removeEmptyParents); diff --git a/src/corelib/io/qfilesystemengine_unix.cpp b/src/corelib/io/qfilesystemengine_unix.cpp index b7fe8e0..d4759c8 100644 --- a/src/corelib/io/qfilesystemengine_unix.cpp +++ b/src/corelib/io/qfilesystemengine_unix.cpp @@ -147,7 +147,7 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) } //static -bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::FileFlags what) +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) { return false; // TODO implement; } diff --git a/src/corelib/io/qfilesystemengine_win.cpp b/src/corelib/io/qfilesystemengine_win.cpp index aa6d2b1..dd6467a 100644 --- a/src/corelib/io/qfilesystemengine_win.cpp +++ b/src/corelib/io/qfilesystemengine_win.cpp @@ -73,7 +73,7 @@ QString QFileSystemEngine::bundleName(const QFileSystemEntry &entry) } //static -bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::FileFlags what) +bool QFileSystemEngine::fillMetaData(const QFileSystemEntry &entry, QFileSystemMetaData &data, QFileSystemMetaData::MetaDataFlags what) { return false; // TODO implement; } diff --git a/src/corelib/io/qfilesystemmetadata_p.h b/src/corelib/io/qfilesystemmetadata_p.h index 9664177..40bad9e 100644 --- a/src/corelib/io/qfilesystemmetadata_p.h +++ b/src/corelib/io/qfilesystemmetadata_p.h @@ -55,14 +55,81 @@ #include <QtCore/qglobal.h> +// Platform-specific includes +#if defined(Q_OS_WIN) +#else +#endif + QT_BEGIN_NAMESPACE -class QFileSystemMetaData +class QFileSystemEngine; + +struct QFileSystemMetaData { -public: - enum FileFlag { + QFileSystemMetaData() + : cachedFlags(0) + { + } + + enum MetaDataFlag { + // Permissions, overlaps with QFile::Permissions + OtherReadPermission = 0x00000004, OtherWritePermission = 0x00000002, OtherExecutePermission = 0x00000001, + GroupReadPermission = 0x00000040, GroupWritePermission = 0x00000020, GroupExecutePermission = 0x00000010, + UserReadPermission = 0x00000400, UserWritePermission = 0x00000200, UserExecutePermission = 0x00000100, + OwnerReadPermission = 0x00004000, OwnerWritePermission = 0x00002000, OwnerExecutePermission = 0x00001000, + + OtherPermissions = 0x0000000F, + GroupPermissions = 0x000000F0, + UserPermissions = 0x00000F00, + OwnerPermissions = 0x0000F000, + + Permissions = 0x0000FFFF, + + // Type + LinkType = 0x00010000, + FileType = 0x00020000, + DirectoryType = 0x00040000, + BundleType = 0x00080000, + + Type = 0x000F0000, + + // Attributes + HiddenAttribute = 0x00100000, + LocalDiskAttribute = 0x00200000, + ExistsAttribute = 0x00400000, + SizeAttribute = 0x00800000, // Note: overlaps with QAbstractFileEngine::RootFlag + + Attributes = 0x00F00000, + + // Times + CreationTime = 0x01000000, // Note: overlaps with QAbstractFileEngine::Refresh + ModificationTime = 0x02000000, + AccessTime = 0x04000000, + + Times = 0x07000000 }; - Q_DECLARE_FLAGS(FileFlags, FileFlag); + Q_DECLARE_FLAGS(MetaDataFlags, MetaDataFlag) + + bool hasFlags(MetaDataFlags flags) const + { + return ((cachedFlags & flags) == flags); + } + + void clear() + { + cachedFlags = 0; + } + +private: + friend class QFileSystemEngine; + + MetaDataFlags cachedFlags; + + // Platform-specific data goes here: +#if defined(Q_OS_WIN) +#else +#endif + }; QT_END_NAMESPACE |