diff options
Diffstat (limited to 'tests')
71 files changed, 2161 insertions, 1354 deletions
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/propertySplicing.qml b/tests/auto/declarative/qdeclarativeecmascript/data/propertySplicing.qml new file mode 100644 index 0000000..7deb84a --- /dev/null +++ b/tests/auto/declarative/qdeclarativeecmascript/data/propertySplicing.qml @@ -0,0 +1,10 @@ +import Qt.test 1.0 +import QtQuick 1.0 + +MyDerivedObject { + property bool test: false + + Component.onCompleted: { + test = intProperty() + } +} diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml index 95f34d8..9555b7f 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml +++ b/tests/auto/declarative/qdeclarativeecmascript/data/scope.2.qml @@ -2,7 +2,7 @@ import QtQuick 1.0 Item { property int a: 0 - property int b: 0 + property int b: 14 function b() { return 11; } function c() { return 33; } @@ -21,7 +21,7 @@ Item { id: nested property int a: 1 property int test: a.value - property int test2: b() + property int test2: b property int test3: c.value } @@ -30,8 +30,8 @@ Item { property int test1: a.value property alias test2: nested.test - // methods takes precedence over local, and root properties - property int test3: b() + // properties takes precedence over local, and root methods + property int test3: b property alias test4: nested.test2 // id takes precedence over methods diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp b/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp index 810a0f7..94135f9 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp @@ -109,6 +109,7 @@ void registerTypes() qmlRegisterExtendedType<MyBaseExtendedObject, BaseExtensionObject>("Qt.test", 1,0, "MyBaseExtendedObject"); qmlRegisterExtendedType<MyExtendedObject, ExtensionObject>("Qt.test", 1,0, "MyExtendedObject"); qmlRegisterType<MyTypeObject>("Qt.test", 1,0, "MyTypeObject"); + qmlRegisterType<MyDerivedObject>("Qt.test", 1,0, "MyDerivedObject"); qmlRegisterType<NumberAssignment>("Qt.test", 1,0, "NumberAssignment"); qmlRegisterExtendedType<DefaultPropertyExtendedObject, DefaultPropertyExtensionObject>("Qt.test", 1,0, "DefaultPropertyExtendedObject"); qmlRegisterType<OverrideDefaultPropertyObject>("Qt.test", 1,0, "OverrideDefaultPropertyObject"); diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h index 220318d..40451c3 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h +++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h @@ -562,8 +562,27 @@ signals: }; Q_DECLARE_OPERATORS_FOR_FLAGS(MyTypeObject::MyFlags) +class MyDerivedObject : public MyTypeObject +{ + Q_OBJECT +public: + Q_INVOKABLE bool intProperty() const { + return true; + } +}; + Q_DECLARE_METATYPE(QScriptValue); -class MyInvokableObject : public QObject +class MyInvokableBaseObject : public QObject +{ + Q_OBJECT +public: + inline ~MyInvokableBaseObject() = 0; + + Q_INVOKABLE inline void method_inherited(int a); + Q_INVOKABLE inline void method_overload(); +}; + +class MyInvokableObject : public MyInvokableBaseObject { Q_OBJECT Q_ENUMS(TestEnum) @@ -599,16 +618,34 @@ public: Q_INVOKABLE void method_overload(int a) { invoke(16); m_actuals << a; } Q_INVOKABLE void method_overload(int a, int b) { invoke(17); m_actuals << a << b; } + Q_INVOKABLE void method_overload(QString a) { invoke(18); m_actuals << a; } - Q_INVOKABLE void method_with_enum(TestEnum e) { invoke(18); m_actuals << (int)e; } + Q_INVOKABLE void method_with_enum(TestEnum e) { invoke(19); m_actuals << (int)e; } + + Q_INVOKABLE int method_default(int a, int b = 19) { invoke(20); m_actuals << a << b; return b; } private: + friend class MyInvokableBaseObject; void invoke(int idx) { if (m_invoked != -1) m_invokedError = true; m_invoked = idx;} int m_invoked; bool m_invokedError; QVariantList m_actuals; }; +MyInvokableBaseObject::~MyInvokableBaseObject() {} + +void MyInvokableBaseObject::method_inherited(int a) +{ + static_cast<MyInvokableObject *>(this)->invoke(-3); + static_cast<MyInvokableObject *>(this)->m_actuals << a; +} + +// This is a hidden overload of the MyInvokableObject::method_overload() method +void MyInvokableBaseObject::method_overload() +{ + static_cast<MyInvokableObject *>(this)->invoke(-2); +} + class NumberAssignment : public QObject { Q_OBJECT diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp index 02832f3..72e2e10 100644 --- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp +++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp @@ -139,6 +139,7 @@ private slots: void strictlyEquals(); void compiled(); void numberAssignment(); + void propertySplicing(); void bug1(); void bug2(); @@ -802,8 +803,8 @@ void tst_qdeclarativeecmascript::scope() QCOMPARE(object->property("test1").toInt(), 19); QCOMPARE(object->property("test2").toInt(), 19); - QCOMPARE(object->property("test3").toInt(), 11); - QCOMPARE(object->property("test4").toInt(), 11); + QCOMPARE(object->property("test3").toInt(), 14); + QCOMPARE(object->property("test4").toInt(), 14); QCOMPARE(object->property("test5").toInt(), 24); QCOMPARE(object->property("test6").toInt(), 24); } @@ -1709,7 +1710,6 @@ void tst_qdeclarativeecmascript::callQtInvokables() QCOMPARE(o.actuals().at(0), QVariant(44)); QVERIFY(qvariant_cast<QScriptValue>(o.actuals().at(1)).isArray()); - // Test overloads - QML will always invoke the *last* method o.reset(); QCOMPARE(engine->evaluate("object.method_overload()").isError(), true); QCOMPARE(o.error(), false); @@ -1717,10 +1717,11 @@ void tst_qdeclarativeecmascript::callQtInvokables() QCOMPARE(o.actuals().count(), 0); o.reset(); - QCOMPARE(engine->evaluate("object.method_overload(10)").isError(), true); + QCOMPARE(engine->evaluate("object.method_overload(10)").isUndefined(), true); QCOMPARE(o.error(), false); - QCOMPARE(o.invoked(), -1); - QCOMPARE(o.actuals().count(), 0); + QCOMPARE(o.invoked(), 16); + QCOMPARE(o.actuals().count(), 1); + QCOMPARE(o.actuals().at(0), QVariant(10)); o.reset(); QCOMPARE(engine->evaluate("object.method_overload(10, 11)").isUndefined(), true); @@ -1731,10 +1732,40 @@ void tst_qdeclarativeecmascript::callQtInvokables() QCOMPARE(o.actuals().at(1), QVariant(11)); o.reset(); - QCOMPARE(engine->evaluate("object.method_with_enum(9)").isUndefined(), true); + QCOMPARE(engine->evaluate("object.method_overload(\"Hello\")").isUndefined(), true); QCOMPARE(o.error(), false); QCOMPARE(o.invoked(), 18); QCOMPARE(o.actuals().count(), 1); + QCOMPARE(o.actuals().at(0), QVariant(QString("Hello"))); + + o.reset(); + QCOMPARE(engine->evaluate("object.method_with_enum(9)").isUndefined(), true); + QCOMPARE(o.error(), false); + QCOMPARE(o.invoked(), 19); + QCOMPARE(o.actuals().count(), 1); + QCOMPARE(o.actuals().at(0), QVariant(9)); + + o.reset(); + QVERIFY(engine->evaluate("object.method_default(10)").strictlyEquals(QScriptValue(19))); + QCOMPARE(o.error(), false); + QCOMPARE(o.invoked(), 20); + QCOMPARE(o.actuals().count(), 2); + QCOMPARE(o.actuals().at(0), QVariant(10)); + QCOMPARE(o.actuals().at(1), QVariant(19)); + + o.reset(); + QVERIFY(engine->evaluate("object.method_default(10, 13)").strictlyEquals(QScriptValue(13))); + QCOMPARE(o.error(), false); + QCOMPARE(o.invoked(), 20); + QCOMPARE(o.actuals().count(), 2); + QCOMPARE(o.actuals().at(0), QVariant(10)); + QCOMPARE(o.actuals().at(1), QVariant(13)); + + o.reset(); + QCOMPARE(engine->evaluate("object.method_inherited(9)").isUndefined(), true); + QCOMPARE(o.error(), false); + QCOMPARE(o.invoked(), -3); + QCOMPARE(o.actuals().count(), 1); QCOMPARE(o.actuals().at(0), QVariant(9)); } @@ -2175,6 +2206,18 @@ void tst_qdeclarativeecmascript::numberAssignment() delete object; } +void tst_qdeclarativeecmascript::propertySplicing() +{ + QDeclarativeComponent component(&engine, TEST_FILE("propertySplicing.qml")); + + QObject *object = component.create(); + QVERIFY(object != 0); + + QCOMPARE(object->property("test").toBool(), true); + + delete object; +} + // Test that assigning a null object works // Regressed with: df1788b4dbbb2826ae63f26bdf166342595343f4 void tst_qdeclarativeecmascript::nullObjectBinding() diff --git a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp index 4cafbd9..1645dac 100644 --- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp +++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp @@ -398,6 +398,12 @@ void tst_qdeclarativefocusscope::signalEmission() QCOMPARE(item3->property("color"), blue); QCOMPARE(item4->property("color"), red); + item4->setFocus(false); + QCOMPARE(item1->property("color"), blue); + QCOMPARE(item2->property("color"), red); + QCOMPARE(item3->property("color"), blue); + QCOMPARE(item4->property("color"), blue); + delete view; } diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview-noCurrent.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview-noCurrent.qml new file mode 100644 index 0000000..1189649 --- /dev/null +++ b/tests/auto/declarative/qdeclarativegridview/data/gridview-noCurrent.qml @@ -0,0 +1,52 @@ +import QtQuick 1.0 + +Rectangle { + property int current: grid.currentIndex + width: 240 + height: 320 + color: "#ffffff" + resources: [ + Component { + id: myDelegate + Rectangle { + id: wrapper + objectName: "wrapper" + width: 80 + height: 60 + border.color: "blue" + Text { + text: index + } + Text { + x: 40 + text: wrapper.x + ", " + wrapper.y + } + Text { + y: 20 + id: textName + objectName: "textName" + text: name + } + Text { + y: 40 + id: textNumber + objectName: "textNumber" + text: number + } + color: GridView.isCurrentItem ? "lightsteelblue" : "white" + } + } + ] + GridView { + id: grid + objectName: "grid" + focus: true + width: 240 + height: 320 + currentIndex: -1 + cellWidth: 80 + cellHeight: 60 + delegate: myDelegate + model: testModel + } +} diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp index f7acd87..327bba2 100644 --- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp +++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp @@ -71,6 +71,7 @@ private slots: void moved(); void changeFlow(); void currentIndex(); + void noCurrentIndex(); void defaultValues(); void properties(); void propertyChanges(); @@ -696,9 +697,51 @@ void tst_QDeclarativeGridView::currentIndex() model.insertItem(0, "Foo", "1111"); QTRY_COMPARE(canvas->rootObject()->property("current").toInt(), 29); + // check removing highlight by setting currentIndex to -1; + gridview->setCurrentIndex(-1); + + QCOMPARE(gridview->currentIndex(), -1); + QVERIFY(!gridview->highlightItem()); + QVERIFY(!gridview->currentItem()); + delete canvas; } +void tst_QDeclarativeGridView::noCurrentIndex() +{ + TestModel model; + for (int i = 0; i < 60; i++) + model.addItem("Item" + QString::number(i), QString::number(i)); + + QDeclarativeView *canvas = new QDeclarativeView(0); + canvas->setFixedSize(240,320); + + QDeclarativeContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("testModel", &model); + + QString filename(SRCDIR "/data/gridview-noCurrent.qml"); + canvas->setSource(QUrl::fromLocalFile(filename)); + + qApp->processEvents(); + + QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid"); + QVERIFY(gridview != 0); + + QDeclarativeItem *contentItem = gridview->contentItem(); + QVERIFY(contentItem != 0); + + // current index should be -1 + QCOMPARE(gridview->currentIndex(), -1); + QVERIFY(!gridview->currentItem()); + QVERIFY(!gridview->highlightItem()); + QCOMPARE(gridview->contentY(), 0.0); + + gridview->setCurrentIndex(5); + QCOMPARE(gridview->currentIndex(), 5); + QVERIFY(gridview->currentItem()); + QVERIFY(gridview->highlightItem()); +} + void tst_QDeclarativeGridView::changeFlow() { QDeclarativeView *canvas = createView(); diff --git a/tests/auto/declarative/qdeclarativelanguage/data/AliasPropertyChangeSignalsType.qml b/tests/auto/declarative/qdeclarativelanguage/data/AliasPropertyChangeSignalsType.qml new file mode 100644 index 0000000..0bc2025 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/AliasPropertyChangeSignalsType.qml @@ -0,0 +1,20 @@ +import QtQuick 1.0 + +QtObject { + id: root + + signal sig1 + signal sig2 + signal sig3 + signal sig4 + + property alias aliasProperty: root.realProperty + + property int realProperty: 0 + + property bool test: false + + Component.onCompleted: { + root.realProperty = 10; + } +} diff --git a/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertyChangeSignals.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertyChangeSignals.2.qml new file mode 100644 index 0000000..a15a718 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/aliasPropertyChangeSignals.2.qml @@ -0,0 +1,10 @@ +import QtQuick 1.0 + +AliasPropertyChangeSignalsType { + id: root + onAliasPropertyChanged: root.test = true + + function blah() {} + property int a +} + diff --git a/tests/auto/declarative/qdeclarativelanguage/data/insertedSemicolon.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/insertedSemicolon.1.errors.txt new file mode 100644 index 0000000..651009c --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/insertedSemicolon.1.errors.txt @@ -0,0 +1 @@ +9:5:Expected a qualified name id diff --git a/tests/auto/declarative/qdeclarativelanguage/data/insertedSemicolon.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/insertedSemicolon.1.qml new file mode 100644 index 0000000..4e561b4 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelanguage/data/insertedSemicolon.1.qml @@ -0,0 +1,10 @@ +import Test 1.0 + +MyQmlObject { + function foo() + { + return + } + + 1223 +} diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp index 061ac48..50463b7 100644 --- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp +++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp @@ -86,6 +86,9 @@ private slots: void errors_data(); void errors(); + void insertedSemicolon_data(); + void insertedSemicolon(); + void simpleObject(); void simpleContainer(); void interfaceProperty(); @@ -211,6 +214,31 @@ void tst_qdeclarativelanguage::cleanupTestCase() QVERIFY(QFile::remove(TEST_FILE(QString::fromUtf8("I18nType\303\201\303\242\303\243\303\244\303\245.qml")).toLocalFile())); } +void tst_qdeclarativelanguage::insertedSemicolon_data() +{ + QTest::addColumn<QString>("file"); + QTest::addColumn<QString>("errorFile"); + QTest::addColumn<bool>("create"); + + QTest::newRow("insertedSemicolon.1") << "insertedSemicolon.1.qml" << "insertedSemicolon.1.errors.txt" << false; +} + +void tst_qdeclarativelanguage::insertedSemicolon() +{ + QFETCH(QString, file); + QFETCH(QString, errorFile); + QFETCH(bool, create); + + QDeclarativeComponent component(&engine, TEST_FILE(file)); + + if(create) { + QObject *object = component.create(); + QVERIFY(object == 0); + } + + VERIFY_ERRORS(errorFile.toLatin1().constData()); +} + void tst_qdeclarativelanguage::errors_data() { QTest::addColumn<QString>("file"); @@ -1890,15 +1918,30 @@ void tst_qdeclarativelanguage::initTestCase() void tst_qdeclarativelanguage::aliasPropertyChangeSignals() { - QDeclarativeComponent component(&engine, TEST_FILE("aliasPropertyChangeSignals.qml")); + { + QDeclarativeComponent component(&engine, TEST_FILE("aliasPropertyChangeSignals.qml")); - VERIFY_ERRORS(0); - QObject *o = component.create(); - QVERIFY(o != 0); + VERIFY_ERRORS(0); + QObject *o = component.create(); + QVERIFY(o != 0); - QCOMPARE(o->property("test").toBool(), true); + QCOMPARE(o->property("test").toBool(), true); - delete o; + delete o; + } + + // QTCREATORBUG-2769 + { + QDeclarativeComponent component(&engine, TEST_FILE("aliasPropertyChangeSignals.2.qml")); + + VERIFY_ERRORS(0); + QObject *o = component.create(); + QVERIFY(o != 0); + + QCOMPARE(o->property("test").toBool(), true); + + delete o; + } } QTEST_MAIN(tst_qdeclarativelanguage) diff --git a/tests/auto/declarative/qdeclarativelistview/data/listview-noCurrent.qml b/tests/auto/declarative/qdeclarativelistview/data/listview-noCurrent.qml new file mode 100644 index 0000000..1997010 --- /dev/null +++ b/tests/auto/declarative/qdeclarativelistview/data/listview-noCurrent.qml @@ -0,0 +1,50 @@ +import QtQuick 1.0 + +Rectangle { + property int current: list.currentIndex + width: 240 + height: 320 + color: "#ffffff" + resources: [ + Component { + id: myDelegate + Rectangle { + id: wrapper + objectName: "wrapper" + height: 20 + width: 240 + Text { + text: index + } + Text { + x: 30 + id: textName + objectName: "textName" + text: name + } + Text { + x: 120 + id: textNumber + objectName: "textNumber" + text: number + } + Text { + x: 200 + text: wrapper.y + } + color: ListView.isCurrentItem ? "lightsteelblue" : "white" + } + } + ] + ListView { + id: list + objectName: "list" + focus: true + currentIndex: -1 + width: 240 + height: 320 + delegate: myDelegate + highlightMoveSpeed: 1000 + model: testModel + } +} diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp index 2649c0d..79fef7a 100644 --- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp +++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp @@ -85,6 +85,7 @@ private slots: void itemList(); void currentIndex(); + void noCurrentIndex(); void enforceRange(); void spacing(); void sections(); @@ -672,6 +673,15 @@ void tst_QDeclarativeListView::removed(bool animated) QTRY_COMPARE(item->y(),80+i*20.0); } + model.removeItems(1, 17); +// QTest::qWait(300); + + model.removeItems(2, 1); + model.addItem("New", "1"); + + QTRY_VERIFY(name = findItem<QDeclarativeText>(contentItem, "textName", model.count()-1)); + QCOMPARE(name->text(), QString("New")); + delete canvas; } @@ -1087,9 +1097,52 @@ void tst_QDeclarativeListView::currentIndex() model.insertItem(0, "Foo", "1111"); QTRY_COMPARE(canvas->rootObject()->property("current").toInt(), 29); + // check removing highlight by setting currentIndex to -1; + listview->setCurrentIndex(-1); + + QCOMPARE(listview->currentIndex(), -1); + QVERIFY(!listview->highlightItem()); + QVERIFY(!listview->currentItem()); + delete canvas; } +void tst_QDeclarativeListView::noCurrentIndex() +{ + TestModel model; + for (int i = 0; i < 30; i++) + model.addItem("Item" + QString::number(i), QString::number(i)); + + QDeclarativeView *canvas = new QDeclarativeView(0); + canvas->setFixedSize(240,320); + + QDeclarativeContext *ctxt = canvas->rootContext(); + ctxt->setContextProperty("testModel", &model); + + QString filename(SRCDIR "/data/listview-noCurrent.qml"); + canvas->setSource(QUrl::fromLocalFile(filename)); + + qApp->processEvents(); + + QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list"); + QTRY_VERIFY(listview != 0); + + QDeclarativeItem *contentItem = listview->contentItem(); + QTRY_VERIFY(contentItem != 0); + + // current index should be -1 at startup + // and we should not have a currentItem or highlightItem + QCOMPARE(listview->currentIndex(), -1); + QCOMPARE(listview->contentY(), 0.0); + QVERIFY(!listview->highlightItem()); + QVERIFY(!listview->currentItem()); + + listview->setCurrentIndex(2); + QCOMPARE(listview->currentIndex(), 2); + QVERIFY(listview->highlightItem()); + QVERIFY(listview->currentItem()); +} + void tst_QDeclarativeListView::itemList() { QDeclarativeView *canvas = createView(); diff --git a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp index b20d8ec..50d0731 100644 --- a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp +++ b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp @@ -74,7 +74,7 @@ private slots: void massive(); void cancelcrash(); void shrinkcache(); - + void networkCrash(); private: QDeclarativeEngine engine; QUrl thisfile; @@ -335,6 +335,7 @@ public: : QDeclarativeImageProvider(Pixmap) {} virtual QPixmap requestPixmap(const QString &d, QSize *, const QSize &) { + Q_UNUSED(d) QPixmap pix(800, 600); pix.fill(Qt::red); return pix; @@ -353,6 +354,30 @@ void tst_qdeclarativepixmapcache::shrinkcache() } } +void createNetworkServer() +{ + QEventLoop eventLoop; + TestHTTPServer server(14453); + server.serveDirectory(SRCDIR "/data/http"); + QTimer::singleShot(100, &eventLoop, SLOT(quit())); + eventLoop.exec(); +} + +// QT-3957 +void tst_qdeclarativepixmapcache::networkCrash() +{ + QFuture<void> future = QtConcurrent::run(createNetworkServer); + QDeclarativeEngine engine; + for (int ii = 0; ii < 100 ; ++ii) { + QDeclarativePixmap* pixmap = new QDeclarativePixmap; + pixmap->load(&engine, QUrl(QString("http://127.0.0.1:14453/exists.png"))); + QTest::qSleep(1); + pixmap->clear(); + delete pixmap; + } + future.cancel(); +} + QTEST_MAIN(tst_qdeclarativepixmapcache) #include "tst_qdeclarativepixmapcache.moc" diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/data/modelproperties.qml b/tests/auto/declarative/qdeclarativevisualdatamodel/data/modelproperties.qml new file mode 100644 index 0000000..8cd5763 --- /dev/null +++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/modelproperties.qml @@ -0,0 +1,17 @@ +import QtQuick 1.0 + +ListView { + model: myModel + delegate: Item { + objectName: "delegate" + property variant test1: name + property variant test2: model.name + property variant test3: modelData + property variant test4: model.modelData + property variant test5: modelData.name + property variant test6: model + property variant test7: index + property variant test8: model.index + property variant test9: model.modelData.name + } +} diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/data/modelproperties2.qml b/tests/auto/declarative/qdeclarativevisualdatamodel/data/modelproperties2.qml new file mode 100644 index 0000000..67721c9 --- /dev/null +++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/modelproperties2.qml @@ -0,0 +1,17 @@ +import QtQuick 1.0 + +ListView { + model: myModel + delegate: Item { + objectName: "delegate" + property variant test1: display + property variant test2: model.display + property variant test3: modelData + property variant test4: model.modelData + property variant test5: modelData.display + property variant test6: model + property variant test7: index + property variant test8: model.index + property variant test9: model.modelData.display + } +} diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp index d73a872..0aad099 100644 --- a/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp +++ b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp @@ -120,6 +120,7 @@ private slots: void childChanged(); void objectListModel(); void singleRole(); + void modelProperties(); private: QDeclarativeEngine engine; @@ -364,6 +365,113 @@ void tst_qdeclarativevisualdatamodel::singleRole() } } +void tst_qdeclarativevisualdatamodel::modelProperties() +{ + { + QDeclarativeView view; + + SingleRoleModel model; + + QDeclarativeContext *ctxt = view.rootContext(); + ctxt->setContextProperty("myModel", &model); + + view.setSource(QUrl::fromLocalFile(SRCDIR "/data/modelproperties.qml")); + + QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(view.rootObject()); + QVERIFY(listview != 0); + + QDeclarativeItem *contentItem = listview->contentItem(); + QVERIFY(contentItem != 0); + + QDeclarativeItem *delegate = findItem<QDeclarativeItem>(contentItem, "delegate", 1); + QCOMPARE(delegate->property("test1").toString(),QString("two")); + QCOMPARE(delegate->property("test2").toString(),QString("two")); + QCOMPARE(delegate->property("test3").toString(),QString("two")); + QCOMPARE(delegate->property("test4").toString(),QString("two")); + QVERIFY(!delegate->property("test9").isValid()); + QCOMPARE(delegate->property("test5").toString(),QString("")); + QVERIFY(delegate->property("test6").value<QObject*>() != 0); + QCOMPARE(delegate->property("test7").toInt(),1); + QCOMPARE(delegate->property("test8").toInt(),1); + } + + { + QDeclarativeView view; + + QList<QObject*> dataList; + dataList.append(new DataObject("Item 1", "red")); + dataList.append(new DataObject("Item 2", "green")); + dataList.append(new DataObject("Item 3", "blue")); + dataList.append(new DataObject("Item 4", "yellow")); + + QDeclarativeContext *ctxt = view.rootContext(); + ctxt->setContextProperty("myModel", QVariant::fromValue(dataList)); + + view.setSource(QUrl::fromLocalFile(SRCDIR "/data/modelproperties.qml")); + + QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(view.rootObject()); + QVERIFY(listview != 0); + + QDeclarativeItem *contentItem = listview->contentItem(); + QVERIFY(contentItem != 0); + + QDeclarativeItem *delegate = findItem<QDeclarativeItem>(contentItem, "delegate", 1); + QCOMPARE(delegate->property("test1").toString(),QString("Item 2")); + QEXPECT_FAIL("", "QTBUG-13576", Continue); + QCOMPARE(delegate->property("test2").toString(),QString("Item 2")); + QVERIFY(qobject_cast<DataObject*>(delegate->property("test3").value<QObject*>()) != 0); + QVERIFY(qobject_cast<DataObject*>(delegate->property("test4").value<QObject*>()) != 0); + QCOMPARE(delegate->property("test5").toString(),QString("Item 2")); + QCOMPARE(delegate->property("test9").toString(),QString("Item 2")); + QVERIFY(delegate->property("test6").value<QObject*>() != 0); + QCOMPARE(delegate->property("test7").toInt(),1); + QCOMPARE(delegate->property("test8").toInt(),1); + } + + { + QDeclarativeView view; + + QStandardItemModel model; + initStandardTreeModel(&model); + + view.rootContext()->setContextProperty("myModel", &model); + + QUrl source(QUrl::fromLocalFile(SRCDIR "/data/modelproperties2.qml")); + + //3 items, 3 warnings each + QTest::ignoreMessage(QtWarningMsg, source.toString().toLatin1() + ":11: ReferenceError: Can't find variable: modelData"); + QTest::ignoreMessage(QtWarningMsg, source.toString().toLatin1() + ":11: ReferenceError: Can't find variable: modelData"); + QTest::ignoreMessage(QtWarningMsg, source.toString().toLatin1() + ":11: ReferenceError: Can't find variable: modelData"); + QTest::ignoreMessage(QtWarningMsg, source.toString().toLatin1() + ":9: ReferenceError: Can't find variable: modelData"); + QTest::ignoreMessage(QtWarningMsg, source.toString().toLatin1() + ":9: ReferenceError: Can't find variable: modelData"); + QTest::ignoreMessage(QtWarningMsg, source.toString().toLatin1() + ":9: ReferenceError: Can't find variable: modelData"); + QTest::ignoreMessage(QtWarningMsg, source.toString().toLatin1() + ":15: TypeError: Result of expression 'model.modelData' [undefined] is not an object."); + QTest::ignoreMessage(QtWarningMsg, source.toString().toLatin1() + ":15: TypeError: Result of expression 'model.modelData' [undefined] is not an object."); + QTest::ignoreMessage(QtWarningMsg, source.toString().toLatin1() + ":15: TypeError: Result of expression 'model.modelData' [undefined] is not an object."); + + view.setSource(source); + + QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(view.rootObject()); + QVERIFY(listview != 0); + + QDeclarativeItem *contentItem = listview->contentItem(); + QVERIFY(contentItem != 0); + + QDeclarativeItem *delegate = findItem<QDeclarativeItem>(contentItem, "delegate", 1); + QCOMPARE(delegate->property("test1").toString(),QString("Row 2 Item")); + QCOMPARE(delegate->property("test2").toString(),QString("Row 2 Item")); + QVERIFY(!delegate->property("test3").isValid()); + QVERIFY(!delegate->property("test4").isValid()); + QVERIFY(!delegate->property("test5").isValid()); + QVERIFY(!delegate->property("test9").isValid()); + QVERIFY(delegate->property("test6").value<QObject*>() != 0); + QCOMPARE(delegate->property("test7").toInt(),1); + QCOMPARE(delegate->property("test8").toInt(),1); + } + + //### should also test QStringList and QVariantList +} + template<typename T> T *tst_qdeclarativevisualdatamodel::findItem(QGraphicsObject *parent, const QString &objectName, int index) { diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml b/tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml index 611eaf5..9019812 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml @@ -14,15 +14,12 @@ Rectangle { } states: [ State { + when: myMouseArea.pressed name: "hello" PropertyChanges { target: myRectangle x: 50 + 50 } - PropertyChanges { - target: myMouseArea - onClicked: page.state = '' - } } ] transitions: [ @@ -35,6 +32,5 @@ Rectangle { MouseArea { id: myMouseArea anchors.fill: parent - onClicked: { page.state= 'hello' } } } diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png Binary files differindex 1b08c81..cba9bce 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png Binary files differindex f3074fc..4080c80 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png Binary files differindex 1b08c81..61fec3d 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png Binary files differindex e2560e0..900156f 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.4.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.4.png Binary files differindex 2ddde86..c8367ec 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.4.png +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.4.png diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.5.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.5.png Binary files differindex f3074fc..900156f 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.5.png +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.5.png diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.6.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.6.png Binary files differdeleted file mode 100644 index 1b08c81..0000000 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.6.png +++ /dev/null diff --git a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml index dbe0276..b4c7542 100644 --- a/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml +++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml @@ -132,113 +132,121 @@ VisualTest { msec: 512 hash: "7cb5fc371040e587de9f06ce14a4b29a" } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 87; y: 129 + modifiers: 0 + sendToViewport: true + } Frame { msec: 528 hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 544 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "a78c9394bf3b81f192f42710cd7218b1" } Frame { msec: 560 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "7f08e8170feb1d02373c9ab42b6e882d" } Frame { msec: 576 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "967fbad8ac664400a3efbe66617d62aa" } Frame { msec: 592 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "abc2ec0bc7a93e75b5823310e6284db1" } Frame { msec: 608 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" } Frame { msec: 624 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "9413dffb7ee853ba0125ac22ab22abbd" } Frame { msec: 640 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "fcae0317f81a3ddd713f4db1349a9da0" } Frame { msec: 656 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "37739777a5979f3ebf85e47e63341660" } Frame { msec: 672 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "72731478d80f024076ea639b55152360" } Frame { msec: 688 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "69058485ced6bc992a1a7c5ee34add4c" } Frame { msec: 704 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "391ad7ff2362e059f6170dfe306f94a7" } Frame { msec: 720 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "f9f74a2e38b52c9266f33e428b6acd9d" } Frame { msec: 736 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "25152412c4ea2aec6caf89486c073484" } Frame { msec: 752 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "ba403842ba3128b1cdf6a9cb28c90751" } Frame { msec: 768 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9" } Frame { msec: 784 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 800 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 816 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 832 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 848 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 864 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 880 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 896 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 912 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 928 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 944 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 960 @@ -246,255 +254,255 @@ VisualTest { } Frame { msec: 976 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 992 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1008 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1024 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1040 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1056 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1072 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1088 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1104 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1120 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1136 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1152 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Mouse { - type: 2 + type: 3 button: 1 - buttons: 1 - x: 136; y: 174 + buttons: 0 + x: 87; y: 129 modifiers: 0 sendToViewport: true } Frame { msec: 1168 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "383ba6b9efcc58fca512982a207631f6" } Frame { msec: 1184 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "adc501a3a2b8aaf72f58ba985b57424e" } Frame { msec: 1200 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "bfa51b7c19753ef7b16d78afffc7b9dd" } Frame { msec: 1216 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "ffa8471f57765b49fcdb9155393251e5" } Frame { msec: 1232 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "ddb65481469c38f2331546ee03a44206" } Frame { msec: 1248 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "6f48d1a9977b77cafd38a5903017605b" } Frame { msec: 1264 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "4279c814163af3bd069ce21b3cd1c729" } Frame { msec: 1280 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 136; y: 174 - modifiers: 0 - sendToViewport: true + hash: "17c46242c17983478f34cb49cb91ca6e" } Frame { msec: 1296 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" } Frame { msec: 1312 - hash: "a78c9394bf3b81f192f42710cd7218b1" + hash: "6a74d6dc91a8b370200d3765c55c1136" } Frame { msec: 1328 - hash: "7f08e8170feb1d02373c9ab42b6e882d" + hash: "ecda10356cca33901c2acd0a702fee46" } Frame { msec: 1344 - hash: "967fbad8ac664400a3efbe66617d62aa" + hash: "4f58226bdbda7339d972eca065f75766" } Frame { msec: 1360 - hash: "abc2ec0bc7a93e75b5823310e6284db1" + hash: "a39c80859a7643c9879da9c77b644703" } Frame { msec: 1376 - hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" + hash: "16fe17b15900ff0464ab20ea921e5b1f" } Frame { msec: 1392 - hash: "9413dffb7ee853ba0125ac22ab22abbd" + hash: "bc5c83b2014b7260900587ae3637598f" } Frame { msec: 1408 - hash: "fcae0317f81a3ddd713f4db1349a9da0" + hash: "96c077e3a572edff04fa9b2f7020ffd0" } Frame { msec: 1424 - hash: "37739777a5979f3ebf85e47e63341660" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1440 - hash: "72731478d80f024076ea639b55152360" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1456 - hash: "69058485ced6bc992a1a7c5ee34add4c" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1472 - hash: "391ad7ff2362e059f6170dfe306f94a7" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1488 - hash: "f9f74a2e38b52c9266f33e428b6acd9d" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1504 - hash: "25152412c4ea2aec6caf89486c073484" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1520 - hash: "ba403842ba3128b1cdf6a9cb28c90751" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1536 - hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1552 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1568 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1584 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1600 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1616 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1632 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1648 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1664 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1680 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1696 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1712 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1728 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1744 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1760 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1776 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1792 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1808 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1824 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1840 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 81; y: 130 + modifiers: 0 + sendToViewport: true } Frame { msec: 1856 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 1872 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "a78c9394bf3b81f192f42710cd7218b1" } Frame { msec: 1888 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7f08e8170feb1d02373c9ab42b6e882d" } Frame { msec: 1904 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "967fbad8ac664400a3efbe66617d62aa" } Frame { msec: 1920 @@ -502,159 +510,183 @@ VisualTest { } Frame { msec: 1936 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" } Frame { msec: 1952 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "9413dffb7ee853ba0125ac22ab22abbd" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 81; y: 130 + modifiers: 0 + sendToViewport: true } Frame { msec: 1968 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "9413dffb7ee853ba0125ac22ab22abbd" } Frame { msec: 1984 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "ecda10356cca33901c2acd0a702fee46" } Frame { msec: 2000 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "5fae0bdc65c609cb766ce585b8c649db" } Frame { msec: 2016 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "575d30ac088448b01f49082519bbb3a1" } Frame { msec: 2032 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "ffeb3db6d3f177acf6f92049359a9025" } Frame { msec: 2048 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "abc2ec0bc7a93e75b5823310e6284db1" } Frame { msec: 2064 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "fcb17070ef24575c61046928a8bbe440" } Frame { msec: 2080 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "4ab21e266919fb8d340f87091d8e1f62" } Frame { msec: 2096 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "f141c7c4402c6bacff31d4e77785f5f1" } Frame { msec: 2112 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "29e5f1388c6aaf23abe9f514d7e902d1" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 81; y: 130 + modifiers: 0 + sendToViewport: true } Frame { msec: 2128 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "29e5f1388c6aaf23abe9f514d7e902d1" } Frame { msec: 2144 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "4ab21e266919fb8d340f87091d8e1f62" } Frame { msec: 2160 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "2d21b4af3780ef2bbccfcec957ce49c8" } Frame { msec: 2176 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "527b1f9e7a222483134675a73f9cf5b7" } Frame { msec: 2192 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "5edaad77f334e6a01982ee89a733b1f8" } Frame { msec: 2208 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "6a74d6dc91a8b370200d3765c55c1136" } Frame { msec: 2224 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" } Frame { msec: 2240 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "3223ed179c828fadb3eca9c6373176c1" } Mouse { - type: 2 + type: 3 button: 1 - buttons: 1 - x: 122; y: 175 + buttons: 0 + x: 81; y: 130 modifiers: 0 sendToViewport: true } Frame { msec: 2256 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "3223ed179c828fadb3eca9c6373176c1" } Frame { msec: 2272 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "516c44b44c23f213f5db01f9eb164b0b" } Frame { msec: 2288 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "4f41101378a104e72228eeb4ba395ca8" } Frame { msec: 2304 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "f9deee3a204c939562b896a6179743d2" } Frame { msec: 2320 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "772396bb23c713f34ea5c23bfbcb115e" } Frame { msec: 2336 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "ecda10356cca33901c2acd0a702fee46" } Frame { msec: 2352 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "527b1f9e7a222483134675a73f9cf5b7" + } + Frame { + msec: 2368 + hash: "4f58226bdbda7339d972eca065f75766" } Mouse { - type: 3 + type: 2 button: 1 - buttons: 0 - x: 122; y: 175 + buttons: 1 + x: 81; y: 130 modifiers: 0 sendToViewport: true } Frame { - msec: 2368 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { msec: 2384 - hash: "adc501a3a2b8aaf72f58ba985b57424e" + hash: "4f58226bdbda7339d972eca065f75766" } Frame { msec: 2400 - hash: "bfa51b7c19753ef7b16d78afffc7b9dd" + hash: "5fae0bdc65c609cb766ce585b8c649db" } Frame { msec: 2416 - hash: "ffa8471f57765b49fcdb9155393251e5" + hash: "9413dffb7ee853ba0125ac22ab22abbd" } Frame { msec: 2432 - hash: "ddb65481469c38f2331546ee03a44206" + hash: "6a74d6dc91a8b370200d3765c55c1136" } Frame { msec: 2448 - hash: "6f48d1a9977b77cafd38a5903017605b" + hash: "4f41101378a104e72228eeb4ba395ca8" } Frame { msec: 2464 - hash: "4279c814163af3bd069ce21b3cd1c729" + hash: "37739777a5979f3ebf85e47e63341660" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 81; y: 130 + modifiers: 0 + sendToViewport: true } Frame { msec: 2480 - hash: "17c46242c17983478f34cb49cb91ca6e" + hash: "37739777a5979f3ebf85e47e63341660" } Frame { msec: 2496 @@ -662,95 +694,119 @@ VisualTest { } Frame { msec: 2512 - hash: "6a74d6dc91a8b370200d3765c55c1136" + hash: "fcae0317f81a3ddd713f4db1349a9da0" } Frame { msec: 2528 - hash: "ecda10356cca33901c2acd0a702fee46" + hash: "082e0e7650d187a54ef0948ccca98e5a" } Frame { msec: 2544 - hash: "4f58226bdbda7339d972eca065f75766" + hash: "9413dffb7ee853ba0125ac22ab22abbd" } Frame { msec: 2560 - hash: "a39c80859a7643c9879da9c77b644703" + hash: "d9af30557f99b086bb1a185a946b580d" } Frame { msec: 2576 - hash: "16fe17b15900ff0464ab20ea921e5b1f" + hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" } Frame { msec: 2592 - hash: "bc5c83b2014b7260900587ae3637598f" + hash: "ffeb3db6d3f177acf6f92049359a9025" + } + Mouse { + type: 4 + button: 1 + buttons: 1 + x: 81; y: 130 + modifiers: 0 + sendToViewport: true } Frame { msec: 2608 - hash: "96c077e3a572edff04fa9b2f7020ffd0" + hash: "ffeb3db6d3f177acf6f92049359a9025" } Frame { msec: 2624 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "5fae0bdc65c609cb766ce585b8c649db" } Frame { msec: 2640 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "9413dffb7ee853ba0125ac22ab22abbd" } Frame { msec: 2656 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "6a74d6dc91a8b370200d3765c55c1136" } Frame { msec: 2672 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "4f41101378a104e72228eeb4ba395ca8" } Frame { msec: 2688 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "37739777a5979f3ebf85e47e63341660" } Frame { msec: 2704 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "f4fe2cc93d65e086ba8ded1438269eb2" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 81; y: 130 + modifiers: 0 + sendToViewport: true } Frame { msec: 2720 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "f4fe2cc93d65e086ba8ded1438269eb2" } Frame { msec: 2736 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "56c72b5da44bd5efdc47c3b9c3eac409" } Frame { msec: 2752 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "b08811b237ce7a460c80d285f04d53d8" } Frame { msec: 2768 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "fcae0317f81a3ddd713f4db1349a9da0" } Frame { msec: 2784 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "082e0e7650d187a54ef0948ccca98e5a" } Frame { msec: 2800 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "9413dffb7ee853ba0125ac22ab22abbd" } Frame { msec: 2816 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "d9af30557f99b086bb1a185a946b580d" } Frame { msec: 2832 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "575d30ac088448b01f49082519bbb3a1" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 81; y: 130 + modifiers: 0 + sendToViewport: true } Frame { msec: 2848 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "575d30ac088448b01f49082519bbb3a1" } Frame { msec: 2864 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "d9af30557f99b086bb1a185a946b580d" } Frame { msec: 2880 @@ -758,898 +814,242 @@ VisualTest { } Frame { msec: 2896 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "f9deee3a204c939562b896a6179743d2" } Frame { msec: 2912 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" } Frame { msec: 2928 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "56c72b5da44bd5efdc47c3b9c3eac409" } Frame { msec: 2944 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "72731478d80f024076ea639b55152360" } Frame { msec: 2960 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "4279c814163af3bd069ce21b3cd1c729" } Frame { msec: 2976 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "72a0c017a2fa90a4aeadfa6e552ff573" } Frame { msec: 2992 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "391ad7ff2362e059f6170dfe306f94a7" } Frame { msec: 3008 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "0b0c6419e1e5b016d9c22bd98fd452b1" } Frame { msec: 3024 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "365c824c330398d267ea52ae9468b9ee" } Frame { msec: 3040 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "65ad7e0189c096792331bd1bb0daf0db" + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 81; y: 130 + modifiers: 0 + sendToViewport: true } Frame { msec: 3056 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "65ad7e0189c096792331bd1bb0daf0db" } Frame { msec: 3072 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "a21aa1984f068650cce2a124a82c12be" } Frame { msec: 3088 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "8006ceaa02d22b5fdfeab400d39a0caf" } Frame { msec: 3104 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "6f48d1a9977b77cafd38a5903017605b" } Frame { msec: 3120 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "07f751ea4cf877ba72fbb36f9da268d7" } Frame { msec: 3136 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "72731478d80f024076ea639b55152360" } Frame { msec: 3152 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "37739777a5979f3ebf85e47e63341660" } Frame { msec: 3168 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true + hash: "ed47684a0b21836cd27549e0989e96dd" } Frame { msec: 3184 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "772396bb23c713f34ea5c23bfbcb115e" } Frame { msec: 3200 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "ecda10356cca33901c2acd0a702fee46" } Frame { msec: 3216 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "575d30ac088448b01f49082519bbb3a1" } Frame { msec: 3232 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "2e3f134664df8204a291af2c9f81239a" } Frame { msec: 3248 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "967fbad8ac664400a3efbe66617d62aa" } Frame { msec: 3264 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "2b93a05b0e78e52d8d8bc2c71d898d3e" } Frame { msec: 3280 - hash: "7cb5fc371040e587de9f06ce14a4b29a" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true + hash: "c7a9850ed078eb0cfdb5a7ef11840d64" } Frame { msec: 3296 - hash: "7cb5fc371040e587de9f06ce14a4b29a" + hash: "96c077e3a572edff04fa9b2f7020ffd0" } Frame { msec: 3312 - hash: "a78c9394bf3b81f192f42710cd7218b1" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3328 - hash: "7f08e8170feb1d02373c9ab42b6e882d" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3344 - hash: "967fbad8ac664400a3efbe66617d62aa" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3360 - hash: "abc2ec0bc7a93e75b5823310e6284db1" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3376 - hash: "afbd5b24e2f86646f5ec2aa22f3a4b5b" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3392 - hash: "9413dffb7ee853ba0125ac22ab22abbd" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3408 - hash: "fcae0317f81a3ddd713f4db1349a9da0" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3424 - hash: "37739777a5979f3ebf85e47e63341660" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3440 - hash: "72731478d80f024076ea639b55152360" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3456 - hash: "69058485ced6bc992a1a7c5ee34add4c" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3472 - hash: "391ad7ff2362e059f6170dfe306f94a7" - } - Mouse { - type: 4 - button: 1 - buttons: 1 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3488 - hash: "f9f74a2e38b52c9266f33e428b6acd9d" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3504 - hash: "25152412c4ea2aec6caf89486c073484" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3520 - hash: "ba403842ba3128b1cdf6a9cb28c90751" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3536 - hash: "e90cd68490cf3ce6ef9fe4e8f92feaa9" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3552 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3568 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3584 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3600 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3616 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3632 - hash: "adc501a3a2b8aaf72f58ba985b57424e" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3648 - hash: "bfa51b7c19753ef7b16d78afffc7b9dd" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3664 - hash: "ffa8471f57765b49fcdb9155393251e5" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3680 - hash: "ddb65481469c38f2331546ee03a44206" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3696 - hash: "6f48d1a9977b77cafd38a5903017605b" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3712 - hash: "4279c814163af3bd069ce21b3cd1c729" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3728 - hash: "17c46242c17983478f34cb49cb91ca6e" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3744 - hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3760 - hash: "6a74d6dc91a8b370200d3765c55c1136" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3776 - hash: "ecda10356cca33901c2acd0a702fee46" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3792 - hash: "4f58226bdbda7339d972eca065f75766" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true + hash: "7cb5fc371040e587de9f06ce14a4b29a" } Frame { msec: 3808 - hash: "4f58226bdbda7339d972eca065f75766" - } - Frame { - msec: 3824 - hash: "5fae0bdc65c609cb766ce585b8c649db" - } - Frame { - msec: 3840 - image: "bindinganimation.3.png" - } - Frame { - msec: 3856 - hash: "6a74d6dc91a8b370200d3765c55c1136" - } - Frame { - msec: 3872 - hash: "4f41101378a104e72228eeb4ba395ca8" - } - Frame { - msec: 3888 - hash: "37739777a5979f3ebf85e47e63341660" - } - Frame { - msec: 3904 - hash: "f4fe2cc93d65e086ba8ded1438269eb2" - } - Mouse { - type: 4 - button: 1 - buttons: 1 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 3920 - hash: "4279c814163af3bd069ce21b3cd1c729" - } - Frame { - msec: 3936 - hash: "72a0c017a2fa90a4aeadfa6e552ff573" - } - Frame { - msec: 3952 - hash: "391ad7ff2362e059f6170dfe306f94a7" - } - Frame { - msec: 3968 - hash: "0b0c6419e1e5b016d9c22bd98fd452b1" - } - Frame { - msec: 3984 - hash: "365c824c330398d267ea52ae9468b9ee" - } - Frame { - msec: 4000 - hash: "65ad7e0189c096792331bd1bb0daf0db" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4016 - hash: "65ad7e0189c096792331bd1bb0daf0db" - } - Frame { - msec: 4032 - hash: "a21aa1984f068650cce2a124a82c12be" - } - Frame { - msec: 4048 - hash: "8006ceaa02d22b5fdfeab400d39a0caf" - } - Frame { - msec: 4064 - hash: "a2cebc35e5c2c709a2cd83e1df6eaeab" - } - Frame { - msec: 4080 - hash: "07f751ea4cf877ba72fbb36f9da268d7" - } - Frame { - msec: 4096 - hash: "72731478d80f024076ea639b55152360" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4112 - hash: "37739777a5979f3ebf85e47e63341660" - } - Frame { - msec: 4128 - hash: "ed47684a0b21836cd27549e0989e96dd" - } - Frame { - msec: 4144 - hash: "772396bb23c713f34ea5c23bfbcb115e" - } - Frame { - msec: 4160 - hash: "d9af30557f99b086bb1a185a946b580d" - } - Frame { - msec: 4176 - hash: "575d30ac088448b01f49082519bbb3a1" - } - Frame { - msec: 4192 - hash: "2e3f134664df8204a291af2c9f81239a" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4208 - hash: "2e3f134664df8204a291af2c9f81239a" - } - Frame { - msec: 4224 - hash: "4f58226bdbda7339d972eca065f75766" - } - Frame { - msec: 4240 - hash: "5fae0bdc65c609cb766ce585b8c649db" - } - Frame { - msec: 4256 - hash: "82363265ed2b611a54f8d48b2af22f11" - } - Frame { - msec: 4272 - hash: "f9deee3a204c939562b896a6179743d2" - } - Frame { - msec: 4288 - hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" - } - Mouse { - type: 4 - button: 1 - buttons: 1 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4304 - hash: "3223ed179c828fadb3eca9c6373176c1" - } - Frame { - msec: 4320 - hash: "56125a260a79bc38bb0ef44fd65ba49b" - } - Frame { - msec: 4336 - hash: "07f751ea4cf877ba72fbb36f9da268d7" - } - Frame { - msec: 4352 - hash: "6f48d1a9977b77cafd38a5903017605b" - } - Frame { - msec: 4368 - hash: "8006ceaa02d22b5fdfeab400d39a0caf" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4384 - hash: "8006ceaa02d22b5fdfeab400d39a0caf" - } - Frame { - msec: 4400 - hash: "6f48d1a9977b77cafd38a5903017605b" - } - Frame { - msec: 4416 - hash: "69058485ced6bc992a1a7c5ee34add4c" - } - Frame { - msec: 4432 - hash: "dafcce427161a70c3513841ac22aea00" - } - Frame { - msec: 4448 - hash: "3223ed179c828fadb3eca9c6373176c1" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4464 - hash: "b08811b237ce7a460c80d285f04d53d8" - } - Frame { - msec: 4480 - hash: "fcae0317f81a3ddd713f4db1349a9da0" - } - Frame { - msec: 4496 - hash: "772396bb23c713f34ea5c23bfbcb115e" - } - Frame { - msec: 4512 - hash: "ecda10356cca33901c2acd0a702fee46" - } - Frame { - msec: 4528 - hash: "575d30ac088448b01f49082519bbb3a1" - } - Frame { - msec: 4544 - hash: "abc2ec0bc7a93e75b5823310e6284db1" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4560 - hash: "abc2ec0bc7a93e75b5823310e6284db1" - } - Frame { - msec: 4576 - hash: "575d30ac088448b01f49082519bbb3a1" - } - Frame { - msec: 4592 - hash: "ecda10356cca33901c2acd0a702fee46" - } - Frame { - msec: 4608 - hash: "772396bb23c713f34ea5c23bfbcb115e" - } - Frame { - msec: 4624 - hash: "fcae0317f81a3ddd713f4db1349a9da0" - } - Frame { - msec: 4640 - hash: "b08811b237ce7a460c80d285f04d53d8" - } - Mouse { - type: 4 - button: 1 - buttons: 1 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4656 - hash: "17c46242c17983478f34cb49cb91ca6e" - } - Frame { - msec: 4672 - hash: "dafcce427161a70c3513841ac22aea00" - } - Frame { - msec: 4688 - hash: "69058485ced6bc992a1a7c5ee34add4c" - } - Frame { - msec: 4704 - hash: "6f48d1a9977b77cafd38a5903017605b" - } - Frame { - msec: 4720 - hash: "ddb65481469c38f2331546ee03a44206" - } - Frame { - msec: 4736 - hash: "a21aa1984f068650cce2a124a82c12be" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4752 - hash: "a21aa1984f068650cce2a124a82c12be" - } - Frame { - msec: 4768 - hash: "8006ceaa02d22b5fdfeab400d39a0caf" - } - Frame { - msec: 4784 - hash: "6f48d1a9977b77cafd38a5903017605b" - } - Frame { - msec: 4800 - image: "bindinganimation.4.png" - } - Frame { - msec: 4816 - hash: "56125a260a79bc38bb0ef44fd65ba49b" - } - Mouse { - type: 2 - button: 1 - buttons: 1 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4832 - hash: "56c72b5da44bd5efdc47c3b9c3eac409" - } - Frame { - msec: 4848 - hash: "42f65c58b1f5f4b5ba70855f4aaa7d2f" - } - Frame { - msec: 4864 - hash: "6a74d6dc91a8b370200d3765c55c1136" - } - Frame { - msec: 4880 - hash: "9413dffb7ee853ba0125ac22ab22abbd" - } - Frame { - msec: 4896 - hash: "527b1f9e7a222483134675a73f9cf5b7" - } - Frame { - msec: 4912 - hash: "ffeb3db6d3f177acf6f92049359a9025" - } - Frame { - msec: 4928 - hash: "a39c80859a7643c9879da9c77b644703" - } - Mouse { - type: 3 - button: 1 - buttons: 0 - x: 122; y: 175 - modifiers: 0 - sendToViewport: true - } - Frame { - msec: 4944 - hash: "a39c80859a7643c9879da9c77b644703" - } - Frame { - msec: 4960 - hash: "ffeb3db6d3f177acf6f92049359a9025" - } - Frame { - msec: 4976 - hash: "527b1f9e7a222483134675a73f9cf5b7" - } - Frame { - msec: 4992 - hash: "9413dffb7ee853ba0125ac22ab22abbd" - } - Frame { - msec: 5008 - hash: "6a74d6dc91a8b370200d3765c55c1136" - } - Frame { - msec: 5024 - hash: "4f41101378a104e72228eeb4ba395ca8" - } - Frame { - msec: 5040 - hash: "56c72b5da44bd5efdc47c3b9c3eac409" - } - Frame { - msec: 5056 - hash: "72731478d80f024076ea639b55152360" - } - Frame { - msec: 5072 - hash: "07f751ea4cf877ba72fbb36f9da268d7" - } - Frame { - msec: 5088 - hash: "a2cebc35e5c2c709a2cd83e1df6eaeab" - } - Frame { - msec: 5104 - hash: "8006ceaa02d22b5fdfeab400d39a0caf" - } - Frame { - msec: 5120 - hash: "f9f74a2e38b52c9266f33e428b6acd9d" - } - Frame { - msec: 5136 - hash: "a93f930ec8528f954cd4a770c9a8171b" - } - Frame { - msec: 5152 - hash: "bfa51b7c19753ef7b16d78afffc7b9dd" - } - Frame { - msec: 5168 - hash: "df62027b6b53c69a071cb3dc09c3a7ed" - } - Frame { - msec: 5184 - hash: "0d59ac57f8790fe741a31d12c3438abf" - } - Frame { - msec: 5200 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5216 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5232 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5248 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5264 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5280 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5296 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5312 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5328 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5344 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5360 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5376 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5392 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5408 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5424 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5440 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5456 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5472 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5488 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5504 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5520 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5536 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5552 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5568 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5584 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5600 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5616 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5632 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5648 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5664 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5680 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5696 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5712 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Key { - type: 6 - key: 16777249 - modifiers: 0 - text: "" - autorep: false - count: 1 - } - Frame { - msec: 5728 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5744 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5760 - image: "bindinganimation.5.png" - } - Frame { - msec: 5776 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5792 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5808 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5824 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5840 - hash: "383ba6b9efcc58fca512982a207631f6" - } - Frame { - msec: 5856 - hash: "383ba6b9efcc58fca512982a207631f6" + hash: "7cb5fc371040e587de9f06ce14a4b29a" } } diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.1.png b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.1.png Binary files differindex 249e0dd..e5494aa 100644 --- a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.1.png +++ b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.1.png diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.2.png b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.2.png Binary files differindex 044f823..fbb03de 100644 --- a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.2.png +++ b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.2.png diff --git a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml index dc8e2e2..13ba289 100644 --- a/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml +++ b/tests/auto/declarative/qmlvisual/animation/qtbug10586/data/qtbug10586.qml @@ -406,119 +406,119 @@ VisualTest { } Frame { msec: 1456 - hash: "8b7dd0f0a3881f10d76b47cbec4754c3" + hash: "cba9afe3f351e6cd6dc72d7f263401b0" } Frame { msec: 1472 - hash: "b6fc4990acb245e015c35261a3c6fd75" + hash: "09d6255a3fc628c52a386a878bdecb4e" } Frame { msec: 1488 - hash: "849fa4174134804dadc000323141b341" + hash: "6d5e292fecfc2ec45a5695fa9e5173f3" } Frame { msec: 1504 - hash: "35f2d6405ed7d992bb62eb6e24478492" + hash: "848051f677a2172d8cbe75a451026459" } Frame { msec: 1520 - hash: "673ebb4499522c3f27b775dff1dbbe44" + hash: "95b1a914c1d33866cd728ad1ad612884" } Frame { msec: 1536 - hash: "96945f5489ffd0dc8ab995c96eb5da43" + hash: "780a03cd9aec2f0f7f61a51629261385" } Frame { msec: 1552 - hash: "2e4543754429ac3db831a2432098c063" + hash: "c7ea3a54cfb618bb02d93f6e17e2a74d" } Frame { msec: 1568 - hash: "02253fe8a9fd5009a07265c2c6ffc8e4" + hash: "85ea65c275c6217c44038c1bc87f2356" } Frame { msec: 1584 - hash: "200a89949df1e9ef58d005a139857d2c" + hash: "af77f08c99d41295ef6c99089c322f61" } Frame { msec: 1600 - hash: "ceb28be34c7ea8eff5fa00fdea087439" + hash: "1427c98bee08b57e94cea220b7c017e4" } Frame { msec: 1616 - hash: "a9ece475c51f126094c5eff4e20f4a19" + hash: "fa1062676e7f2e429e3f5f3babbccc5f" } Frame { msec: 1632 - hash: "aa0776f84aef87d6971affdfa2d8dd82" + hash: "016c51ef6ad6729db5328b199c18c830" } Frame { msec: 1648 - hash: "4c74661e1c73fefc9c5154b257239352" + hash: "94a3647a5c98770d60a2b5f17281e87e" } Frame { msec: 1664 - hash: "c10d23df3a75966aad5016bd8ba8e9d8" + hash: "fc075081b0b7d8bc2556250962e52327" } Frame { msec: 1680 - hash: "41692977d654a55d3b1d037aea9f2c03" + hash: "0ef1d28912378939e0f82387164ace07" } Frame { msec: 1696 - hash: "2f1835a1de94f962eb5dc781c85b4c32" + hash: "d55312d705b8ed5d188caf4f41820e0f" } Frame { msec: 1712 - hash: "7cb78e2e5f6d35d456c95f2bd8652eb5" + hash: "41c9c187b208ec1cef4e9ffe976c38ce" } Frame { msec: 1728 - hash: "4388aee9b1c8b4fde43634ad08f03557" + hash: "6166be5f86adfc6b4c9438358529e5ce" } Frame { msec: 1744 - hash: "1cdc71100fd11cb6e60c9ab7e65e95bf" + hash: "aaa81e964b5c5ef2ebf2c200e7a47c26" } Frame { msec: 1760 - hash: "feddbf269adfc8bb1b1a3656b5b5736d" + hash: "65dbdd2495e12b7dd7bbc31e1b2fa5b1" } Frame { msec: 1776 - hash: "76b39ce0ee9b9b4af8aa0141577b8460" + hash: "b2d10e7cbccb0fdf3286fef81999d37e" } Frame { msec: 1792 - hash: "bac963d3df2841ab7a3770a371f3a94d" + hash: "e239d20ee23a6ff680ded67182066430" } Frame { msec: 1808 - hash: "403007bb6c0782fece1cedbd40994550" + hash: "d4f2df7f9c7a7a9e98975e44393a2e37" } Frame { msec: 1824 - hash: "72076c743fdd33fab2ac789c7c22973a" + hash: "9c1ce93161e16704feb7d37cd01acbe9" } Frame { msec: 1840 - hash: "662be553c32b0145b3f4fee9bb0d659d" + hash: "94e148b49b53cab2491a974eb85ab489" } Frame { msec: 1856 - hash: "e6b9049949a0ee4ff8a0fcaf5464f479" + hash: "9a1dfb6b09218c83c89f9a2d32f92ef6" } Frame { msec: 1872 - hash: "eb1939458851780b7bb51ee50f0a3bd7" + hash: "7cb78e2e5f6d35d456c95f2bd8652eb5" } Frame { msec: 1888 - hash: "41c8d2686ddb882981a7d3a5c8c69005" + hash: "e3a3be52fda460050db6d2d9947d3cf8" } Frame { msec: 1904 - hash: "7d3b1fc34082a160cbea4409af85fc9c" + hash: "6651ca6a31f281676a5ba312c306ee91" } Frame { msec: 1920 @@ -526,207 +526,207 @@ VisualTest { } Frame { msec: 1936 - hash: "17be4a9c3d4d19e93bf1fc3a13a374a2" + hash: "feddbf269adfc8bb1b1a3656b5b5736d" } Frame { msec: 1952 - hash: "d449593024a59487eb92195ee6b77a64" + hash: "4710e2abb2d907686a5ef58c3d22b391" } Frame { msec: 1968 - hash: "c6ccbc2acec8e32f043f2cfb7b7848a9" + hash: "2a479b302b425df282502e71b4ad7fbf" } Frame { msec: 1984 - hash: "cef9f8e8cdd5e2d33b86a9a6fb64ecb4" + hash: "a912a2993c3a2a280e83caee932ff707" } Frame { msec: 2000 - hash: "2a8956de5ce417431bdb156144985370" + hash: "022504443e57ee5593e5054961265a15" } Frame { msec: 2016 - hash: "73721425a9c658bd9d40eac3fcbe8e25" + hash: "a47ccf22b66f7d62c017aa1da19904d2" } Frame { msec: 2032 - hash: "9a9cf8eee0bf2f09944a4fb3b1c139d5" + hash: "133c29b49f3a98fb5eca71fff217252d" } Frame { msec: 2048 - hash: "3673cdee04343ce679ec2cebadc9f512" + hash: "058c2a759a415d548fec309bfb255a70" } Frame { msec: 2064 - hash: "eedd62019867e3189f9cf6e2b4149c6d" + hash: "662be553c32b0145b3f4fee9bb0d659d" } Frame { msec: 2080 - hash: "7a66bc37f5cf917e8b121003af0530b0" + hash: "7c7460ff21e7c27af2326b399b5b9791" } Frame { msec: 2096 - hash: "401667ed0f38858553de27164e9cadb5" + hash: "e6b9049949a0ee4ff8a0fcaf5464f479" } Frame { msec: 2112 - hash: "b391699437c4092de3ad1684a35bfd30" + hash: "39db5e52253948ca5059d9c102bedea0" } Frame { msec: 2128 - hash: "109c91215f075292910095a25eaded49" + hash: "eb1939458851780b7bb51ee50f0a3bd7" } Frame { msec: 2144 - hash: "c44d3f6ce1fa1ab324dd9ef394f37f87" + hash: "feaaa4fab78c73321dd9ab820ec2b746" } Frame { msec: 2160 - hash: "299d43cb3dcf7b95af8803df3eb17a46" + hash: "221c8afbedcfb8ca7e87e279e5406103" } Frame { msec: 2176 - hash: "7ddd97266383d954a008fbe7b95a3169" + hash: "41c8d2686ddb882981a7d3a5c8c69005" } Frame { msec: 2192 - hash: "941f2837ff5145a26df9a0d9f6d20bd9" + hash: "abb2d6a76af5114b191a4373f95cdb6f" } Frame { msec: 2208 - hash: "d99d76cba43f3ae953605d7732d6ce21" + hash: "7d3b1fc34082a160cbea4409af85fc9c" } Frame { msec: 2224 - hash: "929f49416f7ca80d7f5f2be3b13b849e" + hash: "55e07e33b231e3c7925c7b3cfada4839" } Frame { msec: 2240 - hash: "929f49416f7ca80d7f5f2be3b13b849e" + hash: "55e07e33b231e3c7925c7b3cfada4839" } Frame { msec: 2256 - hash: "fff9bbf16d1c3f7510ddfc44af616a5e" + hash: "3a616453adf2b16e23654f515d797e99" } Frame { msec: 2272 - hash: "70b6cdb95ad6723d18c623e1dc79a8db" + hash: "b3461a3c55b9603905ad208c7396e1a9" } Frame { msec: 2288 - hash: "70b6cdb95ad6723d18c623e1dc79a8db" + hash: "b3461a3c55b9603905ad208c7396e1a9" } Frame { msec: 2304 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2320 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2336 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2352 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2368 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2384 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2400 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2416 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2432 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2448 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2464 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2480 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2496 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2512 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2528 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2544 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2560 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2576 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2592 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2608 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2624 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2640 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2656 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2672 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2688 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2704 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2720 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2736 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Mouse { type: 2 @@ -738,23 +738,23 @@ VisualTest { } Frame { msec: 2752 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2768 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2784 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2800 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Frame { msec: 2816 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Mouse { type: 5 @@ -766,7 +766,7 @@ VisualTest { } Frame { msec: 2832 - hash: "cdb3c12b1b0b6ab269ba7fcf75320f69" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Mouse { type: 5 @@ -778,7 +778,7 @@ VisualTest { } Frame { msec: 2848 - hash: "2732b282b8ac482033694cd04c6f5b7e" + hash: "fbd9a45fc6b5a96b4e521dc5c68dbf7e" } Mouse { type: 5 @@ -790,7 +790,7 @@ VisualTest { } Frame { msec: 2864 - hash: "7d253797885f8b304d8fb3ba727a3c5d" + hash: "6f1a516cde59f142f5ac8b4e824a2bab" } Mouse { type: 5 @@ -814,39 +814,39 @@ VisualTest { } Frame { msec: 2896 - hash: "d85a416e4ddf59dfd0723b0be0e2b418" + hash: "3f6d74079d8ec38eb1f12ddde18f864a" } Frame { msec: 2912 - hash: "f1934f6ca6a3c5ac5df3451596b8d8ba" + hash: "b58ac3c0ab5e556be249bfdc3fb85c56" } Frame { msec: 2928 - hash: "28fc74a76f9eaeeccbd3063dc55a1000" + hash: "291dd50b6dd4ee71265631ce338f16d2" } Frame { msec: 2944 - hash: "eb8ad8dae734b624664fcf584cda6ba0" + hash: "6af30d160a3c1126718c62fcd5e85a89" } Frame { msec: 2960 - hash: "a6d0f4aba3e5ae1e003520f45b75d6dd" + hash: "3f09b75f49f53e83d53fdc8cb2a1a2a7" } Frame { msec: 2976 - hash: "4e5a4d04dfa5f06292774e6bf4f86508" + hash: "7c9e03c8bc2691253eb5be656bbcfaa5" } Frame { msec: 2992 - hash: "fc9e16fd8c7379d774a09fe50d4259dc" + hash: "95c1ca6b2550f5575c2297acad5bfd0f" } Frame { msec: 3008 - hash: "721ea322d9a5e9d48117336476f568cb" + hash: "be05537c0b9246b0c4d48ae344275bb9" } Frame { msec: 3024 - hash: "5930448341bce1c50de7acaba1f64ca1" + hash: "59de97652e25f49b1bf016a9b124d324" } Frame { msec: 3040 @@ -854,71 +854,71 @@ VisualTest { } Frame { msec: 3056 - hash: "fcf11cf70b8ac210d4bb2bc716942053" + hash: "09fe50cbbcc7432d6fa6bbe875eae5e3" } Frame { msec: 3072 - hash: "767d707db4dbb02b6f97153b3822a1d1" + hash: "a95c1f6ca5a638c4d9229321a84e51a4" } Frame { msec: 3088 - hash: "f8eb75b97f5233aa82b887aab34a38e3" + hash: "c439b31b64510ce025ad326364e8f690" } Frame { msec: 3104 - hash: "1d3beb06b39fa1d5cabd31ec4297f59f" + hash: "c28c637ff5f0ae6d4532fba13cfb8ea4" } Frame { msec: 3120 - hash: "cadc775e0764afa7b50c5bab782035dd" + hash: "2e095e9433e1f504163aebc8450be923" } Frame { msec: 3136 - hash: "385f5a6e80da0d3ddf24539a64f26eb9" + hash: "5fb49164c1bad4bb96a13cfbb336312b" } Frame { msec: 3152 - hash: "34204871a684ea251c9d07fb125436da" + hash: "34b7976b3dbf0c5462ddf77153d9d2c9" } Frame { msec: 3168 - hash: "bc3e496535e66ff0d1e800092b7c78ca" + hash: "d4007272d676a896c99adb66afa0c10b" } Frame { msec: 3184 - hash: "d6c4ff5bf223361be42c78d6d81248c3" + hash: "07638f1f5eb5786a12cbc74414fe29b5" } Frame { msec: 3200 - hash: "cb09d41612df66a8d099153026adcbf3" + hash: "1fe90791c573865f425ef0e43faf7a1c" } Frame { msec: 3216 - hash: "f82180b8c0389ddc3623107a049c3366" + hash: "b149986c7b395106a808b1fcd1d8bcb2" } Frame { msec: 3232 - hash: "1b0f65e4599c65b8a603abd8da718d48" + hash: "ecb2b6d44eafb8a0b5493520b64e5e5b" } Frame { msec: 3248 - hash: "897391a8206178356858139b3d1a4ce8" + hash: "fc66b2e38d477c16584eee4f541df511" } Frame { msec: 3264 - hash: "b66d268dc7a42a7b1172b1ff566f4eb8" + hash: "023152c61ad6cd0b8726e6c8fa6043a4" } Frame { msec: 3280 - hash: "0fe5d38a253dbd1ebcc67cca7ea86dc7" + hash: "b788f8a7e1e42f768fd1fe1198ca0344" } Frame { msec: 3296 - hash: "b788f8a7e1e42f768fd1fe1198ca0344" + hash: "4f7f8b7f5bb78bb9327b6fa8142ce3a2" } Frame { msec: 3312 - hash: "4f7f8b7f5bb78bb9327b6fa8142ce3a2" + hash: "30f041278c08174671568a0dfb7cbdf7" } Frame { msec: 3328 @@ -950,7 +950,7 @@ VisualTest { } Frame { msec: 3440 - hash: "6d79d9d0ba8da0b5654b39768b25591f" + hash: "cba9afe3f351e6cd6dc72d7f263401b0" } Frame { msec: 3456 @@ -1111,7 +1111,7 @@ VisualTest { Key { type: 6 key: 16777249 - modifiers: 67108864 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png Binary files differindex 02fa5c9..ee07a68 100644 --- a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png +++ b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png Binary files differindex 993610f..c9536dc 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.0.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png Binary files differindex 993610f..c9536dc 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.1.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png Binary files differindex 12c6cf5..1d9a39c 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.10.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png Binary files differindex ccb9fdd..8fd0a97 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.11.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png Binary files differindex ace0752..2cc486c 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.12.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png Binary files differindex 993610f..c9536dc 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.13.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png Binary files differindex e58c68b..903312b 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.2.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png Binary files differindex e58c68b..903312b 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.3.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png Binary files differindex cb6d2f8..64d760a 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.4.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png Binary files differindex db6bea2..a45da4f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.5.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png Binary files differindex c18bb34..6cb4d6f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.6.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png Binary files differindex c18bb34..6cb4d6f 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.7.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png Binary files differindex 3b56301..97cb175 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.8.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png Binary files differindex 993610f..c9536dc 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.9.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml index 307fef6..50ef6e8 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-flickable.qml @@ -1202,7 +1202,7 @@ VisualTest { } Frame { msec: 4576 - hash: "86b32befe0dada5bdce82a7dd14777ce" + hash: "d75a43305e2884759ca41d7b1cbadf52" } Mouse { type: 5 @@ -1222,7 +1222,7 @@ VisualTest { } Frame { msec: 4592 - hash: "7a5f69a1eecb5de0fc2295cd287eb449" + hash: "9f9f85d5f879b0e52ebc751d6668cfb8" } Mouse { type: 5 @@ -1242,7 +1242,7 @@ VisualTest { } Frame { msec: 4608 - hash: "144eeb7c2a32cedb6ebba063501c9176" + hash: "a569789b082296415321ba11c859abe5" } Mouse { type: 5 @@ -1262,7 +1262,7 @@ VisualTest { } Frame { msec: 4624 - hash: "11120d6de575ffa639b6abb3af4afef7" + hash: "7a5f69a1eecb5de0fc2295cd287eb449" } Mouse { type: 5 @@ -1282,7 +1282,7 @@ VisualTest { } Frame { msec: 4640 - hash: "ab4c936a81299adf080f3b14f7e6be49" + hash: "70e522f64236dfa4e1613ffc29b4b23e" } Mouse { type: 5 @@ -1302,7 +1302,7 @@ VisualTest { } Frame { msec: 4656 - hash: "6602009ffe3c0f3072640ebc8749b76f" + hash: "11120d6de575ffa639b6abb3af4afef7" } Mouse { type: 5 @@ -1322,7 +1322,7 @@ VisualTest { } Frame { msec: 4672 - hash: "8517007d5102af238935e93a3b38087f" + hash: "ab4c936a81299adf080f3b14f7e6be49" } Mouse { type: 5 @@ -1342,7 +1342,7 @@ VisualTest { } Frame { msec: 4688 - hash: "4e129ebba85d1f3717d09f71eb5a1a7d" + hash: "c29ab366ba3f11de6452949c11310b4a" } Mouse { type: 5 @@ -1362,7 +1362,7 @@ VisualTest { } Frame { msec: 4704 - hash: "82f54d7e254edcf499ea12a63118e8a7" + hash: "34ef0279e3731447f1df97784b47648a" } Mouse { type: 5 @@ -1382,7 +1382,7 @@ VisualTest { } Frame { msec: 4720 - hash: "572cb62d69ccb973ea18d3b0eaff571b" + hash: "84df34cd981e0465aaaae47881de6c3b" } Mouse { type: 5 @@ -1402,7 +1402,7 @@ VisualTest { } Frame { msec: 4736 - hash: "79650397b868019909b931a32a115823" + hash: "837deeb2a92648d830acf29e829ebb53" } Mouse { type: 5 @@ -1422,7 +1422,7 @@ VisualTest { } Frame { msec: 4752 - hash: "43e50f4d4d37373e26af0a5d3cb64c4c" + hash: "572cb62d69ccb973ea18d3b0eaff571b" } Mouse { type: 5 @@ -1442,7 +1442,7 @@ VisualTest { } Frame { msec: 4768 - hash: "a0f8eb8a796f67c368b0a479e8d14681" + hash: "3d75735eefbf95f37e2a8605b9167ba1" } Mouse { type: 5 @@ -1462,7 +1462,7 @@ VisualTest { } Frame { msec: 4784 - hash: "01bf03313a0229e810a24e2adbbe9775" + hash: "c37507a29e3a6d80446ad68f2d92f266" } Mouse { type: 5 @@ -1486,7 +1486,7 @@ VisualTest { } Frame { msec: 4816 - hash: "aafb12a520eb443ee1348282f2c54e4a" + hash: "7fb0ed99b7d751d1f335afd7c0de2f2c" } Mouse { type: 5 @@ -1506,7 +1506,7 @@ VisualTest { } Frame { msec: 4832 - hash: "806d22bc3533c729cd10dc889c36902d" + hash: "363eca81f97f20f14e8d480f83d2bc7d" } Mouse { type: 5 @@ -1518,7 +1518,7 @@ VisualTest { } Frame { msec: 4848 - hash: "05b3013c9e42ed9ced7009d2e2999357" + hash: "72e75cfa62993593303b25cbff4af0e6" } Mouse { type: 5 @@ -1538,7 +1538,7 @@ VisualTest { } Frame { msec: 4864 - hash: "cb49adcd2c8afe27fd5926bd622added" + hash: "cc6619c7cd6e4e274df4729aad6cca46" } Mouse { type: 5 @@ -1558,7 +1558,7 @@ VisualTest { } Frame { msec: 4880 - hash: "d0b4215b43403c97d83250add6d2b6db" + hash: "0b16e524cd5253d07aa9b5855967fa71" } Mouse { type: 5 @@ -1578,7 +1578,7 @@ VisualTest { } Frame { msec: 4896 - hash: "ee0523fe6a33b59871ad3b311ca0cbeb" + hash: "091d1ad7aba4b662cba98214c98a4707" } Mouse { type: 5 @@ -1598,7 +1598,7 @@ VisualTest { } Frame { msec: 4912 - hash: "29ca97cc573d3a1fde65320b61678c60" + hash: "f334bfcc3af89bf1405762a215c54ea6" } Mouse { type: 5 @@ -1610,7 +1610,7 @@ VisualTest { } Frame { msec: 4928 - hash: "021bda841eaefa76ce5e1c97150af6f6" + hash: "7b41d651ad46341859d0188db341ae10" } Mouse { type: 5 @@ -1630,7 +1630,7 @@ VisualTest { } Frame { msec: 4944 - hash: "80edf52cc9e64a29f677bc2203220ba9" + hash: "95b57cd3dac3bce56674f2c4143f42d4" } Mouse { type: 5 @@ -1642,7 +1642,7 @@ VisualTest { } Frame { msec: 4960 - hash: "c09f4002ed9d41f62bb1aaff95723cce" + hash: "1709dda08ce7494ff6d082cc5d93f0d2" } Mouse { type: 5 @@ -1662,7 +1662,7 @@ VisualTest { } Frame { msec: 4976 - hash: "7bb17b13db811b02c86a24a0051336d9" + hash: "390105f21526e1f8fda15666631578a1" } Mouse { type: 5 @@ -1682,7 +1682,7 @@ VisualTest { } Frame { msec: 4992 - hash: "da5c33ee9e9e1d9aaa7d5efa83b8bf69" + hash: "ee40862a59f14667c89fa62f380c10fb" } Mouse { type: 5 @@ -1694,7 +1694,7 @@ VisualTest { } Frame { msec: 5008 - hash: "3ca9742356b6ff833fd287a95520174a" + hash: "6d6cec95a6a2445d88b015ff76af032e" } Mouse { type: 5 @@ -1714,7 +1714,7 @@ VisualTest { } Frame { msec: 5024 - hash: "d1372239a681d1fccc25257b4a02fb39" + hash: "e87bf82b6a7a928a27bffd9cb2dd7604" } Mouse { type: 5 @@ -1734,7 +1734,7 @@ VisualTest { } Frame { msec: 5040 - hash: "1f37473ab2fb0643e11e4a41a2ee4561" + hash: "9a9d1e0b1d7b9291480b3ec641f354ce" } Mouse { type: 5 @@ -1754,7 +1754,7 @@ VisualTest { } Frame { msec: 5056 - hash: "1533c6ff17e79a47a5d3510aa85bcf8a" + hash: "d1372239a681d1fccc25257b4a02fb39" } Mouse { type: 5 @@ -1774,7 +1774,7 @@ VisualTest { } Frame { msec: 5072 - hash: "4cad3c6caf8d3009f63923df897c4723" + hash: "1f37473ab2fb0643e11e4a41a2ee4561" } Mouse { type: 5 @@ -1794,7 +1794,7 @@ VisualTest { } Frame { msec: 5088 - hash: "b81183233961b34c2a3f21a249b0fbfb" + hash: "1533c6ff17e79a47a5d3510aa85bcf8a" } Mouse { type: 5 @@ -1814,7 +1814,7 @@ VisualTest { } Frame { msec: 5104 - hash: "9f876eb93a16c24843dd6a5acd303ab3" + hash: "c5980322acf00a04efbd5e1b92aa0e98" } Mouse { type: 5 @@ -1834,7 +1834,7 @@ VisualTest { } Frame { msec: 5120 - hash: "237dd62011f4253970b946b335e3fb71" + hash: "b81183233961b34c2a3f21a249b0fbfb" } Mouse { type: 5 @@ -1846,7 +1846,7 @@ VisualTest { } Frame { msec: 5136 - hash: "6206ad3e633b6b1b068304caa4efe48a" + hash: "2dc2def0c748ac94d33d90d4a3610136" } Mouse { type: 5 @@ -1858,7 +1858,7 @@ VisualTest { } Frame { msec: 5152 - hash: "1eb5f0e1aa014a38e6ca66ddfc2a076b" + hash: "9f876eb93a16c24843dd6a5acd303ab3" } Mouse { type: 5 @@ -1870,7 +1870,7 @@ VisualTest { } Frame { msec: 5168 - hash: "d9e953d132330f8a58a190d61aec6ec3" + hash: "9f876eb93a16c24843dd6a5acd303ab3" } Mouse { type: 5 @@ -1890,7 +1890,7 @@ VisualTest { } Frame { msec: 5184 - hash: "c1570ad4cb688ea51818e0a09e349daa" + hash: "237dd62011f4253970b946b335e3fb71" } Mouse { type: 5 @@ -1902,11 +1902,11 @@ VisualTest { } Frame { msec: 5200 - hash: "11853dcbad9d1d9a8b7d8a4e6fcca140" + hash: "6206ad3e633b6b1b068304caa4efe48a" } Frame { msec: 5216 - hash: "11853dcbad9d1d9a8b7d8a4e6fcca140" + hash: "6206ad3e633b6b1b068304caa4efe48a" } Mouse { type: 5 @@ -1918,7 +1918,7 @@ VisualTest { } Frame { msec: 5232 - hash: "11853dcbad9d1d9a8b7d8a4e6fcca140" + hash: "1eb5f0e1aa014a38e6ca66ddfc2a076b" } Mouse { type: 5 @@ -1930,7 +1930,7 @@ VisualTest { } Frame { msec: 5248 - hash: "c6a81be579382f25ac583734897c2570" + hash: "1eb5f0e1aa014a38e6ca66ddfc2a076b" } Mouse { type: 5 @@ -1942,11 +1942,11 @@ VisualTest { } Frame { msec: 5264 - hash: "c6a81be579382f25ac583734897c2570" + hash: "d9e953d132330f8a58a190d61aec6ec3" } Frame { msec: 5280 - hash: "c6a81be579382f25ac583734897c2570" + hash: "d9e953d132330f8a58a190d61aec6ec3" } Mouse { type: 5 @@ -1958,7 +1958,7 @@ VisualTest { } Frame { msec: 5296 - hash: "8cbeb925f039bde9846d37a5ec6cd3f9" + hash: "d9e953d132330f8a58a190d61aec6ec3" } Mouse { type: 5 @@ -1970,19 +1970,19 @@ VisualTest { } Frame { msec: 5312 - hash: "8cbeb925f039bde9846d37a5ec6cd3f9" + hash: "c1570ad4cb688ea51818e0a09e349daa" } Frame { msec: 5328 - hash: "8cbeb925f039bde9846d37a5ec6cd3f9" + hash: "c1570ad4cb688ea51818e0a09e349daa" } Frame { msec: 5344 - hash: "8cbeb925f039bde9846d37a5ec6cd3f9" + hash: "c1570ad4cb688ea51818e0a09e349daa" } Frame { msec: 5360 - hash: "8cbeb925f039bde9846d37a5ec6cd3f9" + hash: "c1570ad4cb688ea51818e0a09e349daa" } Mouse { type: 3 @@ -1994,51 +1994,51 @@ VisualTest { } Frame { msec: 5376 - hash: "8cbeb925f039bde9846d37a5ec6cd3f9" + hash: "c1570ad4cb688ea51818e0a09e349daa" } Frame { msec: 5392 - hash: "c6a81be579382f25ac583734897c2570" + hash: "d9e953d132330f8a58a190d61aec6ec3" } Frame { msec: 5408 - hash: "11853dcbad9d1d9a8b7d8a4e6fcca140" + hash: "1eb5f0e1aa014a38e6ca66ddfc2a076b" } Frame { msec: 5424 - hash: "1eb5f0e1aa014a38e6ca66ddfc2a076b" + hash: "9f876eb93a16c24843dd6a5acd303ab3" } Frame { msec: 5440 - hash: "9f876eb93a16c24843dd6a5acd303ab3" + hash: "4cad3c6caf8d3009f63923df897c4723" } Frame { msec: 5456 - hash: "1533c6ff17e79a47a5d3510aa85bcf8a" + hash: "79538d2f507fd6eea7ea1f990e90388a" } Frame { msec: 5472 - hash: "9a9d1e0b1d7b9291480b3ec641f354ce" + hash: "e87bf82b6a7a928a27bffd9cb2dd7604" } Frame { msec: 5488 - hash: "ee40862a59f14667c89fa62f380c10fb" + hash: "390105f21526e1f8fda15666631578a1" } Frame { msec: 5504 - hash: "95b57cd3dac3bce56674f2c4143f42d4" + hash: "7b41d651ad46341859d0188db341ae10" } Frame { msec: 5520 - hash: "52d45e8dde81fef5ee93bbd5a40d4851" + hash: "091d1ad7aba4b662cba98214c98a4707" } Frame { msec: 5536 - hash: "05b3013c9e42ed9ced7009d2e2999357" + hash: "1978cda418856b542d7c5a155b74f09c" } Frame { msec: 5552 - hash: "7d03030f5a672d87aeabefdf4f3a39a4" + hash: "01bf03313a0229e810a24e2adbbe9775" } Frame { msec: 5568 @@ -2046,15 +2046,15 @@ VisualTest { } Frame { msec: 5584 - hash: "82f54d7e254edcf499ea12a63118e8a7" + hash: "84df34cd981e0465aaaae47881de6c3b" } Frame { msec: 5600 - hash: "8517007d5102af238935e93a3b38087f" + hash: "c29ab366ba3f11de6452949c11310b4a" } Frame { msec: 5616 - hash: "dc272fc8fc98d822a154da1d495d4f7e" + hash: "ab4c936a81299adf080f3b14f7e6be49" } Frame { msec: 5632 @@ -2066,7 +2066,7 @@ VisualTest { } Frame { msec: 5664 - hash: "7a5f69a1eecb5de0fc2295cd287eb449" + hash: "86b32befe0dada5bdce82a7dd14777ce" } Frame { msec: 5680 @@ -2750,7 +2750,7 @@ VisualTest { } Frame { msec: 8240 - hash: "9f9f85d5f879b0e52ebc751d6668cfb8" + hash: "cc1fd2f4c3be318052254a9b6be7a57b" } Mouse { type: 5 @@ -2762,7 +2762,7 @@ VisualTest { } Frame { msec: 8256 - hash: "70e522f64236dfa4e1613ffc29b4b23e" + hash: "a569789b082296415321ba11c859abe5" } Mouse { type: 5 @@ -2782,7 +2782,7 @@ VisualTest { } Frame { msec: 8272 - hash: "11120d6de575ffa639b6abb3af4afef7" + hash: "7a5f69a1eecb5de0fc2295cd287eb449" } Mouse { type: 5 @@ -2802,7 +2802,7 @@ VisualTest { } Frame { msec: 8288 - hash: "dc272fc8fc98d822a154da1d495d4f7e" + hash: "11120d6de575ffa639b6abb3af4afef7" } Mouse { type: 5 @@ -2822,7 +2822,7 @@ VisualTest { } Frame { msec: 8304 - hash: "4e129ebba85d1f3717d09f71eb5a1a7d" + hash: "c29ab366ba3f11de6452949c11310b4a" } Mouse { type: 5 @@ -2834,7 +2834,7 @@ VisualTest { } Frame { msec: 8320 - hash: "837deeb2a92648d830acf29e829ebb53" + hash: "4e129ebba85d1f3717d09f71eb5a1a7d" } Mouse { type: 5 @@ -2846,7 +2846,7 @@ VisualTest { } Frame { msec: 8336 - hash: "7d2606d432858288dac019e0002ff85a" + hash: "837deeb2a92648d830acf29e829ebb53" } Mouse { type: 5 @@ -2866,7 +2866,7 @@ VisualTest { } Frame { msec: 8352 - hash: "c37507a29e3a6d80446ad68f2d92f266" + hash: "79650397b868019909b931a32a115823" } Mouse { type: 5 @@ -2878,7 +2878,7 @@ VisualTest { } Frame { msec: 8368 - hash: "01bf03313a0229e810a24e2adbbe9775" + hash: "c37507a29e3a6d80446ad68f2d92f266" } Mouse { type: 5 @@ -2890,7 +2890,7 @@ VisualTest { } Frame { msec: 8384 - hash: "8ffbbed46737837e55383833b96d2624" + hash: "01bf03313a0229e810a24e2adbbe9775" } Mouse { type: 5 @@ -2910,7 +2910,7 @@ VisualTest { } Frame { msec: 8400 - hash: "6d49fc41fb6d74643c7613df7e417833" + hash: "8ffbbed46737837e55383833b96d2624" } Mouse { type: 5 @@ -2922,7 +2922,7 @@ VisualTest { } Frame { msec: 8416 - hash: "1978cda418856b542d7c5a155b74f09c" + hash: "6d49fc41fb6d74643c7613df7e417833" } Mouse { type: 5 @@ -2942,7 +2942,7 @@ VisualTest { } Frame { msec: 8432 - hash: "cc6619c7cd6e4e274df4729aad6cca46" + hash: "806d22bc3533c729cd10dc889c36902d" } Mouse { type: 5 @@ -2962,7 +2962,7 @@ VisualTest { } Frame { msec: 8448 - hash: "0b16e524cd5253d07aa9b5855967fa71" + hash: "cc6619c7cd6e4e274df4729aad6cca46" } Mouse { type: 5 @@ -2982,7 +2982,7 @@ VisualTest { } Frame { msec: 8464 - hash: "0121c18897c37481fddbac57db636a60" + hash: "929bf28dcb97e8c93dae5dbe23beecc8" } Mouse { type: 5 @@ -3002,7 +3002,7 @@ VisualTest { } Frame { msec: 8480 - hash: "091d1ad7aba4b662cba98214c98a4707" + hash: "0121c18897c37481fddbac57db636a60" } Mouse { type: 5 @@ -3014,7 +3014,7 @@ VisualTest { } Frame { msec: 8496 - hash: "f334bfcc3af89bf1405762a215c54ea6" + hash: "091d1ad7aba4b662cba98214c98a4707" } Mouse { type: 5 @@ -3034,7 +3034,7 @@ VisualTest { } Frame { msec: 8512 - hash: "66f71641c7a607152f140428ab9621d6" + hash: "ce673b66f695f5b002515a5416bbf913" } Mouse { type: 5 @@ -3054,7 +3054,7 @@ VisualTest { } Frame { msec: 8528 - hash: "7b41d651ad46341859d0188db341ae10" + hash: "66f71641c7a607152f140428ab9621d6" } Mouse { type: 5 @@ -3066,7 +3066,7 @@ VisualTest { } Frame { msec: 8544 - hash: "95b57cd3dac3bce56674f2c4143f42d4" + hash: "29ca97cc573d3a1fde65320b61678c60" } Mouse { type: 5 @@ -3086,7 +3086,7 @@ VisualTest { } Frame { msec: 8560 - hash: "80edf52cc9e64a29f677bc2203220ba9" + hash: "021bda841eaefa76ce5e1c97150af6f6" } Mouse { type: 5 @@ -3106,7 +3106,7 @@ VisualTest { } Frame { msec: 8576 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Mouse { type: 5 @@ -3126,7 +3126,7 @@ VisualTest { } Frame { msec: 8592 - hash: "c09f4002ed9d41f62bb1aaff95723cce" + hash: "80edf52cc9e64a29f677bc2203220ba9" } Mouse { type: 5 @@ -3138,7 +3138,7 @@ VisualTest { } Frame { msec: 8608 - hash: "7bb17b13db811b02c86a24a0051336d9" + hash: "390105f21526e1f8fda15666631578a1" } Mouse { type: 5 @@ -3158,7 +3158,7 @@ VisualTest { } Frame { msec: 8624 - hash: "6d6cec95a6a2445d88b015ff76af032e" + hash: "ee40862a59f14667c89fa62f380c10fb" } Mouse { type: 5 @@ -3190,7 +3190,7 @@ VisualTest { } Frame { msec: 8656 - hash: "9a9d1e0b1d7b9291480b3ec641f354ce" + hash: "da5c33ee9e9e1d9aaa7d5efa83b8bf69" } Mouse { type: 5 @@ -3210,7 +3210,7 @@ VisualTest { } Frame { msec: 8672 - hash: "d1372239a681d1fccc25257b4a02fb39" + hash: "3ca9742356b6ff833fd287a95520174a" } Mouse { type: 5 @@ -3230,7 +3230,7 @@ VisualTest { } Frame { msec: 8688 - hash: "2010f6f0c34e59f505bbe1aab262b646" + hash: "d1372239a681d1fccc25257b4a02fb39" } Mouse { type: 5 @@ -3250,7 +3250,7 @@ VisualTest { } Frame { msec: 8704 - hash: "2dc2def0c748ac94d33d90d4a3610136" + hash: "c5980322acf00a04efbd5e1b92aa0e98" } Mouse { type: 5 @@ -3270,7 +3270,7 @@ VisualTest { } Frame { msec: 8720 - hash: "1eb5f0e1aa014a38e6ca66ddfc2a076b" + hash: "9f876eb93a16c24843dd6a5acd303ab3" } Mouse { type: 5 @@ -3290,7 +3290,7 @@ VisualTest { } Frame { msec: 8736 - hash: "c1570ad4cb688ea51818e0a09e349daa" + hash: "6206ad3e633b6b1b068304caa4efe48a" } Mouse { type: 5 @@ -3302,7 +3302,7 @@ VisualTest { } Frame { msec: 8752 - hash: "c6a81be579382f25ac583734897c2570" + hash: "d9e953d132330f8a58a190d61aec6ec3" } Mouse { type: 5 @@ -3314,7 +3314,7 @@ VisualTest { } Frame { msec: 8768 - hash: "8cbeb925f039bde9846d37a5ec6cd3f9" + hash: "c1570ad4cb688ea51818e0a09e349daa" } Mouse { type: 5 @@ -3326,7 +3326,7 @@ VisualTest { } Frame { msec: 8784 - hash: "b34a796f25ad62f952101b296f9c2bac" + hash: "11853dcbad9d1d9a8b7d8a4e6fcca140" } Mouse { type: 5 @@ -3338,51 +3338,51 @@ VisualTest { } Frame { msec: 8800 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8816 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8832 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8848 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8864 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8880 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8896 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8912 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8928 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8944 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8960 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 8976 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Mouse { type: 3 @@ -3394,55 +3394,55 @@ VisualTest { } Frame { msec: 8992 - hash: "a0814b5ba881e5da8a1ecae8d714b4ce" + hash: "c6a81be579382f25ac583734897c2570" } Frame { msec: 9008 - hash: "b34a796f25ad62f952101b296f9c2bac" + hash: "11853dcbad9d1d9a8b7d8a4e6fcca140" } Frame { msec: 9024 - hash: "8cbeb925f039bde9846d37a5ec6cd3f9" + hash: "c1570ad4cb688ea51818e0a09e349daa" } Frame { msec: 9040 - hash: "c1570ad4cb688ea51818e0a09e349daa" + hash: "6206ad3e633b6b1b068304caa4efe48a" } Frame { msec: 9056 - hash: "237dd62011f4253970b946b335e3fb71" + hash: "2dc2def0c748ac94d33d90d4a3610136" } Frame { msec: 9072 - hash: "c5980322acf00a04efbd5e1b92aa0e98" + hash: "2010f6f0c34e59f505bbe1aab262b646" } Frame { msec: 9088 - hash: "d1372239a681d1fccc25257b4a02fb39" + hash: "3ca9742356b6ff833fd287a95520174a" } Frame { msec: 9104 - hash: "524db6ce45674c777d72f9206415be2f" + hash: "c09f4002ed9d41f62bb1aaff95723cce" } Frame { msec: 9120 - hash: "021bda841eaefa76ce5e1c97150af6f6" + hash: "95b57cd3dac3bce56674f2c4143f42d4" } Frame { msec: 9136 - hash: "ce673b66f695f5b002515a5416bbf913" + hash: "52d45e8dde81fef5ee93bbd5a40d4851" } Frame { msec: 9152 - hash: "cc6619c7cd6e4e274df4729aad6cca46" + hash: "1978cda418856b542d7c5a155b74f09c" } Frame { msec: 9168 - hash: "7fb0ed99b7d751d1f335afd7c0de2f2c" + hash: "7d03030f5a672d87aeabefdf4f3a39a4" } Frame { msec: 9184 - hash: "3d75735eefbf95f37e2a8605b9167ba1" + hash: "79650397b868019909b931a32a115823" } Frame { msec: 9200 @@ -3454,7 +3454,7 @@ VisualTest { } Frame { msec: 9232 - hash: "dc272fc8fc98d822a154da1d495d4f7e" + hash: "ab4c936a81299adf080f3b14f7e6be49" } Frame { msec: 9248 @@ -3466,7 +3466,7 @@ VisualTest { } Frame { msec: 9280 - hash: "7a5f69a1eecb5de0fc2295cd287eb449" + hash: "86b32befe0dada5bdce82a7dd14777ce" } Frame { msec: 9296 @@ -4022,7 +4022,7 @@ VisualTest { } Frame { msec: 11248 - hash: "a569789b082296415321ba11c859abe5" + hash: "d75a43305e2884759ca41d7b1cbadf52" } Mouse { type: 5 @@ -4042,7 +4042,7 @@ VisualTest { } Frame { msec: 11264 - hash: "86b32befe0dada5bdce82a7dd14777ce" + hash: "43fc85bb3b1501f5e12f1fedaaa14c64" } Mouse { type: 5 @@ -4062,7 +4062,7 @@ VisualTest { } Frame { msec: 11280 - hash: "70e522f64236dfa4e1613ffc29b4b23e" + hash: "a569789b082296415321ba11c859abe5" } Mouse { type: 5 @@ -4074,7 +4074,7 @@ VisualTest { } Frame { msec: 11296 - hash: "11120d6de575ffa639b6abb3af4afef7" + hash: "7a5f69a1eecb5de0fc2295cd287eb449" } Mouse { type: 5 @@ -4094,7 +4094,7 @@ VisualTest { } Frame { msec: 11312 - hash: "8e05207e0d0d9d15a61a0d21d985a83a" + hash: "70e522f64236dfa4e1613ffc29b4b23e" } Mouse { type: 5 @@ -4114,7 +4114,7 @@ VisualTest { } Frame { msec: 11328 - hash: "6602009ffe3c0f3072640ebc8749b76f" + hash: "8e05207e0d0d9d15a61a0d21d985a83a" } Mouse { type: 5 @@ -4134,7 +4134,7 @@ VisualTest { } Frame { msec: 11344 - hash: "8517007d5102af238935e93a3b38087f" + hash: "dc272fc8fc98d822a154da1d495d4f7e" } Mouse { type: 5 @@ -4154,7 +4154,7 @@ VisualTest { } Frame { msec: 11360 - hash: "82f54d7e254edcf499ea12a63118e8a7" + hash: "34ef0279e3731447f1df97784b47648a" } Mouse { type: 5 @@ -4174,7 +4174,7 @@ VisualTest { } Frame { msec: 11376 - hash: "572cb62d69ccb973ea18d3b0eaff571b" + hash: "82f54d7e254edcf499ea12a63118e8a7" } Mouse { type: 5 @@ -4194,7 +4194,7 @@ VisualTest { } Frame { msec: 11392 - hash: "79650397b868019909b931a32a115823" + hash: "6ef4abc294d928381346e8ff9b012475" } Mouse { type: 5 @@ -4214,7 +4214,7 @@ VisualTest { } Frame { msec: 11408 - hash: "43e50f4d4d37373e26af0a5d3cb64c4c" + hash: "7d2606d432858288dac019e0002ff85a" } Mouse { type: 5 @@ -4234,7 +4234,7 @@ VisualTest { } Frame { msec: 11424 - hash: "a0f8eb8a796f67c368b0a479e8d14681" + hash: "3d75735eefbf95f37e2a8605b9167ba1" } Mouse { type: 5 @@ -4254,7 +4254,7 @@ VisualTest { } Frame { msec: 11440 - hash: "01bf03313a0229e810a24e2adbbe9775" + hash: "c37507a29e3a6d80446ad68f2d92f266" } Mouse { type: 5 @@ -4274,7 +4274,7 @@ VisualTest { } Frame { msec: 11456 - hash: "7fb0ed99b7d751d1f335afd7c0de2f2c" + hash: "b66571ae47bf129be88dc66785a81a7d" } Mouse { type: 5 @@ -4294,7 +4294,7 @@ VisualTest { } Frame { msec: 11472 - hash: "363eca81f97f20f14e8d480f83d2bc7d" + hash: "7d03030f5a672d87aeabefdf4f3a39a4" } Mouse { type: 5 @@ -4306,7 +4306,7 @@ VisualTest { } Frame { msec: 11488 - hash: "6d49fc41fb6d74643c7613df7e417833" + hash: "8ffbbed46737837e55383833b96d2624" } Mouse { type: 5 @@ -4326,7 +4326,7 @@ VisualTest { } Frame { msec: 11504 - hash: "806d22bc3533c729cd10dc889c36902d" + hash: "aafb12a520eb443ee1348282f2c54e4a" } Mouse { type: 5 @@ -4366,7 +4366,7 @@ VisualTest { } Frame { msec: 11536 - hash: "929bf28dcb97e8c93dae5dbe23beecc8" + hash: "05b3013c9e42ed9ced7009d2e2999357" } Mouse { type: 5 @@ -4386,7 +4386,7 @@ VisualTest { } Frame { msec: 11552 - hash: "cb49adcd2c8afe27fd5926bd622added" + hash: "1451addb43319318c794333cd1cec3fd" } Mouse { type: 5 @@ -4406,7 +4406,7 @@ VisualTest { } Frame { msec: 11568 - hash: "0121c18897c37481fddbac57db636a60" + hash: "929bf28dcb97e8c93dae5dbe23beecc8" } Mouse { type: 5 @@ -4418,7 +4418,7 @@ VisualTest { } Frame { msec: 11584 - hash: "c0a569ee064d844835dddab11eadcd33" + hash: "cb49adcd2c8afe27fd5926bd622added" } Mouse { type: 5 @@ -4438,7 +4438,7 @@ VisualTest { } Frame { msec: 11600 - hash: "52d45e8dde81fef5ee93bbd5a40d4851" + hash: "d0b4215b43403c97d83250add6d2b6db" } Mouse { type: 5 @@ -4458,7 +4458,7 @@ VisualTest { } Frame { msec: 11616 - hash: "ce673b66f695f5b002515a5416bbf913" + hash: "c0a569ee064d844835dddab11eadcd33" } Mouse { type: 5 @@ -4470,7 +4470,7 @@ VisualTest { } Frame { msec: 11632 - hash: "f334bfcc3af89bf1405762a215c54ea6" + hash: "091d1ad7aba4b662cba98214c98a4707" } Mouse { type: 5 @@ -4490,7 +4490,7 @@ VisualTest { } Frame { msec: 11648 - hash: "ee0523fe6a33b59871ad3b311ca0cbeb" + hash: "52d45e8dde81fef5ee93bbd5a40d4851" } Mouse { type: 5 @@ -4502,11 +4502,11 @@ VisualTest { } Frame { msec: 11664 - hash: "66f71641c7a607152f140428ab9621d6" + hash: "ce673b66f695f5b002515a5416bbf913" } Frame { msec: 11680 - hash: "66f71641c7a607152f140428ab9621d6" + hash: "ce673b66f695f5b002515a5416bbf913" } Mouse { type: 5 @@ -4518,7 +4518,7 @@ VisualTest { } Frame { msec: 11696 - hash: "66f71641c7a607152f140428ab9621d6" + hash: "ce673b66f695f5b002515a5416bbf913" } Mouse { type: 5 @@ -4530,7 +4530,7 @@ VisualTest { } Frame { msec: 11712 - hash: "ddd3d8cb82e238358cdb16c1df7d27b7" + hash: "f334bfcc3af89bf1405762a215c54ea6" } Mouse { type: 5 @@ -4542,7 +4542,7 @@ VisualTest { } Frame { msec: 11728 - hash: "ddd3d8cb82e238358cdb16c1df7d27b7" + hash: "f334bfcc3af89bf1405762a215c54ea6" } Mouse { type: 5 @@ -4554,7 +4554,7 @@ VisualTest { } Frame { msec: 11744 - hash: "29ca97cc573d3a1fde65320b61678c60" + hash: "ee0523fe6a33b59871ad3b311ca0cbeb" } Mouse { type: 5 @@ -4566,7 +4566,7 @@ VisualTest { } Frame { msec: 11760 - hash: "29ca97cc573d3a1fde65320b61678c60" + hash: "ee0523fe6a33b59871ad3b311ca0cbeb" } Mouse { type: 5 @@ -4578,7 +4578,7 @@ VisualTest { } Frame { msec: 11776 - hash: "7b41d651ad46341859d0188db341ae10" + hash: "66f71641c7a607152f140428ab9621d6" } Mouse { type: 5 @@ -4590,11 +4590,11 @@ VisualTest { } Frame { msec: 11792 - hash: "6b236864b7d95bf9f76b8afd6ba78613" + hash: "ddd3d8cb82e238358cdb16c1df7d27b7" } Frame { msec: 11808 - hash: "6b236864b7d95bf9f76b8afd6ba78613" + hash: "ddd3d8cb82e238358cdb16c1df7d27b7" } Mouse { type: 5 @@ -4606,7 +4606,7 @@ VisualTest { } Frame { msec: 11824 - hash: "95b57cd3dac3bce56674f2c4143f42d4" + hash: "29ca97cc573d3a1fde65320b61678c60" } Mouse { type: 5 @@ -4618,7 +4618,7 @@ VisualTest { } Frame { msec: 11840 - hash: "95b57cd3dac3bce56674f2c4143f42d4" + hash: "29ca97cc573d3a1fde65320b61678c60" } Mouse { type: 5 @@ -4630,7 +4630,7 @@ VisualTest { } Frame { msec: 11856 - hash: "021bda841eaefa76ce5e1c97150af6f6" + hash: "7b41d651ad46341859d0188db341ae10" } Mouse { type: 5 @@ -4642,11 +4642,11 @@ VisualTest { } Frame { msec: 11872 - hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" + hash: "6b236864b7d95bf9f76b8afd6ba78613" } Frame { msec: 11888 - hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" + hash: "6b236864b7d95bf9f76b8afd6ba78613" } Mouse { type: 5 @@ -4658,11 +4658,11 @@ VisualTest { } Frame { msec: 11904 - hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" + hash: "6b236864b7d95bf9f76b8afd6ba78613" } Frame { msec: 11920 - hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" + hash: "6b236864b7d95bf9f76b8afd6ba78613" } Mouse { type: 5 @@ -4674,11 +4674,11 @@ VisualTest { } Frame { msec: 11936 - hash: "1709dda08ce7494ff6d082cc5d93f0d2" + hash: "95b57cd3dac3bce56674f2c4143f42d4" } Frame { msec: 11952 - hash: "1709dda08ce7494ff6d082cc5d93f0d2" + hash: "95b57cd3dac3bce56674f2c4143f42d4" } Mouse { type: 5 @@ -4690,11 +4690,11 @@ VisualTest { } Frame { msec: 11968 - hash: "1709dda08ce7494ff6d082cc5d93f0d2" + hash: "95b57cd3dac3bce56674f2c4143f42d4" } Frame { msec: 11984 - hash: "1709dda08ce7494ff6d082cc5d93f0d2" + hash: "95b57cd3dac3bce56674f2c4143f42d4" } Mouse { type: 5 @@ -4706,7 +4706,7 @@ VisualTest { } Frame { msec: 12000 - hash: "80edf52cc9e64a29f677bc2203220ba9" + hash: "021bda841eaefa76ce5e1c97150af6f6" } Mouse { type: 5 @@ -4718,11 +4718,11 @@ VisualTest { } Frame { msec: 12016 - hash: "80edf52cc9e64a29f677bc2203220ba9" + hash: "021bda841eaefa76ce5e1c97150af6f6" } Frame { msec: 12032 - hash: "80edf52cc9e64a29f677bc2203220ba9" + hash: "021bda841eaefa76ce5e1c97150af6f6" } Mouse { type: 5 @@ -4734,23 +4734,23 @@ VisualTest { } Frame { msec: 12048 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Frame { msec: 12064 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Frame { msec: 12080 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Frame { msec: 12096 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Frame { msec: 12112 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Mouse { type: 5 @@ -4762,23 +4762,23 @@ VisualTest { } Frame { msec: 12128 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Frame { msec: 12144 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Frame { msec: 12160 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Frame { msec: 12176 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Frame { msec: 12192 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Mouse { type: 3 @@ -4790,59 +4790,59 @@ VisualTest { } Frame { msec: 12208 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Frame { msec: 12224 - hash: "68c8c95edb8cce11320715266bd62628" + hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" } Frame { msec: 12240 - hash: "80edf52cc9e64a29f677bc2203220ba9" + hash: "021bda841eaefa76ce5e1c97150af6f6" } Frame { msec: 12256 - hash: "b1ea82b880a2fc35bf1ed117d8ab21b0" + hash: "6b236864b7d95bf9f76b8afd6ba78613" } Frame { msec: 12272 - hash: "6b236864b7d95bf9f76b8afd6ba78613" + hash: "ddd3d8cb82e238358cdb16c1df7d27b7" } Frame { msec: 12288 - hash: "ddd3d8cb82e238358cdb16c1df7d27b7" + hash: "f334bfcc3af89bf1405762a215c54ea6" } Frame { msec: 12304 - hash: "ce673b66f695f5b002515a5416bbf913" + hash: "091d1ad7aba4b662cba98214c98a4707" } Frame { msec: 12320 - hash: "0121c18897c37481fddbac57db636a60" + hash: "0b16e524cd5253d07aa9b5855967fa71" } Frame { msec: 12336 - hash: "cc6619c7cd6e4e274df4729aad6cca46" + hash: "1978cda418856b542d7c5a155b74f09c" } Frame { msec: 12352 - hash: "aafb12a520eb443ee1348282f2c54e4a" + hash: "8ffbbed46737837e55383833b96d2624" } Frame { msec: 12368 - hash: "c37507a29e3a6d80446ad68f2d92f266" + hash: "43e50f4d4d37373e26af0a5d3cb64c4c" } Frame { msec: 12384 - hash: "6ef4abc294d928381346e8ff9b012475" + hash: "837deeb2a92648d830acf29e829ebb53" } Frame { msec: 12400 - hash: "4e129ebba85d1f3717d09f71eb5a1a7d" + hash: "34ef0279e3731447f1df97784b47648a" } Frame { msec: 12416 - hash: "6602009ffe3c0f3072640ebc8749b76f" + hash: "dc272fc8fc98d822a154da1d495d4f7e" } Frame { msec: 12432 @@ -4894,7 +4894,7 @@ VisualTest { } Frame { msec: 12624 - hash: "d75a43305e2884759ca41d7b1cbadf52" + hash: "cc1fd2f4c3be318052254a9b6be7a57b" } Frame { msec: 12640 @@ -5083,7 +5083,7 @@ VisualTest { Key { type: 6 key: 16777251 - modifiers: 134217728 + modifiers: 0 text: "" autorep: false count: 1 diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/repeater.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/repeater.0.png Binary files differdeleted file mode 100644 index f7018fd..0000000 --- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/repeater.0.png +++ /dev/null diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png Binary files differnew file mode 100644 index 0000000..3234c98 --- /dev/null +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml index b293d70..bdf8fee 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml @@ -6,239 +6,239 @@ VisualTest { } Frame { msec: 16 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 32 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 48 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 64 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 80 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 96 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 112 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 128 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 144 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 160 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 176 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 192 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 208 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 224 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 240 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 256 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 272 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 288 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 304 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 320 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 336 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 352 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 368 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 384 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 400 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 416 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 432 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 448 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 464 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 480 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 496 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 512 - hash: "b72bfb206ae52e0e4fb8927b82d64b64" + hash: "e9c524091a0351926c3d658b9935f176" } Frame { msec: 528 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 544 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 560 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 576 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 592 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 608 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 624 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 640 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 656 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 672 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 688 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 704 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 720 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 736 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 752 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 768 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 784 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 800 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 816 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 832 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 848 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 864 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 880 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 896 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 912 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 928 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 944 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 960 @@ -246,94 +246,94 @@ VisualTest { } Frame { msec: 976 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 992 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1008 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1024 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1040 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1056 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1072 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1088 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1104 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1120 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1136 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1152 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1168 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1184 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1200 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1216 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1232 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1248 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1264 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1280 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1296 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1312 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } Frame { msec: 1328 - hash: "f2de1f70c5f242604beb4ee0251c8032" + hash: "2b1fb0ebb6f728fe685d95b5947cce90" } } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml index edf0cb5..b772982 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml @@ -5,7 +5,7 @@ Rectangle { height: 100 Text { - width: NumberAnimation { from: 500; to: 0; loops: Animation.Infinite; duration: 5000 } + NumberAnimation on width { from: 500; to: 0; loops: Animation.Infinite; duration: 5000 } elide: Text.ElideRight text: 'Here is some very long text that we should truncate when sizing window' } diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml index 6698421..3ef64ef 100644 --- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml +++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml @@ -11,7 +11,7 @@ Rectangle { anchors.centerIn: parent Text { id: myText - width: NumberAnimation { from: 500; to: 0; loops: Animation.Infinite; duration: 1000 } + NumberAnimation on width { from: 500; to: 0; loops: Animation.Infinite; duration: 5000 } elide: "ElideRight" text: "Brevity is the soul of wit, and tediousness the limbs and outward flourishes.\x9CBrevity is a great charm of eloquence.\x9CBe concise!\x9CSHHHHHHHHHHHHHHHHHHHHHHHHHHHH" } diff --git a/tests/auto/modeltest/dynamictreemodel.cpp b/tests/auto/modeltest/dynamictreemodel.cpp index b572eb1..fa634b6 100644 --- a/tests/auto/modeltest/dynamictreemodel.cpp +++ b/tests/auto/modeltest/dynamictreemodel.cpp @@ -63,6 +63,13 @@ QModelIndex DynamicTreeModel::index(int row, int column, const QModelIndex &pare QList<QList<qint64> > childIdColumns = m_childItems.value(parent.internalId()); + const qint64 grandParent = findParentId(parent.internalId()); + if (grandParent >= 0) { + QList<QList<qint64> > parentTable = m_childItems.value(grandParent); + Q_ASSERT(parent.column() < parentTable.size()); + QList<qint64> parentSiblings = parentTable.at(parent.column()); + Q_ASSERT(parent.row() < parentSiblings.size()); + } if (childIdColumns.size() == 0) return QModelIndex(); diff --git a/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp b/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp index dbcccc9..b723253 100644 --- a/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp +++ b/tests/auto/qabstractitemmodel/tst_qabstractitemmodel.cpp @@ -1167,6 +1167,7 @@ void tst_QAbstractItemModel::testMoveToGrandParent_data() // Moving everything from one parent to another QTest::newRow("move12") << 0 << 9 << 10; + QTest::newRow("move13") << 0 << 9 << 0; } void tst_QAbstractItemModel::testMoveToGrandParent() @@ -1314,6 +1315,11 @@ void tst_QAbstractItemModel::testMoveToSibling_data() QTest::newRow("move09") << 8 << 8 << 4; QTest::newRow("move10") << 8 << 8 << 5; QTest::newRow("move11") << 8 << 8 << 6; + + // Move such that the destination parent no longer valid after the move. + // The destination parent is always QMI(5, 0), but after this move the + // row count is 5, so (5, 0) (used internally in QAIM) no longer refers to a valid index. + QTest::newRow("move12") << 0 << 4 << 0; } void tst_QAbstractItemModel::testMoveToSibling() diff --git a/tests/auto/qclipboard/test/test.pro b/tests/auto/qclipboard/test/test.pro index 7d5c2f3..6e61b31 100644 --- a/tests/auto/qclipboard/test/test.pro +++ b/tests/auto/qclipboard/test/test.pro @@ -17,6 +17,8 @@ wince*|symbian: { paster.path = paster symbian: { + LIBS += -lbafl -lestor -letext + load(data_caging_paths) rsc.files = $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/copier.rsc rsc.files += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/paster.rsc diff --git a/tests/auto/qclipboard/tst_qclipboard.cpp b/tests/auto/qclipboard/tst_qclipboard.cpp index d1f3e86..2e0362c 100644 --- a/tests/auto/qclipboard/tst_qclipboard.cpp +++ b/tests/auto/qclipboard/tst_qclipboard.cpp @@ -47,6 +47,14 @@ #ifdef Q_WS_MAC #include <Carbon/Carbon.h> #endif +#ifdef Q_OS_SYMBIAN +#include "private/qcore_symbian_p.h" +#include "txtetext.h" +#include <baclipb.h> +#endif +#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS +#include "txtclipboard.h" +#endif //TESTED_CLASS= //TESTED_FILES= @@ -62,6 +70,10 @@ private slots: void testSignals(); void setMimeData(); void clearBeforeSetText(); +#ifdef Q_OS_SYMBIAN + void pasteCopySymbian(); + void copyPasteSymbian(); +#endif private: bool nativeClipboardWorking(); @@ -335,6 +347,76 @@ void tst_QClipboard::clearBeforeSetText() QCOMPARE(QApplication::clipboard()->text(), text); } +/* + Test that text copied from qt application + can be pasted with symbian clipboard +*/ +#ifdef Q_OS_SYMBIAN +// ### This test case only makes sense in symbian +void tst_QClipboard::pasteCopySymbian() +{ + if (!nativeClipboardWorking()) + QSKIP("Native clipboard not working in this setup", SkipAll); + const QString string("Test string symbian."); + QApplication::clipboard()->setText(string); + + const TInt KPlainTextBegin = 0; + RFs fs = qt_s60GetRFs(); + CClipboard* cb = CClipboard::NewForReadingLC(fs); + + CPlainText* text = CPlainText::NewL(); + CleanupStack::PushL(text); + TInt dataLength = text->PasteFromStoreL(cb->Store(), cb->StreamDictionary(), + KPlainTextBegin); + if (dataLength == 0) { + User::Leave(KErrNotFound); + } + HBufC* hBuf = HBufC::NewL(dataLength); + TPtr buf = hBuf->Des(); + text->Extract(buf, KPlainTextBegin, dataLength); + + QString storeString = qt_TDesC2QString(buf); + CleanupStack::PopAndDestroy(text); + CleanupStack::PopAndDestroy(cb); + + QCOMPARE(string, storeString); +} +#endif + +/* + Test that text copied to symbian clipboard + can be pasted to qt clipboard +*/ +#ifdef Q_OS_SYMBIAN +// ### This test case only makes sense in symbian +void tst_QClipboard::copyPasteSymbian() +{ + if (!nativeClipboardWorking()) + QSKIP("Native clipboard not working in this setup", SkipAll); + const QString string("Test string symbian."); + const TInt KPlainTextBegin = 0; + + RFs fs = qt_s60GetRFs(); + CClipboard* cb = CClipboard::NewForWritingLC(fs); + CStreamStore& store = cb->Store(); + CStreamDictionary& dict = cb->StreamDictionary(); + RStoreWriteStream symbianStream; + TStreamId symbianStId = symbianStream.CreateLC(cb->Store()); + + CPlainText* text = CPlainText::NewL(); + CleanupStack::PushL(text); + TPtrC textPtr(qt_QString2TPtrC(string)); + text->InsertL(KPlainTextBegin, textPtr); + text->CopyToStoreL(store, dict, KPlainTextBegin, textPtr.Length()); + CleanupStack::PopAndDestroy(text); + (cb->StreamDictionary()).AssignL(KClipboardUidTypePlainText, symbianStId); + cb->CommitL(); + CleanupStack::PopAndDestroy(2, cb); + + QCOMPARE(QApplication::clipboard()->text(), string); +} +#endif + QTEST_MAIN(tst_QClipboard) #include "tst_qclipboard.moc" diff --git a/tests/auto/qcompleter/tst_qcompleter.cpp b/tests/auto/qcompleter/tst_qcompleter.cpp index 1590528..650c328 100644 --- a/tests/auto/qcompleter/tst_qcompleter.cpp +++ b/tests/auto/qcompleter/tst_qcompleter.cpp @@ -119,6 +119,8 @@ private slots: void directoryModel_data(); void directoryModel(); + void fileSystemModel_data(); + void fileSystemModel(); void changingModel_data(); void changingModel(); @@ -149,15 +151,17 @@ private slots: void task253125_lineEditCompletion_data(); void task253125_lineEditCompletion(); void task247560_keyboardNavigation(); + void QTBUG_14292_filesystem(); private: - void filter(); + void filter(bool assync = false); void testRowCount(); enum ModelType { CASE_SENSITIVELY_SORTED_MODEL, CASE_INSENSITIVELY_SORTED_MODEL, DIRECTORY_MODEL, - HISTORY_MODEL + HISTORY_MODEL, + FILESYSTEM_MODEL }; void setSourceModel(ModelType); @@ -233,12 +237,21 @@ void tst_QCompleter::setSourceModel(ModelType type) completer->setModel(new QDirModel(completer)); completer->setCompletionColumn(0); break; + case FILESYSTEM_MODEL: + completer->setCsvCompletion(false); + { + QFileSystemModel *m = new QFileSystemModel(completer); + m->setRootPath("/"); + completer->setModel(m); + } + completer->setCompletionColumn(0); + break; default: qDebug() << "Invalid type"; } } -void tst_QCompleter::filter() +void tst_QCompleter::filter(bool assync) { QFETCH(QString, filterText); QFETCH(QString, step); @@ -250,6 +263,9 @@ void tst_QCompleter::filter() return; } + int times = 0; +retry: + completer->setCompletionPrefix(filterText); for (int i = 0; i < step.length(); i++) { @@ -265,9 +281,13 @@ void tst_QCompleter::filter() completer->setCurrentRow(row); } - //QModelIndex si = completer->currentIndex(); - //QCOMPARE(completer->model()->data(si).toString(), completion); - QVERIFY(0 == QString::compare(completer->currentCompletion(), completionText, completer->caseSensitivity())); + int r = QString::compare(completer->currentCompletion(), completionText, completer->caseSensitivity()); + if (assync && r && times < 10) { + times++; + QTest::qWait(50*times); + goto retry; + } + QVERIFY(!r); } // Testing get/set functions @@ -552,6 +572,7 @@ void tst_QCompleter::csMatchingOnCiSortedModel() void tst_QCompleter::directoryModel_data() { delete completer; + completer = new CsvCompleter; completer->setModelSorting(QCompleter::CaseSensitivelySortedModel); setSourceModel(DIRECTORY_MODEL); @@ -598,6 +619,57 @@ void tst_QCompleter::directoryModel() filter(); } +void tst_QCompleter::fileSystemModel_data() +{ + delete completer; + completer = new CsvCompleter; + completer->setModelSorting(QCompleter::CaseSensitivelySortedModel); + setSourceModel(FILESYSTEM_MODEL); + completer->setCaseSensitivity(Qt::CaseInsensitive); + + QTest::addColumn<QString>("filterText"); + QTest::addColumn<QString>("step"); + QTest::addColumn<QString>("completion"); + QTest::addColumn<QString>("completionText"); + + // NOTE: Add tests carefully, ensurely the paths exist on all systems + // Output is the sourceText; currentCompletionText() + + for (int i = 0; i < 2; i++) { + if (i == 1) + QTest::newRow("FILTERING_OFF") << "FILTERING_OFF" << "" << "" << ""; + +#if defined(Q_OS_WINCE) + QTest::newRow("()") << "" << "" << "/" << "/"; + QTest::newRow("()") << "\\Program" << "" << "Program Files" << "\\Program Files"; +#elif defined(Q_OS_WIN) + QTest::newRow("()") << "C" << "" << "C:" << "C:"; + QTest::newRow("()") << "C:\\Program" << "" << "Program Files" << "C:\\Program Files"; +#elif defined(Q_OS_SYMBIAN) + QTest::newRow("()") << "C" << "" << "C:" << "C:"; + QTest::newRow("()") << "C:\\re" << "" << "resource" << "C:\\resource"; +#elif defined (Q_OS_MAC) + QTest::newRow("()") << "" << "" << "/" << "/"; + QTest::newRow("(/a)") << "/a" << "" << "Applications" << "/Applications"; +// QTest::newRow("(/d)") << "/d" << "" << "Developer" << "/Developer"; +#else + QTest::newRow("()") << "" << "" << "/" << "/"; +#if !defined(Q_OS_IRIX) && !defined(Q_OS_AIX) && !defined(Q_OS_HPUX) + QTest::newRow("(/h)") << "/h" << "" << "home" << "/home"; +#endif + QTest::newRow("(/et)") << "/et" << "" << "etc" << "/etc"; + QTest::newRow("(/etc/passw)") << "/etc/passw" << "" << "passwd" << "/etc/passwd"; +#endif + } +} + +void tst_QCompleter::fileSystemModel() +{ + //QFileSystemModel is assync. + filter(true); +} + + void tst_QCompleter::changingModel_data() { } @@ -1381,5 +1453,80 @@ void tst_QCompleter::task247560_keyboardNavigation() QCOMPARE(edit.text(), QString("row 3 column 1")); } +void tst_QCompleter::QTBUG_14292_filesystem() +{ + QDir tmpDir = QDir::temp(); + qsrand(QTime::currentTime().msec()); + QString d = "tst_QCompleter_" + QString::number(qrand()); + QVERIFY(tmpDir.mkdir(d)); + +#if 0 + struct Cleanup { + QString dir; + ~Cleanup() { + qDebug() << dir << + QFile::remove(dir); } + } cleanup; + cleanup.dir = tmpDir.absolutePath()+"/" +d; +#endif + + QVERIFY(tmpDir.cd(d)); + QVERIFY(tmpDir.mkdir("hello")); + QVERIFY(tmpDir.mkdir("holla")); + + QLineEdit edit; + QCompleter comp; + QFileSystemModel model; + model.setRootPath(tmpDir.path()); + comp.setModel(&model); + edit.setCompleter(&comp); + + edit.show(); + QApplication::setActiveWindow(&edit); + QTest::qWaitForWindowShown(&edit); + QTRY_VERIFY(QApplication::activeWindow() == &edit); + edit.setFocus(); + QTRY_VERIFY(edit.hasFocus()); + + QVERIFY(!comp.popup()->isVisible()); + edit.setText(tmpDir.path()); + QTest::keyClick(&edit, '/'); + QTRY_VERIFY(comp.popup()->isVisible()); + QCOMPARE(comp.popup()->model()->rowCount(), 2); + QApplication::processEvents(); + QTest::keyClick(&edit, 'h'); + QCOMPARE(comp.popup()->model()->rowCount(), 2); + QTest::keyClick(&edit, 'e'); + QCOMPARE(comp.popup()->model()->rowCount(), 1); + QTest::keyClick(&edit, 'r'); + QTRY_VERIFY(!comp.popup()->isVisible()); + QVERIFY(tmpDir.mkdir("hero")); + QTRY_VERIFY(comp.popup()->isVisible()); + QCOMPARE(comp.popup()->model()->rowCount(), 1); + QTest::keyClick(comp.popup(), Qt::Key_Escape); + QTRY_VERIFY(!comp.popup()->isVisible()); + QVERIFY(tmpDir.mkdir("nothingThere")); + //there is no reason creating a file should open a popup, it did in Qt 4.7.0 + QTest::qWait(60); + QVERIFY(!comp.popup()->isVisible()); + + QTest::keyClick(&edit, Qt::Key_Backspace); + QTRY_VERIFY(comp.popup()->isVisible()); + QCOMPARE(comp.popup()->model()->rowCount(), 2); + QTest::keyClick(&edit, 'm'); + QTRY_VERIFY(!comp.popup()->isVisible()); + + QWidget w; + w.show(); + QApplication::setActiveWindow(&w); + QTest::qWaitForWindowShown(&w); + QTRY_VERIFY(!edit.hasFocus() && !comp.popup()->hasFocus()); + + QVERIFY(tmpDir.mkdir("hemo")); + //there is no reason creating a file should open a popup, it did in Qt 4.7.0 + QTest::qWait(60); + QVERIFY(!comp.popup()->isVisible()); +} + QTEST_MAIN(tst_QCompleter) #include "tst_qcompleter.moc" diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp index 82af71f..b173046 100644 --- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp +++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp @@ -61,13 +61,19 @@ private slots: void qgraphicsgridlayout(); void addItem_data(); void addItem(); + void alignment_data(); void alignment(); void alignment2(); void alignment2_data(); + void columnAlignment_data(); void columnAlignment(); + void columnCount_data(); void columnCount(); + void columnMaximumWidth_data(); void columnMaximumWidth(); + void columnMinimumWidth_data(); void columnMinimumWidth(); + void columnPreferredWidth_data(); void columnPreferredWidth(); void setColumnFixedWidth(); void columnSpacing(); @@ -79,12 +85,18 @@ private slots: void itemAt(); void removeAt(); void removeItem(); + void rowAlignment_data(); void rowAlignment(); + void rowCount_data(); void rowCount(); + void rowMaximumHeight_data(); void rowMaximumHeight(); + void rowMinimumHeight_data(); void rowMinimumHeight(); + void rowPreferredHeight_data(); void rowPreferredHeight(); void rowSpacing(); + void rowStretchFactor_data(); void rowStretchFactor(); void setColumnSpacing_data(); void setColumnSpacing(); @@ -99,6 +111,7 @@ private slots: void sizeHint(); void verticalSpacing_data(); void verticalSpacing(); + void layoutDirection_data(); void layoutDirection(); void removeLayout(); void defaultStretchFactors_data(); @@ -110,6 +123,7 @@ private slots: void task236367_maxSizeHint(); void heightForWidth(); void widthForHeight(); + void heightForWidthWithSpanning(); }; class RectWidget : public QGraphicsWidget @@ -373,7 +387,7 @@ void tst_QGraphicsGridLayout::qgraphicsgridlayout() layout.verticalSpacing(); } -static void populateLayout(QGraphicsGridLayout *gridLayout, int width, int height) +static void populateLayout(QGraphicsGridLayout *gridLayout, int width, int height, bool hasHeightForWidth = false) { for (int y = 0; y < height; ++y) { for (int x = 0; x < width; ++x) { @@ -382,6 +396,9 @@ static void populateLayout(QGraphicsGridLayout *gridLayout, int width, int heigh item->setPreferredSize(25, 25); item->setMaximumSize(50, 50); gridLayout->addItem(item, y, x); + QSizePolicy policy = item->sizePolicy(); + policy.setHeightForWidth(hasHeightForWidth); + item->setSizePolicy(policy); } } } @@ -398,18 +415,22 @@ static void populateLayout(QGraphicsGridLayout *gridLayout, int width, int heigh * |xxxx|+---|---+| * +----+----+----+ */ -static void populateLayoutWithSpansAndHoles(QGraphicsGridLayout *gridLayout) +static void populateLayoutWithSpansAndHoles(QGraphicsGridLayout *gridLayout, bool hasHeightForWidth = false) { QGraphicsWidget *item = new RectWidget(); item->setMinimumSize(10, 10); item->setPreferredSize(25, 25); item->setMaximumSize(50, 50); + QSizePolicy sizepolicy = item->sizePolicy(); + sizepolicy.setHeightForWidth(hasHeightForWidth); + item->setSizePolicy(sizepolicy); gridLayout->addItem(item, 0, 0, 1, 2); item = new RectWidget(); item->setMinimumSize(10, 10); item->setPreferredSize(25, 25); item->setMaximumSize(50, 50); + item->setSizePolicy(sizepolicy); gridLayout->addItem(item, 1, 1, 1, 2); } @@ -462,19 +483,28 @@ void tst_QGraphicsGridLayout::addItem() delete layout; } +void tst_QGraphicsGridLayout::alignment_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} + // public Qt::Alignment alignment(QGraphicsLayoutItem* item) const void tst_QGraphicsGridLayout::alignment() { #ifdef Q_WS_MAC QSKIP("Resizing a QGraphicsWidget to effectiveSizeHint(Qt::MaximumSize) is currently not supported on mac", SkipAll); #endif + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 3, 2); + populateLayout(layout, 3, 2, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); @@ -526,6 +556,14 @@ void tst_QGraphicsGridLayout::alignment() delete widget; } +void tst_QGraphicsGridLayout::columnAlignment_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} + // public void setColumnAlignment(int column, Qt::Alignment alignment) // public Qt::Alignment columnAlignment(int column) const void tst_QGraphicsGridLayout::columnAlignment() @@ -533,13 +571,14 @@ void tst_QGraphicsGridLayout::columnAlignment() #ifdef Q_WS_MAC QSKIP("Resizing a QGraphicsWidget to effectiveSizeHint(Qt::MaximumSize) is currently not supported on mac", SkipAll); #endif + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 3, 2); + populateLayout(layout, 3, 2, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(1); widget->setContentsMargins(0, 0, 0, 0); @@ -585,9 +624,17 @@ void tst_QGraphicsGridLayout::columnAlignment() delete widget; } +void tst_QGraphicsGridLayout::columnCount_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} // public int columnCount() const void tst_QGraphicsGridLayout::columnCount() { + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); @@ -619,7 +666,7 @@ void tst_QGraphicsGridLayout::columnCount() // ### Talk with Jasmin. Not sure if removeAt() should adjust columnCount(). widget->setLayout(0); layout = new QGraphicsGridLayout(); - populateLayout(layout, 3, 2); + populateLayout(layout, 3, 2, hasHeightForWidth); QCOMPARE(layout->columnCount(), 3); layout->removeAt(5); layout->removeAt(3); @@ -634,16 +681,24 @@ void tst_QGraphicsGridLayout::columnCount() delete widget; } +void tst_QGraphicsGridLayout::columnMaximumWidth_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} // public qreal columnMaximumWidth(int column) const void tst_QGraphicsGridLayout::columnMaximumWidth() { + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 3, 2); + populateLayout(layout, 3, 2, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); @@ -669,16 +724,24 @@ void tst_QGraphicsGridLayout::columnMaximumWidth() delete widget; } +void tst_QGraphicsGridLayout::columnMinimumWidth_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} // public qreal columnMinimumWidth(int column) const void tst_QGraphicsGridLayout::columnMinimumWidth() { + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 3, 2); + populateLayout(layout, 3, 2, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); @@ -704,16 +767,24 @@ void tst_QGraphicsGridLayout::columnMinimumWidth() delete widget; } +void tst_QGraphicsGridLayout::columnPreferredWidth_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} // public qreal columnPreferredWidth(int column) const void tst_QGraphicsGridLayout::columnPreferredWidth() { + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 3, 2); + populateLayout(layout, 3, 2, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); @@ -1049,16 +1120,25 @@ void tst_QGraphicsGridLayout::removeItem() QCOMPARE(l->count(), 4); } +void tst_QGraphicsGridLayout::rowAlignment_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} + // public Qt::Alignment rowAlignment(int row) const void tst_QGraphicsGridLayout::rowAlignment() { + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 2, 3); + populateLayout(layout, 2, 3, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(1); widget->setContentsMargins(0, 0, 0, 0); @@ -1108,17 +1188,26 @@ void tst_QGraphicsGridLayout::rowAlignment() delete widget; } +void tst_QGraphicsGridLayout::rowCount_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} + // public int rowCount() const // public int columnCount() const void tst_QGraphicsGridLayout::rowCount() { + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 2, 3); + populateLayout(layout, 2, 3, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); widget->setContentsMargins(0, 0, 0, 0); @@ -1128,23 +1217,32 @@ void tst_QGraphicsGridLayout::rowCount() // with spans and holes... widget->setLayout(0); layout = new QGraphicsGridLayout(); - populateLayoutWithSpansAndHoles(layout); + populateLayoutWithSpansAndHoles(layout, hasHeightForWidth); QCOMPARE(layout->rowCount(), 2); QCOMPARE(layout->columnCount(), 3); delete widget; } +void tst_QGraphicsGridLayout::rowMaximumHeight_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} + // public qreal rowMaximumHeight(int row) const void tst_QGraphicsGridLayout::rowMaximumHeight() { + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout; scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 2, 3); + populateLayout(layout, 2, 3, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); @@ -1170,16 +1268,24 @@ void tst_QGraphicsGridLayout::rowMaximumHeight() delete widget; } +void tst_QGraphicsGridLayout::rowMinimumHeight_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} // public qreal rowMinimumHeight(int row) const void tst_QGraphicsGridLayout::rowMinimumHeight() { + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 2, 3); + populateLayout(layout, 2, 3, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); @@ -1205,16 +1311,24 @@ void tst_QGraphicsGridLayout::rowMinimumHeight() delete widget; } +void tst_QGraphicsGridLayout::rowPreferredHeight_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} // public qreal rowPreferredHeight(int row) const void tst_QGraphicsGridLayout::rowPreferredHeight() { + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 2, 3); + populateLayout(layout, 2, 3, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); @@ -1303,16 +1417,25 @@ void tst_QGraphicsGridLayout::rowSpacing() } +void tst_QGraphicsGridLayout::rowStretchFactor_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} + // public int rowStretchFactor(int row) const void tst_QGraphicsGridLayout::rowStretchFactor() { + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 2, 3); + populateLayout(layout, 2, 3, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); @@ -1336,9 +1459,12 @@ void tst_QGraphicsGridLayout::setColumnSpacing_data() { QTest::addColumn<int>("column"); QTest::addColumn<qreal>("spacing"); - QTest::newRow("null") << 0 << qreal(0.0); - QTest::newRow("10") << 0 << qreal(10.0); + QTest::addColumn<bool>("hasHeightForWidth"); + QTest::newRow("null") << 0 << qreal(0.0) << false; + QTest::newRow("10") << 0 << qreal(10.0) << false; + QTest::newRow("null, hasHeightForWidth") << 0 << qreal(0.0) << true; + QTest::newRow("10, hasHeightForWidth") << 0 << qreal(10.0) << true; } // public void setColumnSpacing(int column, qreal spacing) @@ -1346,6 +1472,7 @@ void tst_QGraphicsGridLayout::setColumnSpacing() { QFETCH(int, column); QFETCH(qreal, spacing); + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); @@ -1353,7 +1480,7 @@ void tst_QGraphicsGridLayout::setColumnSpacing() QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 3, 2); + populateLayout(layout, 3, 2, hasHeightForWidth); layout->setSpacing(0); layout->setContentsMargins(0, 0, 0, 0); qreal oldSpacing = layout->columnSpacing(column); @@ -1390,9 +1517,12 @@ void tst_QGraphicsGridLayout::setRowSpacing_data() { QTest::addColumn<int>("row"); QTest::addColumn<qreal>("spacing"); - QTest::newRow("null") << 0 << qreal(0.0); - QTest::newRow("10") << 0 << qreal(10.0); + QTest::addColumn<bool>("hasHeightForWidth"); + QTest::newRow("null") << 0 << qreal(0.0) << false; + QTest::newRow("10") << 0 << qreal(10.0) << false; + QTest::newRow("null, hasHeightForWidth") << 0 << qreal(0.0) << true; + QTest::newRow("10, hasHeightForWidth") << 0 << qreal(10.0) << true; } // public void setRowSpacing(int row, qreal spacing) @@ -1400,6 +1530,7 @@ void tst_QGraphicsGridLayout::setRowSpacing() { QFETCH(int, row); QFETCH(qreal, spacing); + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); @@ -1407,7 +1538,7 @@ void tst_QGraphicsGridLayout::setRowSpacing() QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 3, 2); + populateLayout(layout, 3, 2, hasHeightForWidth); layout->setSpacing(0); layout->setContentsMargins(0, 0, 0, 0); qreal oldSpacing = layout->rowSpacing(row); @@ -1421,21 +1552,25 @@ void tst_QGraphicsGridLayout::setRowSpacing() void tst_QGraphicsGridLayout::setSpacing_data() { QTest::addColumn<qreal>("spacing"); - QTest::newRow("zero") << qreal(0.0); - QTest::newRow("17") << qreal(17.0); + QTest::addColumn<bool>("hasHeightForWidth"); + QTest::newRow("zero") << qreal(0.0) << false; + QTest::newRow("17") << qreal(17.0) << false; + QTest::newRow("zero, hasHeightForWidth") << qreal(0.0) << true; + QTest::newRow("17, hasHeightForWidth") << qreal(17.0) << true; } // public void setSpacing(qreal spacing) void tst_QGraphicsGridLayout::setSpacing() { QFETCH(qreal, spacing); + QFETCH(bool, hasHeightForWidth); QGraphicsScene scene; QGraphicsView view(&scene); QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window); QGraphicsGridLayout *layout = new QGraphicsGridLayout(); scene.addItem(widget); widget->setLayout(layout); - populateLayout(layout, 3, 2); + populateLayout(layout, 3, 2, hasHeightForWidth); layout->setContentsMargins(0, 0, 0, 0); QSizeF sh = layout->sizeHint(Qt::PreferredSize, QSizeF()); qreal oldVSpacing = layout->verticalSpacing(); @@ -1566,8 +1701,18 @@ void tst_QGraphicsGridLayout::verticalSpacing() delete widget; } +void tst_QGraphicsGridLayout::layoutDirection_data() +{ + QTest::addColumn<bool>("hasHeightForWidth"); + + QTest::newRow("") << false; + QTest::newRow("hasHeightForWidth") << true; +} + void tst_QGraphicsGridLayout::layoutDirection() { + QFETCH(bool, hasHeightForWidth); + QGraphicsScene scene; QGraphicsView view(&scene); @@ -1590,6 +1735,12 @@ void tst_QGraphicsGridLayout::layoutDirection() w4->setMinimumSize(30, 20); layout->addItem(w4, 1, 1); + QSizePolicy policy = w1->sizePolicy(); + policy.setHeightForWidth(hasHeightForWidth); + w1->setSizePolicy(policy); + w2->setSizePolicy(policy); + w4->setSizePolicy(policy); + layout->setAlignment(w2, Qt::AlignRight); layout->setAlignment(w3, Qt::AlignLeft); @@ -2268,9 +2419,9 @@ void tst_QGraphicsGridLayout::geometries_data() .preferredSize(QSizeF(50,10)) .maxSize(QSizeF(100, 100)) << ItemDesc(1,1) - .minSize(QSizeF(40,40)) - .preferredSize(QSizeF(50,400)) - .maxSize(QSizeF(500, 500)) + .minSize(QSizeF(40,-1)) + .preferredSize(QSizeF(50,-1)) + .maxSize(QSizeF(500, -1)) .dynamicConstraint(hfw1, Qt::Vertical) ) << QSizeF(100, 401) @@ -2278,8 +2429,7 @@ void tst_QGraphicsGridLayout::geometries_data() << QRectF(0, 0, 50, 1) << QRectF(50, 0, 50, 1) << QRectF(0, 1, 50,100) << QRectF(50, 1, 50,400) ); - - +#if 0 QTest::newRow("hfw-100x408") << (ItemList() << ItemDesc(0,0) .minSize(QSizeF(1,1)) @@ -2304,7 +2454,7 @@ void tst_QGraphicsGridLayout::geometries_data() << QRectF(0, 0, 50, 8) << QRectF(50, 0, 50, 8) << QRectF(0, 8, 50,100) << QRectF(50, 8, 50,400) ); - +#endif QTest::newRow("hfw-h410") << (ItemList() << ItemDesc(0,0) .minSize(QSizeF(1,1)) @@ -2329,7 +2479,7 @@ void tst_QGraphicsGridLayout::geometries_data() << QRectF(0, 0, 50,10) << QRectF(50, 0, 50,10) << QRectF(0, 10, 50,100) << QRectF(50, 10, 50,400) ); - +#if 0 QTest::newRow("hfw-100x470") << (ItemList() << ItemDesc(0,0) .minSize(QSizeF(1,1)) @@ -2565,6 +2715,7 @@ void tst_QGraphicsGridLayout::geometries_data() << QRectF(0, 0, 80, 50) << QRectF( 80, 0, 80, 50) << QRectF(0, 50, 80, 50) << QRectF( 80, 50, 50, 50) ); +#endif } @@ -2764,11 +2915,13 @@ void tst_QGraphicsGridLayout::heightForWidth() void tst_QGraphicsGridLayout::widthForHeight() { +#if 0 QGraphicsWidget *widget = new QGraphicsWidget; QGraphicsGridLayout *layout = new QGraphicsGridLayout; widget->setLayout(layout); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); + RectWidget *w00 = new RectWidget; w00->setMinimumSize(1, 1); w00->setPreferredSize(50, 50); @@ -2835,8 +2988,43 @@ void tst_QGraphicsGridLayout::widthForHeight() QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(-1, 300)), QSizeF(1 + 200, 300)); QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, 300)), QSizeF(50 + 200, 300)); QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(-1, 300)), QSizeF(100 + 200, 300)); +#endif +} + +void tst_QGraphicsGridLayout::heightForWidthWithSpanning() +{ + QGraphicsWidget *widget = new QGraphicsWidget; + QGraphicsGridLayout *layout = new QGraphicsGridLayout; + widget->setLayout(layout); + layout->setContentsMargins(0, 0, 0, 0); + layout->setSpacing(0); + RectWidget *w = new RectWidget; + w->setSizeHint(Qt::MinimumSize, QSizeF(1,1)); + w->setSizeHint(Qt::MaximumSize, QSizeF(30000,30000)); + w->setConstraintFunction(hfw); + QSizePolicy sp(QSizePolicy::Preferred, QSizePolicy::Preferred); + sp.setHeightForWidth(true); + w->setSizePolicy(sp); + layout->addItem(w, 0,0,2,2); + + QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(-1, -1)), QSizeF(1, 100)); + QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, -1)), QSizeF(200, 100)); + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(-1, -1)), QSizeF(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX)); + + QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(200, -1)), QSizeF(200, 100)); + QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(200, -1)), QSizeF(200, 100)); + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, QWIDGETSIZE_MAX)); + + QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(2, -1)), QSizeF(2, 10000)); + QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(2, -1)), QSizeF(2, 10000)); + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(2, -1)), QSizeF(2, QWIDGETSIZE_MAX)); + + QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(200, -1)), QSizeF(200, 100)); + QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(200, -1)), QSizeF(200, 100)); + QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, QWIDGETSIZE_MAX)); } + QTEST_MAIN(tst_QGraphicsGridLayout) #include "tst_qgraphicsgridlayout.moc" diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp index 2ddccd2..a3bd0b0 100644 --- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp +++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp @@ -466,6 +466,7 @@ private slots: void doNotMarkFullUpdateIfNotInScene(); void itemDiesDuringDraggingOperation(); void QTBUG_12112_focusItem(); + void QTBUG_13473_sceneposchange(); private: QList<QGraphicsItem *> paintedItems; @@ -9067,6 +9068,7 @@ void tst_QGraphicsItem::focusScope() QVERIFY(!scope2->hasFocus()); QVERIFY(scope1->hasFocus()); scope2->setFocus(); + QVERIFY(scope2->hasFocus()); scope3->setFocus(); QVERIFY(scope3->hasFocus()); @@ -11018,5 +11020,31 @@ void tst_QGraphicsItem::QTBUG_12112_focusItem() QVERIFY(item2->focusItem()); } +void tst_QGraphicsItem::QTBUG_13473_sceneposchange() +{ + ScenePosChangeTester* parent = new ScenePosChangeTester; + ScenePosChangeTester* child = new ScenePosChangeTester(parent); + + // parent's disabled ItemSendsGeometryChanges flag must not affect + // child's scene pos change notifications + parent->setFlag(QGraphicsItem::ItemSendsGeometryChanges, false); + child->setFlag(QGraphicsItem::ItemSendsScenePositionChanges, true); + + QGraphicsScene scene; + scene.addItem(parent); + + // ignore uninteresting changes + parent->clear(); + child->clear(); + + // move + parent->moveBy(1.0, 1.0); + QCOMPARE(child->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 1); + + // transform + parent->setTransform(QTransform::fromScale(0.5, 0.5)); + QCOMPARE(child->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 2); +} + QTEST_MAIN(tst_QGraphicsItem) #include "tst_qgraphicsitem.moc" diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp index af02c55..a53f04d 100644 --- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp +++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp @@ -244,6 +244,7 @@ private slots: void QTBUG_4151_clipAndIgnore(); void QTBUG_5859_exposedRect(); void QTBUG_7438_cursor(); + void hoverLeave(); public slots: void dummySlot() {} @@ -4394,5 +4395,59 @@ void tst_QGraphicsView::QTBUG_7438_cursor() #endif } +class GraphicsItemWithHover : public QGraphicsRectItem +{ +public: + GraphicsItemWithHover() + : receivedEnterEvent(false), receivedLeaveEvent(false), + enterWidget(0), leaveWidget(0) + { + setRect(0, 0, 100, 100); + setAcceptHoverEvents(true); + } + + bool sceneEvent(QEvent *event) + { + if (event->type() == QEvent::GraphicsSceneHoverEnter) { + receivedEnterEvent = true; + enterWidget = static_cast<QGraphicsSceneHoverEvent *>(event)->widget(); + } else if (event->type() == QEvent::GraphicsSceneHoverLeave) { + receivedLeaveEvent = true; + leaveWidget = static_cast<QGraphicsSceneHoverEvent *>(event)->widget(); + } + return QGraphicsRectItem::sceneEvent(event); + } + + bool receivedEnterEvent; + bool receivedLeaveEvent; + QWidget *enterWidget; + QWidget *leaveWidget; +}; + +void tst_QGraphicsView::hoverLeave() +{ + QGraphicsScene scene; + QGraphicsView view(&scene); + GraphicsItemWithHover *item = new GraphicsItemWithHover; + scene.addItem(item); + + // move the cursor out of the way + QCursor::setPos(1,1); + + view.show(); + QTest::qWaitForWindowShown(&view); + + QPoint pos = view.viewport()->mapToGlobal(view.mapFromScene(item->mapToScene(10, 10))); + QCursor::setPos(pos); + QTest::qWait(200); + QVERIFY(item->receivedEnterEvent); + QCOMPARE(item->enterWidget, view.viewport()); + + QCursor::setPos(0,0); + QTest::qWait(200); + QVERIFY(item->receivedLeaveEvent); + QCOMPARE(item->leaveWidget, view.viewport()); +} + QTEST_MAIN(tst_QGraphicsView) #include "tst_qgraphicsview.moc" diff --git a/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp b/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp index 69b1390..865243b 100644 --- a/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp +++ b/tests/auto/qitemselectionmodel/tst_qitemselectionmodel.cpp @@ -100,6 +100,8 @@ private slots: void testDifferentModels(); + void testValidRangesInSelectionsAfterReset(); + private: QAbstractItemModel *model; QItemSelectionModel *selection; @@ -2589,5 +2591,69 @@ void tst_QItemSelectionModel::testDifferentModels() QVERIFY(newSelection.isEmpty()); } +class SelectionObserver : public QObject +{ + Q_OBJECT +public: + SelectionObserver(QAbstractItemModel *model, QObject *parent = 0) + : QObject(parent), m_model(model), m_selectionModel(0) + { + connect(model, SIGNAL(modelReset()), SLOT(modelReset())); + } + + void setSelectionModel(QItemSelectionModel *selectionModel) + { + m_selectionModel = selectionModel; + connect(m_selectionModel, SIGNAL(selectionChanged(QItemSelection,QItemSelection)), SLOT(selectionChanged(QItemSelection,QItemSelection))); + } + + private slots: + void modelReset() + { + const QModelIndex idx = m_model->index(2, 0); + QVERIFY(idx.isValid()); + m_selectionModel->select(QItemSelection(idx, idx), QItemSelectionModel::Clear); + } + + void selectionChanged(const QItemSelection &selected, const QItemSelection &deselected) + { + foreach(const QItemSelectionRange &range, selected) + QVERIFY(range.isValid()); + foreach(const QItemSelectionRange &range, deselected) + QVERIFY(range.isValid()); + } + +private: + QAbstractItemModel *m_model; + QItemSelectionModel *m_selectionModel; +}; + +void tst_QItemSelectionModel::testValidRangesInSelectionsAfterReset() +{ + QStringListModel model; + + QStringList strings; + strings << "one" + << "two" + << "three" + << "four" + << "five"; + + model.setStringList(strings); + + SelectionObserver observer(&model); + + QItemSelectionModel selectionModel(&model); + + selectionModel.select(QItemSelection(model.index(1, 0), model.index(3, 0)), QItemSelectionModel::Select); + + // Cause d->ranges to contain something. + model.insertRows(2, 1); + + observer.setSelectionModel(&selectionModel); + + model.setStringList(strings); +} + QTEST_MAIN(tst_QItemSelectionModel) #include "tst_qitemselectionmodel.moc" diff --git a/tests/auto/qmainwindow/tst_qmainwindow.cpp b/tests/auto/qmainwindow/tst_qmainwindow.cpp index e427863..c82c566 100644 --- a/tests/auto/qmainwindow/tst_qmainwindow.cpp +++ b/tests/auto/qmainwindow/tst_qmainwindow.cpp @@ -701,10 +701,12 @@ void tst_QMainWindow::statusBar() // deleting the status bar should remove it from the main window QMainWindow mw; QStatusBar *sb = mw.statusBar(); - int indexOfSb = mw.layout()->indexOf(sb); + QMainWindowLayout *l = qFindChild<QMainWindowLayout *>(&mw); + QVERIFY(l); + int indexOfSb = l->indexOf(sb); QVERIFY(indexOfSb != -1); delete sb; - indexOfSb = mw.layout()->indexOf(sb); + indexOfSb = l->indexOf(sb); QVERIFY(indexOfSb == -1); } } diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp index f7f0519..29788a3 100644 --- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp +++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp @@ -299,6 +299,8 @@ private Q_SLOTS: void ioGetFromHttpBrokenChunkedEncoding(); void qtbug12908compressedHttpReply(); + void getFromUnreachableIp(); + // NOTE: This test must be last! void parentingRepliesToTheApp(); }; @@ -4573,6 +4575,20 @@ void tst_QNetworkReply::qtbug12908compressedHttpReply() QCOMPARE(reply->error(), QNetworkReply::NoError); } +void tst_QNetworkReply::getFromUnreachableIp() +{ + QNetworkAccessManager manager; + + QNetworkRequest request(QUrl("http://255.255.255.255/42/23/narf/narf/narf")); + QNetworkReplyPtr reply = manager.get(request); + + connect(reply, SIGNAL(finished()), &QTestEventLoop::instance(), SLOT(exitLoop())); + QTestEventLoop::instance().enterLoop(5); + QVERIFY(!QTestEventLoop::instance().timeout()); + + QVERIFY(reply->error() != QNetworkReply::NoError); +} + // NOTE: This test must be last testcase in tst_qnetworkreply! void tst_QNetworkReply::parentingRepliesToTheApp() { diff --git a/tests/auto/qstring/tst_qstring.cpp b/tests/auto/qstring/tst_qstring.cpp index af6b371..003332c 100644 --- a/tests/auto/qstring/tst_qstring.cpp +++ b/tests/auto/qstring/tst_qstring.cpp @@ -80,6 +80,7 @@ private slots: void check_QTextStream(); void check_QDataStream(); void fromRawData(); + void setRawData(); void endsWith(); void startsWith(); void setNum(); @@ -3077,7 +3078,9 @@ void tst_QString::fromRawData() { const QChar ptr[] = { 0x1234, 0x0000 }; QString cstr = QString::fromRawData(ptr, 1); + QVERIFY(cstr.isDetached()); QVERIFY(cstr.constData() == ptr); + QVERIFY(cstr == QString(ptr, 1)); cstr.squeeze(); QVERIFY(cstr.constData() == ptr); cstr.detach(); @@ -3088,6 +3091,41 @@ void tst_QString::fromRawData() QVERIFY(cstr.constData()[1] == QChar(0x0000)); } +void tst_QString::setRawData() +{ + const QChar ptr[] = { 0x1234, 0x0000 }; + const QChar ptr2[] = { 0x4321, 0x0000 }; + QString cstr; + + // This just tests the fromRawData() fallback + QVERIFY(!cstr.isDetached()); + cstr.setRawData(ptr, 1); + QVERIFY(cstr.isDetached()); + QVERIFY(cstr.constData() == ptr); + QVERIFY(cstr == QString(ptr, 1)); + + // This actually tests the recycling of the shared data object + QString::DataPtr csd = cstr.data_ptr(); + cstr.setRawData(ptr2, 1); + QVERIFY(cstr.isDetached()); + QVERIFY(cstr.constData() == ptr2); + QVERIFY(cstr == QString(ptr2, 1)); + QVERIFY(cstr.data_ptr() == csd); + + // This tests the discarding of the shared data object + cstr = "foo"; + QVERIFY(cstr.isDetached()); + QVERIFY(cstr.constData() != ptr2); + + // Another test of the fallback + csd = cstr.data_ptr(); + cstr.setRawData(ptr2, 1); + QVERIFY(cstr.isDetached()); + QVERIFY(cstr.constData() == ptr2); + QVERIFY(cstr == QString(ptr2, 1)); + QVERIFY(cstr.data_ptr() != csd); +} + void tst_QString::fromStdString() { #ifdef Q_CC_HPACC diff --git a/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp b/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp index dc071ab..18a0cb0 100644 --- a/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp +++ b/tests/auto/qtipc/qsharedmemory/tst_qsharedmemory.cpp @@ -107,6 +107,10 @@ private slots: void useTooMuchMemory(); void attachTooMuch(); + // unique keys + void uniqueKey_data(); + void uniqueKey(); + protected: int remove(const QString &key); @@ -795,6 +799,35 @@ void tst_QSharedMemory::simpleProcessProducerConsumer() QCOMPARE(failedProcesses, (unsigned int)(0)); } +void tst_QSharedMemory::uniqueKey_data() +{ + QTest::addColumn<QString>("key1"); + QTest::addColumn<QString>("key2"); + + QTest::newRow("null == null") << QString() << QString(); + QTest::newRow("key == key") << QString("key") << QString("key"); + QTest::newRow("key1 == key1") << QString("key1") << QString("key1"); + QTest::newRow("key != key1") << QString("key") << QString("key1"); + QTest::newRow("ke1y != key1") << QString("ke1y") << QString("key1"); + QTest::newRow("key1 != key2") << QString("key1") << QString("key2"); +} + +void tst_QSharedMemory::uniqueKey() +{ + QFETCH(QString, key1); + QFETCH(QString, key2); + + QSharedMemory sm1(key1); + QSharedMemory sm2(key2); + + bool setEqual = (key1 == key2); + bool keyEqual = (sm1.key() == sm2.key()); + bool nativeEqual = (sm1.nativeKey() == sm2.nativeKey()); + + QCOMPARE(keyEqual, setEqual); + QCOMPARE(nativeEqual, setEqual); +} + QTEST_MAIN(tst_QSharedMemory) #include "tst_qsharedmemory.moc" diff --git a/tests/auto/uic/baseline/gridalignment.ui b/tests/auto/uic/baseline/gridalignment.ui new file mode 100644 index 0000000..11c28b1 --- /dev/null +++ b/tests/auto/uic/baseline/gridalignment.ui @@ -0,0 +1,49 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>Form</class> + <widget class="QWidget" name="Form"> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>279</width> + <height>163</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QGridLayout" name="gridLayout"> + <item row="0" column="0" alignment="Qt::AlignLeft"> + <widget class="QPushButton" name="pushButton"> + <property name="text"> + <string>Left</string> + </property> + </widget> + </item> + <item row="0" column="1" alignment="Qt::AlignTop"> + <widget class="QPushButton" name="pushButton_3"> + <property name="text"> + <string>Top</string> + </property> + </widget> + </item> + <item row="1" column="0" alignment="Qt::AlignRight"> + <widget class="QPushButton" name="pushButton_2"> + <property name="text"> + <string>Right</string> + </property> + </widget> + </item> + <item row="1" column="1" alignment="Qt::AlignBottom"> + <widget class="QPushButton" name="pushButton_4"> + <property name="text"> + <string>Bottom</string> + </property> + </widget> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/tests/auto/uic/baseline/gridalignment.ui.h b/tests/auto/uic/baseline/gridalignment.ui.h new file mode 100644 index 0000000..8386190 --- /dev/null +++ b/tests/auto/uic/baseline/gridalignment.ui.h @@ -0,0 +1,83 @@ +/******************************************************************************** +** Form generated from reading UI file 'gridalignment.ui' +** +** Created: Fri Oct 22 14:33:59 2010 +** by: Qt User Interface Compiler version 4.8.0 +** +** WARNING! All changes made in this file will be lost when recompiling UI file! +********************************************************************************/ + +#ifndef GRIDALIGNMENT_H +#define GRIDALIGNMENT_H + +#include <QtCore/QVariant> +#include <QtGui/QAction> +#include <QtGui/QApplication> +#include <QtGui/QButtonGroup> +#include <QtGui/QGridLayout> +#include <QtGui/QHeaderView> +#include <QtGui/QPushButton> +#include <QtGui/QWidget> + +QT_BEGIN_NAMESPACE + +class Ui_Form +{ +public: + QGridLayout *gridLayout; + QPushButton *pushButton; + QPushButton *pushButton_3; + QPushButton *pushButton_2; + QPushButton *pushButton_4; + + void setupUi(QWidget *Form) + { + if (Form->objectName().isEmpty()) + Form->setObjectName(QString::fromUtf8("Form")); + Form->resize(279, 163); + gridLayout = new QGridLayout(Form); + gridLayout->setObjectName(QString::fromUtf8("gridLayout")); + pushButton = new QPushButton(Form); + pushButton->setObjectName(QString::fromUtf8("pushButton")); + + gridLayout->addWidget(pushButton, 0, 0, 1, 1, Qt::AlignLeft); + + pushButton_3 = new QPushButton(Form); + pushButton_3->setObjectName(QString::fromUtf8("pushButton_3")); + + gridLayout->addWidget(pushButton_3, 0, 1, 1, 1, Qt::AlignTop); + + pushButton_2 = new QPushButton(Form); + pushButton_2->setObjectName(QString::fromUtf8("pushButton_2")); + + gridLayout->addWidget(pushButton_2, 1, 0, 1, 1, Qt::AlignRight); + + pushButton_4 = new QPushButton(Form); + pushButton_4->setObjectName(QString::fromUtf8("pushButton_4")); + + gridLayout->addWidget(pushButton_4, 1, 1, 1, 1, Qt::AlignBottom); + + + retranslateUi(Form); + + QMetaObject::connectSlotsByName(Form); + } // setupUi + + void retranslateUi(QWidget *Form) + { + Form->setWindowTitle(QApplication::translate("Form", "Form", 0, QApplication::UnicodeUTF8)); + pushButton->setText(QApplication::translate("Form", "Left", 0, QApplication::UnicodeUTF8)); + pushButton_3->setText(QApplication::translate("Form", "Top", 0, QApplication::UnicodeUTF8)); + pushButton_2->setText(QApplication::translate("Form", "Right", 0, QApplication::UnicodeUTF8)); + pushButton_4->setText(QApplication::translate("Form", "Bottom", 0, QApplication::UnicodeUTF8)); + } // retranslateUi + +}; + +namespace Ui { + class Form: public Ui_Form {}; +} // namespace Ui + +QT_END_NAMESPACE + +#endif // GRIDALIGNMENT_H diff --git a/tests/benchmarks/declarative/creation/tst_creation.cpp b/tests/benchmarks/declarative/creation/tst_creation.cpp index 6bf7943..7026c40 100644 --- a/tests/benchmarks/declarative/creation/tst_creation.cpp +++ b/tests/benchmarks/declarative/creation/tst_creation.cpp @@ -243,7 +243,7 @@ void tst_creation::qobject_alloc() } } -struct QDeclarativeGraphics_DerivedObject : public QObject +struct QDeclarativeGraphics_Derived : public QObject { void setParent_noEvent(QObject *parent) { bool sce = d_ptr->sendChildEvents; @@ -255,7 +255,7 @@ struct QDeclarativeGraphics_DerivedObject : public QObject inline void QDeclarativeGraphics_setParent_noEvent(QObject *object, QObject *parent) { - static_cast<QDeclarativeGraphics_DerivedObject *>(object)->setParent_noEvent(parent); + static_cast<QDeclarativeGraphics_Derived *>(object)->setParent_noEvent(parent); } void tst_creation::itemtree_notree_cpp() diff --git a/tests/benchmarks/declarative/qmltime/qmltime.cpp b/tests/benchmarks/declarative/qmltime/qmltime.cpp index e1b73ca..f0a24f6 100644 --- a/tests/benchmarks/declarative/qmltime/qmltime.cpp +++ b/tests/benchmarks/declarative/qmltime/qmltime.cpp @@ -148,7 +148,68 @@ void Timer::runTest(QDeclarativeContext *context, uint iterations) void usage(const char *name) { - qWarning("Usage: %s [-iterations <count>] [-parent] <qml file>", name); + qWarning("Usage: %s [-iterations <count>] [-parent] <qml file>\n", name); + + qWarning("qmltime is a tool for benchmarking the runtime cost of instantiating\n" + "a QML component. It is typically run as follows:\n" + "\n" + "%s path/to/benchmark.qml\n" + "\n" + "If the -parent option is specified, the component being measured will also\n" + "be parented to an item already in the scene.\n" + "\n" + "If the -iterations option is specified, the benchmark will run the specified\n" + "number of iterations. If -iterations is not specified, 1024 iterations\n" + "are performed.\n" + "\n" + "qmltime expects the file to be benchmarked to contain a certain structure.\n" + "Specifically, it requires the presence of a QmlTime.Timer element. For example,\n" + "say we wanted to benchmark the following list delegate:\n" + "\n" + "Rectangle {\n" + " color: \"green\"\n" + " width: 400; height: 100\n" + " Text {\n" + " anchors.centerIn: parent\n" + " text: name\n" + " }\n" + "}\n" + "\n" + "we would create a benchmark file that looks like this:\n" + "\n" + "import QtQuick 1.0\n" + "import QmlTime 1.0 as QmlTime\n" + "\n" + "Item {\n" + "\n" + " property string name: \"Bob Smith\"\n" + "\n" + " QmlTime.Timer {\n" + " component: Rectangle {\n" + " color: \"green\"\n" + " width: 400; height: 100\n" + " Text {\n" + " anchors.centerIn: parent\n" + " text: name\n" + " }\n" + " }\n" + " }\n" + "}\n" + "\n" + "The outer Item functions as a dummy data provider for any additional\n" + "data required by the bindings in the component being benchmarked (in the\n" + "example above we provide a \"name\" property).\n" + "\n" + "When started, the component is instantiated once before running\n" + "the benchmark, which means that the reported time does not include\n" + "compile time (as the results of compilation are cached internally).\n" + "In this sense the times reported by qmltime best correspond to the\n" + "costs associated with delegate creation in the view classes, where the\n" + "same delegate is instantiated over and over. Conversely, it is not a\n" + "good approximation for e.g. Loader, which typically only instantiates\n" + "an element once (and so for Loader the compile time is very relevant\n" + "to the overall cost).", name); + exit(-1); } @@ -178,6 +239,8 @@ int main(int argc, char ** argv) } } else if (arg == "-parent") { willParent = true; + } else if (arg == "-help") { + usage(argv[0]); } else { filename = QLatin1String(argv[ii]); } diff --git a/tests/manual/bearerex/datatransferer.cpp b/tests/manual/bearerex/datatransferer.cpp index c3c13a8..c449bb1 100644 --- a/tests/manual/bearerex/datatransferer.cpp +++ b/tests/manual/bearerex/datatransferer.cpp @@ -121,7 +121,7 @@ void DataTransfererQTcp::readyRead() qDebug() << "BearerEx DataTransferQTcp data received: " << data; m_dataTransferOngoing = false; - // m_qsocket.error() returns uninitialized value in case no error has occured, + // m_qsocket.error() returns uninitialized value in case no error has occurred, // so emit '0' emit finished(0, bytesAvailable, "QAbstractSocket::SocketError"); } diff --git a/tests/manual/qtouchevent/multitouch.pro b/tests/manual/qtouchevent/qtouchevent.pro index de1ee06..de1ee06 100644 --- a/tests/manual/qtouchevent/multitouch.pro +++ b/tests/manual/qtouchevent/qtouchevent.pro |