5#ifndef QMLINTEGRATION_H
6#define QMLINTEGRATION_H
8#include <QtCore/qglobal.h>
18 template<
class,
class>
20 template<
class,
class>
22 template<
class,
class>
24 template<
class,
class>
26 template<
class,
class>
30template <
typename T>
class QList;
32template<
typename... Args>
34 QList<
int> *qmlTypeIds =
nullptr);
39#define QML_PRIVATE_NAMESPACE
40 QT_PREPEND_NAMESPACE(QQmlPrivate)
42#define QML_REGISTER_TYPES_AND_REVISIONS
43 QT_PREPEND_NAMESPACE(qmlRegisterTypesAndRevisions)
47 Q_CLASSINFO("QML.Element", "auto")
51 Q_CLASSINFO("QML.Element", "anonymous")
52 enum class QmlIsAnonymous{yes = true};
55 QT_WARNING_DISABLE_GCC("-Wredundant-decls")
56 template<typename... Args>
59 inline constexpr void qt_qmlMarker_anonymous() {}
61#define QML_NAMED_ELEMENT(NAME)
62 Q_CLASSINFO("QML.Element", #NAME)
64#define QML_UNCREATABLE(REASON)
65 Q_CLASSINFO("QML.Creatable", "false")
66 Q_CLASSINFO("QML.UncreatableReason", REASON)
67 enum class QmlIsUncreatable {yes = true};
70 QT_WARNING_DISABLE_GCC("-Wredundant-decls")
71 template<typename... Args>
74 inline constexpr void qt_qmlMarker_uncreatable() {}
76#define QML_VALUE_TYPE(NAME)
77 Q_CLASSINFO("QML.Element", #NAME)
79#define QML_CONSTRUCTIBLE_VALUE
80 Q_CLASSINFO("QML.Creatable", "true")
81 Q_CLASSINFO("QML.CreationMethod", "construct")
83#define QML_STRUCTURED_VALUE
84 Q_CLASSINFO("QML.Creatable", "true")
85 Q_CLASSINFO("QML.CreationMethod", "structured")
88 Q_CLASSINFO("QML.Singleton", "true")
89 enum class QmlIsSingleton {yes = true};
92 QT_WARNING_DISABLE_GCC("-Wredundant-decls")
93 template<typename... Args>
96 inline constexpr void qt_qmlMarker_singleton() {}
98#define QML_ADDED_IN_MINOR_VERSION(VERSION)
99 Q_CLASSINFO("QML.AddedInVersion", Q_REVISION(VERSION))
101#define QML_ADDED_IN_VERSION(MAJOR, MINOR)
102 Q_CLASSINFO("QML.AddedInVersion", Q_REVISION(MAJOR, MINOR))
104#define QML_EXTRA_VERSION(MAJOR, MINOR)
105 Q_CLASSINFO("QML.ExtraVersion", Q_REVISION(MAJOR, MINOR))
107#define QML_REMOVED_IN_MINOR_VERSION(VERSION)
108 Q_CLASSINFO("QML.RemovedInVersion", Q_REVISION(VERSION))
110#define QML_REMOVED_IN_VERSION(MAJOR, MINOR)
111 Q_CLASSINFO("QML.RemovedInVersion", Q_REVISION(MAJOR, MINOR))
113#define QML_ATTACHED(ATTACHED_TYPE)
114 Q_CLASSINFO("QML.Attached", #ATTACHED_TYPE)
115 using QmlAttachedType = ATTACHED_TYPE;
118 inline constexpr void qt_qmlMarker_attached() {}
120#define QML_EXTENDED(EXTENDED_TYPE)
121 Q_CLASSINFO("QML.Extended", #EXTENDED_TYPE)
122 using QmlExtendedType = EXTENDED_TYPE;
125 QT_WARNING_DISABLE_GCC("-Wredundant-decls")
126 template<typename... Args>
129 inline constexpr void qt_qmlMarker_extended() {}
131#define QML_EXTENDED_NAMESPACE(EXTENDED_NAMESPACE)
132 Q_CLASSINFO("QML.Extended", #EXTENDED_NAMESPACE)
133 Q_CLASSINFO("QML.ExtensionIsNamespace", "true")
134 static constexpr const QMetaObject *qmlExtendedNamespace() { return &EXTENDED_NAMESPACE::staticMetaObject; }
137 QT_WARNING_DISABLE_GCC("-Wredundant-decls")
138 template<typename... Args>
141 inline constexpr void qt_qmlMarker_extendedNamespace() {}
143#define QML_NAMESPACE_EXTENDED(EXTENDED_NAMESPACE)
144 Q_CLASSINFO("QML.Extended", #EXTENDED_NAMESPACE)
147 Q_CLASSINFO("QML.Element", "anonymous")
148 enum class QmlIsInterface {yes = true};
151 QT_WARNING_DISABLE_GCC("-Wredundant-decls")
152 template<typename... Args>
155 inline constexpr void qt_qmlMarker_interface() {}
157#define QML_IMPLEMENTS_INTERFACES(INTERFACES)
158 Q_INTERFACES(INTERFACES)
159 enum class QmlIsInterface {yes = false};
162#define QML_SEQUENTIAL_CONTAINER(VALUE_TYPE)
163 Q_CLASSINFO("QML.Sequence", #VALUE_TYPE)
164 using QmlSequenceValueType = VALUE_TYPE;
165 enum class QmlIsSequence {yes = true};
168 QT_WARNING_DISABLE_GCC("-Wredundant-decls")
169 template<typename... Args>
172 inline constexpr void qt_qmlMarker_sequence() {}
174#define QML_UNAVAILABLE
177#define QML_FOREIGN(FOREIGN_TYPE)
178 Q_CLASSINFO("QML.Foreign", #FOREIGN_TYPE)
179 using QmlForeignType = FOREIGN_TYPE;
182 QT_WARNING_DISABLE_GCC("-Wredundant-decls")
183 template<typename... Args>
186 inline constexpr void qt_qmlMarker_foreign() {}
188#define QML_FOREIGN_NAMESPACE(FOREIGN_NAMESPACE)
189 Q_CLASSINFO("QML.Foreign", #FOREIGN_NAMESPACE)
190 Q_CLASSINFO("QML.ForeignIsNamespace", "true")
191 inline constexpr void qt_qmlMarker_foreign() {}
193#define QML_CUSTOMPARSER
194 Q_CLASSINFO("QML.HasCustomParser", "true")
196#define QML_USING(ORIGINAL)
197 using QmlUsing ## ORIGINAL = ORIGINAL;
198 Q_CLASSINFO("QML.Using", #ORIGINAL)
#define QML_REGISTER_TYPES_AND_REVISIONS
#define QML_PRIVATE_NAMESPACE
void qmlRegisterTypesAndRevisions(const char *uri, int versionMajor, QList< int > *qmlTypeIds=nullptr)
#define QML_FOREIGN(FOREIGN_TYPE)