aboutsummaryrefslogtreecommitdiffstats
path: root/src/imports/dialogs/qquickabstractdialog_p.h
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@digia.com>2013-04-18 12:30:20 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-06-26 12:06:20 +0200
commit4e2153a1d5056249fc31e23890d8c525a3986e1b (patch)
tree6fe37d445255bf2baac7a9cc06ae924a01277e48 /src/imports/dialogs/qquickabstractdialog_p.h
parenta4754a30abc6f650885cbd20d0419da26a504220 (diff)
Declarative dialog improvements for the non-Window use case
Platforms like Android and EGL don't support multiple top-level windows, so we have to avoid trying to use widget-based dialogs (because a widget dialog on top of a scene graph will result in a second window), allow the QML dialog to be an Item, and decorate it to look like a window. Task-number: QTBUG-31898 Change-Id: I9af049f3265188e8be677a05a8bc6d1699b4cd00 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com> Reviewed-by: Richard Moe Gustavsen <richard.gustavsen@digia.com>
Diffstat (limited to 'src/imports/dialogs/qquickabstractdialog_p.h')
-rw-r--r--src/imports/dialogs/qquickabstractdialog_p.h10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/imports/dialogs/qquickabstractdialog_p.h b/src/imports/dialogs/qquickabstractdialog_p.h
index 2ad24f98e0..ef20333479 100644
--- a/src/imports/dialogs/qquickabstractdialog_p.h
+++ b/src/imports/dialogs/qquickabstractdialog_p.h
@@ -66,6 +66,7 @@ class QQuickAbstractDialog : public QObject
Q_PROPERTY(bool visible READ isVisible WRITE setVisible NOTIFY visibilityChanged)
Q_PROPERTY(Qt::WindowModality modality READ modality WRITE setModality NOTIFY modalityChanged)
Q_PROPERTY(QString title READ title WRITE setTitle NOTIFY titleChanged)
+ Q_PROPERTY(bool isWindow READ isWindow CONSTANT)
Q_PROPERTY(int x READ x WRITE setX NOTIFY geometryChanged)
Q_PROPERTY(int y READ y WRITE setY NOTIFY geometryChanged)
Q_PROPERTY(int width READ width WRITE setWidth NOTIFY geometryChanged)
@@ -89,6 +90,7 @@ public:
virtual void setModality(Qt::WindowModality m);
virtual void setTitle(QString t) = 0;
void setQmlImplementation(QObject* obj);
+ bool isWindow() const { return m_hasNativeWindows; }
void setX(int arg);
void setY(int arg);
void setWidth(int arg);
@@ -107,6 +109,7 @@ Q_SIGNALS:
void rejected();
protected Q_SLOTS:
+ void decorationLoaded();
void accept();
void reject();
void visibleChanged(bool v);
@@ -124,6 +127,13 @@ protected:
protected: // variables for pure-QML implementations only
QObject *m_qmlImplementation;
QWindow *m_dialogWindow;
+ QQuickItem *m_contentItem;
+ QQuickItem *m_windowDecoration;
+ bool m_hasNativeWindows;
+
+ static QQmlComponent *m_decorationComponent;
+
+ friend class QtQuick2DialogsPlugin;
Q_DISABLE_COPY(QQuickAbstractDialog)
};