Fix SizeRootObjectToView mode
authorAlan Alpert <alan.alpert@nokia.com>
Tue, 1 Nov 2011 04:16:09 +0000 (14:16 +1000)
committerQt by Nokia <qt-info@nokia.com>
Wed, 2 Nov 2011 07:25:58 +0000 (08:25 +0100)
It is not yet possible to check if the window has been resized (after
the refactor branch merge). Instead, resize to rootObject regardless
only if the current view has no visible area.

Task-number: QTBUG-22019
Change-Id: I158aaa11862529745ad389e1cbadb6a0ad18c742
Reviewed-by: Alan Alpert <alan.alpert@nokia.com>
src/declarative/items/qquickview.cpp
src/declarative/items/qquickview_p.h
tests/auto/declarative/qquickview/tst_qquickview.cpp

index cc87b77..cd3ae4f 100644 (file)
@@ -73,7 +73,7 @@ void QQuickViewPrivate::init()
 }
 
 QQuickViewPrivate::QQuickViewPrivate()
-    : root(0), component(0), resizeMode(QQuickView::SizeViewToRootObject), initialSize(0,0), resized(false)
+    : root(0), component(0), resizeMode(QQuickView::SizeViewToRootObject), initialSize(0,0)
 {
 }
 
@@ -313,11 +313,9 @@ void QQuickViewPrivate::setRootObject(QObject *obj)
     }
     if (root) {
         initialSize = rootObjectSize();
-        if ((resizeMode == QQuickView::SizeViewToRootObject || !resized) // ### refactor:  || !q->testAttribute(Qt::WA_Resized)
-             && initialSize != q->size()) {
-
+        if ((resizeMode == QQuickView::SizeViewToRootObject || !q->width() || !q->height())
+                && initialSize != q->size()) {
             q->resize(initialSize);
-            resized = true;
         }
         initResize();
     }
index 12be09b..8c83526 100644 (file)
@@ -96,8 +96,6 @@ public:
     QQuickView::ResizeMode resizeMode;
     QSize initialSize;
     QElapsedTimer frameTimer;
-
-    bool resized;
 };
 
 QT_END_NAMESPACE
index a2334d2..fb52a55 100644 (file)
@@ -177,7 +177,6 @@ void tst_QQuickView::resizemodeitem()
     QTest::qWait(50);
 
     // initial size from root object
-    QEXPECT_FAIL("", "QTBUG-22019", Abort);
     QCOMPARE(item->width(), 300.0);
     QCOMPARE(item->height(), 300.0);
     QCOMPARE(canvas->size(), QSize(300, 300));