5#ifndef QMLINTEGRATION_H
6#define QMLINTEGRATION_H
8#include <QtCore/qglobal.h>
30template <
typename T>
class QList;
32template<
typename... Args>
34 QList<
int> *qmlTypeIds =
nullptr);
39#define QML_PRIVATE_NAMESPACE
40 QT_PREPEND_NAMESPACE(QQmlPrivate)
44 Q_CLASSINFO("QML.Element", "auto")
48 Q_CLASSINFO("QML.Element", "anonymous")
49 enum class QmlIsAnonymous{yes = true};
51 inline constexpr void qt_qmlMarker_anonymous() {}
53#define QML_NAMED_ELEMENT(NAME)
54 Q_CLASSINFO("QML.Element", #NAME)
56#define QML_UNCREATABLE(REASON)
57 Q_CLASSINFO("QML.Creatable", "false")
58 Q_CLASSINFO("QML.UncreatableReason", REASON)
59 enum class QmlIsUncreatable {yes = true};
61 inline constexpr void qt_qmlMarker_uncreatable() {}
63#define QML_VALUE_TYPE(NAME)
64 Q_CLASSINFO("QML.Element", #NAME)
66#define QML_CONSTRUCTIBLE_VALUE
67 Q_CLASSINFO("QML.Creatable", "true")
68 Q_CLASSINFO("QML.CreationMethod", "construct")
70#define QML_STRUCTURED_VALUE
71 Q_CLASSINFO("QML.Creatable", "true")
72 Q_CLASSINFO("QML.CreationMethod", "structured")
75 Q_CLASSINFO("QML.Singleton", "true")
76 enum class QmlIsSingleton {yes = true};
78 inline constexpr void qt_qmlMarker_singleton() {}
80#define QML_ADDED_IN_MINOR_VERSION(VERSION)
81 Q_CLASSINFO("QML.AddedInVersion", Q_REVISION(VERSION))
83#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
84 Q_CLASSINFO("QML.AddedInVersion", Q_REVISION(MAJOR, MINOR))
86#define QML_EXTRA_VERSION(MAJOR, MINOR)
87 Q_CLASSINFO("QML.ExtraVersion", Q_REVISION(MAJOR, MINOR))
89#define QML_REMOVED_IN_MINOR_VERSION(VERSION)
90 Q_CLASSINFO("QML.RemovedInVersion", Q_REVISION(VERSION))
92#define QML_REMOVED_IN_VERSION(MAJOR, MINOR)
93 Q_CLASSINFO("QML.RemovedInVersion", Q_REVISION(MAJOR, MINOR))
95#define QML_ATTACHED(ATTACHED_TYPE)
96 Q_CLASSINFO("QML.Attached", #ATTACHED_TYPE)
97 using QmlAttachedType = ATTACHED_TYPE;
100 inline constexpr void qt_qmlMarker_attached() {}
102#define QML_EXTENDED(EXTENDED_TYPE)
103 Q_CLASSINFO("QML.Extended", #EXTENDED_TYPE)
104 using QmlExtendedType = EXTENDED_TYPE;
106 inline constexpr void qt_qmlMarker_extended() {}
108#define QML_EXTENDED_NAMESPACE(EXTENDED_NAMESPACE)
109 Q_CLASSINFO("QML.Extended", #EXTENDED_NAMESPACE)
110 Q_CLASSINFO("QML.ExtensionIsNamespace", "true")
111 static constexpr const QMetaObject *qmlExtendedNamespace() { return &EXTENDED_NAMESPACE::staticMetaObject; }
113 inline constexpr void qt_qmlMarker_extendedNamespace() {}
115#define QML_NAMESPACE_EXTENDED(EXTENDED_NAMESPACE)
116 Q_CLASSINFO("QML.Extended", #EXTENDED_NAMESPACE)
119 Q_CLASSINFO("QML.Element", "anonymous")
120 enum class QmlIsInterface {yes = true};
122 inline constexpr void qt_qmlMarker_interface() {}
124#define QML_IMPLEMENTS_INTERFACES(INTERFACES)
125 Q_INTERFACES(INTERFACES)
126 enum class QmlIsInterface {yes = false};
129#define QML_SEQUENTIAL_CONTAINER(VALUE_TYPE)
130 Q_CLASSINFO("QML.Sequence", #VALUE_TYPE)
131 using QmlSequenceValueType = VALUE_TYPE;
132 enum class QmlIsSequence {yes = true};
134 inline constexpr void qt_qmlMarker_sequence() {}
136#define QML_UNAVAILABLE
139#define QML_FOREIGN(FOREIGN_TYPE)
140 Q_CLASSINFO("QML.Foreign", #FOREIGN_TYPE)
141 using QmlForeignType = FOREIGN_TYPE;
143 inline constexpr void qt_qmlMarker_foreign() {}
145#define QML_FOREIGN_NAMESPACE(FOREIGN_NAMESPACE)
146 Q_CLASSINFO("QML.Foreign", #FOREIGN_NAMESPACE)
147 Q_CLASSINFO("QML.ForeignIsNamespace", "true")
148 inline constexpr void qt_qmlMarker_foreign() {}
150#define QML_CUSTOMPARSER
151 Q_CLASSINFO("QML.HasCustomParser", "true")
153#define QML_USING(ORIGINAL)
154 using QmlUsing ## ORIGINAL = ORIGINAL;
155 Q_CLASSINFO("QML.Using", #ORIGINAL)
#define QML_PRIVATE_NAMESPACE
void qmlRegisterTypesAndRevisions(const char *uri, int versionMajor, QList< int > *qmlTypeIds=nullptr)
#define QML_FOREIGN(FOREIGN_TYPE)