summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative
diff options
context:
space:
mode:
authorJoona Petrell <joona.t.petrell@nokia.com>2010-06-09 01:51:29 (GMT)
committerJoona Petrell <joona.t.petrell@nokia.com>2010-06-09 03:13:50 (GMT)
commit5c6501970c7b6805b7edc30f90187700f05d9f15 (patch)
treecbc23e38845e2ae349e3fcae547818998b8b7f43 /tests/auto/declarative
parent00b157dc4aad203e78b8e4d821470a1d01a195c0 (diff)
downloadQt-5c6501970c7b6805b7edc30f90187700f05d9f15.zip
Qt-5c6501970c7b6805b7edc30f90187700f05d9f15.tar.gz
Qt-5c6501970c7b6805b7edc30f90187700f05d9f15.tar.bz2
Fix drawing flicker on Qml Viewer startup
Task-number: QTBUG-10251 and QTBUG-11156 Reviewed-by: Martin Jones
Diffstat (limited to 'tests/auto/declarative')
-rw-r--r--tests/auto/declarative/qdeclarativeview/tst_qdeclarativeview.cpp5
-rw-r--r--tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp187
2 files changed, 192 insertions, 0 deletions
diff --git a/tests/auto/declarative/qdeclarativeview/tst_qdeclarativeview.cpp b/tests/auto/declarative/qdeclarativeview/tst_qdeclarativeview.cpp
index cc48bd0..6450e38 100644
--- a/tests/auto/declarative/qdeclarativeview/tst_qdeclarativeview.cpp
+++ b/tests/auto/declarative/qdeclarativeview/tst_qdeclarativeview.cpp
@@ -80,6 +80,7 @@ void tst_QDeclarativeView::resizemodedeclarativeitem()
QVERIFY(canvas);
QSignalSpy sceneResizedSpy(canvas, SIGNAL(sceneResized(QSize)));
canvas->setResizeMode(QDeclarativeView::SizeRootObjectToView);
+ QCOMPARE(QSize(0,0), canvas->initialSize());
canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/resizemodedeclarativeitem.qml"));
QDeclarativeItem* declarativeItem = qobject_cast<QDeclarativeItem*>(canvas->rootObject());
QVERIFY(declarativeItem);
@@ -90,6 +91,7 @@ void tst_QDeclarativeView::resizemodedeclarativeitem()
QCOMPARE(declarativeItem->height(), 200.0);
QCOMPARE(canvas->size(), QSize(200, 200));
QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(canvas->size(), canvas->initialSize());
QCOMPARE(sceneResizedSpy.count(), 1);
// size update from view
@@ -135,6 +137,7 @@ void tst_QDeclarativeView::resizemodedeclarativeitem()
QCOMPARE(declarativeItem->width(), 200.0);
QCOMPARE(declarativeItem->height(), 200.0);
QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(canvas->size(), canvas->initialSize());
QCOMPARE(sceneResizedSpy2.count(), 1);
// size update from root object
@@ -184,6 +187,7 @@ void tst_QDeclarativeView::resizemodegraphicswidget()
QCOMPARE(canvas->size(), QSize(200, 200));
QCOMPARE(canvas->size(), QSize(200, 200));
QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(canvas->size(), canvas->initialSize());
QCOMPARE(sceneResizedSpy.count(), 1);
// size update from view
@@ -223,6 +227,7 @@ void tst_QDeclarativeView::resizemodegraphicswidget()
QCOMPARE(graphicsWidget->size(), QSizeF(200.0, 200.0));
QCOMPARE(canvas->size(), QSize(200, 200));
QCOMPARE(canvas->size(), canvas->sizeHint());
+ QCOMPARE(canvas->size(), canvas->initialSize());
QCOMPARE(sceneResizedSpy2.count(), 1);
// size update from root object
diff --git a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
index 49273ea..91b7cf8 100644
--- a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
+++ b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
@@ -59,6 +59,11 @@ public:
private slots:
void orientation();
+ void loading();
+ void fileBrowser();
+ void resizing();
+ void paths();
+ void slowMode();
private:
QDeclarativeEngine engine;
@@ -108,6 +113,188 @@ void tst_QDeclarativeViewer::orientation()
QCOMPARE(viewer->size(), viewer->sizeHint());
}
+void tst_QDeclarativeViewer::loading()
+{
+ QDeclarativeViewer *viewer = new QDeclarativeViewer();
+ QVERIFY(viewer);
+ viewer->setSizeToView(true);
+ viewer->open(SRCDIR "/data/orientation.qml");
+ QVERIFY(viewer->view());
+ QVERIFY(viewer->menuBar());
+ QDeclarativeItem* rootItem = qobject_cast<QDeclarativeItem*>(viewer->view()->rootObject());
+ QVERIFY(rootItem);
+ viewer->show();
+
+ // initial size
+ QCOMPARE(rootItem->width(), 200.0);
+ QCOMPARE(rootItem->height(), 300.0);
+ QCOMPARE(viewer->view()->size(), QSize(200, 300));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(200, 300));
+ QCOMPARE(viewer->size(), QSize(200, 300+viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), viewer->sizeHint());
+
+ viewer->resize(QSize(400, 500));
+ qApp->processEvents();
+
+ // window resized
+ QCOMPARE(rootItem->width(), 400.0);
+ QCOMPARE(rootItem->height(), 500.0-viewer->menuBar()->height());
+ QCOMPARE(viewer->view()->size(), QSize(400, 500-viewer->menuBar()->height()));
+ QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(400, 500-viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), QSize(400, 500));
+ QCOMPARE(viewer->size(), viewer->sizeHint());
+
+ viewer->reload();
+ rootItem = qobject_cast<QDeclarativeItem*>(viewer->view()->rootObject());
+ QVERIFY(rootItem);
+
+ // reload cause the window to return back to initial size
+ QCOMPARE(rootItem->width(), 200.0);
+ QCOMPARE(rootItem->height(), 300.0);
+ QCOMPARE(viewer->view()->size(), QSize(200, 300));
+ QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(200, 300));
+ QCOMPARE(viewer->size(), QSize(200, 300+viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), viewer->sizeHint());
+
+ viewer->resize(QSize(400, 500));
+ qApp->processEvents();
+
+ // window resized again
+ QCOMPARE(rootItem->width(), 400.0);
+ QCOMPARE(rootItem->height(), 500.0-viewer->menuBar()->height());
+ QCOMPARE(viewer->view()->size(), QSize(400, 500-viewer->menuBar()->height()));
+ QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(400, 500-viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), QSize(400, 500));
+ QCOMPARE(viewer->size(), viewer->sizeHint());
+
+ viewer->open(SRCDIR "/data/orientation.qml");
+ rootItem = qobject_cast<QDeclarativeItem*>(viewer->view()->rootObject());
+ QVERIFY(rootItem);
+
+ // open also causes the window to return back to initial size
+ QCOMPARE(rootItem->width(), 200.0);
+ QCOMPARE(rootItem->height(), 300.0);
+ QCOMPARE(viewer->view()->size(), QSize(200, 300));
+ QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(200, 300));
+ QCOMPARE(viewer->size(), QSize(200, 300+viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), viewer->sizeHint());
+}
+
+void tst_QDeclarativeViewer::fileBrowser()
+{
+ QDeclarativeViewer *viewer = new QDeclarativeViewer();
+ QVERIFY(viewer);
+ viewer->setUseNativeFileBrowser(false);
+ viewer->openFile();
+ viewer->show();
+
+ // Browser.qml successfully loaded
+ QDeclarativeItem* browserItem = qobject_cast<QDeclarativeItem*>(viewer->view()->rootObject());
+ QVERIFY(viewer->view());
+ QVERIFY(viewer->menuBar());
+ QVERIFY(browserItem);
+
+ // load something
+ viewer->open(SRCDIR "/data/orientation.qml");
+ QVERIFY(viewer->view());
+ QVERIFY(viewer->menuBar());
+ QDeclarativeItem* rootItem = qobject_cast<QDeclarativeItem*>(viewer->view()->rootObject());
+ QVERIFY(rootItem);
+ QVERIFY(browserItem != rootItem);
+
+ // go back to Browser.qml
+ viewer->openFile();
+ browserItem = qobject_cast<QDeclarativeItem*>(viewer->view()->rootObject());
+ QVERIFY(viewer->view());
+ QVERIFY(viewer->menuBar());
+ QVERIFY(browserItem);
+}
+
+void tst_QDeclarativeViewer::resizing()
+{
+ QDeclarativeViewer *viewer = new QDeclarativeViewer();
+ QVERIFY(viewer);
+ viewer->open(SRCDIR "/data/orientation.qml");
+ QVERIFY(viewer->view());
+ QVERIFY(viewer->menuBar());
+ QDeclarativeItem* rootItem = qobject_cast<QDeclarativeItem*>(viewer->view()->rootObject());
+ QVERIFY(rootItem);
+ viewer->show();
+
+ // initial size
+ QCOMPARE(rootItem->width(), 200.0);
+ QCOMPARE(rootItem->height(), 300.0);
+ QCOMPARE(viewer->view()->size(), QSize(200, 300));
+ QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(200, 300));
+ QCOMPARE(viewer->size(), QSize(200, 300+viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), viewer->sizeHint());
+
+ viewer->setSizeToView(false);
+
+ // size view to root object
+ rootItem->setWidth(100);
+ rootItem->setHeight(200);
+ qApp->processEvents();
+
+ QCOMPARE(rootItem->width(), 100.0);
+ QCOMPARE(rootItem->height(), 200.0);
+ QCOMPARE(viewer->view()->size(), QSize(100, 200));
+ QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(100, 200));
+ QCOMPARE(viewer->size(), QSize(100, 200+viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), viewer->sizeHint());
+
+ // do not size root object to view
+ viewer->resize(QSize(150,250));
+ QCOMPARE(rootItem->width(), 100.0);
+ QCOMPARE(rootItem->height(), 200.0);
+
+ viewer->setSizeToView(true);
+
+ // size root object to view
+ viewer->resize(QSize(250,350));
+ qApp->processEvents();
+
+ QCOMPARE(rootItem->width(), 250.0);
+ QCOMPARE(rootItem->height(), 350.0-viewer->menuBar()->height());
+ QCOMPARE(viewer->view()->size(), QSize(250, 350-viewer->menuBar()->height()));
+ QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(250, 350-viewer->menuBar()->height()));
+ QCOMPARE(viewer->size(), QSize(250, 350));
+ QCOMPARE(viewer->size(), viewer->sizeHint());
+
+ // do not size view to root object
+ rootItem->setWidth(100);
+ rootItem->setHeight(200);
+ QCOMPARE(viewer->size(), QSize(250, 350));
+}
+
+void tst_QDeclarativeViewer::paths()
+{
+ QDeclarativeViewer *viewer = new QDeclarativeViewer();
+ QVERIFY(viewer);
+
+ viewer->addLibraryPath("miscImportPath");
+ viewer->view()->engine()->importPathList().contains("miscImportPath");
+
+ viewer->addPluginPath("miscPluginPath");
+ viewer->view()->engine()->pluginPathList().contains("miscPluginPath");
+}
+
+void tst_QDeclarativeViewer::slowMode()
+{
+ QDeclarativeViewer *viewer = new QDeclarativeViewer();
+ QVERIFY(viewer);
+
+ viewer->setSlowMode(true);
+ viewer->setSlowMode(false);
+}
+
QTEST_MAIN(tst_QDeclarativeViewer)
#include "tst_qdeclarativeviewer.moc"