aboutsummaryrefslogtreecommitdiffstats
path: root/src/templates/qquickapplicationwindow_p.h
diff options
context:
space:
mode:
authorJ-P Nurmi <jpnurmi@theqtcompany.com>2015-11-14 11:47:59 +0100
committerJ-P Nurmi <jpnurmi@theqtcompany.com>2015-11-16 15:58:10 +0000
commit08c7db1f8dc388af3170fe46ee5c54ac8ae2d40b (patch)
tree966c40166ada3d3c939a2dab44a735d8f7ee6a6c /src/templates/qquickapplicationwindow_p.h
parent792be4d3c8db1553f97d31019612a7c94e6a8816 (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.h40
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