29class QDirPrivate :
public QSharedData
32 enum PathNormalization {
33 DefaultNormalization = 0x00,
34 UrlNormalizationMode = 0x01,
37 Q_DECLARE_FLAGS(PathNormalizations, PathNormalization)
38 Q_FLAGS(PathNormalizations)
40 explicit QDirPrivate(
const QString &path,
const QStringList &nameFilters_ = QStringList(),
41 QDir::SortFlags sort_ = QDir::SortFlags(QDir::Name | QDir::IgnoreCase),
42 QDir::Filters filters_ = QDir::AllEntries);
44 explicit QDirPrivate(
const QDirPrivate ©);
48#ifndef QT_BOOTSTRAPPED
49 static QDirListing::IteratorFlags toDirListingFlags(QDir::Filters filters);
50 static bool checkNonDirListingFlags(
const QDirListing::DirEntry &dirEntry,
51 QDir::Filters filters);
53 void initFileLists(
const QDir &dir)
const;
56 static void sortFileList(QDir::SortFlags,
const QFileInfoList &, QStringList *, QFileInfoList *);
58 static inline QChar getFilterSepChar(
const QString &nameFilter);
60 static inline QStringList splitFilters(
const QString &nameFilter, QChar sep = {});
63 void setPath(
const QString &path);
65 enum MetaDataClearing { KeepMetaData, IncludingMetaData };
66 void clearCache(MetaDataClearing mode);
68 QString resolveAbsoluteEntry()
const;
70 QStringList nameFilters;
72 QDir::Filters filters;
74 std::unique_ptr<QAbstractFileEngine> fileEngine;
76 QFileSystemEntry dirEntry;
82 QFileInfoList fileInfos;
83 std::atomic<
bool> fileListsInitialized =
false;
84 QFileSystemEntry absoluteDirEntry;
85 QFileSystemMetaData metaData;
87 mutable FileCache fileCache;