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
qqmltypesclassdescription_p.h
Go to the documentation of this file.
1// Copyright (C) 2019 The Qt Company Ltd.
2// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
3// Qt-Security score:significant
4
5#ifndef QMLTYPESCLASSDESCRIPTION_P_H
6#define QMLTYPESCLASSDESCRIPTION_P_H
7
8//
9// W A R N I N G
10// -------------
11//
12// This file is not part of the Qt API. It exists purely as an
13// implementation detail. This header file may change from version to
14// version without notice, or even be removed.
15//
16// We mean it.
17//
18
19#include <private/qmetatypesjsonprocessor_p.h>
20
21#include <QtCore/qstring.h>
22#include <QtCore/qcbormap.h>
23#include <QtCore/qvector.h>
24#include <QtCore/qset.h>
25#include <QtCore/qversionnumber.h>
26
28
30{
36
37 FoundType() = default;
38 FoundType(const MetaType &single, Origin origin);
39
42
45
46 operator bool() const { return !native.isEmpty() || !javaScript.isEmpty(); }
47
48 MetaType select(const MetaType &category, QAnyStringView relation) const;
49
50};
51
53{
54 // All the string views in this class are based on string data in the JSON they are parsed from.
55 // You must keep the relevant QCborValues alive while the QmlTypesClassDescription exists.
56
74 bool isCreatable = true;
75 bool isStructured = false;
76 bool isSingleton = false;
77 bool hasCustomParser = false;
78 bool isRootClass = false;
81 bool enforcesScopedEnums = false;
85 int lineNumber = 0;
86
92
93 void collect(
94 const MetaType &classDef, const QList<MetaType> &types,
95 const QList<MetaType> &foreign, CollectMode mode, QTypeRevision defaultRevision);
97 QAnyStringView related, const QList<MetaType> &types,
98 const QList<MetaType> &foreign, QTypeRevision defaultRevision,
99 const QList<QAnyStringView> &namespaces);
100
101 static FoundType findType(
102 const QList<MetaType> &types, const QList<MetaType> &foreign,
103 const QAnyStringView &name, const QList<QAnyStringView> &namespaces);
104
106 const MetaType &classDef, const QList<MetaType> &types,
107 const QList<MetaType> &foreign, QTypeRevision defaultRevision);
108
109
110private:
111 void collectSuperClasses(
112 const MetaType &classDef, const QList<MetaType> &types,
113 const QList<MetaType> &foreign, CollectMode mode, QTypeRevision defaultRevision);
114 void collectInterfaces(const MetaType &classDef);
115
116 void handleRegisterEnumClassesUnscoped(const MetaType &classDef, QAnyStringView value);
117};
118
120{
121 ResolvedTypeAlias(QAnyStringView alias, const QList<UsingDeclaration> &usingDeclarations);
122
124 bool isList = false;
125 bool isPointer = false;
126 bool isConstant = false;
127
128private:
129 void handleVoid();
130 void handleList();
131 void handlePointer();
132 void handleConst();
133};
134
135QT_END_NAMESPACE
136#endif // QMLTYPESCLASSDESCRIPTION_P_H
Access
Definition access.h:11
const Method::Container & constructors() const
const Enum::Container & enums() const
QAnyStringView qualifiedClassName() const
const Method::Container & sigs() const
const Method::Container & methods() const
const ClassInfo::Container & classInfos() const
friend bool operator!=(const MetaType &a, const MetaType &b) noexcept
const BaseType::Container & superClasses() const
MetaType()=default
QAnyStringView className() const
QString inputFile() const
const Interface::Container & ifaces() const
QAnyStringView metaObjectHash() const
const Property::Container & properties() const
MetaType(const QCborMap &cbor, const QString &inputFile, const QCborMap &hashes)
friend bool operator==(const MetaType &a, const MetaType &b) noexcept
QHash< QAnyStringView, QAnyStringView > foreignTypeMetaObjectHashses() const
bool processForeignTypes(const QString &foreignTypesFile)
static QList< QAnyStringView > namespaces(const MetaType &classDef)
QList< QString > includes() const
bool processTypes(const QStringList &files)
QList< UsingDeclaration > usingDeclarations() const
QList< MetaType > types() const
QList< QAnyStringView > referencedTypes() const
QList< MetaType > foreignTypes() const
MetaTypesJsonProcessor(bool privateIncludes)
static constexpr QLatin1StringView S_FILE
static constexpr QLatin1StringView S_EXTENSION_IS_JAVA_SCRIPT
static constexpr QLatin1StringView S_NOTIFY
static constexpr QLatin1StringView S_SIGNAL
static constexpr QLatin1StringView S_IS_SINGLETON
static constexpr QLatin1StringView S_IS_CONSTRUCTOR
static constexpr QLatin1StringView S_ACCESS_SEMANTICS
static constexpr QLatin1StringView S_IS_READONLY
static constexpr QLatin1StringView S_IS_PROPERTY_CONSTANT
static constexpr QLatin1StringView S_REFERENCE
static constexpr QLatin1StringView S_ENUM
static constexpr QLatin1StringView S_IS_TYPE_CONSTANT
static constexpr QLatin1StringView S_READ
static constexpr QLatin1StringView S_VALUE_TYPE
static constexpr QLatin1StringView S_PROPERTY
static constexpr QLatin1StringView S_INDEX
static constexpr QLatin1StringView S_IS_CREATABLE
static constexpr QLatin1StringView S_RESET
static constexpr QLatin1StringView S_TYPE
static constexpr QLatin1StringView S_MODULE
static constexpr QLatin1StringView S_PARAMETER
static constexpr QLatin1StringView S_IS_LIST
static constexpr QLatin1StringView S_LINE_NUMBER
static constexpr QLatin1StringView S_IS_CLONED
static constexpr QLatin1StringView S_IS_REQUIRED
static constexpr QLatin1StringView S_IMMEDIATE_NAMES
static constexpr QLatin1StringView S_WRITE
static constexpr QLatin1StringView S_IS_JAVASCRIPT_FUNCTION
static constexpr QLatin1StringView S_EXPORTS
static constexpr QLatin1StringView S_REVISION
static constexpr QLatin1StringView S_DEFAULT_PROPERTY
static constexpr QLatin1StringView S_DEFERRED_NAMES
static constexpr QLatin1StringView S_METHOD
static constexpr QLatin1StringView S_IS_POINTER
static constexpr QLatin1StringView S_ARGUMENTS
static constexpr QLatin1StringView S_ALIAS
static constexpr QLatin1StringView S_META_OBJECT_HASH
static constexpr QLatin1StringView S_VALUES
static constexpr QLatin1StringView S_IS_FLAG
static constexpr QLatin1StringView S_ALIASES
static constexpr QLatin1StringView S_COMPONENT
static constexpr QLatin1StringView S_PROTOTYPE
static constexpr QLatin1StringView S_EXPORT_META_OBJECT_REVISIONS
static constexpr QLatin1StringView S_VALUE
static constexpr QLatin1StringView S_IS_OVERRIDE
static constexpr QLatin1StringView S_IS_METHOD_CONSTANT
static constexpr QLatin1StringView S_ATTACHED_TYPE
static constexpr QLatin1StringView S_IS_FINAL
static constexpr QLatin1StringView S_HAS_CUSTOM_PARSER
static constexpr QLatin1StringView S_PARENT_PROPERTY
static constexpr QLatin1StringView S_IS_VIRTUAL
static constexpr QLatin1StringView S_PRIVATE_CLASS
static constexpr QLatin1StringView S_EXTENSION_IS_NAMESPACE
static constexpr QLatin1StringView S_IS_SCOPED
static constexpr QLatin1StringView S_NONE
static constexpr QLatin1StringView S_BINDABLE
static constexpr QLatin1StringView S_EXTENSION
static constexpr QLatin1StringView S_IS_STRUCTURED
static constexpr QLatin1StringView S_ENFORCES_SCOPED_ENUMS
static constexpr QLatin1StringView S_NAME
static constexpr QLatin1StringView S_SEQUENCE
static constexpr QLatin1StringView S_INTERFACES
static constexpr QLatin1StringView S_IS_JAVASCRIPT_BUILTIN
static constexpr QLatin1StringView S_UNCREATABLE_REASON
static constexpr QLatin1StringView S_ATTACHED
static constexpr QLatin1StringView S_FOREIGN
static constexpr QLatin1StringView S_SEQUENCE
static constexpr QLatin1StringView S_PRIMITIVE_ALIAS
static constexpr QLatin1StringView S_USING
static constexpr QLatin1StringView S_FOREIGN_IS_NAMESPACE
static constexpr QLatin1StringView S_EXTENDED
static constexpr QLatin1StringView S_SINGLETON
static constexpr QLatin1StringView S_HAS_CUSTOM_PARSER
static constexpr QLatin1StringView S_EXTENSION_IS_NAMESPACE
static constexpr QLatin1StringView S_EXTENSION_IS_JAVA_SCRIPT
static constexpr QLatin1StringView S_REMOVED_IN_VERSION
static constexpr QLatin1StringView S_ELEMENT
static constexpr QLatin1StringView S_CREATION_METHOD
static constexpr QLatin1StringView S_ADDED_IN_VERSION
static constexpr QLatin1StringView S_CREATABLE
static constexpr QLatin1StringView S_ROOT
static constexpr QLatin1StringView S_VALUE
static constexpr QLatin1StringView S_PROTECTED
static constexpr QLatin1StringView S_ANONYMOUS
static constexpr QLatin1StringView S_SIGNALS
static constexpr QLatin1StringView S_QUALIFIED_CLASS_NAME
static constexpr QLatin1StringView S_NAME
static constexpr QLatin1StringView S_SUPER_CLASSES
static constexpr QLatin1StringView S_DEFERRED_PROPERTY_NAMES
static constexpr QLatin1StringView S_LINENUMBER
static constexpr QLatin1StringView S_TYPE
static constexpr QLatin1StringView S_INPUT_FILE
static constexpr QLatin1StringView S_STRUCTURED
static constexpr QLatin1StringView S_CONSTRUCTORS
static constexpr QLatin1StringView S_TRUE
static constexpr QLatin1StringView S_PRIVATE_CLASS
static constexpr QLatin1StringView S_ARGUMENTS
static constexpr QLatin1StringView S_PARENT_PROPERTY
static constexpr QLatin1StringView S_CONSTANT
static constexpr QLatin1StringView S_ACCESS
static constexpr QLatin1StringView S_ALIAS
static constexpr QLatin1StringView S_REGISTER_ENUM_CLASSES_UNSCOPED
static constexpr QLatin1StringView S_REQUIRED
static constexpr QLatin1StringView S_IS_JAVASCRIPT_FUNCTION
static constexpr QLatin1StringView S_CLASS_NAME
static constexpr QLatin1StringView S_NOTIFY
static constexpr QLatin1StringView S_CLASS_INFOS
static constexpr QLatin1StringView S_RETURN_TYPE
static constexpr QLatin1StringView S_RESET
static constexpr QLatin1StringView S_MEMBER
static constexpr QLatin1StringView S_IS_CONSTRUCTOR
static constexpr QLatin1StringView S_REVISION
static constexpr QLatin1StringView S_PUBLIC
static constexpr QLatin1StringView S_SLOTS
static constexpr QLatin1StringView S_PROPERTIES
static constexpr QLatin1StringView S_IS_CLONED
static constexpr QLatin1StringView S_DEFAULT_PROPERTY
static constexpr QLatin1StringView S_FALSE
static constexpr QLatin1StringView S_IS_CLASS
static constexpr QLatin1StringView S_IS_CONST
static constexpr QLatin1StringView S_VALUES
static constexpr QLatin1StringView S_READ
static constexpr QLatin1StringView S_GADGET
static constexpr QLatin1StringView S_CLASSES
static constexpr QLatin1StringView S_FINAL
static constexpr QLatin1StringView S_OVERRIDE
static constexpr QLatin1StringView S_ENUMS
static constexpr QLatin1StringView S_IS_FLAG
static constexpr QLatin1StringView S_INDEX
static constexpr QLatin1StringView S_WRITE
static constexpr QLatin1StringView S_IMMEDIATE_PROPERTY_NAMES
static constexpr QLatin1StringView S_PRIVATE
static constexpr QLatin1StringView S_HASHES
static constexpr QLatin1StringView S_PROPERTY
static constexpr QLatin1StringView S_METHODS
static constexpr QLatin1StringView S_CONSTRUCT
static constexpr QLatin1StringView S_VIRTUAL
static constexpr QLatin1StringView S_INTERFACES
static constexpr QLatin1StringView S_AUTO
static constexpr QLatin1StringView S_METHOD
static constexpr QLatin1StringView S_NAMESPACE
static constexpr QLatin1StringView S_BINDABLE
static constexpr QLatin1StringView S_OBJECT
qsizetype lastIndexOf(QAnyStringView whole, QLatin1StringView part)
bool contains(QAnyStringView whole, QLatin1Char part)
QAnyStringView trimmed(QAnyStringView string)
int toInt(QUtf8StringView view)
QAnyStringView doTrimmed(StringView string)
auto processAsUtf8(StringView string, Handler &&handler)
bool endsWith(QAnyStringView whole, QLatin1StringView part)
qsizetype getLastIndexOf(QStringView whole, QLatin1StringView part)
bool doesContain(QStringView whole, QLatin1Char part)
bool startsWith(QAnyStringView whole, QLatin1StringView part)
QList< QAnyStringView > split(QAnyStringView source, QLatin1StringView sep)
Combined button and popup list for selecting options.
size_t qHash(QByteArrayView key, size_t seed) noexcept
Definition qhash.cpp:876
static Access getAccess(const QCborMap &cbor)
static QCborValue fromJson(const QByteArray &json, QJsonParseError *error)
static QLatin1StringView typeRelationString(TypeRelation relation)
static void sortStringList(QList< String > *list)
static QTypeRevision getRevision(const QCborMap &cbor)
static bool qualifiedClassNameLessThan(const MetaType &a, const MetaType &b)
@ Public
Definition access.h:11
@ Private
Definition access.h:11
@ Protected
Definition access.h:11
QAnyStringView interfaceName(const Interface &iface)
QDebug warning(const MetaType &classDef)
int mergeQtConfFiles(const QString &pathToList, const QString &pathToMergedQtConfsList)
QDebug error(QAnyStringView fileName, int lineNumber=0)
QDebug warning(QAnyStringView fileName, int lineNumber=0)
QAnyStringView name
Argument(const QCborMap &cbor)
Argument()=default
QAnyStringView type
BaseType()=default
QAnyStringView name
BaseType(const QCborMap &cbor)
ClassInfo()=default
QAnyStringView value
QAnyStringView name
ClassInfo(const QCborMap &cbor)
QAnyStringView alias
QAnyStringView name
QList< QAnyStringView > values
Enum(const QCborMap &cbor)
Enum()=default
QAnyStringView type
MetaType select(const MetaType &category, QAnyStringView relation) const
FoundType(const MetaType &single, Origin origin)
FoundType()=default
Interface(const QCborValue &cbor)
QAnyStringView className
Interface()=default
MetaTypePrivate()=default
ClassInfo::Container classInfos
BaseType::Container superClasses
MetaTypePrivate(const QCborMap &cbor, const QString &inputFile, const QCborMap &hashes)
Property::Container properties
Interface::Container ifaces
QAnyStringView qualifiedClassName
Method::Container constructors
QAnyStringView name
Method()=default
QAnyStringView returnType
Argument::Container arguments
Method(const QCborMap &cbor, bool isConstructor)
QTypeRevision revision
static constexpr int InvalidIndex
QAnyStringView write
QAnyStringView notify
QAnyStringView read
QAnyStringView privateClass
Property(const QCborMap &cbor)
QAnyStringView name
QAnyStringView member
QAnyStringView type
Property()=default
QAnyStringView reset
QAnyStringView bindable
QTypeRevision revision
QList< QAnyStringView > implementsInterfaces
void collect(const MetaType &classDef, const QList< MetaType > &types, const QList< MetaType > &foreign, CollectMode mode, QTypeRevision defaultRevision)
QList< QAnyStringView > primitiveAliases
void collectLocalAnonymous(const MetaType &classDef, const QList< MetaType > &types, const QList< MetaType > &foreign, QTypeRevision defaultRevision)
FoundType collectRelated(QAnyStringView related, const QList< MetaType > &types, const QList< MetaType > &foreign, QTypeRevision defaultRevision, const QList< QAnyStringView > &namespaces)
QList< QAnyStringView > immediateNames
QList< QAnyStringView > elementNames
QList< QAnyStringView > deferredNames
static FoundType findType(const QList< MetaType > &types, const QList< MetaType > &foreign, const QAnyStringView &name, const QList< QAnyStringView > &namespaces)
ResolvedTypeAlias(QAnyStringView alias, const QList< UsingDeclaration > &usingDeclarations)
friend bool comparesEqual(const UsingDeclaration &a, const UsingDeclaration &b) noexcept
friend Qt::strong_ordering compareThreeWay(const UsingDeclaration &a, const UsingDeclaration &b) noexcept