summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoão Abecasis <joao.abecasis@nokia.com>2010-08-30 11:58:26 (GMT)
committerJoão Abecasis <joao.abecasis@nokia.com>2010-09-01 12:26:08 (GMT)
commita543c044234f2854a53f9a659e9004f4aa536bc7 (patch)
treeddf67fc7777e070a54c91014dba1b5fabc4a8099
parent88ae6dc40e6f725a3dc15056a0b9e8f00d727c09 (diff)
downloadQt-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.cpp2
-rw-r--r--src/corelib/io/qfilesystemengine_p.h2
-rw-r--r--src/corelib/io/qfilesystemengine_unix.cpp2
-rw-r--r--src/corelib/io/qfilesystemengine_win.cpp2
-rw-r--r--src/corelib/io/qfilesystemmetadata_p.h75
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