aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/quickwidgets
diff options
context:
space:
mode:
authorPaul Olav Tvete <paul.tvete@qt.io>2017-08-14 10:29:53 +0200
committerPaul Olav Tvete <paul.tvete@qt.io>2017-08-16 07:22:53 +0000
commitb160a38b7babeb3cb009748a008075ab07926428 (patch)
treeaf3c9d8a9b0ff6ab188e99f02f5a7623368afb8f /tests/auto/quickwidgets
parent6034d89bdd907d4795c19e8ac752f4eb51c82a94 (diff)
Update layout when QQuickWidget changes size
Task-number: QTBUG-47722 Change-Id: I612f89945961a3995878c424bf27dbbedf8375c8 Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'tests/auto/quickwidgets')
-rw-r--r--tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp37
1 files changed, 37 insertions, 0 deletions
diff --git a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
index ee49c9c7ad..537fe99012 100644
--- a/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
+++ b/tests/auto/quickwidgets/qquickwidget/tst_qquickwidget.cpp
@@ -38,6 +38,9 @@
#include <QtCore/QDebug>
#include <QtQml/qqmlengine.h>
+#include <QtWidgets/QBoxLayout>
+#include <QtWidgets/QLabel>
+
#include <QtQuickWidgets/QQuickWidget>
class tst_qquickwidget : public QQmlDataTest
@@ -51,6 +54,7 @@ private slots:
void reparentAfterShow();
void changeGeometry();
void resizemodeitem();
+ void layoutSizeChange();
void errors();
void engine();
void readback();
@@ -225,6 +229,39 @@ void tst_qquickwidget::resizemodeitem()
QCOMPARE(view->initialSize(), QSize(200, 200)); // initial object size
}
+void tst_qquickwidget::layoutSizeChange()
+{
+ QWidget window;
+ window.resize(400, 400);
+
+ QVBoxLayout *layout = new QVBoxLayout(&window);
+ layout->setContentsMargins(0,0,0,0);
+ layout->setSpacing(0);
+ QScopedPointer<QQuickWidget> view(new QQuickWidget);
+ layout->addWidget(view.data());
+ QLabel *label = new QLabel("Label");
+ layout->addWidget(label);
+ layout->addStretch(1);
+
+
+ view->resize(300,300);
+ view->setResizeMode(QQuickWidget::SizeViewToRootObject);
+ QCOMPARE(QSize(0,0), view->initialSize());
+ view->setSource(testFileUrl("rectangle.qml"));
+ QQuickItem* item = qobject_cast<QQuickItem*>(view->rootObject());
+ QVERIFY(item);
+ QCOMPARE(item->height(), 200.0);
+ window.show();
+ QVERIFY(QTest::qWaitForWindowExposed(&window, 5000));
+ QTRY_COMPARE(view->height(), 200);
+ QTRY_COMPARE(label->y(), 200);
+
+ item->setSize(QSizeF(100,100));
+ QCOMPARE(item->height(), 100.0);
+ QTRY_COMPARE(view->height(), 100);
+ QTRY_COMPARE(label->y(), 100);
+}
+
void tst_qquickwidget::errors()
{
QQuickWidget *view = new QQuickWidget;