diff options
author | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-11-14 11:47:59 +0100 |
---|---|---|
committer | J-P Nurmi <jpnurmi@theqtcompany.com> | 2015-11-16 15:58:10 +0000 |
commit | 08c7db1f8dc388af3170fe46ee5c54ac8ae2d40b (patch) | |
tree | 966c40166ada3d3c939a2dab44a735d8f7ee6a6c /src/templates/qquickapplicationwindow_p.h | |
parent | 792be4d3c8db1553f97d31019612a7c94e6a8816 (diff) |
ApplicationWindow: introduce attached properties
The attached properties provide convenient direct access
to an application window and its building blocks.
Change-Id: I2d96842d80faec47c875156202c1e33a2af96ad3
Reviewed-by: Mitch Curtis <mitch.curtis@theqtcompany.com>
Diffstat (limited to 'src/templates/qquickapplicationwindow_p.h')
-rw-r--r-- | src/templates/qquickapplicationwindow_p.h | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/src/templates/qquickapplicationwindow_p.h b/src/templates/qquickapplicationwindow_p.h index 95ea0806..c5b0dc42 100644 --- a/src/templates/qquickapplicationwindow_p.h +++ b/src/templates/qquickapplicationwindow_p.h @@ -54,6 +54,8 @@ QT_BEGIN_NAMESPACE class QQuickApplicationWindowPrivate; +class QQuickApplicationWindowAttached; +class QQuickApplicationWindowAttachedPrivate; class Q_LABSTEMPLATES_EXPORT QQuickApplicationWindow : public QQuickWindowQmlImpl { @@ -80,6 +82,8 @@ public: QQuickItem *overlay() const; + static QQuickApplicationWindowAttached *qmlAttachedProperties(QObject *object); + Q_SIGNALS: void headerChanged(); void footerChanged(); @@ -95,8 +99,44 @@ private: QScopedPointer<QQuickApplicationWindowPrivate> d_ptr; }; +class Q_LABSTEMPLATES_EXPORT QQuickApplicationWindowAttached : public QObject +{ + Q_OBJECT + Q_PROPERTY(QQuickApplicationWindow *window READ window NOTIFY windowChanged FINAL) + Q_PROPERTY(QQuickItem *contentItem READ contentItem NOTIFY contentItemChanged FINAL) + Q_PROPERTY(QQuickItem *activeFocusItem READ activeFocusItem NOTIFY activeFocusItemChanged FINAL) + Q_PROPERTY(QQuickItem *header READ header NOTIFY headerChanged FINAL) + Q_PROPERTY(QQuickItem *footer READ footer NOTIFY footerChanged FINAL) + Q_PROPERTY(QQuickItem *overlay READ overlay NOTIFY overlayChanged FINAL) + +public: + explicit QQuickApplicationWindowAttached(QObject *parent = Q_NULLPTR); + + QQuickApplicationWindow *window() const; + QQuickItem *contentItem() const; + QQuickItem *activeFocusItem() const; + QQuickItem *header() const; + QQuickItem *footer() const; + QQuickItem *overlay() const; + +Q_SIGNALS: + void windowChanged(); + void contentItemChanged(); + void activeFocusItemChanged(); + void headerChanged(); + void footerChanged(); + void overlayChanged(); + +private: + Q_DISABLE_COPY(QQuickApplicationWindowAttached) + Q_DECLARE_PRIVATE(QQuickApplicationWindowAttached) +}; + Q_DECLARE_TYPEINFO(QQuickApplicationWindow, Q_COMPLEX_TYPE); +Q_DECLARE_TYPEINFO(QQuickApplicationWindowAttached, Q_COMPLEX_TYPE); QT_END_NAMESPACE +QML_DECLARE_TYPEINFO(QQuickApplicationWindow, QML_HAS_ATTACHED_PROPERTIES) + #endif // QQUICKAPPLICATIONWINDOW_P_H |