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
qtmocconstants.h
Go to the documentation of this file.
1// Copyright (C) 2024 Intel Corporation.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR LGPL-3.0-only OR GPL-2.0-only OR GPL-3.0-only
3
4#ifndef QTMOCCONSTANTS_H
5#define QTMOCCONSTANTS_H
6
7//
8// W A R N I N G
9// -------------
10//
11// This file is not part of the Qt API. It exists to be used by the code that
12// moc generates. This file will not change quickly, but it over the long term,
13// it will likely change or even be removed.
14//
15// We mean it.
16//
17
18#include <QtCore/qflags.h>
19#include <QtCore/qtconfigmacros.h>
20#include <QtCore/qtypes.h>
21
23
24namespace QtMocConstants {
25// revision 7 is Qt 5.0 everything lower is not supported
26// revision 8 is Qt 5.12: It adds the enum name to QMetaEnum
27// revision 9 is Qt 6.0: It adds the metatype of properties and methods
28// revision 10 is Qt 6.2: The metatype of the metaobject is stored in the metatypes array
29// and metamethods store a flag stating whether they are const
30// revision 11 is Qt 6.5: The metatype for void is stored in the metatypes array
31// revision 12 is Qt 6.6: It adds the metatype for enums
32enum { OutputRevision = 12 }; // Used by moc, qmetaobjectbuilder and qdbus
33
35 Invalid = 0x00000000,
36 Readable = 0x00000001,
37 Writable = 0x00000002,
38 Resettable = 0x00000004,
39 EnumOrFlag = 0x00000008,
40 Alias = 0x00000010,
41 // Reserved for future usage = 0x00000020,
42 StdCppSet = 0x00000100,
43 Constant = 0x00000400,
44 Final = 0x00000800,
45 Designable = 0x00001000,
46 Scriptable = 0x00004000,
47 Stored = 0x00010000,
48 User = 0x00100000,
49 Required = 0x01000000,
50 Bindable = 0x02000000,
51};
52
57 AccessMask = 0x03, // mask
58
61 MethodSlot = 0x08,
64
69
70 MethodIsConst = 0x100, // no use case for volatile so far
71};
72
76 PropertyAccessInStaticMetaCall = 0x04, // since Qt 5.5, property code is in the static metacall
77};
78
80 IsUnresolvedType = 0x80000000,
81 TypeNameIndexMask = 0x7FFFFFFF,
82 IsUnresolvedSignal = 0x70000000,
83};
84
88};
89
90} // namespace QtMocConstants
91
92QT_END_NAMESPACE
93
94#endif // QTMOCCONSTANTS_H
int main(int argc, char *argv[])
[2]
Definition buffer.cpp:77
Definition moc.h:209
bool testFunctionAttribute(Token tok, FunctionDef *def)
Definition moc.cpp:346
void parseEnumOrFlag(BaseDef *def, QtMocConstants::EnumFlags flags)
Definition moc.cpp:1603
void checkSuperClasses(ClassDef *def)
Definition moc.cpp:1871
Moc()
Definition moc.h:213
void parse()
Definition moc.cpp:664
bool parseEnum(EnumDef *def)
Definition moc.cpp:241
void parseProperty(ClassDef *def, PropertyMode mode)
Definition moc.cpp:1498
QByteArray lexemUntil(Token)
Definition moc.cpp:1771
EncounteredQmlMacro parseClassInfo(BaseDef *def)
Definition moc.cpp:1642
bool until(Token)
Definition moc.cpp:1791
QList< QByteArray > includeFiles
Definition moc.h:223
bool requireCompleteTypes
Definition moc.h:221
QHash< QByteArray, QByteArray > knownQObjectClasses
Definition moc.h:228
void createPropertyDef(PropertyDef &def, int propertyIndex, PropertyMode mode)
Definition moc.cpp:1323
void parseClassInfo(ClassDef *def)
Definition moc.cpp:1669
bool parseClassHead(ClassDef *def)
Definition moc.cpp:39
void parsePrivateProperty(ClassDef *def, PropertyMode mode)
Definition moc.cpp:1590
QByteArray includePath
Definition moc.h:222
QByteArray filename
Definition moc.h:217
void parseFlag(BaseDef *def)
Definition moc.cpp:1618
void parseSignals(ClassDef *def)
Definition moc.cpp:1279
void parseDeclareMetatype()
Definition moc.cpp:1731
void parsePropertyAttributes(PropertyDef &propDef)
Definition moc.cpp:1361
void parseInterfaces(ClassDef *def)
Definition moc.cpp:1675
bool testFunctionRevision(FunctionDef *def)
Definition moc.cpp:409
bool testFunctionAttribute(FunctionDef *def)
Definition moc.cpp:337
void prependNamespaces(BaseDef &def, const QList< NamespaceDef > &namespaceList) const
Definition moc.cpp:618
QHash< QByteArray, QByteArray > knownGadgets
Definition moc.h:229
QList< QByteArray > metaTypes
Definition moc.h:226
bool parseFunction(FunctionDef *def, bool inMacro=false)
Definition moc.cpp:421
QByteArray parsePropertyAccessor()
Definition moc.cpp:1572
QMap< QString, QJsonArray > metaArgs
Definition moc.h:230
bool testForFunctionModifiers(FunctionDef *def)
Definition moc.cpp:523
const QByteArray & toFullyQualified(const QByteArray &name) const noexcept
Definition moc.cpp:30
void parseSlots(ClassDef *def, FunctionDef::Access access)
Definition moc.cpp:1237
void parseDeclareInterface()
Definition moc.cpp:1708
void checkListSizes(const ClassDef &def)
Definition moc.cpp:628
QTypeRevision parseRevision()
Definition moc.cpp:378
void parseMocInclude()
Definition moc.cpp:1740
QList< QString > parsedPluginMetadataFiles
Definition moc.h:231
bool skipCxxAttributes()
Definition moc.cpp:369
PropertyMode
Definition moc.h:211
@ Anonymous
Definition moc.h:211
@ Named
Definition moc.h:211
bool mustIncludeQPluginH
Definition moc.h:220
bool parseMaybeFunction(const ClassDef *cdef, FunctionDef *def)
Definition moc.cpp:531
void checkProperties(ClassDef *cdef)
Definition moc.cpp:1929
Type parseType()
Definition moc.cpp:126
void parseFunctionArguments(FunctionDef *def)
Definition moc.cpp:296
void parseSlotInPrivate(ClassDef *def, FunctionDef::Access access)
Definition moc.cpp:1750
bool inClass(const ClassDef *def) const
Definition moc.h:237
void parsePluginData(ClassDef *def)
Definition moc.cpp:1508
void generate(FILE *out, FILE *jsonOutput)
Definition moc.cpp:1138
QMap< QByteArray, QByteArray > interface2IdMap
Definition moc.h:225
bool noInclude
Definition moc.h:219
EncounteredQmlMacro
Definition moc.h:266
bool inNamespace(const NamespaceDef *def) const
Definition moc.h:241
QList< ClassDef > classList
Definition moc.h:224
int evaluateCondition()
void setDebugIncludes(bool value)
void parseDefineArguments(Macro *m)
void skipUntilEndif()
QHash< QByteArray, QByteArray > nonlocalIncludePathResolutionCache
Symbols preprocessed(const QByteArray &filename, QFile *device)
void substituteUntilNewline(Symbols &substituted)
QList< QByteArray > frameworks
static bool preprocessOnly
static Symbols macroExpandIdentifier(Preprocessor *that, SymbolStack &symbols, int lineNum, QByteArray *macroName)
QByteArray resolveInclude(const QByteArray &filename, const QByteArray &relativeTo)
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.
Definition qlist.h:76
\inmodule QtCore
QByteArray unquotedLexem()
Definition symbols.h:102
const Symbol & symbol() const
Definition symbols.h:99
Token token()
Definition symbols.h:100
bool dontReplaceSymbol(const QByteArray &name) const
Definition symbols.h:122
bool hasNext()
Definition symbols.h:86
QByteArray lexem() const
Definition symbols.h:101
Token next()
Definition symbols.h:91
bool test(Token)
Definition symbols.h:108
Q_DECLARE_TYPEINFO(EnumDef, Q_RELOCATABLE_TYPE)
QByteArray noRef(const QByteArray &type)
Definition moc.h:298
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)
Q_DECLARE_TYPEINFO(SuperClass, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(ArgumentDef, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(PrivateQPropertyDef, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(Type, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(FunctionDef, Q_RELOCATABLE_TYPE)
Combined button and popup list for selecting options.
QHash< MacroName, Macro > Macros
SubArray MacroName
Token
Definition python.cpp:28
#define qPrintable(string)
Definition qstring.h:1552
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
QByteArray rightType
Definition moc.h:58
QByteArray normalizedType
Definition moc.h:58
QJsonObject toJson() const
Definition moc.cpp:2131
QByteArray name
Definition moc.h:58
QByteArray typeNameForCast
Definition moc.h:59
ArgumentDef()
Definition moc.h:56
bool isDefault
Definition moc.h:60
Type type
Definition moc.h:57
Definition moc.h:147
qsizetype end
Definition moc.h:155
qsizetype begin
Definition moc.h:154
QMap< QByteArray, QByteArray > flagAliases
Definition moc.h:153
QByteArray qualified
Definition moc.h:149
qsizetype lineNumber
Definition moc.h:156
QByteArray classname
Definition moc.h:148
QList< ClassInfoDef > classInfoList
Definition moc.h:150
QList< EnumDef > enumList
Definition moc.h:152
Interface(const QByteArray &_className)
Definition moc.h:172
QByteArray className
Definition moc.h:174
QByteArray interfaceId
Definition moc.h:175
QMap< QString, QJsonArray > metaArgs
Definition moc.h:182
QJsonDocument metaData
Definition moc.h:183
QByteArray uri
Definition moc.h:181
QByteArray iid
Definition moc.h:180
bool hasQObject
Definition moc.h:192
QList< QList< Interface > > interfaceList
Definition moc.h:177
QList< FunctionDef > publicList
Definition moc.h:187
QList< FunctionDef > methodList
Definition moc.h:187
QList< PropertyDef > propertyList
Definition moc.h:189
QList< FunctionDef > constructorList
Definition moc.h:186
bool hasQGadget
Definition moc.h:193
QList< SuperClass > superclassList
Definition moc.h:167
bool requireCompleteMethodTypes
Definition moc.h:195
bool hasQNamespace
Definition moc.h:194
QList< FunctionDef > slotList
Definition moc.h:187
QList< FunctionDef > signalList
Definition moc.h:187
int revisionedMethods
Definition moc.h:190
QJsonObject toJson() const
Definition moc.cpp:2004
QList< QByteArray > nonClassSignalList
Definition moc.h:188
QByteArray name
Definition moc.h:142
QByteArray value
Definition moc.h:143
Definition moc.h:43
QByteArray enumName
Definition moc.h:45
QFlags< QtMocConstants::EnumFlags > flags
Definition moc.h:48
QByteArray qualifiedType(const ClassDef *cdef) const
Definition moc.cpp:2206
QJsonObject toJson(const ClassDef &cdef) const
Definition moc.cpp:2185
QList< QByteArray > values
Definition moc.h:47
QByteArray name
Definition moc.h:44
QByteArray type
Definition moc.h:46
bool isVirtual
Definition moc.h:80
bool isScriptable
Definition moc.h:89
bool wasCloned
Definition moc.h:83
QByteArray normalizedType
Definition moc.h:70
QJsonObject toJson(int index) const
Definition moc.cpp:2095
bool isCompat
Definition moc.h:87
bool inlineCode
Definition moc.h:82
Type type
Definition moc.h:68
bool isRawSlot
Definition moc.h:96
static void accessToJson(QJsonObject *obj, Access acs)
Definition moc.cpp:2122
Access access
Definition moc.h:76
bool isSignal
Definition moc.h:91
bool isSlot
Definition moc.h:90
bool isInvokable
Definition moc.h:88
QByteArray name
Definition moc.h:72
QByteArray inPrivateClass
Definition moc.h:73
bool isConst
Definition moc.h:79
QList< ArgumentDef > arguments
Definition moc.h:69
int revision
Definition moc.h:77
bool returnTypeIsVolatile
Definition moc.h:85
bool isAbstract
Definition moc.h:95
bool isPrivateSignal
Definition moc.h:92
bool isDestructor
Definition moc.h:94
@ Public
Definition moc.h:75
@ Protected
Definition moc.h:75
@ Private
Definition moc.h:75
bool isConstructor
Definition moc.h:93
bool isStatic
Definition moc.h:81
QByteArray tag
Definition moc.h:71
Simple structure used by the Doc and DocParser classes.
Symbols symbols
bool isVariadic
bool isFunction
Symbols arguments
bool doGenerate
Definition moc.h:204
bool hasQNamespace
Definition moc.h:203
QByteArray name
Definition moc.h:133
QByteArray storage
Definition moc.h:136
QByteArray accessor
Definition moc.h:135
QByteArray setter
Definition moc.h:134
QByteArray scriptable
Definition moc.h:114
QByteArray member
Definition moc.h:114
QByteArray notify
Definition moc.h:114
QByteArray write
Definition moc.h:114
QByteArray inPrivateClass
Definition moc.h:114
int notifyId
Definition moc.h:115
bool final
Definition moc.h:120
QJsonObject toJson() const
Definition moc.cpp:2140
bool constant
Definition moc.h:119
Specification gspec
Definition moc.h:117
Specification
Definition moc.h:116
@ ReferenceSpec
Definition moc.h:116
@ ValueSpec
Definition moc.h:116
@ PointerSpec
Definition moc.h:116
bool stdCppSet() const
Definition moc.h:105
QByteArray user
Definition moc.h:114
QByteArray read
Definition moc.h:114
qsizetype location
Definition moc.h:124
int revision
Definition moc.h:118
QByteArray bind
Definition moc.h:114
int relativeIndex
Definition moc.h:122
QByteArray designable
Definition moc.h:114
bool required
Definition moc.h:121
QByteArray stored
Definition moc.h:114
QByteArray name
Definition moc.h:114
QByteArray reset
Definition moc.h:114
QByteArray type
Definition moc.h:114
qsizetype index
Definition symbols.h:79
Symbols symbols
Definition symbols.h:76
QByteArray expandedMacro
Definition symbols.h:77
QByteArray array
Definition symbols.h:27
SubArray(const char *s)
Definition symbols.h:22
qsizetype len
Definition symbols.h:29
bool operator==(const SubArray &other) const
Definition symbols.h:30
qsizetype from
Definition symbols.h:28
SubArray()=default
SubArray(const QByteArray &a)
Definition symbols.h:21
SubArray(const QByteArray &a, qsizetype from, qsizetype len)
Definition symbols.h:23
QByteArray qualified
Definition moc.h:161
FunctionDef::Access access
Definition moc.h:162
QByteArray classname
Definition moc.h:160
qsizetype from
Definition symbols.h:68
Symbol(int lineNum, Token token)
Definition symbols.h:49
operator SubArray() const
Definition symbols.h:62
Token token
Definition symbols.h:59
bool operator==(const Symbol &o) const
Definition symbols.h:63
int lineNum
Definition symbols.h:58
Symbol()=default
Symbol(int lineNum, Token token, const QByteArray &lexem, qsizetype from, qsizetype len)
Definition symbols.h:54
QByteArray lexem() const
Definition symbols.h:60
QByteArray lex
Definition symbols.h:67
QByteArray unquotedLexem() const
Definition symbols.h:61
qsizetype len
Definition symbols.h:69
Symbol(int lineNum, Token token, const QByteArray &lexem)
Definition symbols.h:50
Definition moc.h:24
ReferenceType
Definition moc.h:25
@ Reference
Definition moc.h:25
@ Pointer
Definition moc.h:25
@ RValueReference
Definition moc.h:25
@ NoReference
Definition moc.h:25
Type(const QByteArray &_name)
Definition moc.h:28
Token firstToken
Definition moc.h:36
QByteArray rawName
Definition moc.h:33
Type()
Definition moc.h:27
uint isScoped
Definition moc.h:35
uint isVolatile
Definition moc.h:34
QByteArray name
Definition moc.h:30
ReferenceType referenceType
Definition moc.h:37
size_t qHash(const SubArray &key, size_t seed=0)
Definition symbols.h:40
Q_DECLARE_TYPEINFO(Symbol, Q_RELOCATABLE_TYPE)
Q_DECLARE_TYPEINFO(SafeSymbols, Q_RELOCATABLE_TYPE)
QList< Symbol > Symbols
Definition symbols.h:73
#define FOR_ALL_TOKENS(F)
Definition token.h:11
Token PP_Token
Definition token.h:250