summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/declarative')
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml17
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp28
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/chain.qml10
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml22
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test.qml14
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test2.qml10
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test3.qml2
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test4.qml14
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test5.qml10
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp131
-rw-r--r--tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp33
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp11
-rw-r--r--tests/auto/declarative/qdeclarativepathview/data/pathview0.qml2
-rw-r--r--tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp8
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/data/massive.pngbin0 -> 31834 bytes
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp40
-rw-r--r--tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml29
-rw-r--r--tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp9
-rw-r--r--tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.js11
-rw-r--r--tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.qml27
-rw-r--r--tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro20
-rw-r--r--tests/auto/declarative/qdeclarativescriptdebugging/tst_qdeclarativescriptdebugging.cpp154
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/anchorRewindBug.qml37
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/extendsBug.qml26
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/propertyErrors.qml2
-rw-r--r--tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp53
-rw-r--r--tests/auto/declarative/qdeclarativetext/data/rotated.qml18
-rw-r--r--tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp28
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp62
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp44
-rw-r--r--tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp60
-rw-r--r--tests/auto/declarative/qdeclarativevisualdatamodel/data/objectlist.qml3
-rw-r--r--tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp3
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/test.qml8
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/test2.qml10
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.pngbin2321 -> 2412 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.pngbin2380 -> 2443 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.pngbin2315 -> 2398 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.pngbin2372 -> 2390 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.pngbin2327 -> 2416 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.pngbin0 -> 2395 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml1280
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml5
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml4
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml4
46 files changed, 1586 insertions, 665 deletions
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml b/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml
new file mode 100644
index 0000000..804559c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/qtbug12295.qml
@@ -0,0 +1,17 @@
+import Qt 4.7
+
+Rectangle {
+ width: 200
+ height: 200
+ color: "blue"
+
+ Rectangle {
+ id: myRect
+ objectName: "myRect"
+ width: 100
+ height: 100
+ Behavior on x {
+ NumberAnimation {}
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp b/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
index 5c2c145..174967b 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
+++ b/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
@@ -80,6 +80,7 @@ private slots:
void startup();
void groupedPropertyCrash();
void runningTrue();
+ void sameValue();
};
void tst_qdeclarativebehaviors::simpleBehavior()
@@ -384,6 +385,33 @@ void tst_qdeclarativebehaviors::runningTrue()
QTRY_VERIFY(runningSpy.count() > 0);
}
+//QTBUG-12295
+void tst_qdeclarativebehaviors::sameValue()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/qtbug12295.qml"));
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QVERIFY(rect);
+
+ QDeclarativeRectangle *target = rect->findChild<QDeclarativeRectangle*>("myRect");
+ QVERIFY(target);
+
+ target->setX(100);
+ QCOMPARE(target->x(), qreal(100));
+
+ target->setProperty("x", 0);
+ QTRY_VERIFY(target->x() != qreal(0) && target->x() != qreal(100));
+ QTRY_VERIFY(target->x() == qreal(0)); //make sure Behavior has finished.
+
+ target->setX(100);
+ QCOMPARE(target->x(), qreal(100));
+
+ //this is the main point of the test -- the behavior needs to be triggered again
+ //even though we set 0 twice in a row.
+ target->setProperty("x", 0);
+ QTRY_VERIFY(target->x() != qreal(0) && target->x() != qreal(100));
+}
+
QTEST_MAIN(tst_qdeclarativebehaviors)
#include "tst_qdeclarativebehaviors.moc"
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml b/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml
index 6c39f20..42b50cf 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/chain.qml
@@ -4,11 +4,11 @@ Rectangle {
id: root
width:300; height:400
- property bool focus1: root.wantsFocus
- property bool focus2: item1.wantsFocus
- property bool focus3: fs1.wantsFocus
- property bool focus4: fs2.wantsFocus
- property bool focus5: theItem.wantsFocus
+ property bool focus1: root.activeFocus
+ property bool focus2: item1.activeFocus
+ property bool focus3: fs1.activeFocus
+ property bool focus4: fs2.activeFocus
+ property bool focus5: theItem.activeFocus
Item {
id: item1
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml b/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml
index af9c420..9144854 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/forcefocus.qml
@@ -15,28 +15,28 @@ Rectangle {
height: 120; width: 420
color: "transparent"
- border.width: 5; border.color: firstScope.wantsFocus?"blue":"black"
+ border.width: 5; border.color: firstScope.activeFocus?"blue":"black"
Rectangle {
id: item1; objectName: "item1"
x: 10; y: 10; width: 100; height: 100; color: "green"
- border.width: 5; border.color: wantsFocus?"blue":"black"
+ border.width: 5; border.color: activeFocus?"blue":"black"
focus: true
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
Rectangle {
id: item2; objectName: "item2"
x: 310; y: 10; width: 100; height: 100; color: "green"
- border.width: 5; border.color: wantsFocus?"blue":"black"
+ border.width: 5; border.color: activeFocus?"blue":"black"
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
}
@@ -50,32 +50,32 @@ Rectangle {
y: 160; height: 120; width: 420
color: "transparent"
- border.width: 5; border.color: secondScope.wantsFocus?"blue":"black"
+ border.width: 5; border.color: secondScope.activeFocus?"blue":"black"
Rectangle {
id: item4; objectName: "item4"
x: 10; y: 10; width: 100; height: 100; color: "green"
- border.width: 5; border.color: wantsFocus?"blue":"black"
+ border.width: 5; border.color: activeFocus?"blue":"black"
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
Rectangle {
id: item5; objectName: "item5"
x: 310; y: 10; width: 100; height: 100; color: "green"
- border.width: 5; border.color: wantsFocus?"blue":"black"
+ border.width: 5; border.color: activeFocus?"blue":"black"
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
}
}
}
Keys.onDigit4Pressed: item4.focus = true
- Keys.onDigit5Pressed: item5.forceFocus()
+ Keys.onDigit5Pressed: item5.forceActiveFocus()
}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
index aa43ba8..55be103 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
@@ -20,21 +20,21 @@ Rectangle {
color: "transparent"
border.width: 5
- border.color: myScope.wantsFocus?"blue":"black"
+ border.color: myScope.activeFocus?"blue":"black"
Rectangle {
id: item1; objectName: "item1"
x: 10; y: 10
width: 100; height: 100; color: "green"
border.width: 5
- border.color: wantsFocus?"blue":"black"
+ border.color: activeFocus?"blue":"black"
Keys.onDigit9Pressed: console.debug("Top Left");
KeyNavigation.right: item2
focus: true
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
@@ -43,13 +43,13 @@ Rectangle {
x: 310; y: 10
width: 100; height: 100; color: "green"
border.width: 5
- border.color: wantsFocus?"blue":"black"
+ border.color: activeFocus?"blue":"black"
KeyNavigation.left: item1
Keys.onDigit9Pressed: console.log("Top Right");
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
}
@@ -63,14 +63,14 @@ Rectangle {
x: 10; y: 300
width: 100; height: 100; color: "green"
border.width: 5
- border.color: wantsFocus?"blue":"black"
+ border.color: activeFocus?"blue":"black"
Keys.onDigit9Pressed: console.log("Bottom Left");
KeyNavigation.up: myScope
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml
index 216277e..5ed701d 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml
@@ -10,27 +10,27 @@ Rectangle {
FocusScope {
y: 100
focus: true; objectName: "item1"
- Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ Rectangle { width: 50; height: 50; color: parent.activeFocus?"red":"blue" }
FocusScope {
y: 100
focus: true; objectName: "item2"
- Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ Rectangle { width: 50; height: 50; color: parent.activeFocus?"red":"blue" }
FocusScope {
y: 100
focus: true; objectName: "item3"
- Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ Rectangle { width: 50; height: 50; color: parent.activeFocus?"red":"blue" }
FocusScope {
y: 100
focus: true; objectName: "item4"
- Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ Rectangle { width: 50; height: 50; color: parent.activeFocus?"red":"blue" }
FocusScope {
y: 100
focus: true; objectName: "item5"
- Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ Rectangle { width: 50; height: 50; color: parent.activeFocus?"red":"blue" }
}
}
}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml
index 2ac0d18..c6d112f 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml
@@ -13,7 +13,7 @@ Rectangle {
ListElement { name: "4" }
ListElement { name: "5" }
ListElement { name: "6" }
- ListElement { name: "6" }
+ ListElement { name: "7" }
ListElement { name: "8" }
ListElement { name: "9" }
}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml
index 8862b39..3c6d3bd 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml
@@ -19,21 +19,21 @@ Rectangle {
color: "transparent"
border.width: 5
- border.color: myScope.wantsFocus?"blue":"black"
+ border.color: myScope.activeFocus?"blue":"black"
Rectangle {
id: item1; objectName: "item1"
x: 10; y: 10
width: 100; height: 100; color: "green"
border.width: 5
- border.color: wantsFocus?"blue":"black"
+ border.color: activeFocus?"blue":"black"
Keys.onDigit9Pressed: console.log("Error - Top Left");
KeyNavigation.right: item2
focus: true
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
@@ -42,13 +42,13 @@ Rectangle {
x: 310; y: 10
width: 100; height: 100; color: "green"
border.width: 5
- border.color: wantsFocus?"blue":"black"
+ border.color: activeFocus?"blue":"black"
KeyNavigation.left: item1
Keys.onDigit9Pressed: console.log("Error - Top Right");
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
}
@@ -62,14 +62,14 @@ Rectangle {
x: 10; y: 300
width: 100; height: 100; color: "green"
border.width: 5
- border.color: wantsFocus?"blue":"black"
+ border.color: activeFocus?"blue":"black"
Keys.onDigit9Pressed: console.log("Error - Bottom Left");
KeyNavigation.up: myScope
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
index cdb5164..4417d5f 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
@@ -20,13 +20,13 @@ Rectangle {
color: "transparent"
border.width: 5
- border.color: myScope.wantsFocus?"blue":"black"
+ border.color: myScope.activeFocus?"blue":"black"
Rectangle {
x: 10; y: 10
width: 100; height: 100; color: "green"
border.width: 5
- border.color: item1.wantsFocus?"blue":"black"
+ border.color: item1.activeFocus?"blue":"black"
}
TextEdit {
@@ -47,13 +47,13 @@ Rectangle {
x: 310; y: 10
width: 100; height: 100; color: "green"
border.width: 5
- border.color: wantsFocus?"blue":"black"
+ border.color: activeFocus?"blue":"black"
KeyNavigation.left: item1
Keys.onReturnPressed: console.log("Top Right");
Rectangle {
width: 50; height: 50; anchors.centerIn: parent
- color: parent.focus?"red":"transparent"
+ color: parent.activeFocus?"red":"transparent"
}
}
}
@@ -66,7 +66,7 @@ Rectangle {
x: 10; y: 300
width: 100; height: 100; color: "green"
border.width: 5
- border.color: item3.wantsFocus?"blue":"black"
+ border.color: item3.activeFocus?"blue":"black"
}
TextEdit {
diff --git a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
index 2559087..b0c9c03 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
+++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
@@ -118,22 +118,22 @@ void tst_qdeclarativefocusscope::basic()
QVERIFY(view->hasFocus());
QVERIFY(view->scene()->hasFocus());
- QVERIFY(item0->wantsFocus() == true);
- QVERIFY(item1->hasFocus() == true);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->hasFocus() == false);
+ QVERIFY(item0->hasActiveFocus() == true);
+ QVERIFY(item1->hasActiveFocus() == true);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == false);
QTest::keyClick(view, Qt::Key_Right);
- QVERIFY(item0->wantsFocus() == true);
- QVERIFY(item1->hasFocus() == false);
- QVERIFY(item2->hasFocus() == true);
- QVERIFY(item3->hasFocus() == false);
+ QVERIFY(item0->hasActiveFocus() == true);
+ QVERIFY(item1->hasActiveFocus() == false);
+ QVERIFY(item2->hasActiveFocus() == true);
+ QVERIFY(item3->hasActiveFocus() == false);
QTest::keyClick(view, Qt::Key_Down);
- QVERIFY(item0->wantsFocus() == false);
- QVERIFY(item1->hasFocus() == false);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->hasFocus() == true);
+ QVERIFY(item0->hasActiveFocus() == false);
+ QVERIFY(item1->hasActiveFocus() == false);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == true);
delete view;
}
@@ -166,16 +166,11 @@ void tst_qdeclarativefocusscope::nested()
QVERIFY(view->hasFocus());
QVERIFY(view->scene()->hasFocus());
- QVERIFY(item1->wantsFocus() == true);
- QVERIFY(item1->hasFocus() == false);
- QVERIFY(item2->wantsFocus() == true);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->wantsFocus() == true);
- QVERIFY(item3->hasFocus() == false);
- QVERIFY(item4->wantsFocus() == true);
- QVERIFY(item4->hasFocus() == false);
- QVERIFY(item5->wantsFocus() == true);
- QVERIFY(item5->hasFocus() == true);
+ QVERIFY(item1->hasActiveFocus() == true);
+ QVERIFY(item2->hasActiveFocus() == true);
+ QVERIFY(item3->hasActiveFocus() == true);
+ QVERIFY(item4->hasActiveFocus() == true);
+ QVERIFY(item5->hasActiveFocus() == true);
delete view;
}
@@ -204,22 +199,22 @@ void tst_qdeclarativefocusscope::noFocus()
QVERIFY(view->hasFocus());
QVERIFY(view->scene()->hasFocus());
- QVERIFY(item0->wantsFocus() == false);
- QVERIFY(item1->hasFocus() == false);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->hasFocus() == false);
+ QVERIFY(item0->hasActiveFocus() == false);
+ QVERIFY(item1->hasActiveFocus() == false);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == false);
QTest::keyClick(view, Qt::Key_Right);
- QVERIFY(item0->wantsFocus() == false);
- QVERIFY(item1->hasFocus() == false);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->hasFocus() == false);
+ QVERIFY(item0->hasActiveFocus() == false);
+ QVERIFY(item1->hasActiveFocus() == false);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == false);
QTest::keyClick(view, Qt::Key_Down);
- QVERIFY(item0->wantsFocus() == false);
- QVERIFY(item1->hasFocus() == false);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->hasFocus() == false);
+ QVERIFY(item0->hasActiveFocus() == false);
+ QVERIFY(item1->hasActiveFocus() == false);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == false);
delete view;
}
@@ -249,32 +244,32 @@ void tst_qdeclarativefocusscope::textEdit()
QVERIFY(view->hasFocus());
QVERIFY(view->scene()->hasFocus());
- QVERIFY(item0->wantsFocus() == true);
- QVERIFY(item1->hasFocus() == true);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->hasFocus() == false);
+ QVERIFY(item0->hasActiveFocus() == true);
+ QVERIFY(item1->hasActiveFocus() == true);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == false);
QTest::keyClick(view, Qt::Key_Right);
- QVERIFY(item0->wantsFocus() == true);
- QVERIFY(item1->hasFocus() == true);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->hasFocus() == false);
+ QVERIFY(item0->hasActiveFocus() == true);
+ QVERIFY(item1->hasActiveFocus() == true);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == false);
QTest::keyClick(view, Qt::Key_Right);
QTest::keyClick(view, Qt::Key_Right);
QTest::keyClick(view, Qt::Key_Right);
QTest::keyClick(view, Qt::Key_Right);
QTest::keyClick(view, Qt::Key_Right);
- QVERIFY(item0->wantsFocus() == true);
- QVERIFY(item1->hasFocus() == false);
- QVERIFY(item2->hasFocus() == true);
- QVERIFY(item3->hasFocus() == false);
+ QVERIFY(item0->hasActiveFocus() == true);
+ QVERIFY(item1->hasActiveFocus() == false);
+ QVERIFY(item2->hasActiveFocus() == true);
+ QVERIFY(item3->hasActiveFocus() == false);
QTest::keyClick(view, Qt::Key_Down);
- QVERIFY(item0->wantsFocus() == false);
- QVERIFY(item1->hasFocus() == false);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->hasFocus() == true);
+ QVERIFY(item0->hasActiveFocus() == false);
+ QVERIFY(item1->hasActiveFocus() == false);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == true);
delete view;
}
@@ -308,28 +303,28 @@ void tst_qdeclarativefocusscope::forceFocus()
QVERIFY(view->hasFocus());
QVERIFY(view->scene()->hasFocus());
- QVERIFY(item0->wantsFocus() == true);
- QVERIFY(item1->hasFocus() == true);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->wantsFocus() == false);
- QVERIFY(item4->hasFocus() == false);
- QVERIFY(item5->hasFocus() == false);
+ QVERIFY(item0->hasActiveFocus() == true);
+ QVERIFY(item1->hasActiveFocus() == true);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == false);
+ QVERIFY(item4->hasActiveFocus() == false);
+ QVERIFY(item5->hasActiveFocus() == false);
QTest::keyClick(view, Qt::Key_4);
- QVERIFY(item0->wantsFocus() == true);
- QVERIFY(item1->hasFocus() == true);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->wantsFocus() == false);
- QVERIFY(item4->hasFocus() == false);
- QVERIFY(item5->hasFocus() == false);
+ QVERIFY(item0->hasActiveFocus() == true);
+ QVERIFY(item1->hasActiveFocus() == true);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == false);
+ QVERIFY(item4->hasActiveFocus() == false);
+ QVERIFY(item5->hasActiveFocus() == false);
QTest::keyClick(view, Qt::Key_5);
- QVERIFY(item0->wantsFocus() == false);
- QVERIFY(item1->hasFocus() == false);
- QVERIFY(item2->hasFocus() == false);
- QVERIFY(item3->wantsFocus() == true);
- QVERIFY(item4->hasFocus() == false);
- QVERIFY(item5->hasFocus() == true);
+ QVERIFY(item0->hasActiveFocus() == false);
+ QVERIFY(item1->hasActiveFocus() == false);
+ QVERIFY(item2->hasActiveFocus() == false);
+ QVERIFY(item3->hasActiveFocus() == true);
+ QVERIFY(item4->hasActiveFocus() == false);
+ QVERIFY(item5->hasActiveFocus() == true);
delete view;
}
diff --git a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
index 38fd458..b8d2828 100644
--- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
+++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
@@ -136,6 +136,7 @@ void tst_qdeclarativeimage::imageSource_data()
QTest::newRow("local async not found") << QUrl::fromLocalFile(SRCDIR "/data/no-such-file-1.png").toString() << 0.0 << 0.0 << false
<< true << "file::2:1: QML Image: Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file-1.png").toString();
QTest::newRow("remote") << SERVER_ADDR "/colors.png" << 120.0 << 120.0 << true << false << "";
+ QTest::newRow("remote redirected") << SERVER_ADDR "/oldcolors.png" << 120.0 << 120.0 << true << false << "";
QTest::newRow("remote svg") << SERVER_ADDR "/heart.svg" << 550.0 << 500.0 << true << false << "";
QTest::newRow("remote not found") << SERVER_ADDR "/no-such-file.png" << 0.0 << 0.0 << true
<< false << "file::2:1: QML Image: Error downloading " SERVER_ADDR "/no-such-file.png - server replied: Not found";
@@ -155,6 +156,7 @@ void tst_qdeclarativeimage::imageSource()
if (remote) {
QVERIFY(server.isValid());
server.serveDirectory(SRCDIR "/data");
+ server.addRedirect("oldcolors.png", SERVER_ADDR "/colors.png");
}
if (!error.isEmpty())
diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
index ffb2105..d76d360 100644
--- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
+++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
@@ -371,7 +371,7 @@ void tst_QDeclarativeItem::keyNavigation()
QDeclarativeItem *item = findItem<QDeclarativeItem>(canvas->rootObject(), "item1");
QVERIFY(item);
- QVERIFY(item->hasFocus());
+ QVERIFY(item->hasActiveFocus());
// right
QKeyEvent key(QEvent::KeyPress, Qt::Key_Right, Qt::NoModifier, "", false, 1);
@@ -380,7 +380,7 @@ void tst_QDeclarativeItem::keyNavigation()
item = findItem<QDeclarativeItem>(canvas->rootObject(), "item2");
QVERIFY(item);
- QVERIFY(item->hasFocus());
+ QVERIFY(item->hasActiveFocus());
// down
key = QKeyEvent(QEvent::KeyPress, Qt::Key_Down, Qt::NoModifier, "", false, 1);
@@ -389,7 +389,7 @@ void tst_QDeclarativeItem::keyNavigation()
item = findItem<QDeclarativeItem>(canvas->rootObject(), "item4");
QVERIFY(item);
- QVERIFY(item->hasFocus());
+ QVERIFY(item->hasActiveFocus());
// left
key = QKeyEvent(QEvent::KeyPress, Qt::Key_Left, Qt::NoModifier, "", false, 1);
@@ -398,7 +398,7 @@ void tst_QDeclarativeItem::keyNavigation()
item = findItem<QDeclarativeItem>(canvas->rootObject(), "item3");
QVERIFY(item);
- QVERIFY(item->hasFocus());
+ QVERIFY(item->hasActiveFocus());
// up
key = QKeyEvent(QEvent::KeyPress, Qt::Key_Up, Qt::NoModifier, "", false, 1);
@@ -407,7 +407,7 @@ void tst_QDeclarativeItem::keyNavigation()
item = findItem<QDeclarativeItem>(canvas->rootObject(), "item1");
QVERIFY(item);
- QVERIFY(item->hasFocus());
+ QVERIFY(item->hasActiveFocus());
// tab
key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1);
@@ -416,7 +416,7 @@ void tst_QDeclarativeItem::keyNavigation()
item = findItem<QDeclarativeItem>(canvas->rootObject(), "item2");
QVERIFY(item);
- QVERIFY(item->hasFocus());
+ QVERIFY(item->hasActiveFocus());
// backtab
key = QKeyEvent(QEvent::KeyPress, Qt::Key_Backtab, Qt::NoModifier, "", false, 1);
@@ -425,7 +425,7 @@ void tst_QDeclarativeItem::keyNavigation()
item = findItem<QDeclarativeItem>(canvas->rootObject(), "item1");
QVERIFY(item);
- QVERIFY(item->hasFocus());
+ QVERIFY(item->hasActiveFocus());
delete canvas;
}
@@ -618,21 +618,21 @@ void tst_QDeclarativeItem::mouseFocus()
QDeclarativeItem *item = findItem<QDeclarativeItem>(canvas->rootObject(), "declarativeItem");
QVERIFY(item);
- QSignalSpy focusSpy(item, SIGNAL(focusChanged(bool)));
+ QSignalSpy focusSpy(item, SIGNAL(activeFocusChanged(bool)));
QTest::mouseClick(canvas->viewport(), Qt::LeftButton, 0, canvas->mapFromScene(item->scenePos()));
QApplication::processEvents();
QCOMPARE(focusSpy.count(), 1);
- QVERIFY(item->hasFocus());
+ QVERIFY(item->hasActiveFocus());
// make sure focusable graphics widget underneath does not steal focus
QTest::mouseClick(canvas->viewport(), Qt::LeftButton, 0, canvas->mapFromScene(item->scenePos()));
QApplication::processEvents();
QCOMPARE(focusSpy.count(), 1);
- QVERIFY(item->hasFocus());
+ QVERIFY(item->hasActiveFocus());
item->setFocus(false);
- QVERIFY(!item->hasFocus());
+ QVERIFY(!item->hasActiveFocus());
QCOMPARE(focusSpy.count(), 2);
item->setFocus(true);
QCOMPARE(focusSpy.count(), 3);
@@ -664,7 +664,8 @@ void tst_QDeclarativeItem::propertyChanges()
QSignalSpy baselineOffsetSpy(item, SIGNAL(baselineOffsetChanged(qreal)));
QSignalSpy childrenRectSpy(parentItem, SIGNAL(childrenRectChanged(QRectF)));
QSignalSpy focusSpy(item, SIGNAL(focusChanged(bool)));
- QSignalSpy wantsFocusSpy(parentItem, SIGNAL(wantsFocusChanged(bool)));
+ QSignalSpy wantsFocusSpy(parentItem, SIGNAL(activeFocusChanged(bool)));
+ QSignalSpy childrenChangedSpy(parentItem, SIGNAL(childrenChanged()));
item->setParentItem(parentItem);
item->setWidth(100.0);
@@ -677,6 +678,10 @@ void tst_QDeclarativeItem::propertyChanges()
QList<QVariant> parentArguments = parentSpy.first();
QVERIFY(parentArguments.count() == 1);
QCOMPARE(item->parentItem(), qvariant_cast<QDeclarativeItem *>(parentArguments.at(0)));
+ QCOMPARE(childrenChangedSpy.count(),1);
+
+ item->setParentItem(parentItem);
+ QCOMPARE(childrenChangedSpy.count(),1);
QCOMPARE(item->width(), 100.0);
QCOMPARE(widthSpy.count(),1);
@@ -696,14 +701,14 @@ void tst_QDeclarativeItem::propertyChanges()
QVERIFY(childrenRectArguments.count() == 1);
QCOMPARE(parentItem->childrenRect(), childrenRectArguments.at(0).toRectF());
- QCOMPARE(item->hasFocus(), true);
+ QCOMPARE(item->hasActiveFocus(), true);
QCOMPARE(focusSpy.count(),1);
QList<QVariant> focusArguments = focusSpy.first();
QVERIFY(focusArguments.count() == 1);
QCOMPARE(focusArguments.at(0).toBool(), true);
+ QCOMPARE(parentItem->hasActiveFocus(), false);
QCOMPARE(parentItem->hasFocus(), false);
- QCOMPARE(parentItem->wantsFocus(), false);
QCOMPARE(wantsFocusSpy.count(),0);
delete canvas;
diff --git a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
index 5a10372..c9bb467 100644
--- a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
+++ b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
@@ -137,6 +137,17 @@ void tst_QDeclarativeMouseArea::dragProperties()
QCOMPARE(yminSpy.count(),1);
QCOMPARE(ymaxSpy.count(),1);
+ // filterChildren
+ QSignalSpy filterChildrenSpy(drag, SIGNAL(filterChildrenChanged()));
+
+ drag->setFilterChildren(true);
+
+ QVERIFY(drag->filterChildren());
+ QCOMPARE(filterChildrenSpy.count(), 1);
+
+ drag->setFilterChildren(true);
+ QCOMPARE(filterChildrenSpy.count(), 1);
+
delete canvas;
}
diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml b/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml
index 8956205..ff6f224 100644
--- a/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml
+++ b/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml
@@ -6,6 +6,7 @@ Rectangle {
property int currentB: -1
property real delegateWidth: 60
property real delegateHeight: 20
+ property real delegateScale: 1.0
width: 240
height: 320
color: "#ffffff"
@@ -17,6 +18,7 @@ Rectangle {
objectName: "wrapper"
height: root.delegateHeight
width: root.delegateWidth
+ scale: root.delegateScale
color: PathView.isCurrentItem ? "lightsteelblue" : "white"
border.color: "black"
Text {
diff --git a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
index bf1e13a..fdbb16d 100644
--- a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
+++ b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
@@ -451,11 +451,19 @@ void tst_QDeclarativePathView::pathMoved()
QCOMPARE(firstItem->pos() + offset, start);
// Change delegate size
+ pathview->setOffset(0.1);
+ pathview->setOffset(0.0);
canvas->rootObject()->setProperty("delegateWidth", 30);
QCOMPARE(firstItem->width(), 30.0);
offset.setX(firstItem->width()/2);
QTRY_COMPARE(firstItem->pos() + offset, start);
+ // Change delegate scale
+ pathview->setOffset(0.1);
+ pathview->setOffset(0.0);
+ canvas->rootObject()->setProperty("delegateScale", 1.2);
+ QTRY_COMPARE(firstItem->pos() + offset, start);
+
delete canvas;
}
diff --git a/tests/auto/declarative/qdeclarativepixmapcache/data/massive.png b/tests/auto/declarative/qdeclarativepixmapcache/data/massive.png
new file mode 100644
index 0000000..bc6cc9e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativepixmapcache/data/massive.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
index 0c7780c..16d2063 100644
--- a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
+++ b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
@@ -70,6 +70,7 @@ private slots:
void single_data();
void parallel();
void parallel_data();
+ void massive();
private:
QDeclarativeEngine engine;
@@ -276,6 +277,45 @@ void tst_qdeclarativepixmapcache::parallel()
qDeleteAll(pixmaps);
}
+void tst_qdeclarativepixmapcache::massive()
+{
+ QUrl url = thisfile.resolved(QUrl("data/massive.png"));
+
+ // Confirm that massive images remain in the cache while they are
+ // in use by the application.
+ {
+ qint64 cachekey = 0;
+ QDeclarativePixmap p(0, url);
+ QVERIFY(p.isReady());
+ QVERIFY(p.pixmap().size() == QSize(10000, 1000));
+ cachekey = p.pixmap().cacheKey();
+
+ QDeclarativePixmap p2(0, url);
+ QVERIFY(p2.isReady());
+ QVERIFY(p2.pixmap().size() == QSize(10000, 1000));
+
+ QVERIFY(p2.pixmap().cacheKey() == cachekey);
+ }
+
+ // Confirm that massive images are removed from the cache when
+ // they become unused
+ {
+ qint64 cachekey = 0;
+ {
+ QDeclarativePixmap p(0, url);
+ QVERIFY(p.isReady());
+ QVERIFY(p.pixmap().size() == QSize(10000, 1000));
+ cachekey = p.pixmap().cacheKey();
+ }
+
+ QDeclarativePixmap p2(0, url);
+ QVERIFY(p2.isReady());
+ QVERIFY(p2.pixmap().size() == QSize(10000, 1000));
+
+ QVERIFY(p2.pixmap().cacheKey() != cachekey);
+ }
+}
+
QTEST_MAIN(tst_qdeclarativepixmapcache)
#include "tst_qdeclarativepixmapcache.moc"
diff --git a/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml b/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml
index e8dd8cc..4810736 100644
--- a/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml
+++ b/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml
@@ -4,21 +4,27 @@
import Qt 4.7
Rectangle {
+ id: root
color: "lightgray"
width: 240
height: 320
+ property variant itemModel: itemModel1
function checkProperties() {
testObject.error = false;
- if (testObject.useModel && view.model != itemModel) {
+ if (testObject.useModel && view.model != root.itemModel) {
console.log("model property incorrect");
testObject.error = true;
}
}
+ function switchModel() {
+ root.itemModel = itemModel2
+ }
+
VisualItemModel {
- id: itemModel
- objectName: "itemModel"
+ id: itemModel1
+ objectName: "itemModel1"
Rectangle {
objectName: "item1"
height: 50; width: 100; color: "#FFFEF0"
@@ -36,12 +42,27 @@ Rectangle {
}
}
+ VisualItemModel {
+ id: itemModel2
+ objectName: "itemModel2"
+ Rectangle {
+ objectName: "item4"
+ height: 50; width: 100; color: "#FFFEF0"
+ Text { objectName: "text4"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
+ }
+ Rectangle {
+ objectName: "item5"
+ height: 50; width: 100; color: "#F0FFF7"
+ Text { objectName: "text5"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
+ }
+ }
+
Column {
objectName: "container"
Repeater {
id: view
objectName: "repeater"
- model: testObject.useModel ? itemModel : 0
+ model: testObject.useModel ? root.itemModel : 0
}
}
}
diff --git a/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp
index 7299a43..623b3d7 100644
--- a/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp
+++ b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp
@@ -361,6 +361,15 @@ void tst_QDeclarativeRepeater::itemModel()
QVERIFY(qobject_cast<QObject*>(container->childItems().at(2))->objectName() == "item3");
QVERIFY(container->childItems().at(3) == repeater);
+ QMetaObject::invokeMethod(canvas->rootObject(), "switchModel");
+ QCOMPARE(container->childItems().count(), 3);
+ QVERIFY(qobject_cast<QObject*>(container->childItems().at(0))->objectName() == "item4");
+ QVERIFY(qobject_cast<QObject*>(container->childItems().at(1))->objectName() == "item5");
+ QVERIFY(container->childItems().at(2) == repeater);
+
+ testObject->setUseModel(false);
+ QCOMPARE(container->childItems().count(), 1);
+
delete testObject;
delete canvas;
}
diff --git a/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.js b/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.js
new file mode 100644
index 0000000..8decbf0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.js
@@ -0,0 +1,11 @@
+
+function function2InScript(a)
+{
+ mainRectangle.foo = a;
+}
+
+
+function functionInScript(a , b)
+{
+ function2InScript(a + b);
+}
diff --git a/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.qml b/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.qml
new file mode 100644
index 0000000..ad627ef
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativescriptdebugging/data/backtrace1.qml
@@ -0,0 +1,27 @@
+import Qt 4.7
+import Qt.test 1.0
+import "backtrace1.js" as Script
+
+Rectangle {
+ id: mainRectangle
+
+ property string foo: "Default";
+ width: 200
+ height: 200
+
+
+ MyTestObject {
+
+ function append(a, b) {
+ return a + " " + b;
+ }
+
+
+ id: testObject;
+ someProperty: append("Hello", mainRectangle.foo)
+
+ onSignaled: {
+ Script.functionInScript(value , "b");
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro b/tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro
new file mode 100644
index 0000000..c2d30a0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativescriptdebugging/qdeclarativescriptdebugging.pro
@@ -0,0 +1,20 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative script
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qdeclarativescriptdebugging.cpp
+INCLUDEPATH += ../shared
+
+# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage
+# LIBS += -lgcov
+
+symbian: {
+ importFiles.sources = data
+ importFiles.path = .
+ DEPLOYMENT = importFiles
+} else {
+ DEFINES += SRCDIR=\\\"$$PWD\\\"
+}
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativescriptdebugging/tst_qdeclarativescriptdebugging.cpp b/tests/auto/declarative/qdeclarativescriptdebugging/tst_qdeclarativescriptdebugging.cpp
new file mode 100644
index 0000000..b0743c0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativescriptdebugging/tst_qdeclarativescriptdebugging.cpp
@@ -0,0 +1,154 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativeitem.h>
+#include <QtDeclarative/qdeclarativecontext.h>
+#include <QtCore/QDir>
+#include <QtScript/QScriptEngineAgent>
+#include <private/qdeclarativeengine_p.h>
+
+class MyTestObject : public QObject {
+ Q_OBJECT
+ Q_PROPERTY(QString someProperty READ someProperty WRITE setSomeProperty NOTIFY somePropertyChanged)
+
+public:
+ QString someProperty() { return _someProperty; }
+ void setSomeProperty(const QString &p) { _someProperty = p; }
+ QString _someProperty;
+
+ void emitSignal(const QString &value) { emit signaled(value); }
+
+signals:
+ void signaled(const QString &value);
+ void somePropertyChanged();
+};
+
+
+class BtAgent : public QScriptEngineAgent {
+public:
+ BtAgent(QScriptEngine *engine) : QScriptEngineAgent(engine)
+ { count = 0; engine->setAgent(this); }
+
+ QStringList bt;
+ int count;
+ int breakpoint;
+ void positionChange(qint64 , int lineNumber, int )
+ {
+ if(lineNumber == breakpoint) {
+ count++;
+ bt = engine()->currentContext()->backtrace();
+ }
+ }
+};
+
+
+
+/*
+This test covers evaluation of ECMAScript expressions and bindings from within
+QML. This does not include static QML language issues.
+
+Static QML language issues are covered in qmllanguage
+*/
+inline QUrl TEST_FILE(const QString &filename)
+{
+ QFileInfo fileInfo(__FILE__);
+ return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath("data/" + filename));
+}
+
+inline QUrl TEST_FILE(const char *filename)
+{
+ return TEST_FILE(QLatin1String(filename));
+}
+
+class tst_qdeclarativescriptdebugging : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qdeclarativescriptdebugging() {}
+
+private slots:
+ void initTestCase();
+ void backtrace1();
+};
+
+void tst_qdeclarativescriptdebugging::initTestCase()
+{
+ qmlRegisterType<MyTestObject>("Qt.test", 1,0, "MyTestObject");
+}
+
+void tst_qdeclarativescriptdebugging::backtrace1()
+{
+ {
+ QDeclarativeEngine engine;
+ QUrl file = TEST_FILE("backtrace1.qml");
+ QDeclarativeComponent component(&engine, file);
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem *>(component.create());
+ QVERIFY(item);
+ MyTestObject *obj = item->findChild<MyTestObject *>();
+ QVERIFY(obj);
+ QCOMPARE(obj->someProperty(), QString("Hello Default"));
+
+ QDeclarativeEnginePrivate *ep = QDeclarativeEnginePrivate::get(&engine);
+ BtAgent agent(&ep->scriptEngine);
+ agent.breakpoint = 16;
+
+ obj->emitSignal("blah");
+ QCOMPARE(obj->someProperty(), QString("Hello blahb"));
+ QCOMPARE(agent.count, 1);
+
+ QStringList expected;
+ expected << "append(a = 'Hello', b = 'blahb') at @PREFIX@/backtrace1.qml:16"
+ << "$someProperty() at @PREFIX@/backtrace1.qml:21"
+ << "function2InScript(a = 'blahb') at @PREFIX@/backtrace1.js:4"
+ << "functionInScript(a = 'blah', b = 'b') at @PREFIX@/backtrace1.js:10"
+ << "onSignaled() at @PREFIX@/backtrace1.qml:24"
+ << "<global>() at -1";
+ expected.replaceInStrings("@PREFIX@", file.toString().section('/', 0, -2));
+ QCOMPARE(agent.bt, expected);
+ }
+}
+
+
+QTEST_MAIN(tst_qdeclarativescriptdebugging)
+
+#include "tst_qdeclarativescriptdebugging.moc"
diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug.qml b/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug.qml
new file mode 100644
index 0000000..e6b6020
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/anchorRewindBug.qml
@@ -0,0 +1,37 @@
+import Qt 4.7
+Rectangle {
+ id: container
+ color: "red"
+ height: 200
+ width: 200
+ Column {
+ id: column
+ objectName: "column"
+ anchors.left: container.right
+ anchors.bottom: container.bottom
+
+ Rectangle {
+ id: rectangle
+ color: "blue"
+ height: 100
+ width: 200
+ }
+ Rectangle {
+ color: "blue"
+ height: 100
+ width: 200
+ }
+ }
+ states: State {
+ name: "reanchored"
+ AnchorChanges {
+ target: column
+ anchors.left: undefined
+ anchors.right: container.right
+ }
+ PropertyChanges {
+ target: rectangle
+ opacity: 0
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/auto/declarative/qdeclarativestates/data/extendsBug.qml b/tests/auto/declarative/qdeclarativestates/data/extendsBug.qml
new file mode 100644
index 0000000..a3c4827
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/extendsBug.qml
@@ -0,0 +1,26 @@
+import Qt 4.7
+
+Rectangle {
+ width: 200
+ height: 200
+
+ Rectangle {
+ id: rect
+ objectName: "greenRect"
+ width: 100
+ height: 100
+ color: "green"
+ }
+
+ states:[
+ State {
+ name: "a"
+ PropertyChanges { target: rect; x: 100 }
+ },
+ State {
+ name: "b"
+ extend:"a"
+ PropertyChanges { target: rect; y: 100 }
+ }
+ ]
+}
diff --git a/tests/auto/declarative/qdeclarativestates/data/propertyErrors.qml b/tests/auto/declarative/qdeclarativestates/data/propertyErrors.qml
index 807eec9..8f9a7f2 100644
--- a/tests/auto/declarative/qdeclarativestates/data/propertyErrors.qml
+++ b/tests/auto/declarative/qdeclarativestates/data/propertyErrors.qml
@@ -5,6 +5,6 @@ Rectangle {
color: "red"
states: State {
name: "blue"
- PropertyChanges { target: myRectangle; colr: "blue"; wantsFocus: true }
+ PropertyChanges { target: myRectangle; colr: "blue"; activeFocus: true }
}
}
diff --git a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
index 639b2f3..6ae2759 100644
--- a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
+++ b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
@@ -121,6 +121,7 @@ private slots:
void anchorChanges4();
void anchorChanges5();
void anchorChangesCrash();
+ void anchorRewindBug();
void script();
void restoreEntryValues();
void explicitChanges();
@@ -138,6 +139,7 @@ private slots:
void urlResolution();
void unnamedWhen();
void returnToBase();
+ void extendsBug();
};
void tst_qdeclarativestates::initTestCase()
@@ -807,6 +809,40 @@ void tst_qdeclarativestates::anchorChangesCrash()
delete rect;
}
+// QTBUG-12273
+void tst_qdeclarativestates::anchorRewindBug()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent rectComponent(&engine, SRCDIR "/data/anchorRewindBug.qml");
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ QDeclarativeItem * column = rect->findChild<QDeclarativeItem*>("column");
+
+ QVERIFY(column != 0);
+ QVERIFY(!QDeclarativeItemPrivate::get(column)->heightValid);
+ QVERIFY(!QDeclarativeItemPrivate::get(column)->widthValid);
+ QCOMPARE(column->height(), 200.0);
+ QDeclarativeItemPrivate::get(rect)->setState("reanchored");
+
+ // column height and width should stay implicit
+ // and column's implicit resizing should still work
+ QVERIFY(!QDeclarativeItemPrivate::get(column)->heightValid);
+ QVERIFY(!QDeclarativeItemPrivate::get(column)->widthValid);
+ QCOMPARE(column->height(), 100.0);
+
+ QDeclarativeItemPrivate::get(rect)->setState("");
+
+ // column height and width should stay implicit
+ // and column's implicit resizing should still work
+ QVERIFY(!QDeclarativeItemPrivate::get(column)->heightValid);
+ QVERIFY(!QDeclarativeItemPrivate::get(column)->widthValid);
+ QCOMPARE(column->height(), 200.0);
+
+ delete rect;
+}
+
void tst_qdeclarativestates::script()
{
QDeclarativeEngine engine;
@@ -887,7 +923,7 @@ void tst_qdeclarativestates::propertyErrors()
QCOMPARE(rect->color(),QColor("red"));
QTest::ignoreMessage(QtWarningMsg, fullDataPath("/data/propertyErrors.qml") + ":8:9: QML PropertyChanges: Cannot assign to non-existent property \"colr\"");
- QTest::ignoreMessage(QtWarningMsg, fullDataPath("/data/propertyErrors.qml") + ":8:9: QML PropertyChanges: Cannot assign to read-only property \"wantsFocus\"");
+ QTest::ignoreMessage(QtWarningMsg, fullDataPath("/data/propertyErrors.qml") + ":8:9: QML PropertyChanges: Cannot assign to read-only property \"activeFocus\"");
QDeclarativeItemPrivate::get(rect)->setState("blue");
}
@@ -1151,6 +1187,21 @@ void tst_qdeclarativestates::returnToBase()
QCOMPARE(rect->property("stateString").toString(), QLatin1String("originalState"));
}
+//QTBUG-12559
+void tst_qdeclarativestates::extendsBug()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent c(&engine, SRCDIR "/data/extendsBug.qml");
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QVERIFY(rect != 0);
+ QDeclarativeItemPrivate *rectPrivate = QDeclarativeItemPrivate::get(rect);
+ QDeclarativeRectangle *greenRect = rect->findChild<QDeclarativeRectangle*>("greenRect");
+
+ rectPrivate->setState("b");
+ QCOMPARE(greenRect->x(), qreal(100));
+ QCOMPARE(greenRect->y(), qreal(100));
+}
QTEST_MAIN(tst_qdeclarativestates)
diff --git a/tests/auto/declarative/qdeclarativetext/data/rotated.qml b/tests/auto/declarative/qdeclarativetext/data/rotated.qml
new file mode 100644
index 0000000..01eec44
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetext/data/rotated.qml
@@ -0,0 +1,18 @@
+import Qt 4.7
+
+Rectangle {
+ width : 200
+ height : 100
+
+ Text {
+ objectName: "text"
+ x: 20
+ y: 20
+ height : 20
+ width : 80
+ text : "Something"
+ rotation : 30
+ transformOrigin : Item.TopLeft
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
index 80198eb..658f381 100644
--- a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
+++ b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
@@ -97,6 +97,8 @@ private slots:
void clickLink();
+ void QTBUG_12291();
+
private:
QStringList standard;
QStringList richText;
@@ -246,6 +248,7 @@ void tst_qdeclarativetext::width()
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
QVERIFY(textObject != 0);
+ QVERIFY(textObject->boundingRect().width() > 0);
QCOMPARE(textObject->width(), qreal(metricWidth));
QVERIFY(textObject->textFormat() == QDeclarativeText::AutoText); // setting text doesn't change format
}
@@ -847,22 +850,22 @@ void tst_qdeclarativetext::letterSpacing()
QCOMPARE(textObject->font().letterSpacing(), 0.0);
}
{
- QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.letterSpacing: -50 }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.letterSpacing: -2 }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
QVERIFY(textObject != 0);
- QCOMPARE(textObject->font().letterSpacing(), -50.);
+ QCOMPARE(textObject->font().letterSpacing(), -2.);
}
{
- QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.letterSpacing: 200 }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.letterSpacing: 3 }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
QVERIFY(textObject != 0);
- QCOMPARE(textObject->font().letterSpacing(), 200.);
+ QCOMPARE(textObject->font().letterSpacing(), 3.);
}
}
@@ -897,6 +900,23 @@ void tst_qdeclarativetext::wordSpacing()
}
}
+void tst_qdeclarativetext::QTBUG_12291()
+{
+ QDeclarativeView *canvas = createView(SRCDIR "/data/rotated.qml");
+
+ canvas->show();
+ QApplication::setActiveWindow(canvas);
+ QTest::qWaitForWindowShown(canvas);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(canvas));
+
+ QObject *ob = canvas->rootObject();
+ QVERIFY(ob != 0);
+
+ QDeclarativeText *text = ob->findChild<QDeclarativeText*>("text");
+ QVERIFY(text);
+ QVERIFY(text->boundingRect().isValid());
+}
+
class EventSender : public QGraphicsItem
{
public:
diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
index 4783bc7..57a5e29 100644
--- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
+++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
@@ -115,6 +115,7 @@ private slots:
void navigation();
void readOnly();
void copyAndPaste();
+ void textInput();
void openInputPanelOnClick();
void openInputPanelOnFocus();
void geometrySignals();
@@ -604,7 +605,7 @@ void tst_qdeclarativetextedit::persistentSelection()
void tst_qdeclarativetextedit::focusOnPress()
{
{
- QString componentStr = "import Qt 4.7\nTextEdit { focusOnPress: true; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { activeFocusOnPress: true; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -613,7 +614,7 @@ void tst_qdeclarativetextedit::focusOnPress()
}
{
- QString componentStr = "import Qt 4.7\nTextEdit { focusOnPress: false; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { activeFocusOnPress: false; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -840,15 +841,15 @@ void tst_qdeclarativetextedit::navigation()
QDeclarativeItem *input = qobject_cast<QDeclarativeItem *>(qvariant_cast<QObject *>(canvas->rootObject()->property("myInput")));
QVERIFY(input != 0);
- QTRY_VERIFY(input->hasFocus() == true);
+ QTRY_VERIFY(input->hasActiveFocus() == true);
simulateKey(canvas, Qt::Key_Left);
- QVERIFY(input->hasFocus() == false);
+ QVERIFY(input->hasActiveFocus() == false);
simulateKey(canvas, Qt::Key_Right);
- QVERIFY(input->hasFocus() == true);
+ QVERIFY(input->hasActiveFocus() == true);
simulateKey(canvas, Qt::Key_Right);
- QVERIFY(input->hasFocus() == false);
+ QVERIFY(input->hasActiveFocus() == false);
simulateKey(canvas, Qt::Key_Left);
- QVERIFY(input->hasFocus() == true);
+ QVERIFY(input->hasActiveFocus() == true);
}
void tst_qdeclarativetextedit::copyAndPaste() {
@@ -882,6 +883,12 @@ void tst_qdeclarativetextedit::copyAndPaste() {
QCOMPARE(textEdit->text(), QString("Hello world!Hello world!"));
QCOMPARE(textEdit->text().length(), 24);
+ // QTBUG-12339
+ // test that document and internal text attribute are in sync
+ QDeclarativeItemPrivate* pri = QDeclarativeItemPrivate::get(textEdit);
+ QDeclarativeTextEditPrivate *editPrivate = static_cast<QDeclarativeTextEditPrivate*>(pri);
+ QCOMPARE(textEdit->text(), editPrivate->text);
+
// select word
textEdit->setCursorPosition(0);
textEdit->selectWord();
@@ -908,7 +915,7 @@ void tst_qdeclarativetextedit::readOnly()
QDeclarativeTextEdit *edit = qobject_cast<QDeclarativeTextEdit *>(qvariant_cast<QObject *>(canvas->rootObject()->property("myInput")));
QVERIFY(edit != 0);
- QTRY_VERIFY(edit->hasFocus() == true);
+ QTRY_VERIFY(edit->hasActiveFocus() == true);
QVERIFY(edit->isReadOnly() == true);
QString initial = edit->text();
for(int k=Qt::Key_0; k<=Qt::Key_Z; k++)
@@ -961,6 +968,33 @@ public:
bool closeInputPanelReceived;
};
+void tst_qdeclarativetextedit::textInput()
+{
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+ QDeclarativeTextEdit edit;
+ QDeclarativeItemPrivate* pri = QDeclarativeItemPrivate::get(&edit);
+ QDeclarativeTextEditPrivate *editPrivate = static_cast<QDeclarativeTextEditPrivate*>(pri);
+ edit.setPos(0, 0);
+ scene.addItem(&edit);
+ view.show();
+ QApplication::setActiveWindow(&view);
+ QTest::qWaitForWindowShown(&view);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&view));
+ edit.setFocus(true);
+ QVERIFY(edit.hasActiveFocus() == true);
+
+ // test that input method event is committed
+ QInputMethodEvent event;
+ event.setCommitString( "Hello world!", 0, 0);
+ QApplication::sendEvent(&view, &event);
+ QCOMPARE(edit.text(), QString("Hello world!"));
+
+ // QTBUG-12339
+ // test that document and internal text attribute are in sync
+ QCOMPARE(editPrivate->text, QString("Hello world!"));
+}
+
void tst_qdeclarativetextedit::openInputPanelOnClick()
{
QGraphicsScene scene;
@@ -968,7 +1002,7 @@ void tst_qdeclarativetextedit::openInputPanelOnClick()
MyInputContext ic;
view.setInputContext(&ic);
QDeclarativeTextEdit edit;
- QSignalSpy focusOnPressSpy(&edit, SIGNAL(focusOnPressChanged(bool)));
+ QSignalSpy focusOnPressSpy(&edit, SIGNAL(activeFocusOnPressChanged(bool)));
edit.setText("Hello world");
edit.setPos(0, 0);
scene.addItem(&edit);
@@ -1016,7 +1050,7 @@ void tst_qdeclarativetextedit::openInputPanelOnFocus()
MyInputContext ic;
view.setInputContext(&ic);
QDeclarativeTextEdit edit;
- QSignalSpy focusOnPressSpy(&edit, SIGNAL(focusOnPressChanged(bool)));
+ QSignalSpy focusOnPressSpy(&edit, SIGNAL(activeFocusOnPressChanged(bool)));
edit.setText("Hello world");
edit.setPos(0, 0);
scene.addItem(&edit);
@@ -1038,7 +1072,7 @@ void tst_qdeclarativetextedit::openInputPanelOnFocus()
// focus on press, input panel on focus
QTest::mousePress(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(edit.scenePos()));
QApplication::processEvents();
- QVERIFY(edit.hasFocus());
+ QVERIFY(edit.hasActiveFocus());
QCOMPARE(ic.openInputPanelReceived, true);
ic.openInputPanelReceived = false;
@@ -1048,7 +1082,7 @@ void tst_qdeclarativetextedit::openInputPanelOnFocus()
ic.openInputPanelReceived = false;
// if already focused, input panel can be opened on press
- QVERIFY(edit.hasFocus());
+ QVERIFY(edit.hasActiveFocus());
QTest::mousePress(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(edit.scenePos()));
QApplication::processEvents();
QCOMPARE(ic.openInputPanelReceived, true);
@@ -1076,7 +1110,7 @@ void tst_qdeclarativetextedit::openInputPanelOnFocus()
QVERIFY(!view.testAttribute(Qt::WA_InputMethodEnabled));
// no automatic input panel events should
- // be sent if focusOnPress is false
+ // be sent if activeFocusOnPress is false
edit.setFocusOnPress(false);
QCOMPARE(focusOnPressSpy.count(),1);
edit.setFocusOnPress(false);
@@ -1103,7 +1137,7 @@ void tst_qdeclarativetextedit::openInputPanelOnFocus()
QCOMPARE(ic.closeInputPanelReceived, true);
ic.closeInputPanelReceived = false;
- // set focusOnPress back to true
+ // set activeFocusOnPress back to true
edit.setFocusOnPress(true);
QCOMPARE(focusOnPressSpy.count(),2);
edit.setFocusOnPress(true);
diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
index a48bc39..6e15a4a 100644
--- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
+++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
@@ -494,7 +494,7 @@ void tst_qdeclarativetextinput::maxLength()
}
textinputObject->setText("");
- QTRY_VERIFY(textinputObject->hasFocus() == true);
+ QTRY_VERIFY(textinputObject->hasActiveFocus() == true);
for(int i=0; i<20; i++){
QCOMPARE(textinputObject->text().length(), qMin(i,10));
//simulateKey(canvas, Qt::Key_A);
@@ -515,7 +515,7 @@ void tst_qdeclarativetextinput::masks()
QVERIFY(canvas->rootObject() != 0);
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput *>(canvas->rootObject());
QVERIFY(textinputObject != 0);
- QTRY_VERIFY(textinputObject->hasFocus() == true);
+ QTRY_VERIFY(textinputObject->hasActiveFocus() == true);
QVERIFY(textinputObject->text().length() == 0);
QCOMPARE(textinputObject->inputMask(), QString("HHHHhhhh; "));
for(int i=0; i<10; i++){
@@ -544,7 +544,7 @@ void tst_qdeclarativetextinput::validators()
QDeclarativeTextInput *intInput = qobject_cast<QDeclarativeTextInput *>(qvariant_cast<QObject *>(canvas->rootObject()->property("intInput")));
QVERIFY(intInput);
intInput->setFocus(true);
- QTRY_VERIFY(intInput->hasFocus());
+ QTRY_VERIFY(intInput->hasActiveFocus());
QTest::keyPress(canvas, Qt::Key_1);
QTest::keyRelease(canvas, Qt::Key_1, Qt::NoModifier ,10);
QCOMPARE(intInput->text(), QLatin1String("1"));
@@ -565,7 +565,7 @@ void tst_qdeclarativetextinput::validators()
QDeclarativeTextInput *dblInput = qobject_cast<QDeclarativeTextInput *>(qvariant_cast<QObject *>(canvas->rootObject()->property("dblInput")));
QTRY_VERIFY(dblInput);
dblInput->setFocus(true);
- QVERIFY(dblInput->hasFocus() == true);
+ QVERIFY(dblInput->hasActiveFocus() == true);
QTest::keyPress(canvas, Qt::Key_1);
QTest::keyRelease(canvas, Qt::Key_1, Qt::NoModifier ,10);
QCOMPARE(dblInput->text(), QLatin1String("1"));
@@ -594,7 +594,7 @@ void tst_qdeclarativetextinput::validators()
QDeclarativeTextInput *strInput = qobject_cast<QDeclarativeTextInput *>(qvariant_cast<QObject *>(canvas->rootObject()->property("strInput")));
QTRY_VERIFY(strInput);
strInput->setFocus(true);
- QVERIFY(strInput->hasFocus() == true);
+ QVERIFY(strInput->hasActiveFocus() == true);
QTest::keyPress(canvas, Qt::Key_1);
QTest::keyRelease(canvas, Qt::Key_1, Qt::NoModifier ,10);
QCOMPARE(strInput->text(), QLatin1String(""));
@@ -642,7 +642,7 @@ void tst_qdeclarativetextinput::inputMethods()
QVERIFY(canvas->rootObject() != 0);
input->setFocus(true);
- QVERIFY(input->hasFocus() == true);
+ QVERIFY(input->hasActiveFocus() == true);
// test that input method event is committed
QInputMethodEvent event;
event.setCommitString( "My ", -12, 0);
@@ -669,11 +669,11 @@ void tst_qdeclarativetextinput::navigation()
QVERIFY(input != 0);
input->setCursorPosition(0);
- QTRY_VERIFY(input->hasFocus() == true);
+ QTRY_VERIFY(input->hasActiveFocus() == true);
simulateKey(canvas, Qt::Key_Left);
- QVERIFY(input->hasFocus() == false);
+ QVERIFY(input->hasActiveFocus() == false);
simulateKey(canvas, Qt::Key_Right);
- QVERIFY(input->hasFocus() == true);
+ QVERIFY(input->hasActiveFocus() == true);
//QT-2944: If text is selected, ensure we deselect upon cursor motion
input->setCursorPosition(input->text().length());
input->select(0,input->text().length());
@@ -681,11 +681,11 @@ void tst_qdeclarativetextinput::navigation()
simulateKey(canvas, Qt::Key_Right);
QVERIFY(input->selectionStart() == input->selectionEnd());
QVERIFY(input->selectionStart() == input->text().length());
- QVERIFY(input->hasFocus() == true);
+ QVERIFY(input->hasActiveFocus() == true);
simulateKey(canvas, Qt::Key_Right);
- QVERIFY(input->hasFocus() == false);
+ QVERIFY(input->hasActiveFocus() == false);
simulateKey(canvas, Qt::Key_Left);
- QVERIFY(input->hasFocus() == true);
+ QVERIFY(input->hasActiveFocus() == true);
// Up and Down should NOT do Home/End, even on Mac OS X (QTBUG-10438).
input->setCursorPosition(2);
@@ -784,7 +784,7 @@ void tst_qdeclarativetextinput::readOnly()
QDeclarativeTextInput *input = qobject_cast<QDeclarativeTextInput *>(qvariant_cast<QObject *>(canvas->rootObject()->property("myInput")));
QVERIFY(input != 0);
- QTRY_VERIFY(input->hasFocus() == true);
+ QTRY_VERIFY(input->hasActiveFocus() == true);
QVERIFY(input->isReadOnly() == true);
QString initial = input->text();
for(int k=Qt::Key_0; k<=Qt::Key_Z; k++)
@@ -802,13 +802,16 @@ void tst_qdeclarativetextinput::echoMode()
QDeclarativeView *canvas = createView(SRCDIR "/data/echoMode.qml");
canvas->show();
canvas->setFocus();
+ QApplication::setActiveWindow(canvas);
+ QTest::qWaitForWindowShown(canvas);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(canvas));
QVERIFY(canvas->rootObject() != 0);
QDeclarativeTextInput *input = qobject_cast<QDeclarativeTextInput *>(qvariant_cast<QObject *>(canvas->rootObject()->property("myInput")));
QVERIFY(input != 0);
- QTRY_VERIFY(input->hasFocus() == true);
+ QTRY_VERIFY(input->hasActiveFocus() == true);
QString initial = input->text();
Qt::InputMethodHints ref;
QCOMPARE(initial, QLatin1String("ABCDefgh"));
@@ -849,6 +852,7 @@ void tst_qdeclarativetextinput::echoMode()
QCOMPARE(input->text(), QLatin1String("a"));
QCOMPARE(input->displayText(), QLatin1String("a"));
input->setFocus(false);
+ QVERIFY(input->hasActiveFocus() == false);
QCOMPARE(input->displayText(), QLatin1String("Q"));
}
@@ -901,7 +905,7 @@ void tst_qdeclarativetextinput::openInputPanelOnClick()
MyInputContext ic;
view.setInputContext(&ic);
QDeclarativeTextInput input;
- QSignalSpy focusOnPressSpy(&input, SIGNAL(focusOnPressChanged(bool)));
+ QSignalSpy focusOnPressSpy(&input, SIGNAL(activeFocusOnPressChanged(bool)));
input.setText("Hello world");
input.setPos(0, 0);
scene.addItem(&input);
@@ -948,7 +952,7 @@ void tst_qdeclarativetextinput::openInputPanelOnFocus()
MyInputContext ic;
view.setInputContext(&ic);
QDeclarativeTextInput input;
- QSignalSpy focusOnPressSpy(&input, SIGNAL(focusOnPressChanged(bool)));
+ QSignalSpy focusOnPressSpy(&input, SIGNAL(activeFocusOnPressChanged(bool)));
input.setText("Hello world");
input.setPos(0, 0);
scene.addItem(&input);
@@ -970,7 +974,7 @@ void tst_qdeclarativetextinput::openInputPanelOnFocus()
// focus on press, input panel on focus
QTest::mousePress(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(input.scenePos()));
QApplication::processEvents();
- QVERIFY(input.hasFocus());
+ QVERIFY(input.hasActiveFocus());
QCOMPARE(ic.openInputPanelReceived, true);
ic.openInputPanelReceived = false;
@@ -980,7 +984,7 @@ void tst_qdeclarativetextinput::openInputPanelOnFocus()
ic.openInputPanelReceived = false;
// if already focused, input panel can be opened on press
- QVERIFY(input.hasFocus());
+ QVERIFY(input.hasActiveFocus());
QTest::mousePress(view.viewport(), Qt::LeftButton, 0, view.mapFromScene(input.scenePos()));
QApplication::processEvents();
QCOMPARE(ic.openInputPanelReceived, true);
@@ -1008,7 +1012,7 @@ void tst_qdeclarativetextinput::openInputPanelOnFocus()
QVERIFY(!view.testAttribute(Qt::WA_InputMethodEnabled));
// no automatic input panel events should
- // be sent if focusOnPress is false
+ // be sent if activeFocusOnPress is false
input.setFocusOnPress(false);
QCOMPARE(focusOnPressSpy.count(),1);
input.setFocusOnPress(false);
@@ -1035,7 +1039,7 @@ void tst_qdeclarativetextinput::openInputPanelOnFocus()
QCOMPARE(ic.closeInputPanelReceived, true);
ic.closeInputPanelReceived = false;
- // set focusOnPress back to true
+ // set activeFocusOnPress back to true
input.setFocusOnPress(true);
QCOMPARE(focusOnPressSpy.count(),2);
input.setFocusOnPress(true);
diff --git a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
index b08da0f..1c1c04b 100644
--- a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
+++ b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
@@ -43,9 +43,11 @@
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativeview.h>
#include <QtDeclarative/qdeclarativeitem.h>
+#include <QtDeclarative/qdeclarativecontext.h>
#include <QtGui/qmenubar.h>
#include "../../../shared/util.h"
#include "qmlruntime.h"
+#include "deviceorientation.h"
#include "../../../shared/util.h"
#ifdef Q_OS_SYMBIAN
@@ -67,7 +69,7 @@ public:
tst_QDeclarativeViewer();
private slots:
- void orientation();
+ void runtimeContextProperty();
void loading();
void fileBrowser();
void resizing();
@@ -94,7 +96,7 @@ tst_QDeclarativeViewer::tst_QDeclarativeViewer()
QCOMPARE(viewer->size(), viewer->sizeHint()); \
}
-void tst_QDeclarativeViewer::orientation()
+void tst_QDeclarativeViewer::runtimeContextProperty()
{
QDeclarativeViewer *viewer = new QDeclarativeViewer();
QVERIFY(viewer);
@@ -103,17 +105,30 @@ void tst_QDeclarativeViewer::orientation()
QVERIFY(viewer->menuBar());
QDeclarativeItem* rootItem = qobject_cast<QDeclarativeItem*>(viewer->view()->rootObject());
QVERIFY(rootItem);
+ QObject *runtimeObject = qvariant_cast<QObject*>(viewer->view()->engine()->rootContext()->contextProperty("runtime"));
+ QVERIFY(runtimeObject);
+
+ // test isActiveWindow property
+ QVERIFY(!runtimeObject->property("isActiveWindow").toBool());
+
viewer->show();
-
QApplication::setActiveWindow(viewer);
QTest::qWaitForWindowShown(viewer);
QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(viewer));
+ QVERIFY(runtimeObject->property("isActiveWindow").toBool());
+
TEST_INITIAL_SIZES(viewer);
+ // test orientation property
+ QCOMPARE(runtimeObject->property("orientation").toInt(), int(DeviceOrientation::Portrait));
+
viewer->rotateOrientation();
qApp->processEvents();
+ QCOMPARE(runtimeObject->property("orientation").toInt(), int(DeviceOrientation::Landscape));
+ QCOMPARE(rootItem->width(), 300.0);
+
QCOMPARE(rootItem->width(), 300.0);
QCOMPARE(rootItem->height(), 200.0);
QTRY_COMPARE(viewer->view()->size(), QSize(300, 200));
@@ -124,6 +139,8 @@ void tst_QDeclarativeViewer::orientation()
viewer->rotateOrientation();
qApp->processEvents();
+ QCOMPARE(runtimeObject->property("orientation").toInt(), int(DeviceOrientation::PortraitInverted));
+
QCOMPARE(rootItem->width(), 200.0);
QCOMPARE(rootItem->height(), 300.0);
QTRY_COMPARE(viewer->view()->size(), QSize(200, 300));
@@ -131,6 +148,19 @@ void tst_QDeclarativeViewer::orientation()
QCOMPARE(viewer->size(), QSize(200, 300 + MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->size(), viewer->sizeHint());
+ viewer->rotateOrientation();
+ qApp->processEvents();
+
+ QCOMPARE(runtimeObject->property("orientation").toInt(), int(DeviceOrientation::LandscapeInverted));
+
+ viewer->rotateOrientation();
+ qApp->processEvents();
+
+ QCOMPARE(runtimeObject->property("orientation").toInt(), int(DeviceOrientation::Portrait));
+
+ viewer->hide();
+ QVERIFY(!runtimeObject->property("isActiveWindow").toBool());
+
delete viewer;
}
@@ -152,16 +182,16 @@ void tst_QDeclarativeViewer::loading()
TEST_INITIAL_SIZES(viewer);
- viewer->resize(QSize(400, 500));
+ viewer->resize(QSize(250, 350));
qApp->processEvents();
// window resized
- QTRY_COMPARE(rootItem->width(), 400.0);
- QTRY_COMPARE(rootItem->height(), 500.0 - MENUBAR_HEIGHT(viewer));
- QCOMPARE(viewer->view()->size(), QSize(400, 500 - MENUBAR_HEIGHT(viewer)));
+ QTRY_COMPARE(rootItem->width(), 250.0);
+ QTRY_COMPARE(rootItem->height(), 350.0 - MENUBAR_HEIGHT(viewer));
+ QCOMPARE(viewer->view()->size(), QSize(250, 350 - MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
- QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(400, 500 - MENUBAR_HEIGHT(viewer)));
- QCOMPARE(viewer->size(), QSize(400, 500));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(250, 350 - MENUBAR_HEIGHT(viewer)));
+ QCOMPARE(viewer->size(), QSize(250, 350));
QCOMPARE(viewer->size(), viewer->sizeHint());
viewer->reload();
@@ -177,16 +207,16 @@ void tst_QDeclarativeViewer::loading()
QCOMPARE(viewer->size(), QSize(200, 300 + MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->size(), viewer->sizeHint());
- viewer->resize(QSize(400, 500));
+ viewer->resize(QSize(250, 350));
qApp->processEvents();
// window resized again
- QTRY_COMPARE(rootItem->width(), 400.0);
- QTRY_COMPARE(rootItem->height(), 500.0 - MENUBAR_HEIGHT(viewer));
- QCOMPARE(viewer->view()->size(), QSize(400, 500 - MENUBAR_HEIGHT(viewer)));
+ QTRY_COMPARE(rootItem->width(), 250.0);
+ QTRY_COMPARE(rootItem->height(), 350.0 - MENUBAR_HEIGHT(viewer));
+ QCOMPARE(viewer->view()->size(), QSize(250, 350 - MENUBAR_HEIGHT(viewer)));
QCOMPARE(viewer->view()->initialSize(), QSize(200, 300));
- QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(400, 500 - MENUBAR_HEIGHT(viewer)));
- QCOMPARE(viewer->size(), QSize(400, 500));
+ QCOMPARE(viewer->view()->sceneRect().size(), QSizeF(250, 350 - MENUBAR_HEIGHT(viewer)));
+ QCOMPARE(viewer->size(), QSize(250, 350));
QCOMPARE(viewer->size(), viewer->sizeHint());
viewer->open(SRCDIR "/data/orientation.qml");
diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/data/objectlist.qml b/tests/auto/declarative/qdeclarativevisualdatamodel/data/objectlist.qml
index f5198c9..d030222 100644
--- a/tests/auto/declarative/qdeclarativevisualdatamodel/data/objectlist.qml
+++ b/tests/auto/declarative/qdeclarativevisualdatamodel/data/objectlist.qml
@@ -11,6 +11,9 @@ ListView {
width: 100
color: model.modelData.color
Text { objectName: "name"; text: name }
+ Text { objectName: "section"; text: parent.ListView.section }
}
}
+ section.property: "name"
+ section.criteria: ViewSection.FullString
}
diff --git a/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp
index 43d4d06..e0f32ea 100644
--- a/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp
+++ b/tests/auto/declarative/qdeclarativevisualdatamodel/tst_qdeclarativevisualdatamodel.cpp
@@ -179,6 +179,9 @@ void tst_qdeclarativevisualdatamodel::objectListModel()
QDeclarativeText *name = findItem<QDeclarativeText>(contentItem, "name", 0);
QCOMPARE(name->text(), QString("Item 1"));
+ QDeclarativeText *section = findItem<QDeclarativeText>(contentItem, "section", 0);
+ QCOMPARE(section->text(), QString("Item 1"));
+
dataList[0]->setProperty("name", QLatin1String("Changed"));
QCOMPARE(name->text(), QString("Changed"));
}
diff --git a/tests/auto/declarative/qmlvisual/focusscope/test.qml b/tests/auto/declarative/qmlvisual/focusscope/test.qml
index d83bad4..24b4b99 100644
--- a/tests/auto/declarative/qmlvisual/focusscope/test.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/test.qml
@@ -19,14 +19,14 @@ Rectangle {
color: "transparent"
border.width: 5
- border.color: myScope.wantsFocus?"blue":"black"
+ border.color: myScope.activeFocus?"blue":"black"
Rectangle {
id: item1
x: 10; y: 10
width: 100; height: 100; color: "green"
border.width: 5
- border.color: wantsFocus?"blue":"black"
+ border.color: activeFocus?"blue":"black"
Keys.onDigit9Pressed: console.log("Top Left");
KeyNavigation.right: item2
focus: true
@@ -42,7 +42,7 @@ Rectangle {
x: 310; y: 10
width: 100; height: 100; color: "green"
border.width: 5
- border.color: wantsFocus?"blue":"black"
+ border.color: activeFocus?"blue":"black"
KeyNavigation.left: item1
Keys.onDigit9Pressed: console.log("Top Right");
@@ -62,7 +62,7 @@ Rectangle {
x: 10; y: 300
width: 100; height: 100; color: "green"
border.width: 5
- border.color: wantsFocus?"blue":"black"
+ border.color: activeFocus?"blue":"black"
Keys.onDigit9Pressed: console.log("Bottom Left");
KeyNavigation.up: myScope
diff --git a/tests/auto/declarative/qmlvisual/focusscope/test2.qml b/tests/auto/declarative/qmlvisual/focusscope/test2.qml
index 7a6ed83..19c8bed 100644
--- a/tests/auto/declarative/qmlvisual/focusscope/test2.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/test2.qml
@@ -10,27 +10,27 @@ Rectangle {
FocusScope {
y: 100
focus: true
- Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ Rectangle { width: 50; height: 50; color: parent.activeFocus?"red":"blue" }
FocusScope {
y: 100
focus: true
- Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ Rectangle { width: 50; height: 50; color: parent.activeFocus?"red":"blue" }
FocusScope {
y: 100
focus: true
- Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ Rectangle { width: 50; height: 50; color: parent.activeFocus?"red":"blue" }
FocusScope {
y: 100
focus: true
- Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ Rectangle { width: 50; height: 50; color: parent.activeFocus?"red":"blue" }
FocusScope {
y: 100
focus: true
- Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ Rectangle { width: 50; height: 50; color: parent.activeFocus?"red":"blue" }
}
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png
index 442ba9f..16a7e10 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png
index a9ff20f..116ce88 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png
index 157bb99..13896d4 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png
index 8c49acb..5d18003 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png
index eb2bf54..cd3387f 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png
new file mode 100644
index 0000000..9f31c69
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml
index 9595a5c..06d32b6 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml
@@ -6,409 +6,437 @@ VisualTest {
}
Frame {
msec: 16
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 32
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 48
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 64
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 80
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 96
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 112
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 128
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 144
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 160
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 176
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 192
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 208
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 224
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 240
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 256
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 272
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 288
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 304
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 320
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 336
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 352
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 368
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 384
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 400
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 416
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 432
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 448
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 464
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 480
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 496
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 512
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 528
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 544
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 560
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 576
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 592
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 608
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 624
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 640
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 656
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 672
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 688
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 704
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 720
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 736
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 752
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 768
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 784
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 800
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 816
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 832
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 848
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 864
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 880
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
}
Frame {
msec: 896
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "01b9c877f51b878ed262943aedcf89b4"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 623; y: 222
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 621; y: 222
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 912
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "1c2d4a99e7e2f5e945c05857d6a463a2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 609; y: 230
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 928
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "d69c0678ce2025a8921b089311d219ea"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 583; y: 248
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 944
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "55a852b268151d660e4945da88b04022"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 559; y: 258
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 960
image: "test-pathview.0.png"
}
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 547; y: 264
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 547; y: 264
+ modifiers: 0
+ sendToViewport: true
+ }
Frame {
msec: 976
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "55ab61911405e762b39b38d1371ef845"
}
Frame {
msec: 992
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "be3de45165f2f0916f734fecf3f48c47"
}
Frame {
msec: 1008
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "0a523daec6b591a2b5030c6c0b95cb24"
}
Frame {
msec: 1024
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "22da168e523fa385cce1f2e6a05e1332"
}
Frame {
msec: 1040
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "464cb37780cf126df6dad4169445c7bc"
}
Frame {
msec: 1056
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "666b06a0fbe2d10fbf3e15883a166c60"
}
Frame {
msec: 1072
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "223732cd526e09155ca99c80780bc3fa"
}
Frame {
msec: 1088
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "c74cc48188b05c5426a6b955ed9f09a3"
}
Frame {
msec: 1104
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "8d09a95ab09f87277fcc727e9c5da0fb"
}
Frame {
msec: 1120
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "71b7d4ec45270158ba4ca96817d8f231"
}
Frame {
msec: 1136
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 734; y: 177
- modifiers: 0
- sendToViewport: true
+ hash: "4847a1e7d792ed58e3476112b02c6fab"
}
Frame {
msec: 1152
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
+ hash: "ef444a3a960bdc176e004b949e5c89ce"
}
Frame {
msec: 1168
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 732; y: 177
- modifiers: 0
- sendToViewport: true
+ hash: "1ebf4badb7f4ef3938868a74740fcbce"
}
Frame {
msec: 1184
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 726; y: 179
- modifiers: 0
- sendToViewport: true
+ hash: "022918cd4b54750b0ad28bcb00108f51"
}
Frame {
msec: 1200
- hash: "89bb697bb7b7fab38d3ff56e23e43959"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 716; y: 183
- modifiers: 0
- sendToViewport: true
+ hash: "1ea398b2b7c52b35981c98b60d5d7a02"
}
Frame {
msec: 1216
- hash: "42c141399fda1cbb2ae117788d87092a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 700; y: 190
- modifiers: 0
- sendToViewport: true
+ hash: "05d7619ed0154fa414686522a7ca86c4"
}
Frame {
msec: 1232
- hash: "4d44343eb91838e3eb73e2e5326b5ac2"
+ hash: "03274e26ea57d1264f21d306533476ef"
}
Frame {
msec: 1248
- hash: "4d44343eb91838e3eb73e2e5326b5ac2"
+ hash: "5109372d6c62225aaf971aa53c708bee"
+ }
+ Frame {
+ msec: 1264
+ hash: "71f10446437963eccb87dd40c172118f"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 708; y: 240
+ modifiers: 0
+ sendToViewport: true
}
Mouse {
type: 5
button: 0
buttons: 1
- x: 677; y: 200
+ x: 707; y: 240
modifiers: 0
sendToViewport: true
}
Frame {
- msec: 1264
- hash: "15aaccb4f7961a4e3e6fe57260779d00"
+ msec: 1280
+ hash: "e47426491548162622f9a281c3d062ec"
}
Mouse {
type: 5
button: 0
buttons: 1
- x: 651; y: 209
+ x: 685; y: 252
modifiers: 0
sendToViewport: true
}
Frame {
- msec: 1280
- hash: "5628fa3ac9893f5c9690013aad4b881a"
+ msec: 1296
+ hash: "e889fba64d9f94fe18c3750dd6ad9d00"
}
Mouse {
type: 5
button: 0
buttons: 1
- x: 619; y: 219
+ x: 635; y: 264
modifiers: 0
sendToViewport: true
}
Frame {
- msec: 1296
- hash: "384db58b6de773ac39ae81e6af4d547d"
+ msec: 1312
+ hash: "7fe200757a6bf752906d195fe341be14"
}
Mouse {
type: 5
button: 0
buttons: 1
- x: 579; y: 229
+ x: 569; y: 280
modifiers: 0
sendToViewport: true
}
Frame {
- msec: 1312
- hash: "2a15a27a138b9d3d646b827d026e8843"
+ msec: 1328
+ hash: "aa1f4147dc3fd66f6d9e2605d0759951"
}
Mouse {
type: 5
button: 0
buttons: 1
- x: 535; y: 237
+ x: 533; y: 294
modifiers: 0
sendToViewport: true
}
@@ -416,157 +444,193 @@ VisualTest {
type: 3
button: 1
buttons: 0
- x: 535; y: 237
+ x: 533; y: 294
modifiers: 0
sendToViewport: true
}
Frame {
- msec: 1328
- hash: "098176f48a148eb2bc5ef67c307baa1c"
- }
- Frame {
msec: 1344
- hash: "f838ab4301bf9d3106cec529f855cecd"
+ hash: "2b7163ea45860cf81f208c2b68c418b5"
}
Frame {
msec: 1360
- hash: "9725322067a04f83717b059d4970d610"
+ hash: "a89bd1204fb17d9d8ce7b7f4279e9b1f"
}
Frame {
msec: 1376
- hash: "3605cfbebc3a9eb4460efb2d4b9b6da2"
+ hash: "683e52637fd5d96ded35f5ade9679822"
}
Frame {
msec: 1392
- hash: "4503a368d8db25d112503dbc3934541d"
+ hash: "2aa16f06e8bed201746558b1003f7d63"
}
Frame {
msec: 1408
- hash: "80894cc06c82264bf527398ea235da12"
+ hash: "f2e40e75ddb8004917ae5b8cf144a322"
}
Frame {
msec: 1424
- hash: "d4f9b90f886fc667309b33c9a296410c"
+ hash: "0f7f64373b065a454c02c32c52a5ef79"
}
Frame {
msec: 1440
- hash: "889d01025cff679b61bff182a1ac9cbc"
+ hash: "fb4fbd2b3696bfb6135797b1f0158b5c"
}
Frame {
msec: 1456
- hash: "6147bc4455e7cb5ae55cd47be8dc4ad6"
+ hash: "7a8eafad65ff191a97dcf910393ba4e4"
}
Frame {
msec: 1472
- hash: "ddd10a294eb6b19698c4e9fe4f1508fe"
+ hash: "3362deae62ba96853d85827f21cec589"
}
Frame {
msec: 1488
- hash: "748e8d9c1971f6258acee5133b7f114b"
+ hash: "0653838fa3fb5b32e561adc20becc9d2"
}
Frame {
msec: 1504
- hash: "1ef3f32ec9ef950588266bacbe3554a0"
+ hash: "482e78e6b54cabe007f7e7f4f27a07ee"
}
Frame {
msec: 1520
- hash: "57853ff47b65aba9e76f90b2efec4f8f"
+ hash: "b51f60864896808c6e41d8a0a990676d"
}
Frame {
msec: 1536
- hash: "3985fea21d89d223c1461d5e96364c76"
+ hash: "d77e59d69b7c21c82bce9a25d548358c"
}
Frame {
msec: 1552
- hash: "cb5f6a3caeeaed12e91efe43867f2c1f"
+ hash: "b3dddbb1eee0e2f222434511073c4620"
}
Frame {
msec: 1568
- hash: "cdd4176776d5969373e0fc9a117e3c87"
+ hash: "d5e0d191582291b269b9e93241d9ac03"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 637; y: 218
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 621; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 613; y: 248
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 1584
- hash: "3bac2e7506472db2ae11734240f1c3f4"
+ hash: "8c12000da88abb70cbc370d2a2ca21d7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 551; y: 288
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 551; y: 288
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 1600
- hash: "bb572659d79ebda7134c039e40cf2633"
+ hash: "2854533fd50f5ebb8fc43cf0041883e4"
}
Frame {
msec: 1616
- hash: "e610181bfa17a85281f9c7417088f04f"
+ hash: "0b3782e842a6c54585d6a266314025d8"
}
Frame {
msec: 1632
- hash: "eb23ff021909589b6d8ce47ebff2c3ed"
+ hash: "02409885b82ebac931df18d8e23238d7"
}
Frame {
msec: 1648
- hash: "c321dda3878c4b97cc63246c47368224"
+ hash: "edcbd91ad267c125c431367be3e4a8a3"
}
Frame {
msec: 1664
- hash: "6a65cdfd50e1455356040d4cbc09905e"
+ hash: "47641fd7ec919b3c041c5acc04b0d083"
}
Frame {
msec: 1680
- hash: "f2a44b12e4e5bae8283c4d227949e4e8"
+ hash: "ea8f026fee0fba2c27a8df1e1e531acb"
}
Frame {
msec: 1696
- hash: "55418d661f3257b5b79a7dbb172b5b70"
+ hash: "e2e8a398760be380f9b2b7dbcb03c0e8"
}
Frame {
msec: 1712
- hash: "483d7111c86951918746d6ebe0dd9655"
+ hash: "a1767f2e10f9ab87050ef246a4a29bbb"
}
Frame {
msec: 1728
- hash: "85c83ac3a294a9320bb04a6721ecf7d5"
+ hash: "f60cccf793bd6d356d69b1394638a201"
}
Frame {
msec: 1744
- hash: "0d658b897b8e03397ddd8ffe475c2fc0"
+ hash: "31dc8c50a99164c19445a089223c8813"
}
Frame {
msec: 1760
- hash: "6ed9d7ea344b3c1b1d9196ee36b2f89a"
+ hash: "78ff726b7da5ba03fa74f66b39bf1006"
}
Frame {
msec: 1776
- hash: "6a1e7f6c03769c2c88e6343fb6c1a2a4"
+ hash: "6f8a540dccf7182f6aed8903a0afb109"
}
Frame {
msec: 1792
- hash: "9dc51f46e072eac4494d7318f2ecb39b"
+ hash: "c914c500507b9c7180dcf25e985135e9"
}
Frame {
msec: 1808
- hash: "59e833981c3fcd8a71f4a16d1c454b3a"
+ hash: "39702ce38bcfca46ef3a8dbb7299c725"
}
Frame {
msec: 1824
- hash: "29b953efdda00548d8cf6fb49fa60d13"
+ hash: "969b71ee88a1d244e62af1cecc105234"
}
Frame {
msec: 1840
- hash: "fd4611f703f94ebefcc64781993ca85c"
+ hash: "11c8397fb9d7b993761b08ba8c9958e5"
}
Frame {
msec: 1856
- hash: "aa4789ede618963157b40f099ce84987"
+ hash: "79ad4a90ab449e3232db993b30786d89"
}
Frame {
msec: 1872
- hash: "8a326b46ec536a67626ee2d2bc06aa9f"
+ hash: "daf979fd50e0860bf30f377a059d89dc"
}
Frame {
msec: 1888
- hash: "011ff557672d47591e4f0f5c5ee418f1"
+ hash: "5412e7524dc22e8064c8a8c684092802"
}
Frame {
msec: 1904
- hash: "d72fba857bdc128ddcb5971b86aadcb2"
+ hash: "2c3bea8bf10ecf6c19b93e94cb7ac0ea"
}
Frame {
msec: 1920
@@ -574,807 +638,919 @@ VisualTest {
}
Frame {
msec: 1936
- hash: "49182b7ae9ef5fb4b9234969abd05960"
+ hash: "bbfa2f8aaab0abaff9d771d5ec546d96"
}
Frame {
msec: 1952
- hash: "53de60f682574b7a9e6ffaee175fc9ff"
+ hash: "be2811bf369bc9dd8c5d9deec3b84788"
}
Frame {
msec: 1968
- hash: "2de74fe5b8848c5c781b796146871f45"
+ hash: "779838915f48eb917d36c3f2b65eedae"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 595; y: 236
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 565; y: 256
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 1984
- hash: "33c87146d8c24dd9c2271d16a8ff5b53"
+ hash: "d20b5fe14b47dfb1e73f8ef44802da11"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 507; y: 286
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 2000
- hash: "fdb29214e20d744d9776907061f50358"
+ hash: "5312dd1f9d309ab5134b8bb67685488e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 461; y: 288
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 461; y: 288
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 2016
- hash: "8c7c920416c9b775e790e6da24c32927"
+ hash: "8d6b6cbb74cc654bc5aff10a807dd3cb"
}
Frame {
msec: 2032
- hash: "86b456059e4701379447fffaf9e072f0"
+ hash: "dee717869177d1de4a26599b120f1c3d"
}
Frame {
msec: 2048
- hash: "f92cc485ee03ef5bce3c4cdc35e00318"
+ hash: "2b2c60f42024784ceed5c68505dfa5ca"
}
Frame {
msec: 2064
- hash: "2fad58883cb20273cfd79ebca345a66d"
+ hash: "1a6a108fd6cf607ec08dbedd804d12f7"
}
Frame {
msec: 2080
- hash: "84505ebbc6e12817f11f64aa6f61a0bf"
+ hash: "10bc4d0a1dc400fedc9a68b68c6525fd"
}
Frame {
msec: 2096
- hash: "ded83cacb89838cc0f3ba14bcc69b66b"
+ hash: "dc6a4abfbfb38e90af2308320d0f795b"
}
Frame {
msec: 2112
- hash: "5bb37e75bb45eaa6067c604b83ae13d7"
+ hash: "82c61d8461001c19af7c2b458d427e0b"
}
Frame {
msec: 2128
- hash: "4ee9e4c90c40dbc25a0ce884d9c2c37f"
+ hash: "e455d9ccffedaa708532bb69ad15871e"
}
Frame {
msec: 2144
- hash: "cb7148ff6f611038c29af36c8552b8c2"
+ hash: "b9c6169ad08724fc70df30668dfe7509"
}
Frame {
msec: 2160
- hash: "a591d8cb42570272dd264d5f1ce595ab"
+ hash: "a3fe5862be470470854d4157c1c027db"
}
Frame {
msec: 2176
- hash: "4e61657405d32dbcd39d3637f8af0958"
+ hash: "6a3804bd5f4fd5f1c424615ceb620525"
}
Frame {
msec: 2192
- hash: "9c7c1411dd5d3c1c8fb78e63e14061fe"
+ hash: "df0d72248310654a9cf47e707fe9e414"
}
Frame {
msec: 2208
- hash: "ae83a37e99b578fa0872ed6bc2776bc0"
+ hash: "beb19f2b2979ab40b5ccf8c0fbe9b72f"
}
Frame {
msec: 2224
- hash: "e8cb5a8a40c1e78c87c616f77d8de270"
+ hash: "be3449b49048b764bea68a76baa0fc75"
}
Frame {
msec: 2240
- hash: "9df093e4bcfa32be5924a0ca70bdaa3b"
+ hash: "4a615cae9c8f85e7b8aecd4c9014f1eb"
}
Frame {
msec: 2256
- hash: "40c358066d508143bee1446d12fe7b89"
+ hash: "b3c274f1a9d65684c0a55a544bf77810"
}
Frame {
msec: 2272
- hash: "a929ed6efc7fc68b38635f3c74242f52"
+ hash: "31456b01fcfb60a77d2b9662c2fff7b6"
}
Frame {
msec: 2288
- hash: "86ff721a3178b689ea47b6bc274a2b41"
+ hash: "2be5cf3f6158bf09659acc68b134846f"
}
Frame {
msec: 2304
- hash: "ed1f680f6d05f54ceb75c9bae3a0716a"
+ hash: "5f9c725a11305f3e6c48ab332faabf50"
}
Frame {
msec: 2320
- hash: "3f09a565df2beb51f366a1b3fb6adfe9"
+ hash: "277c2733c7245d045665198984b74224"
}
Frame {
msec: 2336
- hash: "13468347bd26bab60f1db826fb17631c"
+ hash: "265b8342bc747fb43a5291df0f4ce48b"
}
Frame {
msec: 2352
- hash: "9f7d085fea5788a457098973f17c36cb"
+ hash: "803b49ec31955b481009a51c64bcce65"
}
Frame {
msec: 2368
- hash: "4114b93246155b3434200831b2995330"
+ hash: "a717b30ad50746cdf0fae82212ac88f0"
}
Frame {
msec: 2384
- hash: "487171bd1430f74e3d51b5e215c34b5c"
+ hash: "65f46c8e69f24d060b5da6f866867f51"
}
Frame {
msec: 2400
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "52f9e5d1106d00a950470076a50e4239"
}
Frame {
msec: 2416
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "058a787aae2845308e68bb93f6a811e4"
}
Frame {
msec: 2432
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "621985111c25994c0c0fe3635be67c1d"
}
Frame {
msec: 2448
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2949b8185cefbaaf587a043d805cc670"
}
Frame {
msec: 2464
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "d4a03127ae5047184c736617deeac92d"
}
Frame {
msec: 2480
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "876c6c5ac4500de6234423bf6f3511d6"
}
Frame {
msec: 2496
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "eb08aa172cfbdb696b6f672dfa7b6fff"
}
Frame {
msec: 2512
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "a60c13b8f46faa0a35dbb539010550d4"
}
Frame {
msec: 2528
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "c6f8786506e0326a5734ab8aea782f95"
}
Frame {
msec: 2544
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "a49927f2aae24e692fc379f0ab6f4ee9"
}
Frame {
msec: 2560
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2f1a2d50e1090b34ad1ea6a36eec4fe0"
}
Frame {
msec: 2576
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "a5ee24d37be960a88684748b73dc75fe"
}
Frame {
msec: 2592
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "28682389395b47ae33ceec1ba3beef4e"
}
Frame {
msec: 2608
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "1869667b50b76d99716dd0d7849901fa"
}
Frame {
msec: 2624
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2806ee1005193f55825aa6147583985f"
}
Frame {
msec: 2640
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "c00589dce90e3ab2f2c8890f30f80d3d"
}
Frame {
msec: 2656
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "1f1881f0a29525e380ecbcce15499fa4"
}
Frame {
msec: 2672
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2a4c3ff764545a3899c864680f22f0a3"
}
Frame {
msec: 2688
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2704
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2720
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2736
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2752
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2768
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2784
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2800
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2816
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2832
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2848
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2864
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "2685820514ce5d5729f3761b1eaa1682"
}
Frame {
msec: 2880
image: "test-pathview.2.png"
}
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 310; y: 277
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 324; y: 279
+ modifiers: 0
+ sendToViewport: true
+ }
Frame {
msec: 2896
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "ce00c77e8ff1768b41f5585344af1c58"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 330; y: 281
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 2912
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "24f401275fa6ec7d26234609792fe0b8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 346; y: 283
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 2928
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "d3c74863c627a1b922a6b6c4a24f8c40"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 358; y: 285
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 358; y: 285
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 2944
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "64a3209e6adc737065e5d5c3202a7283"
}
Frame {
msec: 2960
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "cf936ffe4330edefddb31c59368491fc"
}
Frame {
msec: 2976
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "a67213db044bb876f737cd355fe54444"
}
Frame {
msec: 2992
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "0f9e97057cbbd8071e0f5f61318bdf9c"
}
Frame {
msec: 3008
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "c5f38d334df86ebb6ac4600c83eced20"
}
Frame {
msec: 3024
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "6d8e6049a36eac4136dbdb5fb18d0650"
}
Frame {
msec: 3040
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "8ee97cff4a632e6e297bd3bdac27b8d4"
}
Frame {
msec: 3056
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "aca1fcd005d211d35245e64a44002c01"
}
Frame {
msec: 3072
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "7076180bf0eb14a5e733be9320f1f009"
}
Frame {
msec: 3088
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 728; y: 181
- modifiers: 0
- sendToViewport: true
+ hash: "e0a0545b3a0b6a0b07d3fa987e1d58b6"
}
Frame {
msec: 3104
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "0294b098ce7f0d381542776320e52d2e"
}
Frame {
msec: 3120
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
+ hash: "36f8bcc42add38fe149e34a703cf8a02"
}
Frame {
msec: 3136
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 727; y: 181
- modifiers: 0
- sendToViewport: true
+ hash: "631426bde50fd35d1da1c30d9878253e"
}
Frame {
msec: 3152
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 723; y: 181
- modifiers: 0
- sendToViewport: true
+ hash: "a4d64c9d378138bedf63389e58d8f1d6"
}
Frame {
msec: 3168
- hash: "7ba9783ce63db6ad6b5f725a4ecd4eb8"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 717; y: 184
- modifiers: 0
- sendToViewport: true
+ hash: "17fdf61bffd947c2e9898f5c4517fdf8"
}
Frame {
msec: 3184
- hash: "6dcec6cdaa35eba74607ba64d6ea2ec0"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 705; y: 188
- modifiers: 0
- sendToViewport: true
+ hash: "653b8c7a55bc4ca763238098711eafa1"
}
Frame {
msec: 3200
- hash: "16b7b4847fe86b25d8d6136106a4c400"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 686; y: 197
- modifiers: 0
- sendToViewport: true
+ hash: "89e15b3ee1b1fc945801e08cfcdba62c"
}
Frame {
msec: 3216
- hash: "d946d55b19c99fa25bf1c04f2b71026a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 661; y: 207
- modifiers: 0
- sendToViewport: true
+ hash: "7ea615af67336895e6cee6d3a39ff7de"
}
Frame {
msec: 3232
- hash: "96f40f5071365cde769c733fd1ef5a24"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 626; y: 221
- modifiers: 0
- sendToViewport: true
+ hash: "88faee45db80f04ef1120c35057a5f7d"
}
Frame {
msec: 3248
- hash: "7004058b95b7eab3ebba5c80c0923982"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 582; y: 235
- modifiers: 0
- sendToViewport: true
+ hash: "8cfe34047b29ac85e58d55e0f6e0b195"
}
Frame {
msec: 3264
- hash: "2c78880237c414182f97f1709f1eef0f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 532; y: 246
- modifiers: 0
- sendToViewport: true
+ hash: "39255546502fcb882005fe4c38c21fb0"
}
Frame {
msec: 3280
- hash: "c90a15ec9f88008ca8b0ec0185444d71"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 532; y: 246
- modifiers: 0
- sendToViewport: true
+ hash: "6bf7a959a05fc27f651b2a3ba07de30d"
}
Frame {
msec: 3296
- hash: "c90a15ec9f88008ca8b0ec0185444d71"
+ hash: "c2c61cb8dbbbd38827277ab32579c6da"
}
Frame {
msec: 3312
- hash: "36461e2a4cd860cac32223b8ee73c657"
+ hash: "ff370d4b4e44c4cbacca96107105df21"
}
Frame {
msec: 3328
- hash: "5f9b3ad9202fb02a4c6fea28c248ad22"
+ hash: "ccadd9e070d54de21c76397d18ad3de8"
}
Frame {
msec: 3344
- hash: "d0d23c4e1ddb2d9ffa0ecc38030ae15c"
+ hash: "6302c39de00070b0a23f9dc87f74dd8d"
}
Frame {
msec: 3360
- hash: "8e2e2d3eaf557c453f34016b6614e495"
+ hash: "7ab69e6d9809c78dc723609bd2761206"
}
Frame {
msec: 3376
- hash: "7402c747fa7276293a0a72d48d342782"
+ hash: "c429cc724b39891805cf4c1448de60b3"
}
Frame {
msec: 3392
- hash: "6090c30e4d722a32c083a25171fb11ff"
+ hash: "396ddf0b01e9fe7c2bfb220e64a0c7ec"
}
Frame {
msec: 3408
- hash: "f770d940cf287fec4b0803f7310292a8"
+ hash: "7a519a4efeecef5e7623a270e458fb13"
}
Frame {
msec: 3424
- hash: "558e4ce32df69357b70a8285b00fe347"
+ hash: "869d174a939e0638a1a22d5c8a010c14"
}
Frame {
msec: 3440
- hash: "8814168503c9a72ea8d3fa1e503f33d9"
+ hash: "9ecd2cf4e3b42ff93bcbf4db9829666c"
}
Frame {
msec: 3456
- hash: "6f5513d22e545096fadc6f5c4112902e"
+ hash: "b06b58b250d3df365806a3f8991d57f3"
}
Frame {
msec: 3472
- hash: "43f11d8ac16fd3e8199e555528817e14"
+ hash: "7a6fb03feb2ae0af1f143daedd22a88b"
}
Frame {
msec: 3488
- hash: "d64bafdbd26878a323dae918d5e0a36d"
+ hash: "e9fe338dbe7afb69f3870743b0a18805"
}
Frame {
msec: 3504
- hash: "1c70bdddfc3751ae3864f008170f8b06"
+ hash: "04b8def2085e9ce4065b02b938915557"
}
Frame {
msec: 3520
- hash: "bb7a18691fcd371e9d382b5bba4a0573"
+ hash: "7e6942f72012875ba83a1c9121e1f786"
}
Frame {
msec: 3536
- hash: "547e15f5dea2d9aa3ed44640b25028b9"
+ hash: "291e2d79a79959d9c8c586b6bdc31689"
}
Frame {
msec: 3552
- hash: "c11b86a256fac6be10b9a54564903d6f"
+ hash: "e490bc7fd92f486b964cca967bd33b38"
}
Frame {
msec: 3568
- hash: "0ada2dc586894d5e37de2632d2b37b15"
+ hash: "0c9858e0445e25d2b12c84801de441cb"
}
Frame {
msec: 3584
- hash: "0ae1a39ea196a0e734d80dbdea67b285"
+ hash: "72ba7a4aacb150e1e9c6de72cff82258"
}
Frame {
msec: 3600
- hash: "3cb70e64f9ab8aad841326dc2d2f1615"
+ hash: "1daca95256842545a5b77bcc46782478"
}
Frame {
msec: 3616
- hash: "a8f8b5ff19df9163ea628b589b675a5e"
+ hash: "869f3d16e203ad47f1ae7ca83e369b75"
}
Frame {
msec: 3632
- hash: "26fcc73f477db0ea731bc18b00b4c791"
+ hash: "9cc9cb20aab3369f4e3c5259d291708c"
}
Frame {
msec: 3648
- hash: "8702e49f3f26e1e21970e78c8aa4040a"
+ hash: "a507b957bab3efe2023a65f8c8b3540a"
}
Frame {
msec: 3664
- hash: "1a482a39d02779d8733e348b713f2312"
+ hash: "9fce2a6cddd8b06a80ce16599b56caa6"
}
Frame {
msec: 3680
- hash: "c728cc4a8e4d0a8d983514f86a92eae0"
+ hash: "2f85d3064968e3e7b669f733fad58459"
}
Frame {
msec: 3696
- hash: "82360ab373b08bf6a5d9e9ea9d0d18aa"
+ hash: "6dd6fad85dc5317a22a05a8486317767"
}
Frame {
msec: 3712
- hash: "6231a4bce6cfc1e26a9606cc041acdbc"
+ hash: "b0faa2ec225cd96fb6d2fd05dc66bed1"
}
Frame {
msec: 3728
- hash: "6e3b48862fc749f15aa2dec1c17d1de0"
+ hash: "3188219f095c2a9ac7c0f6034463d769"
}
Frame {
msec: 3744
- hash: "6c9e79a5692a3810b2a9058790f54cd7"
+ hash: "b269e9fe4d14537c8bef0b66effe7319"
}
Frame {
msec: 3760
- hash: "0652c67fedda0d5e55858ddefff2da9e"
+ hash: "b269e9fe4d14537c8bef0b66effe7319"
}
Frame {
msec: 3776
- hash: "3b058c0efeb3a9da54a1de72a1792a83"
+ hash: "b269e9fe4d14537c8bef0b66effe7319"
}
Frame {
msec: 3792
- hash: "96e6fb39c8dbfe4a00bf116bf80aac4d"
+ hash: "b269e9fe4d14537c8bef0b66effe7319"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 174; y: 234
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 3808
- hash: "979c0c78c41e0f337cfe1b384fbbe51a"
+ hash: "9480eb8761d4ce90971903fcfab1e09e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 176; y: 236
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 3824
- hash: "8be0d6987a6d12864f30336b249e4b16"
+ hash: "30a6ac631e1a3433f252f56ee4337cdc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 179; y: 238
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 3840
image: "test-pathview.3.png"
}
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 184; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
Frame {
msec: 3856
- hash: "31e665f804a52a4dc88eab5dba78ae5a"
+ hash: "ed07f9eea6cd2cd78a3e2479137f843d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 185; y: 244
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 3872
- hash: "b7d4cf5a6a3ac79da3be101b50b38bc2"
+ hash: "7a5b201cc8725dbf15d89907fffd4ee3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 197; y: 250
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 3888
- hash: "559b1b8467b611cdeb7f2ae660e3bf51"
+ hash: "bc2433b9e5f03cdbd35922d145a4ce59"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 213; y: 256
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 213; y: 256
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 3904
- hash: "66abb5af85e793569382efb04744d0de"
+ hash: "d443f23aa5449d5f2b11c47feab5a0ae"
}
Frame {
msec: 3920
- hash: "b64eff8bbea5a953d146333363825724"
+ hash: "c43f00d3ae4c8abbd20fc7157363b19d"
}
Frame {
msec: 3936
- hash: "47b794c971c4d47baf15e1d63d65ac03"
+ hash: "22d6f5e9fdfe44e73020e6f504002b7c"
}
Frame {
msec: 3952
- hash: "b3882fa14f3cb7428c660737656d7ea2"
+ hash: "4a9a285834aad5795adbefbe167028e2"
}
Frame {
msec: 3968
- hash: "a6bd71c7d3a0f3f53674ea8e1334e560"
+ hash: "561a6c005950830acf2a45ab9a207346"
}
Frame {
msec: 3984
- hash: "0926d3cd53aabb789686e34d91ef23dc"
+ hash: "b0387e3cfd455e1144d0bce9b51d6767"
}
Frame {
msec: 4000
- hash: "914c4fa7264111b4a42c82a60701d652"
+ hash: "610237f67aa7e5f8d5b363b1612b4966"
}
Frame {
msec: 4016
- hash: "84c1fa22440a61126b79c38605b6f9ca"
+ hash: "8034a5a7e0558d73051ea6c5bc750866"
}
Frame {
msec: 4032
- hash: "b684fcf9f4725cfc02af0187454dfaf8"
+ hash: "0e4dc8a9c124b51c5f1225f4c6a9ec63"
}
Frame {
msec: 4048
- hash: "2e94c1ca74af4eb836a0c505d131f263"
+ hash: "dc4e94522e8c64e9f2dbbf12a1f1aa3e"
}
Frame {
msec: 4064
- hash: "5f04912674e1bcdb16176976d10ce995"
+ hash: "7466c076a95f2f6bbc2b6ce306773337"
}
Frame {
msec: 4080
- hash: "aaf0bcef4a15aa1c699eaa1ce817c8ed"
+ hash: "787e2749905b97159fd0922c6cb388e2"
}
Frame {
msec: 4096
- hash: "97fd5bdcfa367191fbd3689658ab3273"
+ hash: "1e510d01afad190ec21de253bd8b4821"
}
Frame {
msec: 4112
- hash: "d76d6c59411636a0e9ac2e0c847b3fe3"
+ hash: "d740f40eb21be71ec70c00411d2ee76b"
}
Frame {
msec: 4128
- hash: "9cb88a76c962623b1a9cf4e7093d6e54"
+ hash: "887a6f445af8fccf4932eed575a09cbb"
}
Frame {
msec: 4144
- hash: "ec3d7075680296905b1bdd6fdd9fcc40"
+ hash: "fbb7e1d8cb9dd9016df0c33c69b1451a"
}
Frame {
msec: 4160
- hash: "43c70dabc45ed059e8b876eb2ba5c66e"
+ hash: "5025e5f04a0807cb298037d6dda8c3af"
}
Frame {
msec: 4176
- hash: "8f97ca5c3092a20009c5d00139105a22"
+ hash: "b9924f24f60c24087be165e8e385ebb0"
}
Frame {
msec: 4192
- hash: "d0f225d4b03495218f7916698e254338"
+ hash: "2bab970787ac8b056401c8a73cb1a3c5"
}
Frame {
msec: 4208
- hash: "f8725467353a8f27bc5570af157c93c7"
+ hash: "bda954bfafaa2915d760cf7a602b326f"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 187; y: 242
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4224
- hash: "749c8ca5c0a7774c81805b792e6b70e3"
+ hash: "9b109bb9e786a45a78849436ea32a484"
}
Frame {
msec: 4240
- hash: "d353c4a8a5eecb1dce30f4a5b85b1ef4"
+ hash: "9b109bb9e786a45a78849436ea32a484"
}
Frame {
msec: 4256
- hash: "a7105f3f1ddace730d0b4a12a3560208"
+ hash: "9b109bb9e786a45a78849436ea32a484"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 187; y: 243
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4272
- hash: "918f480af8a35f6074ff1e202dae2660"
+ hash: "9b109bb9e786a45a78849436ea32a484"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 199; y: 252
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4288
- hash: "ed98d08eb30db1b41aaf2a58f3b59398"
+ hash: "cc3c61f49a7b3c395670b86c8078a337"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 223; y: 262
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4304
- hash: "c362cf053b3749a44d1fc33483f9952b"
+ hash: "464d09b53b78fe5474d9c1d022bee9fd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 251; y: 272
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 251; y: 272
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4320
- hash: "9b01b2c771ef86ff4a8ee3f6a4676e3c"
+ hash: "aab17f48ff506cda84543cbe0d8a1ce4"
}
Frame {
msec: 4336
- hash: "70ccec3c9db95206b5589d43dcd52b13"
+ hash: "b7ba6c107f4085822a738120a913ba0c"
}
Frame {
msec: 4352
- hash: "57e7397c6aadd0d4d5c9d9d5fcdd8fde"
+ hash: "751b79e202a70dcc9a86c3a1450172b8"
}
Frame {
msec: 4368
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "bb03f969fd6987255ff113ef98ed2bb1"
}
Frame {
msec: 4384
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "c33302b366441fa2d8753d5ce314cd37"
}
Frame {
msec: 4400
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "4cdf32004382bcaca5a68cb92761caa2"
}
Frame {
msec: 4416
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "d3fe18ea7dcbee0709a2041e50b87154"
}
Frame {
msec: 4432
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "ac58a7adb0e7a354a058d7e9a7010c06"
}
Frame {
msec: 4448
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "bdf8a8934a372ab49f4b6e9c95c7f591"
}
Frame {
msec: 4464
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "d2e8b417b74ec5f6e23f0935a4d0aa98"
}
Frame {
msec: 4480
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "0f94c6ca3ffbd730c2d813a991d21ca3"
}
Frame {
msec: 4496
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "fb7728eebb2fa8f5255dc7435d20bbb6"
}
Frame {
msec: 4512
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "c8211e8adcef525c296531a3d369f717"
}
Frame {
msec: 4528
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "f24de36c85b87953977fa8b6456209dc"
}
Frame {
msec: 4544
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "9ce7cf389af08cb1ba2534418f51857b"
}
Frame {
msec: 4560
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "17d1f3ae0dba0bde222bb2483a403fbd"
}
Frame {
msec: 4576
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "1748d75e229945012ece689b3784a02c"
}
Frame {
msec: 4592
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "6786fa9e31d6f0a71a285c790aa5b008"
}
Frame {
msec: 4608
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "f2a2ba33b41d8d522e8aab34c7da8f7b"
}
Frame {
msec: 4624
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "aa53142d1b433ae9f748aef5cb7bef46"
}
Frame {
msec: 4640
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "9c6802b2b0a419a4aaf9909c0f88c66e"
}
Frame {
msec: 4656
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "206b11f2acd742d55ddd8acf7415bbeb"
}
Frame {
msec: 4672
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "36876cf600cbf9c3b15f243617c9474e"
}
Frame {
msec: 4688
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "1f5daf97294b490546657c5d9e12022e"
}
Frame {
msec: 4704
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "637fc34fc2cf6139ba8809be54a2a0fc"
}
Frame {
msec: 4720
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "9f824bd9e156980873619b1978f226bb"
}
Frame {
msec: 4736
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "7002444129a5077ce5be44a5e2530328"
}
Frame {
msec: 4752
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "42b7a44030ad4fc50ceb6a60bc97991e"
}
Frame {
msec: 4768
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "ae986cac541033398076fb918136212e"
}
Frame {
msec: 4784
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "6bdd9f764b1675e5b0feced8c2d831a6"
}
Frame {
msec: 4800
@@ -1382,114 +1558,278 @@ VisualTest {
}
Frame {
msec: 4816
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "07dfffe85adc4b52565e9ed156fa3ed6"
}
Frame {
msec: 4832
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "c987bbe9fbf74bb6cf2686a5ee97c59a"
}
Frame {
msec: 4848
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "19568159ec2282d5f150583baa0a8a94"
}
Frame {
msec: 4864
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "5b176ef6bf70ff1a9805ca85b1b0c1a2"
}
Frame {
msec: 4880
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "de716a8c15a46bf1621878794e968c53"
}
Frame {
msec: 4896
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "241af9ab77c86cdb75f73339548604ad"
}
Frame {
msec: 4912
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "afc7168ecb7fa7e3310ca818b75f7a1c"
}
Frame {
msec: 4928
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "83bff911b502a34d139a724f686bb1f9"
}
Frame {
msec: 4944
- hash: "299b24eae7720e1711744b23335bca8c"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "f4d3fb54ae5be2b13065cd4316b06837"
}
Frame {
msec: 4960
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "d29c7dfedf9dd355d60e394528b3b938"
}
Frame {
msec: 4976
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "ddf23d860ea71ab4b407de1a5f913f74"
}
Frame {
msec: 4992
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "a0dbb6ecbfd08f9ebdd641fea5dae16c"
}
Frame {
msec: 5008
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "7ed3170e55e3c3c9561959ad4c56d326"
}
Frame {
msec: 5024
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "dbde5f508aabc2d1f2ccfaf135efeca9"
}
Frame {
msec: 5040
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "72039739be41bf63b3959bdc90ce25bb"
}
Frame {
msec: 5056
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "417789daefe6bc01320db7803ae31d61"
}
Frame {
msec: 5072
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "7e57dbddaf379f4316182048fa9e2d6f"
}
Frame {
msec: 5088
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "aeca9a4df94d2b9ac2a713531a7d98f1"
}
Frame {
msec: 5104
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "98ad6694f23678819020d6ac0161651c"
}
Frame {
msec: 5120
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "b6eba3872da19ec677eee419ae9cccbc"
}
Frame {
msec: 5136
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "e824909bfe7b6d54773bb218ba93e884"
}
Frame {
msec: 5152
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "3be04f3ff6d948538f4472bc6bfadb0f"
}
Frame {
msec: 5168
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "e05ff21dda1d978a2ac2eedd3826b6f7"
}
Frame {
msec: 5184
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "8ee970b2b197c8d879a7b1703cbd4dcd"
}
Frame {
msec: 5200
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "e583845e7719d2776c6362c34f77937c"
}
Frame {
msec: 5216
- hash: "299b24eae7720e1711744b23335bca8c"
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5232
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5248
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5264
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5280
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5296
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5312
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5328
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5344
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5360
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5376
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5392
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5408
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5424
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5440
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5456
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5472
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5488
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5504
+ hash: "593fd590531ccfb59d890b8043eaab9c"
+ }
+ Frame {
+ msec: 5520
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5536
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5552
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5568
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5584
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5600
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5616
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5632
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5648
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5664
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5680
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5696
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5712
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5728
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5744
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5760
+ image: "test-pathview.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5792
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5808
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5824
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5840
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5856
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5872
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5888
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
+ }
+ Frame {
+ msec: 5904
+ hash: "c0d0f62d9078f6be493d5545a2ae78ad"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml
index 3bcab5a..e6e1a70 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml
@@ -59,4 +59,9 @@ Rectangle {
PathAttribute { name: "angle"; value: 45 }
}
}
+
+ Column {
+ Rectangle { width: 20; height: 20; color: "red"; opacity: photoPathView.moving ? 1 : 0 }
+ Rectangle { width: 20; height: 20; color: "blue"; opacity: photoPathView.flicking ? 1 : 0 }
+ }
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml
index 73dd4d7..e268a60 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml
@@ -34,10 +34,10 @@ Rectangle {
text: s.text; font.underline: true; font.overline: true; font.strikeout: true
}
Text {
- text: s.text; font.letterSpacing: 200
+ text: s.text; font.letterSpacing: 2
}
Text {
- text: s.text; font.underline: true; font.letterSpacing: 200; font.capitalization: "AllUppercase"; color: "blue"
+ text: s.text; font.underline: true; font.letterSpacing: 2; font.capitalization: "AllUppercase"; color: "blue"
}
Text {
text: s.text; font.overline: true; font.wordSpacing: 25; font.capitalization: "Capitalize"; color: "green"
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml
index b41b93a..a883b9c 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml
@@ -34,10 +34,10 @@ Rectangle {
text: s.text; font.underline: true; font.overline: true; font.strikeout: true
}
Text {
- text: s.text; font.letterSpacing: 200
+ text: s.text; font.letterSpacing: 2
}
Text {
- text: s.text; font.underline: true; font.letterSpacing: 200; font.capitalization: "AllUppercase"; color: "blue"
+ text: s.text; font.underline: true; font.letterSpacing: 2; font.capitalization: "AllUppercase"; color: "blue"
}
Text {
text: s.text; font.overline: true; font.wordSpacing: 25; font.capitalization: "Capitalize"; color: "green"