diff options
Diffstat (limited to 'src/qml/qml/qqmlcomponent.h')
-rw-r--r-- | src/qml/qml/qqmlcomponent.h | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/src/qml/qml/qqmlcomponent.h b/src/qml/qml/qqmlcomponent.h index f259c99b08..cb5d5a787c 100644 --- a/src/qml/qml/qqmlcomponent.h +++ b/src/qml/qml/qqmlcomponent.h @@ -70,6 +70,9 @@ class Q_QML_EXPORT QQmlComponent : public QObject Q_PROPERTY(qreal progress READ progress NOTIFY progressChanged) Q_PROPERTY(Status status READ status NOTIFY statusChanged) Q_PROPERTY(QUrl url READ url CONSTANT) + QML_NAMED_ELEMENT(Component) + QML_ATTACHED(QQmlComponentAttached) + Q_CLASSINFO("QML.Builtin", "QML") public: enum CompilationMode { PreferSynchronous, Asynchronous }; @@ -136,9 +139,29 @@ private: friend class QQmlObjectCreator; }; -QT_END_NAMESPACE +// Don't do this at home. +namespace QQmlPrivate { + +// Generally you cannot use QQmlComponentAttached as attached properties object in derived classes. +// It is private. +template<class T> +struct OverridableAttachedType<T, QQmlComponentAttached> +{ + using Type = void; +}; + +// QQmlComponent itself is allowed to use QQmlComponentAttached, though. +template<> +struct OverridableAttachedType<QQmlComponent, QQmlComponentAttached> +{ + using Type = QQmlComponentAttached; +}; + +} // namespace QQmlPrivate + + +QT_END_NAMESPACE QML_DECLARE_TYPE(QQmlComponent) -QML_DECLARE_TYPEINFO(QQmlComponent, QML_HAS_ATTACHED_PROPERTIES) #endif // QQMLCOMPONENT_H |