Qt
Internal/Contributor docs for the Qt SDK. Note: These are NOT official API docs; those are found at https://doc.qt.io/
Loading...
Searching...
No Matches
qdir.h
Go to the documentation of this file.
1// Copyright (C) 2020 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3// Qt-Security score:significant reason:default
4
5#ifndef QDIR_H
6#define QDIR_H
7
8#include <QtCore/qcompare.h>
9#include <QtCore/qstring.h>
10#include <QtCore/qdirlisting.h>
11#include <QtCore/qfile.h>
12#include <QtCore/qfileinfo.h>
13#include <QtCore/qstringlist.h>
14#include <QtCore/qshareddata.h>
15
16QT_BEGIN_NAMESPACE
17
18class QDirIterator;
19class QDirPrivate;
20
21class Q_CORE_EXPORT QDir
22{
23public:
24 enum Filter { Dirs = 0x001,
25 Files = 0x002,
26 Drives = 0x004,
27 NoSymLinks = 0x008,
28 AllEntries = Dirs | Files | Drives,
29 TypeMask = 0x00f,
30
31 Readable = 0x010,
32 Writable = 0x020,
33 Executable = 0x040,
34 PermissionMask = 0x070,
35#if QT_DEPRECATED_SINCE(6, 11)
36 Modified QT_DEPRECATED_VERSION_X_6_11("This flag is not handled in QDir; you can simply remove it from your code.") = 0x080,
37#endif
38 Hidden = 0x100,
39 System = 0x200,
40
41 AccessMask = 0x3F0,
42
43 AllDirs = 0x400,
44 CaseSensitive = 0x800,
45 NoDot = 0x2000,
46 NoDotDot = 0x4000,
47 NoDotAndDotDot = NoDot | NoDotDot,
48
49 NoFilter = -1
50 };
51 Q_DECLARE_FLAGS(Filters, Filter)
52
53 enum SortFlag { Name = 0x00,
54 Time = 0x01,
55 Size = 0x02,
56 Unsorted = 0x03,
57 SortByMask = 0x03,
58
59 DirsFirst = 0x04,
60 Reversed = 0x08,
61 IgnoreCase = 0x10,
62 DirsLast = 0x20,
63 LocaleAware = 0x40,
64 Type = 0x80,
65 NoSort = -1
66 };
67 Q_DECLARE_FLAGS(SortFlags, SortFlag)
68
69 QDir(const QDir &);
70 QDir(const QString &path = QString());
71 QDir(const QString &path, const QString &nameFilter,
72 SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries);
73#ifdef Q_QDOC
74 QDir(const std::filesystem::path &path);
75 QDir(const std::filesystem::path &path, const QString &nameFilter,
76 SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries);
77#elif QT_CONFIG(cxx17_filesystem)
78 template<typename T, QtPrivate::ForceFilesystemPath<T> = 0>
79 QDir(const T &path) : QDir(QtPrivate::fromFilesystemPath(path))
80 {
81 }
82 template<typename T, QtPrivate::ForceFilesystemPath<T> = 0>
83 QDir(const T &path, const QString &nameFilter,
84 SortFlags sort = SortFlags(Name | IgnoreCase), Filters filter = AllEntries)
85 : QDir(QtPrivate::fromFilesystemPath(path), nameFilter, sort, filter)
86 {
87 }
88#endif // QT_CONFIG(cxx17_filesystem)
89 ~QDir();
90
91 QDir &operator=(const QDir &);
92 QT_MOVE_ASSIGNMENT_OPERATOR_IMPL_VIA_PURE_SWAP(QDir)
93
94 void swap(QDir &other) noexcept
95 { d_ptr.swap(other.d_ptr); }
96
97 void setPath(const QString &path);
98#ifdef Q_QDOC
99 void setPath(const std::filesystem::path &path);
100#elif QT_CONFIG(cxx17_filesystem)
101 template<typename T, QtPrivate::ForceFilesystemPath<T> = 0>
102 void setPath(const T &path)
103 {
104 setPath(QtPrivate::fromFilesystemPath(path));
105 }
106#endif // QT_CONFIG(cxx17_filesystem)
107 QString path() const;
108 QString absolutePath() const;
109 QString canonicalPath() const;
110#if QT_CONFIG(cxx17_filesystem) || defined(Q_QDOC)
111 std::filesystem::path filesystemPath() const
112 { return QtPrivate::toFilesystemPath(path()); }
113 std::filesystem::path filesystemAbsolutePath() const
114 { return QtPrivate::toFilesystemPath(absolutePath()); }
115 std::filesystem::path filesystemCanonicalPath() const
116 { return QtPrivate::toFilesystemPath(canonicalPath()); }
117#endif // QT_CONFIG(cxx17_filesystem)
118
119#ifndef QT_BOOTSTRAPPED
120 static void setSearchPaths(const QString &prefix, const QStringList &searchPaths);
121 static void addSearchPath(const QString &prefix, const QString &path);
122#ifdef Q_QDOC
123 static void addSearchPath(const QString &prefix, const std::filesystem::path &path);
124#elif QT_CONFIG(cxx17_filesystem)
125 template<typename T, QtPrivate::ForceFilesystemPath<T> = 0>
126 static void addSearchPath(const QString &prefix, const T &path)
127 {
128 addSearchPath(prefix, QtPrivate::fromFilesystemPath(path));
129 }
130#endif // QT_CONFIG(cxx17_filesystem)
131 static QStringList searchPaths(const QString &prefix);
132#endif // QT_BOOTSTRAPPED
133
134 QString dirName() const;
135 QString filePath(const QString &fileName) const;
136 QString absoluteFilePath(const QString &fileName) const;
137 QString relativeFilePath(const QString &fileName) const;
138
139 static QString toNativeSeparators(const QString &pathName);
140 static QString fromNativeSeparators(const QString &pathName);
141
142 bool cd(const QString &dirName);
143 bool cdUp();
144
145 QStringList nameFilters() const;
146 void setNameFilters(const QStringList &nameFilters);
147
148 Filters filter() const;
149 void setFilter(Filters filter);
150 SortFlags sorting() const;
151 void setSorting(SortFlags sort);
152
153#if QT_CORE_REMOVED_SINCE(6, 5)
154 uint count() const;
155#endif
156 qsizetype count(QT6_DECL_NEW_OVERLOAD) const;
157 bool isEmpty(Filters filters = Filters(AllEntries | NoDotAndDotDot)) const;
158
159#if QT_CORE_REMOVED_SINCE(6, 5) && QT_POINTER_SIZE != 4
160 QString operator[](int) const;
161#endif
162 QString operator[](qsizetype) const;
163
164 static QStringList nameFiltersFromString(const QString &nameFilter);
165
166 QStringList entryList(Filters filters = NoFilter, SortFlags sort = NoSort) const;
167 QStringList entryList(const QStringList &nameFilters, Filters filters = NoFilter,
168 SortFlags sort = NoSort) const;
169
170 QFileInfoList entryInfoList(Filters filters = NoFilter, SortFlags sort = NoSort) const;
171 QFileInfoList entryInfoList(const QStringList &nameFilters, Filters filters = NoFilter,
172 SortFlags sort = NoSort) const;
173
174#if QT_CORE_REMOVED_SINCE(6, 10)
175 bool mkdir(const QString &dirName) const;
176 bool mkdir(const QString &dirName, QFile::Permissions permissions) const;
177#endif
178 bool mkdir(const QString &dirName, std::optional<QFile::Permissions> p = std::nullopt) const;
179 bool rmdir(const QString &dirName) const;
180#if QT_CORE_REMOVED_SINCE(6, 10)
181 bool mkpath(const QString &dirPath) const;
182#endif
183 bool mkpath(const QString &dirPath, std::optional<QFile::Permissions> p = std::nullopt) const;
184 bool rmpath(const QString &dirPath) const;
185
186 bool removeRecursively();
187
188 bool isReadable() const;
189 bool exists() const;
190 bool isRoot() const;
191
192 static bool isRelativePath(const QString &path);
193 inline static bool isAbsolutePath(const QString &path) { return !isRelativePath(path); }
194 bool isRelative() const;
195 inline bool isAbsolute() const { return !isRelative(); }
196 bool makeAbsolute();
197
198#if QT_CORE_REMOVED_SINCE(6, 8)
199 bool operator==(const QDir &dir) const;
200 inline bool operator!=(const QDir &dir) const { return !operator==(dir); }
201#endif
202
203 bool remove(const QString &fileName);
204 bool rename(const QString &oldName, const QString &newName);
205 bool exists(const QString &name) const;
206
207 static QFileInfoList drives();
208
209 constexpr static inline QChar listSeparator() noexcept
210 {
211#if defined(Q_OS_WIN)
212 return u';';
213#else
214 return u':';
215#endif
216 }
217
218 static QChar separator()
219 {
220#if defined(Q_OS_WIN)
221 return u'\\';
222#else
223 return u'/';
224#endif
225 }
226
227 static bool setCurrent(const QString &path);
228 static inline QDir current() { return QDir(currentPath()); }
229 static QString currentPath();
230
231 static inline QDir home() { return QDir(homePath()); }
232 static QString homePath();
233 static inline QDir root() { return QDir(rootPath()); }
234 static QString rootPath();
235 static inline QDir temp() { return QDir(tempPath()); }
236 static QString tempPath();
237
238#if QT_CONFIG(regularexpression)
239 static bool match(const QStringList &filters, const QString &fileName);
240 static bool match(const QString &filter, const QString &fileName);
241#endif
242
243 static QString cleanPath(const QString &path);
244 void refresh() const;
245
246protected:
247 explicit QDir(QDirPrivate &d);
248
249 QSharedDataPointer<QDirPrivate> d_ptr;
250
251private:
252 friend Q_CORE_EXPORT bool comparesEqual(const QDir &lhs, const QDir &rhs);
253 Q_DECLARE_EQUALITY_COMPARABLE_NON_NOEXCEPT(QDir)
254 friend class QDirIterator;
255 friend class QDirListing;
256 friend class QDirListingPrivate;
257 // Q_DECLARE_PRIVATE equivalent for shared data pointers
258 QDirPrivate *d_func();
259 const QDirPrivate *d_func() const { return d_ptr.constData(); }
260};
261
263Q_DECLARE_OPERATORS_FOR_FLAGS(QDir::Filters)
264Q_DECLARE_OPERATORS_FOR_FLAGS(QDir::SortFlags)
265
266#ifndef QT_NO_DEBUG_STREAM
267class QDebug;
268Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters);
269Q_CORE_EXPORT QDebug operator<<(QDebug debug, const QDir &dir);
270#endif
271
272QT_END_NAMESPACE
273
274#endif // QDIR_H
Definition moc.h:234
bool testFunctionAttribute(Token tok, FunctionDef *def)
Definition moc.cpp:359
void parseEnumOrFlag(BaseDef *def, QtMocConstants::EnumFlags flags)
Definition moc.cpp:1876
bool hasGlobalModuleFragment
Definition moc.h:262
void checkSuperClasses(ClassDef *def)
Definition moc.cpp:2144
Moc()
Definition moc.h:238
void parse()
Definition moc.cpp:775
bool inPrivateModuleFragment
Definition moc.h:261
bool parseEnum(EnumDef *def, ClassDef *containingClass)
Definition moc.cpp:250
void parseProperty(ClassDef *def, PropertyMode mode)
Definition moc.cpp:1771
QByteArray lexemUntil(Token)
Definition moc.cpp:2044
EncounteredQmlMacro parseClassInfo(BaseDef *def)
Definition moc.cpp:1915
bool until(Token)
Definition moc.cpp:2064
QList< QByteArray > includeFiles
Definition moc.h:248
QList< QByteArray > moduleFragmentIncludes
Definition moc.h:273
bool requireCompleteTypes
Definition moc.h:246
QHash< QByteArray, QByteArray > knownQObjectClasses
Definition moc.h:253
void createPropertyDef(PropertyDef &def, int propertyIndex, PropertyMode mode)
Definition moc.cpp:1571
void parseClassInfo(ClassDef *def)
Definition moc.cpp:1942
QByteArrayView strippedFileName() const
Definition moc.cpp:1266
bool parseClassHead(ClassDef *def)
Definition moc.cpp:39
void parsePrivateProperty(ClassDef *def, PropertyMode mode)
Definition moc.cpp:1863
QByteArray includePath
Definition moc.h:247
QByteArray filename
Definition moc.h:242
void parseFlag(BaseDef *def)
Definition moc.cpp:1891
void parsePrivateModuleFragment(qsizetype rewind)
Definition moc.cpp:754
void parseSignals(ClassDef *def)
Definition moc.cpp:1527
void parseDeclareMetatype()
Definition moc.cpp:2004
void parsePropertyAttributes(PropertyDef &propDef)
Definition moc.cpp:1610
void parseInterfaces(ClassDef *def)
Definition moc.cpp:1948
bool testFunctionRevision(FunctionDef *def)
Definition moc.cpp:422
bool testFunctionAttribute(FunctionDef *def)
Definition moc.cpp:350
void prependNamespaces(BaseDef &def, const QList< NamespaceDef > &namespaceList) const
Definition moc.cpp:656
QHash< QByteArray, QByteArray > knownGadgets
Definition moc.h:254
QList< QByteArray > metaTypes
Definition moc.h:251
bool parseFunction(FunctionDef *def, bool inMacro=false)
Definition moc.cpp:434
QByteArray parsePropertyAccessor()
Definition moc.cpp:1845
QMap< QString, QJsonArray > metaArgs
Definition moc.h:255
bool testForFunctionModifiers(FunctionDef *def)
Definition moc.cpp:538
const QByteArray & toFullyQualified(const QByteArray &name) const noexcept
Definition moc.cpp:30
void parseSlots(ClassDef *def, FunctionDef::Access access)
Definition moc.cpp:1485
void parseDeclareInterface()
Definition moc.cpp:1981
void checkListSizes(const ClassDef &def)
Definition moc.cpp:666
QTypeRevision parseRevision()
Definition moc.cpp:391
void parseMocInclude()
Definition moc.cpp:2013
QList< QString > parsedPluginMetadataFiles
Definition moc.h:256
bool skipCxxAttributes()
Definition moc.cpp:382
qsizetype firstSourceSymbolIndex
Definition moc.h:267
PropertyMode
Definition moc.h:236
@ Anonymous
Definition moc.h:236
@ Named
Definition moc.h:236
ModuleUnitKind moduleUnitKind
Definition moc.h:258
bool mustIncludeQPluginH
Definition moc.h:245
bool parseMaybeFunction(const ClassDef *cdef, FunctionDef *def)
Definition moc.cpp:546
void checkProperties(ClassDef *cdef)
Definition moc.cpp:2202
Type parseType()
Definition moc.cpp:130
void parseModuleDeclaration(qsizetype rewind, bool exported)
Definition moc.cpp:702
void parseFunctionArguments(FunctionDef *def)
Definition moc.cpp:310
void parseSlotInPrivate(ClassDef *def, FunctionDef::Access access)
Definition moc.cpp:2023
bool inClass(const ClassDef *def) const
Definition moc.h:283
void parsePluginData(ClassDef *def)
Definition moc.cpp:1781
QByteArray modulePartitionName
Definition moc.h:260
void generate(FILE *out, FILE *jsonOutput)
Definition moc.cpp:1343
QMap< QByteArray, QByteArray > interface2IdMap
Definition moc.h:250
bool noInclude
Definition moc.h:244
EncounteredQmlMacro
Definition moc.h:312
bool inNamespace(const NamespaceDef *def) const
Definition moc.h:287
QList< ClassDef > classList
Definition moc.h:249
QByteArray moduleName
Definition moc.h:259
QByteArray resolveIncludeNext(const QByteArray &filename, qsizetype startIndex, qsizetype *foundIndex=nullptr)
void setDebugIncludes(bool value)
void parseDefineArguments(Macro *m)
void skipUntilEndif()
Symbols preprocessed(const QByteArray &filename, QFile *device)
void substituteUntilNewline(Symbols &substituted)
QList< QByteArray > frameworks
QHash< QByteArray, IncludeResolution > nonlocalIncludePathResolutionCache
static bool preprocessOnly
QByteArray resolveInclude(const QByteArray &filename, const QByteArray &relativeTo, qsizetype *foundIndex=nullptr)
static Symbols macroExpandIdentifier(Preprocessor *that, SymbolStack &symbols, int lineNum, QByteArray *macroName)
static Symbols tokenize(const QByteArray &input, int lineNum=1, TokenizeMode mode=TokenizeCpp)
static void macroExpand(Symbols *into, Preprocessor *that, const Symbols &toExpand, qsizetype &index, int lineNum, bool one, const QSet< QByteArray > &excludeSymbols=QSet< QByteArray >())
@ PreparePreprocessorStatement
@ TokenizePreprocessorStatement
The QCommandLineOption class defines a possible command-line option. \inmodule QtCore.
The QCommandLineParser class provides a means for handling the command line options.
\inmodule QtCore\reentrant
Definition qdatastream.h:50
\inmodule QtCore
Definition qdir.h:22
Definition qfile.h:71
\inmodule QtCore\reentrant
Definition qjsonarray.h:19
\inmodule QtCore\reentrant
Definition qlist.h:82
Definition qmap.h:295
std::map< Key, T > toStdMap() const &
Definition qmap.h:333
QMap()=default
friend size_t qHash(const M &key, size_t seed=0) noexcept(QHashPrivate::noexceptPairHash< typename M::key_type, typename M::mapped_type >())
Definition qmap.h:968
T mapped_type
Definition qmap.h:304
QMap(std::map< Key, T > &&other)
Definition qmap.h:328
Key key_type
Definition qmap.h:303
std::map< Key, T > toStdMap() &&
Definition qmap.h:340
QMap(const std::map< Key, T > &other)
Definition qmap.h:323
friend bool comparesEqual(const QMap &lhs, const QMap &rhs)
Definition qmap.h:356
QMap(std::initializer_list< std::pair< Key, T > > list)
Definition qmap.h:317
void swap(QMap< Key, T > &other) noexcept
Definition qmap.h:312
\inmodule QtSql
\macro QT_RESTRICTED_CAST_FROM_ASCII
Definition qstring.h:177
\inmodule QtCore
constexpr Integer toEncodedVersion() const
Transforms the revision into an integer value, encoding the minor version into the least significant ...
constexpr QTypeRevision()=default
Produces an invalid revision.
constexpr quint8 majorVersion() const
Returns the major version encoded in the revision.
static constexpr QTypeRevision fromMajorVersion(Major majorVersion)
Produces a QTypeRevision from the given majorVersion with an invalid minor version.
static constexpr bool isValidSegment(Integer segment)
Returns true if the given number can be used as either major or minor version in a QTypeRevision.
static constexpr QTypeRevision zero()
Produces a QTypeRevision with major and minor version {0}.
static constexpr QTypeRevision fromEncodedVersion(Integer value)
Produces a QTypeRevision from the given value.
constexpr bool hasMajorVersion() const
Returns true if the major version is known, otherwise false.
static constexpr QTypeRevision fromMinorVersion(Minor minorVersion)
Produces a QTypeRevision from the given minorVersion with an invalid major version.
constexpr bool isValid() const
Returns true if the major version or the minor version is known, otherwise false.
friend constexpr Qt::strong_ordering compareThreeWay(const QTypeRevision &lhs, const QTypeRevision &rhs) noexcept
constexpr quint8 minorVersion() const
Returns the minor version encoded in the revision.
static constexpr QTypeRevision fromVersion(Major majorVersion, Minor minorVersion)
Produces a QTypeRevision from the given majorVersion and minorVersion, both of which need to be a val...
friend constexpr bool comparesEqual(const QTypeRevision &lhs, const QTypeRevision &rhs) noexcept
constexpr bool hasMinorVersion() const
Returns true if the minor version is known, otherwise false.
QByteArray unquotedLexem()
Definition symbols.h:105
const Symbol & symbol() const
Definition symbols.h:102
Token token()
Definition symbols.h:103
bool dontReplaceSymbol(const QByteArray &name) const
Definition symbols.h:125
bool hasNext()
Definition symbols.h:89
QByteArray lexem() const
Definition symbols.h:104
Token next()
Definition symbols.h:94
const SafeSymbols & constTop() const
Definition symbols.h:88
bool test(Token)
Definition symbols.h:111
QT_BEGIN_NAMESPACE int collectJson(const QStringList &jsonFiles, const QString &outputFile, bool skipStdIn)
Q_DECLARE_TYPEINFO(EnumDef, Q_RELOCATABLE_TYPE)
QByteArray noRef(const QByteArray &type)
Definition moc.h:344
Q_DECLARE_TYPEINFO(PropertyDef, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(NamespaceDef, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(ClassDef, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(ClassInfoDef, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(ClassDef::Interface, Q_RELOCATABLE_TYPE)
ModuleUnitKind
Definition moc.h:225
@ InterfacePartition
Definition moc.h:228
@ InternalPartition
Definition moc.h:229
@ PrimaryInterface
Definition moc.h:227
@ ImplementationUnit
Definition moc.h:230
Q_DECLARE_TYPEINFO(SuperClass, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(ArgumentDef, Q_RELOCATABLE_TYPE)
TypeTag
Definition moc.h:23
@ HasEnum
Definition moc.h:27
@ HasClass
Definition moc.h:26
@ None
Definition moc.h:24
@ HasStruct
Definition moc.h:25
Q_DECLARE_TYPEINFO(PrivateQPropertyDef, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(FunctionDef, Q_RELOCATABLE_TYPE)
std::conditional_t< std::is_same_v< HashKey, q20::remove_cvref_t< KeyArgument > >, KeyArgument, HashKey > HeterogenousConstructProxy
Definition qhash.h:834
Combined button and popup list for selecting options.
constexpr PropertyFlags DefaultPropertyFlags
QString && asString(QString &&s)
Definition qstring.h:1714
constexpr QAnyStringArg qStringLikeToArg(QAnyStringView s) noexcept
Definition qstring.h:1776
const QString & asString(const QString &s)
Definition qstring.h:1713
std::is_same< Char, char32_t > IsCompatibleChar32TypeHelper
Definition qstring.h:57
constexpr bool isLatin1(QLatin1StringView s) noexcept
Definition qstring.h:77
Definition qcompare.h:111
QHash< MacroName, Macro > Macros
SubArray MacroName
#define __has_builtin(x)
Q_DECLARE_TYPEINFO(QDateTime::Data, Q_RELOCATABLE_TYPE)
Q_CORE_EXPORT QDebug operator<<(QDebug debug, QDir::Filters filters)
Definition qdir.cpp:2620
#define QFILE_MAYBE_EXPLICIT
Definition qfile.h:65
#define QFILEINFO_MAYBE_EXPLICIT
Definition qfileinfo.h:36
QList< QFileInfo > QFileInfoList
Definition qfileinfo.h:195
qsizetype erase_if(QMultiHash< Key, T > &hash, Predicate pred)
Definition qhash.h:2782
#define QT_SPECIALIZE_STD_HASH_TO_CALL_QHASH_BY_CREF(Class)
#define QT_SPECIALIZE_STD_HASH_TO_CALL_QHASH(Class, Arguments)
#define QT_SPECIALIZE_STD_HASH_TO_CALL_QHASH_BY_VALUE(Class)
#define QT_MK_QHASH_COMPAT(X)
QList< QVariant > QVariantList
Definition qjsonarray.h:16
QMultiMap< Key, T > operator+=(QMultiMap< Key, T > &lhs, const QMultiMap< Key, T > &rhs)
Definition qmap.h:1857
QSet(InputIterator, InputIterator) -> QSet< ValueType >
size_t qHash(const QSet< T > &key, size_t seed=0) noexcept(noexcept(qHashRangeCommutative(key.begin(), key.end(), seed)))
Definition qset.h:236
qsizetype erase_if(QSet< T > &set, Predicate pred)
Definition qset.h:448
QString operator+(const QString &s1, QChar s2)
Definition qstring.h:1577
QString operator+(QString &&lhs, const QString &rhs)
Definition qstring.h:1575
qsizetype erase_if(QString &s, Predicate pred)
Definition qstring.h:1814
#define QT_UNICODE_LITERAL(str)
Definition qstring.h:1848
#define qPrintable(string)
Definition qstring.h:1718
QString operator+(QString &&lhs, QChar rhs)
Definition qstring.h:1579
QString operator+(QChar s1, const QString &s2)
Definition qstring.h:1581
#define QStringLiteral(str)
Definition qstring.h:1865
QString operator+(const QString &s1, const QString &s2)
Definition qstring.h:1573
qsizetype erase(QString &s, const T &t)
Definition qstring.h:1808
static QByteArray combinePath(const QString &infile, const QString &outfile)
Definition main.cpp:40
static bool hasNext(const Symbols &symbols, int i)
Definition main.cpp:78
static const Symbol & next(const Symbols &symbols, int &i)
Definition main.cpp:81
int runMoc(int argc, char **argv)
Definition main.cpp:170
static auto openFileForWriting(const QString &name)
Definition main.cpp:62
void error(const char *msg="Invalid argument")
Definition main.cpp:56
static QStringList argumentsFromCommandLineAndFile(const QStringList &arguments, bool &hasOptionFiles)
Definition main.cpp:138
QByteArray composePreprocessorOutput(const Symbols &symbols)
Definition main.cpp:85
Q_DECLARE_TYPEINFO(QTypeRevision, Q_RELOCATABLE_TYPE)
int main(int argc, char *argv[])
[ctor_close]
QByteArray rightType
Definition moc.h:69
QByteArray normalizedType
Definition moc.h:69
QJsonObject toJson() const
Definition moc.cpp:2409
QByteArray name
Definition moc.h:69
ArgumentDef()
Definition moc.h:67
bool isDefault
Definition moc.h:70
Type type
Definition moc.h:68
Definition moc.h:162
qsizetype end
Definition moc.h:170
qsizetype begin
Definition moc.h:169
QMap< QByteArray, QByteArray > flagAliases
Definition moc.h:168
QByteArray qualified
Definition moc.h:164
qsizetype lineNumber
Definition moc.h:171
QByteArray classname
Definition moc.h:163
QList< ClassInfoDef > classInfoList
Definition moc.h:165
QList< EnumDef > enumList
Definition moc.h:167
Interface(const QByteArray &_className)
Definition moc.h:187
QByteArray className
Definition moc.h:189
QByteArray interfaceId
Definition moc.h:190
QMap< QString, QJsonArray > metaArgs
Definition moc.h:197
QJsonDocument metaData
Definition moc.h:198
QByteArray uri
Definition moc.h:196
QByteArray iid
Definition moc.h:195
bool hasQObject
Definition moc.h:208
QList< QList< Interface > > interfaceList
Definition moc.h:192
QList< FunctionDef > publicList
Definition moc.h:202
QList< FunctionDef > methodList
Definition moc.h:202
QList< PropertyDef > propertyList
Definition moc.h:204
QList< FunctionDef > constructorList
Definition moc.h:201
bool hasQGadget
Definition moc.h:209
QList< SuperClass > superclassList
Definition moc.h:182
bool isFinal
Definition moc.h:212
bool requireCompleteMethodTypes
Definition moc.h:211
bool hasQNamespace
Definition moc.h:210
QList< FunctionDef > slotList
Definition moc.h:202
QList< FunctionDef > signalList
Definition moc.h:202
int revisionedMethods
Definition moc.h:206
QJsonObject toJson() const
Definition moc.cpp:2277
QList< QByteArray > nonClassSignalList
Definition moc.h:203
QByteArray name
Definition moc.h:157
QByteArray value
Definition moc.h:158
Definition moc.h:53
QByteArray enumName
Definition moc.h:55
QFlags< QtMocConstants::EnumFlags > flags
Definition moc.h:58
QByteArray qualifiedType(const ClassDef *cdef) const
Definition moc.cpp:2488
QJsonObject toJson(const ClassDef &cdef) const
Definition moc.cpp:2466
QList< QByteArray > values
Definition moc.h:57
QByteArray name
Definition moc.h:54
QByteArray type
Definition moc.h:56
int lineNumber
Definition moc.h:61
bool isVirtual
Definition moc.h:91
bool isScriptable
Definition moc.h:100
bool wasCloned
Definition moc.h:94
QByteArray normalizedType
Definition moc.h:80
QJsonObject toJson(int index) const
Definition moc.cpp:2370
bool isCompat
Definition moc.h:98
bool inlineCode
Definition moc.h:93
Type type
Definition moc.h:78
bool isRawSlot
Definition moc.h:107
static void accessToJson(QJsonObject *obj, Access acs)
Definition moc.cpp:2400
Access access
Definition moc.h:86
bool isSignal
Definition moc.h:102
bool isSlot
Definition moc.h:101
bool isInvokable
Definition moc.h:99
QByteArray name
Definition moc.h:82
QByteArray inPrivateClass
Definition moc.h:83
bool isConst
Definition moc.h:90
QList< ArgumentDef > arguments
Definition moc.h:79
int lineNumber
Definition moc.h:88
int revision
Definition moc.h:87
bool returnTypeIsVolatile
Definition moc.h:96
bool isAbstract
Definition moc.h:106
bool isPrivateSignal
Definition moc.h:103
bool isDestructor
Definition moc.h:105
@ Public
Definition moc.h:85
@ Protected
Definition moc.h:85
@ Private
Definition moc.h:85
bool isConstructor
Definition moc.h:104
bool isStatic
Definition moc.h:92
QByteArray tag
Definition moc.h:81
qsizetype foundIndex
Simple structure used by the Doc and DocParser classes.
Symbols symbols
bool isVariadic
bool isFunction
Symbols arguments
bool doGenerate
Definition moc.h:221
bool hasQNamespace
Definition moc.h:220
QByteArray name
Definition moc.h:148
QByteArray storage
Definition moc.h:151
QByteArray accessor
Definition moc.h:150
QByteArray setter
Definition moc.h:149
QByteArray scriptable
Definition moc.h:125
QByteArray member
Definition moc.h:125
QByteArray notify
Definition moc.h:125
QByteArray write
Definition moc.h:125
int lineNumber
Definition moc.h:137
QByteArray inPrivateClass
Definition moc.h:125
int notifyId
Definition moc.h:126
bool final
Definition moc.h:132
QJsonObject toJson() const
Definition moc.cpp:2418
bool constant
Definition moc.h:131
Specification gspec
Definition moc.h:128
Specification
Definition moc.h:127
@ ReferenceSpec
Definition moc.h:127
@ ValueSpec
Definition moc.h:127
@ PointerSpec
Definition moc.h:127
bool override
Definition moc.h:134
bool stdCppSet() const
Definition moc.h:116
bool virtual_
Definition moc.h:133
QByteArray user
Definition moc.h:125
TypeTags typeTag
Definition moc.h:130
QByteArray read
Definition moc.h:125
qsizetype location
Definition moc.h:139
int revision
Definition moc.h:129
QByteArray bind
Definition moc.h:125
int relativeIndex
Definition moc.h:136
QByteArray designable
Definition moc.h:125
bool required
Definition moc.h:135
QByteArray stored
Definition moc.h:125
QByteArray name
Definition moc.h:125
QByteArray reset
Definition moc.h:125
QByteArray type
Definition moc.h:125
constexpr QAnyStringArg(QAnyStringView v) noexcept
Definition qstring.h:1760
QAnyStringView string
Definition qstring.h:1758
QLatin1StringView string
Definition qstring.h:1752
constexpr QLatin1StringArg(QLatin1StringView v) noexcept
Definition qstring.h:1754
constexpr QStringViewArg(QStringView v) noexcept
Definition qstring.h:1748
qsizetype index
Definition symbols.h:81
Symbols symbols
Definition symbols.h:78
QByteArray expandedMacro
Definition symbols.h:79
QByteArray array
Definition symbols.h:26
SubArray(const char *s)
Definition symbols.h:21
qsizetype len
Definition symbols.h:28
bool operator==(const SubArray &other) const
Definition symbols.h:29
qsizetype from
Definition symbols.h:27
SubArray()=default
SubArray(const QByteArray &a)
Definition symbols.h:20
SubArray(const QByteArray &a, qsizetype from, qsizetype len)
Definition symbols.h:22
QByteArray qualified
Definition moc.h:176
FunctionDef::Access access
Definition moc.h:177
QByteArray classname
Definition moc.h:175
qsizetype from
Definition symbols.h:70
QByteArrayView unquotedLexemView() const
Definition symbols.h:62
Symbol(int lineNum, Token token)
Definition symbols.h:48
operator SubArray() const
Definition symbols.h:64
QByteArrayView lexemView() const
Definition symbols.h:61
Token token
Definition symbols.h:58
void mergeStringLiteral(const Symbol &next)
bool operator==(const Symbol &o) const
Definition symbols.h:65
int lineNum
Definition symbols.h:57
Symbol()=default
Symbol(int lineNum, Token token, const QByteArray &lexem, qsizetype from, qsizetype len)
Definition symbols.h:53
QByteArray lexem() const
Definition symbols.h:59
QByteArray lex
Definition symbols.h:69
QByteArray unquotedLexem() const
Definition symbols.h:60
qsizetype len
Definition symbols.h:71
Symbol(int lineNum, Token token, const QByteArray &lexem)
Definition symbols.h:49
size_t qHash(const SubArray &key, size_t seed=0)
Definition symbols.h:39
Q_DECLARE_TYPEINFO(Symbol, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(SafeSymbols, Q_RELOCATABLE_TYPE)
QList< Symbol > Symbols
Definition symbols.h:75
#define FOR_ALL_TOKENS(F)
Definition token.h:11
Token PP_Token
Definition token.h:254