From cffa023dab05c8add3cd7cd71220975086eacbda Mon Sep 17 00:00:00 2001 From: Warwick Allison Date: Tue, 16 Feb 2010 09:14:02 +1000 Subject: Ensure new WebView windows are notified correctly. Improve test. Change 282a46ab5edafa7b82e9c58658143cb979db2d85 prevents itemChange() notification. That seems wrong, but this change is a work-around. --- src/declarative/graphicsitems/qmlgraphicswebview.cpp | 3 ++- tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml | 1 + tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp | 3 +++ 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/declarative/graphicsitems/qmlgraphicswebview.cpp b/src/declarative/graphicsitems/qmlgraphicswebview.cpp index c71a366..533df2a 100644 --- a/src/declarative/graphicsitems/qmlgraphicswebview.cpp +++ b/src/declarative/graphicsitems/qmlgraphicswebview.cpp @@ -1083,7 +1083,8 @@ QmlGraphicsWebView *QmlGraphicsWebView::createWindow(QWebPage::WebWindowType typ if (!webview) { delete item; } else { - item->setParent(d->newWindowParent); + nobj->setParent(d->newWindowParent); + static_cast(item)->setParentItem(d->newWindowParent); } } } else { diff --git a/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml index b8524af..0bc8263 100644 --- a/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml +++ b/tests/auto/declarative/qmlgraphicswebview/data/newwindows.qml @@ -17,6 +17,7 @@ Grid { WebView { id: webView + width: 150 // force predictable for test newWindowComponent: webViewPage newWindowParent: pages url: "newwindows.html" diff --git a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp index 6996a6c..d48f11d 100644 --- a/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp +++ b/tests/auto/declarative/qmlgraphicswebview/tst_qmlgraphicswebview.cpp @@ -304,6 +304,9 @@ void tst_qmlgraphicswebview::multipleWindows() QmlGraphicsGrid *grid = qobject_cast(component.create()); QVERIFY(grid != 0); QTRY_COMPARE(grid->children().count(), 2+5); // Component, Loader, 5 WebViews + QmlGraphicsItem* popup = qobject_cast(grid->children().at(3)); // first popup after Component, Loaded, original. + QVERIFY(popup != 0); + QTRY_COMPARE(popup->x(), 150.0); } void tst_qmlgraphicswebview::loadError() -- cgit v0.12