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
4#ifndef QMLTYPESCLASSDESCRIPTION_P_H
5#define QMLTYPESCLASSDESCRIPTION_P_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 purely as an
12// implementation detail. This header file may change from version to
13// version without notice, or even be removed.
14//
15// We mean it.
16//
17
18#include <private/qmetatypesjsonprocessor_p.h>
19
20#include <QtCore/qstring.h>
21#include <QtCore/qcbormap.h>
22#include <QtCore/qvector.h>
23#include <QtCore/qset.h>
24#include <QtCore/qversionnumber.h>
25
27
29{
35
36 FoundType() = default;
37 FoundType(const MetaType &single, Origin origin);
38
41
44
45 operator bool() const { return !native.isEmpty() || !javaScript.isEmpty(); }
46
47 MetaType select(const MetaType &category, QAnyStringView relation) const;
48
49};
50
52{
53 // All the string views in this class are based on string data in the JSON they are parsed from.
54 // You must keep the relevant QCborValues alive while the QmlTypesClassDescription exists.
55
72 bool isCreatable = true;
73 bool isStructured = false;
74 bool isSingleton = false;
75 bool hasCustomParser = false;
76 bool isRootClass = false;
79 bool enforcesScopedEnums = false;
83 int lineNumber = 0;
84
90
91 void collect(
92 const MetaType &classDef, const QVector<MetaType> &types,
93 const QVector<MetaType> &foreign, CollectMode mode, QTypeRevision defaultRevision);
95 QAnyStringView related, const QVector<MetaType> &types,
96 const QVector<MetaType> &foreign, QTypeRevision defaultRevision,
97 const QList<QAnyStringView> &namespaces);
98
99 static FoundType findType(
100 const QVector<MetaType> &types, const QVector<MetaType> &foreign,
101 const QAnyStringView &name, const QList<QAnyStringView> &namespaces);
102
104 const MetaType &classDef, const QVector<MetaType> &types,
105 const QVector<MetaType> &foreign, QTypeRevision defaultRevision);
106
107
108private:
109 void collectSuperClasses(
110 const MetaType &classDef, const QVector<MetaType> &types,
111 const QVector<MetaType> &foreign, CollectMode mode, QTypeRevision defaultRevision);
112 void collectInterfaces(const MetaType &classDef);
113
114 void handleRegisterEnumClassesUnscoped(const MetaType &classDef, QAnyStringView value);
115};
116
118{
119 ResolvedTypeAlias(QAnyStringView alias, const QList<UsingDeclaration> &usingDeclarations);
120
122 bool isList = false;
123 bool isPointer = false;
124 bool isConstant = false;
125
126private:
127 void handleVoid();
128 void handleList();
129 void handlePointer();
130 void handleConst();
131};
132
133QT_END_NAMESPACE
134#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
const Property::Container & properties() const
MetaType(const QCborMap &cbor, const QString &inputFile)
friend bool operator==(const MetaType &a, const MetaType &b) noexcept
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
QVector< MetaType > foreignTypes() const
QList< QAnyStringView > referencedTypes() const
QVector< MetaType > types() 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_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_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_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_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_PROPERTY
static constexpr QLatin1StringView S_METHODS
static constexpr QLatin1StringView S_CONSTRUCT
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)
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)
static size_t qHash(QAnyStringView string, size_t seed=0)
@ 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)
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
MetaTypePrivate(const QCborMap &cbor, const QString &inputFile)
ClassInfo::Container classInfos
BaseType::Container superClasses
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
QList< QAnyStringView > primitiveAliases
void collect(const MetaType &classDef, const QVector< MetaType > &types, const QVector< MetaType > &foreign, CollectMode mode, QTypeRevision defaultRevision)
QList< QAnyStringView > immediateNames
FoundType collectRelated(QAnyStringView related, const QVector< MetaType > &types, const QVector< MetaType > &foreign, QTypeRevision defaultRevision, const QList< QAnyStringView > &namespaces)
static FoundType findType(const QVector< MetaType > &types, const QVector< MetaType > &foreign, const QAnyStringView &name, const QList< QAnyStringView > &namespaces)
QList< QAnyStringView > elementNames
QList< QAnyStringView > deferredNames
void collectLocalAnonymous(const MetaType &classDef, const QVector< MetaType > &types, const QVector< MetaType > &foreign, QTypeRevision defaultRevision)
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