From 6f3f262574d2bb0cf7ccd5148f29e078aef8d16a Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 3 Sep 2016 14:49:49 +0200 Subject: Make QQuickOverlay resize itself This prepares QQuickOverlay to be usable with a plain QQuickWindow, for which we cannot override resizeEvent(). Change-Id: Ib021c510539b134477bb8d532787721a5ac7fca4 Reviewed-by: Mitch Curtis --- src/quicktemplates2/qquickapplicationwindow.cpp | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) (limited to 'src/quicktemplates2/qquickapplicationwindow.cpp') diff --git a/src/quicktemplates2/qquickapplicationwindow.cpp b/src/quicktemplates2/qquickapplicationwindow.cpp index 2706d9b6..bf903b8a 100644 --- a/src/quicktemplates2/qquickapplicationwindow.cpp +++ b/src/quicktemplates2/qquickapplicationwindow.cpp @@ -157,12 +157,6 @@ void QQuickApplicationWindowPrivate::relayout() content->setWidth(q->width()); content->setHeight(q->height() - hh - fh); - if (overlay) { - overlay->setWidth(q->width()); - overlay->setHeight(q->height()); - overlay->stackAfter(content); - } - if (header) { header->setY(-hh); QQuickItemPrivate *p = QQuickItemPrivate::get(header); @@ -484,7 +478,7 @@ QQuickOverlay *QQuickApplicationWindow::overlay() const QQuickApplicationWindowPrivate *d = const_cast(d_func()); if (!d->overlay) { d->overlay = new QQuickOverlay(QQuickWindow::contentItem()); - d->relayout(); + d->overlay->stackAfter(QQuickApplicationWindow::contentItem()); } return d->overlay; } -- cgit v1.2.3 From 14dd934c3203b614e43be9fa5b17761d43092351 Mon Sep 17 00:00:00 2001 From: J-P Nurmi Date: Sat, 3 Sep 2016 15:39:04 +0200 Subject: Use QQuickOverlay with plain QQuickWindow Get rid of the ugly and broken event filter approach that was used with QQuickWindow. Create an instance of QQuickOverlay so that the same overlay code path is used for both QQuickApplicationWindow and plain QQuickWindow. Task-number: QTBUG-55729 Change-Id: I6e26b19cd94a9580418912803f50c30b9dcaeedb Reviewed-by: Mitch Curtis --- src/quicktemplates2/qquickapplicationwindow.cpp | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/quicktemplates2/qquickapplicationwindow.cpp') diff --git a/src/quicktemplates2/qquickapplicationwindow.cpp b/src/quicktemplates2/qquickapplicationwindow.cpp index bf903b8a..28095aa6 100644 --- a/src/quicktemplates2/qquickapplicationwindow.cpp +++ b/src/quicktemplates2/qquickapplicationwindow.cpp @@ -476,6 +476,9 @@ QQuickItem *QQuickApplicationWindow::activeFocusControl() const QQuickOverlay *QQuickApplicationWindow::overlay() const { QQuickApplicationWindowPrivate *d = const_cast(d_func()); + if (!d) // being deleted + return nullptr; + if (!d->overlay) { d->overlay = new QQuickOverlay(QQuickWindow::contentItem()); d->overlay->stackAfter(QQuickApplicationWindow::contentItem()); -- cgit v1.2.3