aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
diff options
context:
space:
mode:
authorTarja Sundqvist <tarja.sundqvist@qt.io>2025-12-15 16:14:22 +0200
committerTarja Sundqvist <tarja.sundqvist@qt.io>2025-12-15 16:14:22 +0200
commitb58ec3b086518da5aa573f99426235854c23e35f (patch)
tree861a9935d8f1cdba2fdca546836a351736dbddbf /tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
parent4826f86e274f1b29bd769e6790824f9e62a40f62 (diff)
parent22032227d16c39211e2ebceef97d21f4d89c7c87 (diff)
Merge tag 'v6.5.8-lts-lgpl' into 6.56.5
Qt 6.5.8-lts-lgpl release
Diffstat (limited to 'tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp')
-rw-r--r--tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp54
1 files changed, 54 insertions, 0 deletions
diff --git a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
index 73411e5b8a..2733f2d5bf 100644
--- a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
+++ b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
@@ -13,6 +13,8 @@
#include <QtQuick/private/qquickmousearea_p.h>
#include <QtQuick/private/qquicktaphandler_p.h>
#include <QtQuickTemplates2/private/qquickbutton_p.h>
+#include <QtQuickTemplates2/private/qquickoverlay_p.h>
+#include <QtQuickTemplates2/private/qquickpopup_p.h>
#include <QtQuickTestUtils/private/qmlutils_p.h>
#include <QtQuickTestUtils/private/visualtestutils_p.h>
#include <QtGui/QWindow>
@@ -135,6 +137,8 @@ private slots:
void touchMultipleWidgets();
void tabKey();
void resizeOverlay();
+ void overlayGeometry_data();
+ void overlayGeometry();
void controls();
void focusOnClick();
#if QT_CONFIG(graphicsview)
@@ -875,6 +879,56 @@ void tst_qquickwidget::resizeOverlay()
QCOMPARE(overlay->height(), rootItem->height());
}
+/*
+ Overlaps with resizeOverlay, but uses a proper
+ Qt Quick Controls Overlay.
+*/
+void tst_qquickwidget::overlayGeometry_data()
+{
+ QTest::addColumn<QQuickWidget::ResizeMode>("resizeMode");
+
+ QTest::addRow("SizeRootObjectToView") << QQuickWidget::SizeRootObjectToView;
+ QTest::addRow("SizeViewToRootObject") << QQuickWidget::SizeViewToRootObject;
+}
+
+void tst_qquickwidget::overlayGeometry()
+{
+ QFETCH(const QQuickWidget::ResizeMode, resizeMode);
+
+ QWidget window;
+
+ QQuickWidget widget(testFileUrl("overlayGeometry.qml"), &window);
+ widget.setResizeMode(resizeMode);
+
+ QCOMPARE(widget.status(), QQuickWidget::Ready);
+ const auto *rootItem = qobject_cast<QQuickItem*>(widget.rootObject());
+ QVERIFY(rootItem);
+ const QSizeF preferredSize = rootItem->size();
+
+ auto *popup = rootItem->findChild<QQuickPopup *>("popup");
+ QVERIFY(popup);
+ popup->open();
+ QTRY_VERIFY(popup->isOpened());
+
+ const auto *overlay = QQuickOverlay::overlay(widget.quickWindow());
+ QVERIFY(overlay);
+
+ QTestPrivate::androidCompatibleShow(&window);
+ QVERIFY(QTest::qWaitForWindowExposed(&window));
+ QCOMPARE(widget.size(), preferredSize.toSize());
+ QCOMPARE(overlay->position(), QPointF(0, 0));
+ QCOMPARE(overlay->size(), widget.size());
+
+ widget.resize((preferredSize * 2).toSize());
+ QCOMPARE(overlay->position(), QPointF(0, 0));
+ QEXPECT_FAIL("SizeViewToRootObject", "QTBUG-115536", Continue);
+ QCOMPARE(overlay->size(), widget.size());
+
+ // click outside the popup, make sure it closes
+ QTest::mouseClick(&widget, Qt::LeftButton, {}, QPoint(10, 10));
+ QTRY_VERIFY(!popup->isOpened());
+}
+
void tst_qquickwidget::controls()
{
// Smoke test for having some basic Quick Controls in a scene in a QQuickWidget.