From 94886fcc184147420cdd205e5d5be073d768bfc8 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 10 Nov 2009 10:11:30 +1000 Subject: More Keys testing. --- .../auto/declarative/qmlgraphicsitem/data/keys.qml | 3 +++ .../qmlgraphicsitem/tst_qmlgraphicsitem.cpp | 31 ++++++++++++++++++++++ 2 files changed, 34 insertions(+) diff --git a/tests/auto/declarative/qmlgraphicsitem/data/keys.qml b/tests/auto/declarative/qmlgraphicsitem/data/keys.qml index 7c16559..f3c1f7b 100644 --- a/tests/auto/declarative/qmlgraphicsitem/data/keys.qml +++ b/tests/auto/declarative/qmlgraphicsitem/data/keys.qml @@ -5,7 +5,10 @@ Item { Keys.onPressed: keysTestObject.keyPress(event.key, event.text, event.modifiers) Keys.onReleased: { keysTestObject.keyRelease(event.key, event.text, event.modifiers); event.accepted = true; } Keys.onReturnPressed: keysTestObject.keyPress(event.key, "Return", event.modifiers) + Keys.onDigit0Pressed: keysTestObject.keyPress(event.key, event.text, event.modifiers) + Keys.onDigit9Pressed: { event.accepted = false; keysTestObject.keyPress(event.key, event.text, event.modifiers) } Keys.forwardTo: [ item2 ] + Keys.enabled: enableKeyHanding Item { id: item2 diff --git a/tests/auto/declarative/qmlgraphicsitem/tst_qmlgraphicsitem.cpp b/tests/auto/declarative/qmlgraphicsitem/tst_qmlgraphicsitem.cpp index b4b3eaf..66ef982 100644 --- a/tests/auto/declarative/qmlgraphicsitem/tst_qmlgraphicsitem.cpp +++ b/tests/auto/declarative/qmlgraphicsitem/tst_qmlgraphicsitem.cpp @@ -113,6 +113,8 @@ void tst_QmlGraphicsItem::keys() KeysTestObject *testObject = new KeysTestObject; canvas->rootContext()->setContextProperty("keysTestObject", testObject); + canvas->rootContext()->setContextProperty("enableKeyHanding", QVariant(true)); + canvas->execute(); canvas->show(); qApp->processEvents(); @@ -150,6 +152,35 @@ void tst_QmlGraphicsItem::keys() QVERIFY(testObject->mModifiers == Qt::NoModifier); QVERIFY(key.isAccepted()); + testObject->reset(); + + key = QKeyEvent(QEvent::KeyPress, Qt::Key_0, Qt::NoModifier, "0", false, 1); + QApplication::sendEvent(canvas, &key); + QCOMPARE(testObject->mKey, int(Qt::Key_0)); + QCOMPARE(testObject->mForwardedKey, int(Qt::Key_0)); + QCOMPARE(testObject->mText, QLatin1String("0")); + QVERIFY(testObject->mModifiers == Qt::NoModifier); + QVERIFY(key.isAccepted()); + + testObject->reset(); + + key = QKeyEvent(QEvent::KeyPress, Qt::Key_9, Qt::NoModifier, "9", false, 1); + QApplication::sendEvent(canvas, &key); + QCOMPARE(testObject->mKey, int(Qt::Key_9)); + QCOMPARE(testObject->mForwardedKey, int(Qt::Key_9)); + QCOMPARE(testObject->mText, QLatin1String("9")); + QVERIFY(testObject->mModifiers == Qt::NoModifier); + QVERIFY(!key.isAccepted()); + + testObject->reset(); + + canvas->rootContext()->setContextProperty("enableKeyHanding", QVariant(false)); + + key = QKeyEvent(QEvent::KeyPress, Qt::Key_Return, Qt::NoModifier, "", false, 1); + QApplication::sendEvent(canvas, &key); + QCOMPARE(testObject->mKey, 0); + QVERIFY(!key.isAccepted()); + delete canvas; delete testObject; } -- cgit v0.12 From 728fc1a4f3a6a9ba7b6011663ad342a5ed8b0953 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 10 Nov 2009 10:16:44 +1000 Subject: Test horizontal list --- .../visual/ListView/data/itemlist.0.png | Bin 0 -> 961 bytes .../visual/ListView/data/itemlist.1.png | Bin 0 -> 972 bytes .../visual/ListView/data/itemlist.2.png | Bin 0 -> 962 bytes .../visual/ListView/data/itemlist.3.png | Bin 0 -> 962 bytes .../visual/ListView/data/itemlist.4.png | Bin 0 -> 962 bytes .../visual/ListView/data/itemlist.5.png | Bin 0 -> 970 bytes .../visual/ListView/data/itemlist.6.png | Bin 0 -> 961 bytes .../declarative/visual/ListView/data/itemlist.qml | 2203 ++++++++++++++++++++ .../auto/declarative/visual/ListView/itemlist.qml | 40 + 9 files changed, 2243 insertions(+) create mode 100644 tests/auto/declarative/visual/ListView/data/itemlist.0.png create mode 100644 tests/auto/declarative/visual/ListView/data/itemlist.1.png create mode 100644 tests/auto/declarative/visual/ListView/data/itemlist.2.png create mode 100644 tests/auto/declarative/visual/ListView/data/itemlist.3.png create mode 100644 tests/auto/declarative/visual/ListView/data/itemlist.4.png create mode 100644 tests/auto/declarative/visual/ListView/data/itemlist.5.png create mode 100644 tests/auto/declarative/visual/ListView/data/itemlist.6.png create mode 100644 tests/auto/declarative/visual/ListView/data/itemlist.qml create mode 100644 tests/auto/declarative/visual/ListView/itemlist.qml diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.0.png b/tests/auto/declarative/visual/ListView/data/itemlist.0.png new file mode 100644 index 0000000..a1947ca Binary files /dev/null and b/tests/auto/declarative/visual/ListView/data/itemlist.0.png differ diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.1.png b/tests/auto/declarative/visual/ListView/data/itemlist.1.png new file mode 100644 index 0000000..d27b7fa Binary files /dev/null and b/tests/auto/declarative/visual/ListView/data/itemlist.1.png differ diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.2.png b/tests/auto/declarative/visual/ListView/data/itemlist.2.png new file mode 100644 index 0000000..fdab8c6 Binary files /dev/null and b/tests/auto/declarative/visual/ListView/data/itemlist.2.png differ diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.3.png b/tests/auto/declarative/visual/ListView/data/itemlist.3.png new file mode 100644 index 0000000..dc321a8 Binary files /dev/null and b/tests/auto/declarative/visual/ListView/data/itemlist.3.png differ diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.4.png b/tests/auto/declarative/visual/ListView/data/itemlist.4.png new file mode 100644 index 0000000..fdab8c6 Binary files /dev/null and b/tests/auto/declarative/visual/ListView/data/itemlist.4.png differ diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.5.png b/tests/auto/declarative/visual/ListView/data/itemlist.5.png new file mode 100644 index 0000000..15b51cb Binary files /dev/null and b/tests/auto/declarative/visual/ListView/data/itemlist.5.png differ diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.6.png b/tests/auto/declarative/visual/ListView/data/itemlist.6.png new file mode 100644 index 0000000..a1947ca Binary files /dev/null and b/tests/auto/declarative/visual/ListView/data/itemlist.6.png differ diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.qml b/tests/auto/declarative/visual/ListView/data/itemlist.qml new file mode 100644 index 0000000..073749f --- /dev/null +++ b/tests/auto/declarative/visual/ListView/data/itemlist.qml @@ -0,0 +1,2203 @@ +import Qt.VisualTest 4.6 + +VisualTest { + Frame { + msec: 0 + } + Frame { + msec: 16 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 32 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 48 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 64 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 80 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 96 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 112 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 128 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 144 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 160 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 176 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 192 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 208 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 224 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 240 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 256 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 272 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 288 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 304 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 320 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 336 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 352 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 368 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 384 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 400 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 416 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 432 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 448 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 464 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 480 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 496 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 512 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 528 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 544 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 560 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 576 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 592 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 608 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 624 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 640 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 656 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 672 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 688 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 704 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 720 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 736 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 752 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 768 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 784 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 800 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 816 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 832 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 848 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 864 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 880 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 896 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 912 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 928 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 944 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 960 + image: "itemlist.0.png" + } + Frame { + msec: 976 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 992 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1008 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1024 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1040 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1056 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1072 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1088 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1104 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1120 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1136 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1152 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1168 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1184 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1200 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1216 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1232 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1248 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1264 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1280 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1296 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1312 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1328 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1344 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1360 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1376 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1392 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1408 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1424 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1440 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1456 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1472 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1488 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1504 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1520 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1536 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1552 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1568 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1584 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1600 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1616 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1632 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 1648 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 192; y: 111 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1664 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 191; y: 111 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1680 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 190; y: 112 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 187; y: 113 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1696 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 184; y: 113 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 180; y: 113 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1712 + hash: "a68b1bc6c2963ee92c3a45f500667b3b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 174; y: 114 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 167; y: 115 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1728 + hash: "7cda93e59466b3348e7ffe3895f89e86" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 160; y: 117 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1744 + hash: "06e0008c78e919f7270402938d9d764b" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 140; y: 121 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 132; y: 122 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1760 + hash: "9d8da9199efebb95f56e5d4ebc9a585e" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 114; y: 126 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 98; y: 132 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1776 + hash: "54a60a4279911ba4a8a5741bcadfa783" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 91; y: 132 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 91; y: 132 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 1792 + hash: "a1a19370a1a8ed78e475f0d0eb12311c" + } + Frame { + msec: 1808 + hash: "196a3b127cf7065614c34856bf8d8bca" + } + Frame { + msec: 1824 + hash: "5fbefbd7c7be4374382cc4c8b86ac78a" + } + Frame { + msec: 1840 + hash: "d6a544c622e504c1b931e1a8a1310a6e" + } + Frame { + msec: 1856 + hash: "20e76f0eb4ec5f691999faf8ad313370" + } + Frame { + msec: 1872 + hash: "7f84a3545907c754ae8a6a30ef61c98d" + } + Frame { + msec: 1888 + hash: "b544901eae32903ad054e8cdfed715eb" + } + Frame { + msec: 1904 + hash: "a010ed1e3312f4ca9f429b7e32cdcef9" + } + Frame { + msec: 1920 + image: "itemlist.1.png" + } + Frame { + msec: 1936 + hash: "93a731dc6f71b6ff5400bf74c87e6c46" + } + Frame { + msec: 1952 + hash: "c73f63d1a024ba956e693487b3ccc761" + } + Frame { + msec: 1968 + hash: "539d3d00fce2d0128cd697d86d237fe7" + } + Frame { + msec: 1984 + hash: "52752d7d6f2d0e085f7132313907b72b" + } + Frame { + msec: 2000 + hash: "f46dd5803a6075e979e0fc733d503bfb" + } + Frame { + msec: 2016 + hash: "b8734698a6bad00ecf019f85328c2c21" + } + Frame { + msec: 2032 + hash: "1cfc499ca756023430cc5b2fa95a599d" + } + Frame { + msec: 2048 + hash: "63a816548837c19f8f0494c137fc0174" + } + Frame { + msec: 2064 + hash: "1bce9b85235e9a1a472c079dfec70ec5" + } + Frame { + msec: 2080 + hash: "6677863e7f74c12648409883f73adbe2" + } + Frame { + msec: 2096 + hash: "98e707a3e39a5f7bd4a101c2ed83535c" + } + Frame { + msec: 2112 + hash: "c1f6d8842d14a9394d4b7797314f50e8" + } + Frame { + msec: 2128 + hash: "579758b477bcd2112b305a5aac7df338" + } + Frame { + msec: 2144 + hash: "4a7bb81090db246db53e2dbc56f710ea" + } + Frame { + msec: 2160 + hash: "074995cdd8a70817d1c8a7bb0ad4c542" + } + Frame { + msec: 2176 + hash: "bd8d7bda4d2e9ad1fba2895d568f36cc" + } + Frame { + msec: 2192 + hash: "40cce3d2d80ac470af44fc334cec1d5b" + } + Frame { + msec: 2208 + hash: "15cbc226b032d5a97199735ea7a1408b" + } + Frame { + msec: 2224 + hash: "12b296aea9b058a5402d0d0a620f8edc" + } + Frame { + msec: 2240 + hash: "6ffd2b79cf0e941a59e74bc6f9025bcb" + } + Frame { + msec: 2256 + hash: "589a58ef76ea709dc8d80390c9044f99" + } + Frame { + msec: 2272 + hash: "c009924bfa30153f22ab168b539494e9" + } + Frame { + msec: 2288 + hash: "4b83674a7c2daa68d735901ad40be2bd" + } + Frame { + msec: 2304 + hash: "0525908c0302ada989e28990bac3f2ca" + } + Frame { + msec: 2320 + hash: "89eb13976ba3ba4413cafeb0cc91c01b" + } + Frame { + msec: 2336 + hash: "75c1295ef99680784b2e11fb88fa1423" + } + Frame { + msec: 2352 + hash: "93d89165cf6a97c76ae6e7f75678a3cd" + } + Frame { + msec: 2368 + hash: "53064c1938f08a55603a99b0db225174" + } + Frame { + msec: 2384 + hash: "31db5684466c0c32128a9a8c7b1835e1" + } + Frame { + msec: 2400 + hash: "99d9e58697736198e0a00443d237e85b" + } + Frame { + msec: 2416 + hash: "6c1e860aef983367365d53f5849ad441" + } + Frame { + msec: 2432 + hash: "6c1e860aef983367365d53f5849ad441" + } + Frame { + msec: 2448 + hash: "6c1e860aef983367365d53f5849ad441" + } + Frame { + msec: 2464 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2480 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2496 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2512 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2528 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2544 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2560 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2576 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2592 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2608 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2624 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2640 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2656 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2672 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2688 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2704 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2720 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2736 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2752 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2768 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2784 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2800 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2816 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2832 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2848 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 2864 + hash: "99f9988040a389576cb6420b5391f768" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 181; y: 104 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2880 + image: "itemlist.2.png" + } + Frame { + msec: 2896 + hash: "99f9988040a389576cb6420b5391f768" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 179; y: 105 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 177; y: 106 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2912 + hash: "99f9988040a389576cb6420b5391f768" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 174; y: 108 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 170; y: 110 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2928 + hash: "5bb06b4e74532ba5bc8c7bc38bf77d7f" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 166; y: 112 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 160; y: 115 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2944 + hash: "b10a6206830a876017799ef2fcf61b1a" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 154; y: 117 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 140; y: 123 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2960 + hash: "b2e24759ba10afd6cff90f4b1e04b496" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 124; y: 127 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 124; y: 127 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 2976 + hash: "ccbcd6f45cb529c2db71504c0f69d73e" + } + Frame { + msec: 2992 + hash: "7b31c6d5931677f1aa1e8c7d48a4ff22" + } + Frame { + msec: 3008 + hash: "c52f691a0a6cf155118bdfea2dfea623" + } + Frame { + msec: 3024 + hash: "dd639d1df3d4a9b8f06718def63d588f" + } + Frame { + msec: 3040 + hash: "39d767b09a648ef6295cec2848f9226f" + } + Frame { + msec: 3056 + hash: "5dd46d5f386431e7b13348ac9a9630ed" + } + Frame { + msec: 3072 + hash: "0354e5183b0e66e7ba146d292c559df4" + } + Frame { + msec: 3088 + hash: "984aa6d7075e24de429e05b1b0eda94a" + } + Frame { + msec: 3104 + hash: "1af58a2f44f1f613712d4df85e38356d" + } + Frame { + msec: 3120 + hash: "6e4085e7f1fee724d78808753f04b471" + } + Frame { + msec: 3136 + hash: "73a019ef9057639d631cd99a431b3f3b" + } + Frame { + msec: 3152 + hash: "c9414a2e655a90dfdcb6fb288b4ba0ca" + } + Frame { + msec: 3168 + hash: "3f4c24f7ac89da982af22032309637fb" + } + Frame { + msec: 3184 + hash: "a50e6ada8f73a257657f4348ceaffcfd" + } + Frame { + msec: 3200 + hash: "a67bf40d09259bbd079c12ae4f49150f" + } + Frame { + msec: 3216 + hash: "a2fc512b7c234a9d0b2c1a83387a8a46" + } + Frame { + msec: 3232 + hash: "85090683ce9a3c9833b1cb0b3df076ee" + } + Frame { + msec: 3248 + hash: "275f3594a0e2cc4b6717f9f336e7e1b6" + } + Frame { + msec: 3264 + hash: "2473eb11f7b65a784a2b166114026488" + } + Frame { + msec: 3280 + hash: "4865c30dc45fbf5ca82047b77eca0912" + } + Frame { + msec: 3296 + hash: "54de88bca395449fbaea2c090c7a5d91" + } + Frame { + msec: 3312 + hash: "833f9295cf9a34934f001eac48551b59" + } + Frame { + msec: 3328 + hash: "5bf565f57ababa7380faeee94add91ca" + } + Frame { + msec: 3344 + hash: "6325578867f1eb3b2d47ed40b017b571" + } + Frame { + msec: 3360 + hash: "046a6114176b3a3206b7a2acd6e30b41" + } + Frame { + msec: 3376 + hash: "f8d4120a17f28c2d1d9c4be959098058" + } + Frame { + msec: 3392 + hash: "71356d2e48aad2900784ea6bc1a3d908" + } + Frame { + msec: 3408 + hash: "b84ad460fb81fdc4049abe8f3ff180bb" + } + Frame { + msec: 3424 + hash: "0354239f5eaea23474d9f81385392a8a" + } + Frame { + msec: 3440 + hash: "8ef0eef3393e07ae7605c865a95edc30" + } + Frame { + msec: 3456 + hash: "5b8b384cc8e3faf4310015e19b3eb487" + } + Frame { + msec: 3472 + hash: "77c18ac7dfff2a4e516915e3e3df0717" + } + Frame { + msec: 3488 + hash: "c1d3264384c26345eb8100de829309ca" + } + Frame { + msec: 3504 + hash: "6b21f71d0bedef4bbcb445a13f61e7a3" + } + Frame { + msec: 3520 + hash: "f619097356671f6eb54d3b1c481e709d" + } + Frame { + msec: 3536 + hash: "e56e3a90da446e0c482cb93717f6aacc" + } + Frame { + msec: 3552 + hash: "aa94ebdbb4b8423aff28c95daff0baf5" + } + Frame { + msec: 3568 + hash: "e1744d9cacd1a2c96af4cfdd5c486995" + } + Frame { + msec: 3584 + hash: "7f19ea52e9e41a3b1bd90bb2a144d305" + } + Frame { + msec: 3600 + hash: "7f19ea52e9e41a3b1bd90bb2a144d305" + } + Frame { + msec: 3616 + hash: "7f19ea52e9e41a3b1bd90bb2a144d305" + } + Frame { + msec: 3632 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3648 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3664 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3680 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3696 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3712 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3728 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3744 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3760 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3776 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3792 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3808 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3824 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3840 + image: "itemlist.3.png" + } + Frame { + msec: 3856 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3872 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3888 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3904 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3920 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3936 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3952 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3968 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 3984 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 4000 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 4016 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 4032 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 4048 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 4064 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 4080 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Frame { + msec: 4096 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 31; y: 137 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4112 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 32; y: 137 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4128 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 33; y: 136 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 36; y: 135 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4144 + hash: "88143ff6c278a5433b314b551b7b8b1d" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 40; y: 134 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 46; y: 132 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4160 + hash: "c2c9c284b185a89faf4ddb5a7867f449" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 64; y: 130 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4176 + hash: "de1c18aeda5d2fbd6dad4554c78617bd" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 86; y: 126 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 110; y: 118 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 110; y: 118 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 4192 + hash: "a67bf40d09259bbd079c12ae4f49150f" + } + Frame { + msec: 4208 + hash: "94514668dafbe41c5890a578efd6dea4" + } + Frame { + msec: 4224 + hash: "2e97a74eb9ddb1c9613c89e2d78db018" + } + Frame { + msec: 4240 + hash: "4b5368f0d86bffeb6bd31b58aec88650" + } + Frame { + msec: 4256 + hash: "b459bde7bb4ce51e6ecdab58f64fcbb9" + } + Frame { + msec: 4272 + hash: "7bac8cc3ec64c9ad1c0da282e38c953e" + } + Frame { + msec: 4288 + hash: "a73a58c3d7a757547740a2a161f4c756" + } + Frame { + msec: 4304 + hash: "b35edcb1fa3568a3e770ab2364b82e75" + } + Frame { + msec: 4320 + hash: "d6c863ef57c5e5cb04cdac72f920db0b" + } + Frame { + msec: 4336 + hash: "0db5e4588ff851918b07796f0cf07382" + } + Frame { + msec: 4352 + hash: "71ec8c363ca6a6f7556afb70faccffe6" + } + Frame { + msec: 4368 + hash: "18d026e9c965ada1db67c643576d2a80" + } + Frame { + msec: 4384 + hash: "69f71c22dff981a4da8ec1edcf90e79f" + } + Frame { + msec: 4400 + hash: "680460f5e4d9e649931601041af046b2" + } + Frame { + msec: 4416 + hash: "3028763fd15de2607b20b1331b904a4a" + } + Frame { + msec: 4432 + hash: "333eb60e217fe1ea7469eab52ac461f1" + } + Frame { + msec: 4448 + hash: "ccbcd6f45cb529c2db71504c0f69d73e" + } + Frame { + msec: 4464 + hash: "3445df9b41a0a3e74738cbf328ab7d5c" + } + Frame { + msec: 4480 + hash: "bd2c072558479e9de7a97207e58cc57f" + } + Frame { + msec: 4496 + hash: "3d34b0b24a30eda93377dcb4585afed8" + } + Frame { + msec: 4512 + hash: "d3045703863b0c5a327b9355c23d69f2" + } + Frame { + msec: 4528 + hash: "2f2eb55f693415b840a317211b250e9f" + } + Frame { + msec: 4544 + hash: "791b9ca7d47a3343474c30a35e336d4b" + } + Frame { + msec: 4560 + hash: "73a0c02ebad6d3d5f939d9a00dd898bf" + } + Frame { + msec: 4576 + hash: "d5c11135d586711b12f236430a2c2795" + } + Frame { + msec: 4592 + hash: "34f9ea214fe714ff4e994f715ea6ea39" + } + Frame { + msec: 4608 + hash: "8e49afa00983b156b818533923fb6edd" + } + Frame { + msec: 4624 + hash: "e7e7bef17cee92eca9191fd734d7a577" + } + Frame { + msec: 4640 + hash: "e407f6ed7cb3c130365ab5515d6308c0" + } + Frame { + msec: 4656 + hash: "5bb06b4e74532ba5bc8c7bc38bf77d7f" + } + Frame { + msec: 4672 + hash: "0ad7411316031e22034c14e81ca3a806" + } + Frame { + msec: 4688 + hash: "dd81d7a9b48c922b4c42cba1b5f2b9d7" + } + Frame { + msec: 4704 + hash: "32bef6f5005ad94e29ff59165958fbdc" + } + Frame { + msec: 4720 + hash: "87758dd311f91193bf1e3536c2f58525" + } + Frame { + msec: 4736 + hash: "015be92a4ff4e735fcc3cbc7a8b9d763" + } + Frame { + msec: 4752 + hash: "d4c34ed49317c6692d71681fcd9842b6" + } + Frame { + msec: 4768 + hash: "abaa235bb946a8abaddd52981d632c2d" + } + Frame { + msec: 4784 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4800 + image: "itemlist.4.png" + } + Frame { + msec: 4816 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4832 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4848 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4864 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4880 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4896 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4912 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4928 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4944 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4960 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4976 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 4992 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5008 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5024 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5040 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5056 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5072 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5088 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5104 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5120 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5136 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5152 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5168 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5184 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5200 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5216 + hash: "99f9988040a389576cb6420b5391f768" + } + Frame { + msec: 5232 + hash: "99f9988040a389576cb6420b5391f768" + } + Mouse { + type: 2 + button: 1 + buttons: 1 + x: 17; y: 120 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5248 + hash: "99f9988040a389576cb6420b5391f768" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 19; y: 120 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 21; y: 120 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5264 + hash: "99f9988040a389576cb6420b5391f768" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 24; y: 119 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 28; y: 119 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5280 + hash: "95b380c9ab6f8db7b822faf023d94546" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 35; y: 119 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 44; y: 119 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5296 + hash: "bb79e53556698c62ec30c75be9f6b7d7" + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 70; y: 119 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 5 + button: 0 + buttons: 1 + x: 96; y: 117 + modifiers: 0 + sendToViewport: true + } + Mouse { + type: 3 + button: 1 + buttons: 0 + x: 96; y: 117 + modifiers: 0 + sendToViewport: true + } + Frame { + msec: 5312 + hash: "285cc2f0df1f59f25a0135560ab6edf2" + } + Frame { + msec: 5328 + hash: "93a731dc6f71b6ff5400bf74c87e6c46" + } + Frame { + msec: 5344 + hash: "eb555741ab128a50de5a18a454f2e639" + } + Frame { + msec: 5360 + hash: "5dbe6cf898c1e37fcaacecfcf57b2194" + } + Frame { + msec: 5376 + hash: "e7795610115593e78bb32f7bcc0ae2eb" + } + Frame { + msec: 5392 + hash: "20e76f0eb4ec5f691999faf8ad313370" + } + Frame { + msec: 5408 + hash: "d6a544c622e504c1b931e1a8a1310a6e" + } + Frame { + msec: 5424 + hash: "e7a3a21feed244c5b1c710a9254c15f0" + } + Frame { + msec: 5440 + hash: "5a4b1aca24f121d1373646e9d80b86fd" + } + Frame { + msec: 5456 + hash: "331d2ec7021655c86aa64e47718a1088" + } + Frame { + msec: 5472 + hash: "92096bc872e7395aa5b75c44646a0b60" + } + Frame { + msec: 5488 + hash: "0d9aa6cee4d21488cbb5153f8f3ed593" + } + Frame { + msec: 5504 + hash: "c1b943d43701605563fffffcb75f9fa7" + } + Frame { + msec: 5520 + hash: "1b680025d5ad1ddd8f8d5f570ba73e71" + } + Frame { + msec: 5536 + hash: "5539a3b9f60ea747c10ed8328b467cbf" + } + Frame { + msec: 5552 + hash: "0a1317bcb606cd3488c5b14ee5d96585" + } + Frame { + msec: 5568 + hash: "8844af68b11db7d92c69804c7371a746" + } + Frame { + msec: 5584 + hash: "28d7fd127739c6e3b8488651b725c802" + } + Frame { + msec: 5600 + hash: "0cf1a7d958a96aa2768995dddc5ccc09" + } + Frame { + msec: 5616 + hash: "64b902fe7ab4d89ef0c7b760974e3488" + } + Frame { + msec: 5632 + hash: "aba11c597eba550fc1eaddbf554057f6" + } + Frame { + msec: 5648 + hash: "1bacaa3bb9dc3cac9ffc7491cb4dc1a5" + } + Frame { + msec: 5664 + hash: "0ba8b582234d9f0c198c0c9e18e1cb02" + } + Frame { + msec: 5680 + hash: "f66eaf2b5c3529987c0d9d005351ed73" + } + Frame { + msec: 5696 + hash: "75b0bb720fa4c77da3783b3ff31c2fae" + } + Frame { + msec: 5712 + hash: "345b235bb7f13409378e5c0c370f2a41" + } + Frame { + msec: 5728 + hash: "83b7e902dce4e0fdc4ef5d629188c23c" + } + Frame { + msec: 5744 + hash: "04b9041c6f10969889d92e94785c7e88" + } + Frame { + msec: 5760 + image: "itemlist.5.png" + } + Frame { + msec: 5776 + hash: "4f3a902addc34ecdaf390e2427cc52e7" + } + Frame { + msec: 5792 + hash: "68d443f16c16821ffc9ca68b17c76034" + } + Frame { + msec: 5808 + hash: "9d25adc77befa761ee376a9b43595b5e" + } + Frame { + msec: 5824 + hash: "a68b1bc6c2963ee92c3a45f500667b3b" + } + Frame { + msec: 5840 + hash: "d5268cd58c222451d48038e715e83802" + } + Frame { + msec: 5856 + hash: "f37d461541a8ec7a4161b18748de6aea" + } + Frame { + msec: 5872 + hash: "805319ac7ca842feb3649e92f8b5b72f" + } + Frame { + msec: 5888 + hash: "73124472a05080891d4948d8ca273f8c" + } + Frame { + msec: 5904 + hash: "b6e433a23282a50db2e165a2447ba3f6" + } + Frame { + msec: 5920 + hash: "fd8d3f5688b1806998c6087e18c6c730" + } + Frame { + msec: 5936 + hash: "f132dd459950ef2d18aa93ca950d0692" + } + Frame { + msec: 5952 + hash: "ade5beb259b5277c333ca806fc9bdbec" + } + Frame { + msec: 5968 + hash: "ade5beb259b5277c333ca806fc9bdbec" + } + Frame { + msec: 5984 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6000 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6016 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6032 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6048 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6064 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6080 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6096 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6112 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6128 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6144 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6160 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6176 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6192 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6208 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6224 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6240 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6256 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6272 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6288 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6304 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6320 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6336 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6352 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6368 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6384 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6400 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6416 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6432 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6448 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6464 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6480 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6496 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6512 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6528 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6544 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6560 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6576 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6592 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6608 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6624 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6640 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6656 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6672 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6688 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6704 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6720 + image: "itemlist.6.png" + } + Frame { + msec: 6736 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6752 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6768 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6784 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6800 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6816 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6832 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6848 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6864 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6880 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6896 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6912 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6928 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6944 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6960 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6976 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 6992 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7008 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7024 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7040 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7056 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7072 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7088 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7104 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7120 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7136 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7152 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7168 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7184 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7200 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7216 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7232 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7248 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7264 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7280 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7296 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } + Frame { + msec: 7312 + hash: "bf47cc398a702dd17c8efebb3d2f8073" + } +} diff --git a/tests/auto/declarative/visual/ListView/itemlist.qml b/tests/auto/declarative/visual/ListView/itemlist.qml new file mode 100644 index 0000000..8cbbdb0 --- /dev/null +++ b/tests/auto/declarative/visual/ListView/itemlist.qml @@ -0,0 +1,40 @@ +// This example demonstrates placing items in a view using +// a VisualItemModel + +import Qt 4.6 + +Rectangle { + color: "lightgray" + width: 240 + height: 320 + + VisualItemModel { + id: itemModel + objectName: "itemModel" + Rectangle { + objectName: "item1" + height: view.height; width: view.width; color: "#FFFEF0" + } + Rectangle { + objectName: "item2" + height: view.height; width: view.width; color: "#F0FFF7" + } + Rectangle { + objectName: "item3" + height: view.height; width: view.width; color: "#F4F0FF" + } + } + + ListView { + id: view + objectName: "view" + anchors.fill: parent + anchors.bottomMargin: 30 + model: itemModel + preferredHighlightBegin: 0 + preferredHighlightEnd: 0 + highlightRangeMode: "StrictlyEnforceRange" + orientation: ListView.Horizontal + flickDeceleration: 2000 + } +} -- cgit v0.12 From cca8cbafbea02b946d571f2f656c81e8c20bdbeb Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 10 Nov 2009 10:56:46 +1000 Subject: ListView tests. --- .../qmlgraphicslistview/data/listview-initCurrent.qml | 1 + tests/auto/declarative/qmlgraphicslistview/data/listview.qml | 2 +- .../qmlgraphicslistview/tst_qmlgraphicslistview.cpp | 11 +++++++++-- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/tests/auto/declarative/qmlgraphicslistview/data/listview-initCurrent.qml b/tests/auto/declarative/qmlgraphicslistview/data/listview-initCurrent.qml index 5b1fee6..65a9d8a 100644 --- a/tests/auto/declarative/qmlgraphicslistview/data/listview-initCurrent.qml +++ b/tests/auto/declarative/qmlgraphicslistview/data/listview-initCurrent.qml @@ -42,6 +42,7 @@ Rectangle { currentIndex: 3 width: 240 height: 320 + keyNavigationWraps: testWrap model: testModel delegate: myDelegate highlightMoveSpeed: 1000 diff --git a/tests/auto/declarative/qmlgraphicslistview/data/listview.qml b/tests/auto/declarative/qmlgraphicslistview/data/listview.qml index 075e464..280173b 100644 --- a/tests/auto/declarative/qmlgraphicslistview/data/listview.qml +++ b/tests/auto/declarative/qmlgraphicslistview/data/listview.qml @@ -79,7 +79,7 @@ Rectangle { width: 240 height: 320 model: testModel - delegate: animate ? myDelegate : animatedDelegate + delegate: testAnimate ? myDelegate : animatedDelegate highlightMoveSpeed: 1000 } } diff --git a/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp b/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp index dc339ea..2e797d8 100644 --- a/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp +++ b/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp @@ -242,6 +242,7 @@ void tst_QmlGraphicsListView::items() QmlContext *ctxt = canvas->rootContext(); ctxt->setContextProperty("testModel", &model); + ctxt->setContextProperty("testAnimate", QVariant(false)); canvas->execute(); qApp->processEvents(); @@ -289,6 +290,7 @@ void tst_QmlGraphicsListView::changed() QmlContext *ctxt = canvas->rootContext(); ctxt->setContextProperty("testModel", &model); + ctxt->setContextProperty("testAnimate", QVariant(false)); canvas->execute(); qApp->processEvents(); @@ -322,6 +324,7 @@ void tst_QmlGraphicsListView::inserted() QmlContext *ctxt = canvas->rootContext(); ctxt->setContextProperty("testModel", &model); + ctxt->setContextProperty("testAnimate", QVariant(false)); canvas->execute(); qApp->processEvents(); @@ -408,7 +411,7 @@ void tst_QmlGraphicsListView::removed(bool animated) QmlContext *ctxt = canvas->rootContext(); ctxt->setContextProperty("testModel", &model); - ctxt->setContextProperty("animate", QVariant(animated)); + ctxt->setContextProperty("testAnimate", QVariant(animated)); canvas->execute(); qApp->processEvents(); @@ -519,6 +522,7 @@ void tst_QmlGraphicsListView::moved() QmlContext *ctxt = canvas->rootContext(); ctxt->setContextProperty("testModel", &model); + ctxt->setContextProperty("testAnimate", QVariant(false)); canvas->execute(); qApp->processEvents(); @@ -656,6 +660,7 @@ void tst_QmlGraphicsListView::spacing() QmlContext *ctxt = canvas->rootContext(); ctxt->setContextProperty("testModel", &model); + ctxt->setContextProperty("testAnimate", QVariant(false)); canvas->execute(); qApp->processEvents(); @@ -778,6 +783,7 @@ void tst_QmlGraphicsListView::currentIndex() QmlContext *ctxt = canvas->rootContext(); ctxt->setContextProperty("testModel", &model); + ctxt->setContextProperty("testWrap", QVariant(false)); QString filename(SRCDIR "/data/listview-initCurrent.qml"); QFile file(filename); @@ -811,7 +817,8 @@ void tst_QmlGraphicsListView::currentIndex() QCOMPARE(listview->currentIndex(), 0); // with wrap - listview->setWrapEnabled(true); + ctxt->setContextProperty("testWrap", QVariant(true)); + QVERIFY(listview->isWrapEnabled()); listview->decrementCurrentIndex(); QCOMPARE(listview->currentIndex(), model.count()-1); -- cgit v0.12 From ca9f7764982b90bb316ccca55dbd57edc5b40d4f Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 10 Nov 2009 13:14:52 +1000 Subject: Fix samegame tutorial 3 the js file hadn't been updated to avoid global vars Also updating a missed particles element --- .../tutorials/samegame/samegame3/samegame.js | 24 +++++++++++----------- .../qmlcomponent/samegame/BoomBlock.qml | 15 +++++++------- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/examples/declarative/tutorials/samegame/samegame3/samegame.js b/examples/declarative/tutorials/samegame/samegame3/samegame.js index 528a73c..38efb3b 100644 --- a/examples/declarative/tutorials/samegame/samegame3/samegame.js +++ b/examples/declarative/tutorials/samegame/samegame3/samegame.js @@ -75,8 +75,8 @@ var floodBoard;//Set to 1 if the floodFill reaches off that node //![1] function handleClick(x,y) { - xIdx = Math.floor(x/gameCanvas.tileSize); - yIdx = Math.floor(y/gameCanvas.tileSize); + var xIdx = Math.floor(x/gameCanvas.tileSize); + var yIdx = Math.floor(y/gameCanvas.tileSize); if(xIdx >= maxX || xIdx < 0 || yIdx >= maxY || yIdx < 0) return; if(board[index(xIdx, yIdx)] == null) @@ -124,13 +124,13 @@ function shuffleDown() { //Fall down for(var xIdx=0; xIdx=0; yIdx--){ + var fallDist = 0; + for(var yIdx=maxY-1; yIdx>=0; yIdx--){ if(board[index(xIdx,yIdx)] == null){ fallDist += 1; }else{ if(fallDist > 0){ - obj = board[index(xIdx,yIdx)]; + var obj = board[index(xIdx,yIdx)]; obj.y += fallDist * gameCanvas.tileSize; board[index(xIdx,yIdx+fallDist)] = obj; board[index(xIdx,yIdx)] = null; @@ -139,14 +139,14 @@ function shuffleDown() } } //Fall to the left - fallDist = 0; - for(xIdx=0; xIdx 0){ - for(yIdx=0; yIdx=0; xIdx--) + var deservesBonus = true; + for(var xIdx=maxX-1; xIdx>=0; xIdx--) if(board[index(xIdx, maxY - 1)] != null) deservesBonus = false; if(deservesBonus) @@ -181,7 +181,7 @@ function floodMoveCheck(xIdx, yIdx, type) return false; if(board[index(xIdx, yIdx)] == null) return false; - myType = board[index(xIdx, yIdx)].type; + var myType = board[index(xIdx, yIdx)].type; if(type == myType) return true; return floodMoveCheck(xIdx + 1, yIdx, myType) || diff --git a/tests/benchmarks/declarative/qmlcomponent/samegame/BoomBlock.qml b/tests/benchmarks/declarative/qmlcomponent/samegame/BoomBlock.qml index a495cd0..723e62a 100644 --- a/tests/benchmarks/declarative/qmlcomponent/samegame/BoomBlock.qml +++ b/tests/benchmarks/declarative/qmlcomponent/samegame/BoomBlock.qml @@ -21,14 +21,16 @@ Item { id:block } } opacity: 0 - opacity: Behavior { NumberAnimation { properties:"opacity"; duration: 200 } } + opacity: Behavior { NumberAnimation { duration: 200 } } anchors.fill: parent } Particles { id: particles - width:1; height:1; anchors.centerIn: parent; opacity: 0 - lifeSpan: 700; lifeSpanDeviation: 600; count:0; streamIn: false - angle: 0; angleDeviation: 360; velocity: 100; velocityDeviation:30 + width:1; height:1; anchors.centerIn: parent; + emissionRate: 0; + lifeSpan: 700; lifeSpanDeviation: 600; + angle: 0; angleDeviation: 360; + velocity: 100; velocityDeviation:30; source: { if(type == 0){ "pics/redStar.png"; @@ -45,10 +47,9 @@ Item { id:block PropertyChanges { target: img; opacity: 1 } }, State{ name: "DeathState"; when: dying == true - PropertyChanges { target: particles; count: 50 } - PropertyChanges { target: particles; opacity: 1 } - PropertyChanges { target: particles; emitting: false } // i.e. emit only once + StateChangeScript { script: particles.burst(50); } PropertyChanges { target: img; opacity: 0 } + StateChangeScript { script: block.destroy(1000); } } ] } -- cgit v0.12 From ca30cacd614b7de8a855a3b4a1dc254c5f9289c9 Mon Sep 17 00:00:00 2001 From: Martin Jones Date: Tue, 10 Nov 2009 13:35:05 +1000 Subject: More highlight testing. --- .../graphicsitems/qmlgraphicsgridview.cpp | 26 ++++++++++++++++++- .../graphicsitems/qmlgraphicsgridview_p.h | 5 ++++ .../graphicsitems/qmlgraphicslistview.cpp | 30 +++++++++++++++++++--- .../graphicsitems/qmlgraphicslistview_p.h | 3 +++ .../tst_qmlgraphicsgridview.cpp | 17 ++++++++++++ .../tst_qmlgraphicslistview.cpp | 15 +++++++++++ 6 files changed, 92 insertions(+), 4 deletions(-) diff --git a/src/declarative/graphicsitems/qmlgraphicsgridview.cpp b/src/declarative/graphicsitems/qmlgraphicsgridview.cpp index 10050f2..1b94426 100644 --- a/src/declarative/graphicsitems/qmlgraphicsgridview.cpp +++ b/src/declarative/graphicsitems/qmlgraphicsgridview.cpp @@ -565,6 +565,7 @@ void QmlGraphicsGridViewPrivate::updateTrackedItem() void QmlGraphicsGridViewPrivate::createHighlight() { Q_Q(QmlGraphicsGridView); + bool changed = false; if (highlight) { if (trackedItem == highlight) trackedItem = 0; @@ -575,6 +576,7 @@ void QmlGraphicsGridViewPrivate::createHighlight() delete highlightYAnimator; highlightXAnimator = 0; highlightYAnimator = 0; + changed = true; } if (currentItem) { @@ -606,8 +608,11 @@ void QmlGraphicsGridViewPrivate::createHighlight() highlightYAnimator->setTarget(QmlMetaProperty(highlight->item, QLatin1String("y"))); highlightYAnimator->setDuration(150); highlightYAnimator->setEnabled(autoHighlight); + changed = true; } } + if (changed) + emit q->highlightChanged(); } void QmlGraphicsGridViewPrivate::updateHighlight() @@ -887,6 +892,25 @@ QmlGraphicsItem *QmlGraphicsGridView::currentItem() } /*! + \qmlproperty Item GridView::highlightItem + + \c highlightItem holds the highlight item, which was created + from the \l highlight component. + + The highlightItem is managed by the view unless + \l highlightFollowsCurrentItem is set to false. + + \sa highlight, highlightFollowsCurrentItem +*/ +QmlGraphicsItem *QmlGraphicsGridView::highlightItem() +{ + Q_D(QmlGraphicsGridView); + if (!d->highlight) + return 0; + return d->highlight->item; +} + +/*! \qmlproperty int GridView::count This property holds the number of items in the view. */ @@ -909,7 +933,7 @@ int QmlGraphicsGridView::count() const The below example demonstrates how to make a simple highlight: \snippet doc/src/snippets/declarative/gridview/gridview.qml 1 - \sa highlightFollowsCurrentItem + \sa highlightItem, highlightFollowsCurrentItem */ QmlComponent *QmlGraphicsGridView::highlight() const { diff --git a/src/declarative/graphicsitems/qmlgraphicsgridview_p.h b/src/declarative/graphicsitems/qmlgraphicsgridview_p.h index 3fd36bd..3e09cf3 100644 --- a/src/declarative/graphicsitems/qmlgraphicsgridview_p.h +++ b/src/declarative/graphicsitems/qmlgraphicsgridview_p.h @@ -62,8 +62,11 @@ class Q_DECLARATIVE_EXPORT QmlGraphicsGridView : public QmlGraphicsFlickable Q_PROPERTY(int currentIndex READ currentIndex WRITE setCurrentIndex NOTIFY currentIndexChanged) Q_PROPERTY(QmlGraphicsItem *currentItem READ currentItem NOTIFY currentIndexChanged) Q_PROPERTY(int count READ count NOTIFY countChanged) + Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) + Q_PROPERTY(QmlGraphicsItem *highlightItem READ highlightItem NOTIFY highlightChanged) Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) + Q_PROPERTY(Flow flow READ flow WRITE setFlow) Q_PROPERTY(bool keyNavigationWraps READ isWrapEnabled WRITE setWrapEnabled) Q_PROPERTY(int cacheBuffer READ cacheBuffer WRITE setCacheBuffer) @@ -85,6 +88,7 @@ public: void setCurrentIndex(int idx); QmlGraphicsItem *currentItem(); + QmlGraphicsItem *highlightItem(); int count() const; QmlComponent *highlight() const; @@ -123,6 +127,7 @@ Q_SIGNALS: void currentIndexChanged(); void cellWidthChanged(); void cellHeightChanged(); + void highlightChanged(); protected: virtual void viewportMoved(); diff --git a/src/declarative/graphicsitems/qmlgraphicslistview.cpp b/src/declarative/graphicsitems/qmlgraphicslistview.cpp index 53287a6..12bf0d8 100644 --- a/src/declarative/graphicsitems/qmlgraphicslistview.cpp +++ b/src/declarative/graphicsitems/qmlgraphicslistview.cpp @@ -641,6 +641,7 @@ void QmlGraphicsListViewPrivate::updateTrackedItem() void QmlGraphicsListViewPrivate::createHighlight() { Q_Q(QmlGraphicsListView); + bool changed = false; if (highlight) { if (trackedItem == highlight) trackedItem = 0; @@ -651,6 +652,7 @@ void QmlGraphicsListViewPrivate::createHighlight() delete highlightSizeAnimator; highlightPosAnimator = 0; highlightSizeAnimator = 0; + changed = true; } if (currentItem) { @@ -687,8 +689,11 @@ void QmlGraphicsListViewPrivate::createHighlight() highlightSizeAnimator->setVelocity(highlightResizeSpeed); highlightSizeAnimator->setTarget(QmlMetaProperty(highlight->item, sizeProp)); highlightSizeAnimator->setEnabled(autoHighlight); + changed = true; } } + if (changed) + emit q->highlightChanged(); } void QmlGraphicsListViewPrivate::updateHighlight() @@ -871,7 +876,7 @@ void QmlGraphicsListViewPrivate::flickX(qreal velocity) if (v > 0) dist = -dist; dist = -_moveX.value() - snapPosAt(-(_moveX.value() - highlightRangeStart) + dist) + highlightRangeStart; - if (v < 0 && dist >= 0 || v > 0 && dist <= 0) { + if ((v < 0 && dist >= 0) || (v > 0 && dist <= 0)) { timeline.reset(_moveX); fixupX(); return; @@ -929,7 +934,7 @@ void QmlGraphicsListViewPrivate::flickY(qreal velocity) if (v > 0) dist = -dist; dist = -_moveY.value() - snapPosAt(-(_moveY.value() - highlightRangeStart) + dist) + highlightRangeStart; - if (v < 0 && dist >= 0 || v > 0 && dist <= 0) { + if ((v < 0 && dist >= 0) || (v > 0 && dist <= 0)) { timeline.reset(_moveY); fixupY(); return; @@ -1202,6 +1207,25 @@ QmlGraphicsItem *QmlGraphicsListView::currentItem() } /*! + \qmlproperty Item ListView::highlightItem + + \c highlightItem holds the highlight item, which was created + from the \l highlight component. + + The highlightItem is managed by the view unless + \l highlightFollowsCurrentItem is set to false. + + \sa highlight, highlightFollowsCurrentItem +*/ +QmlGraphicsItem *QmlGraphicsListView::highlightItem() +{ + Q_D(QmlGraphicsListView); + if (!d->highlight) + return 0; + return d->highlight->item; +} + +/*! \qmlproperty int ListView::count This property holds the number of items in the view. */ @@ -1228,7 +1252,7 @@ int QmlGraphicsListView::count() const \snippet doc/src/snippets/declarative/listview/listview.qml 1 \image trivialListView.png - \sa highlightFollowsCurrentItem + \sa highlightItem, highlightFollowsCurrentItem */ QmlComponent *QmlGraphicsListView::highlight() const { diff --git a/src/declarative/graphicsitems/qmlgraphicslistview_p.h b/src/declarative/graphicsitems/qmlgraphicslistview_p.h index 3f46434..b8a6e1f 100644 --- a/src/declarative/graphicsitems/qmlgraphicslistview_p.h +++ b/src/declarative/graphicsitems/qmlgraphicslistview_p.h @@ -66,6 +66,7 @@ class Q_DECLARATIVE_EXPORT QmlGraphicsListView : public QmlGraphicsFlickable Q_PROPERTY(int count READ count NOTIFY countChanged) Q_PROPERTY(QmlComponent *highlight READ highlight WRITE setHighlight) + Q_PROPERTY(QmlGraphicsItem *highlightItem READ highlightItem NOTIFY highlightChanged) Q_PROPERTY(bool highlightFollowsCurrentItem READ highlightFollowsCurrentItem WRITE setHighlightFollowsCurrentItem) Q_PROPERTY(qreal highlightMoveSpeed READ highlightMoveSpeed WRITE setHighlightMoveSpeed NOTIFY highlightMoveSpeedChanged) Q_PROPERTY(qreal highlightResizeSpeed READ highlightResizeSpeed WRITE setHighlightResizeSpeed NOTIFY highlightResizeSpeedChanged) @@ -99,6 +100,7 @@ public: void setCurrentIndex(int idx); QmlGraphicsItem *currentItem(); + QmlGraphicsItem *highlightItem(); int count() const; QmlComponent *highlight() const; @@ -155,6 +157,7 @@ Q_SIGNALS: void sectionExpressionChanged(); void highlightMoveSpeedChanged(); void highlightResizeSpeedChanged(); + void highlightChanged(); protected: virtual void viewportMoved(); diff --git a/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp b/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp index 7c32d14..f89e02f 100644 --- a/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp +++ b/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp @@ -534,9 +534,12 @@ void tst_QmlGraphicsGridView::currentIndex() QmlGraphicsItem *viewport = gridview->viewport(); QVERIFY(viewport != 0); + QTest::qWait(500); + // current item should be third item QCOMPARE(gridview->currentIndex(), 5); QCOMPARE(gridview->currentItem(), findItem(viewport, "wrapper", 5)); + QCOMPARE(gridview->currentItem()->y(), gridview->highlightItem()->y()); gridview->moveCurrentIndexRight(); QCOMPARE(gridview->currentIndex(), 6); @@ -605,6 +608,20 @@ void tst_QmlGraphicsGridView::currentIndex() QVERIFY(key.isAccepted()); QCOMPARE(gridview->currentIndex(), 0); + // turn off auto highlight + gridview->setHighlightFollowsCurrentItem(false); + QVERIFY(gridview->highlightFollowsCurrentItem() == false); + + QTest::qWait(500); + QVERIFY(gridview->highlightItem()); + qreal hlPosX = gridview->highlightItem()->x(); + qreal hlPosY = gridview->highlightItem()->y(); + + gridview->setCurrentIndex(5); + QTest::qWait(500); + QCOMPARE(gridview->highlightItem()->x(), hlPosX); + QCOMPARE(gridview->highlightItem()->y(), hlPosY); + delete canvas; } diff --git a/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp b/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp index 2e797d8..a4949eb 100644 --- a/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp +++ b/tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp @@ -800,9 +800,12 @@ void tst_QmlGraphicsListView::currentIndex() QmlGraphicsItem *viewport = listview->viewport(); QVERIFY(viewport != 0); + QTest::qWait(500); + // current item should be third item QCOMPARE(listview->currentIndex(), 3); QCOMPARE(listview->currentItem(), findItem(viewport, "wrapper", 3)); + QCOMPARE(listview->highlightItem()->y(), listview->currentItem()->y()); // no wrap listview->setCurrentIndex(0); @@ -851,6 +854,18 @@ void tst_QmlGraphicsListView::currentIndex() QVERIFY(key.isAccepted()); QCOMPARE(listview->currentIndex(), 0); + // turn off auto highlight + listview->setHighlightFollowsCurrentItem(false); + QVERIFY(listview->highlightFollowsCurrentItem() == false); + + QTest::qWait(500); + QVERIFY(listview->highlightItem()); + qreal hlPos = listview->highlightItem()->y(); + + listview->setCurrentIndex(4); + QTest::qWait(500); + QCOMPARE(listview->highlightItem()->y(), hlPos); + delete canvas; } -- cgit v0.12 From 5f7837cea3184f122796b4f1b51758534cedf356 Mon Sep 17 00:00:00 2001 From: Alan Alpert Date: Tue, 10 Nov 2009 13:45:31 +1000 Subject: Improve text edit test --- .../tst_qmlgraphicstextedit.cpp | 52 ++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/tests/auto/declarative/qmlgraphicstextedit/tst_qmlgraphicstextedit.cpp b/tests/auto/declarative/qmlgraphicstextedit/tst_qmlgraphicstextedit.cpp index 2b10df5..4dc036d 100644 --- a/tests/auto/declarative/qmlgraphicstextedit/tst_qmlgraphicstextedit.cpp +++ b/tests/auto/declarative/qmlgraphicstextedit/tst_qmlgraphicstextedit.cpp @@ -69,6 +69,9 @@ private slots: void vAlign(); void font(); void color(); + void textMargin(); + void persistentSelection(); + void focusOnPress(); void selection(); void cursorDelegate(); @@ -433,6 +436,55 @@ void tst_qmlgraphicstextedit::color() } } +void tst_qmlgraphicstextedit::textMargin() +{ + for(qreal i=0; i<=10; i+=0.3){ + QString componentStr = "import Qt 4.6\nTextEdit { textMargin: " + QString::number(i) + "; text: \"Hello World\" }"; + QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QVERIFY(textEditObject != 0); + QCOMPARE(textEditObject->textMargin(), i); + } +} + +void tst_qmlgraphicstextedit::persistentSelection() +{ + { + QString componentStr = "import Qt 4.6\nTextEdit { persistentSelection: true; text: \"Hello World\" }"; + QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QVERIFY(textEditObject != 0); + QCOMPARE(textEditObject->persistentSelection(), true); + } + + { + QString componentStr = "import Qt 4.6\nTextEdit { persistentSelection: false; text: \"Hello World\" }"; + QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QVERIFY(textEditObject != 0); + QCOMPARE(textEditObject->persistentSelection(), false); + } +} + +void tst_qmlgraphicstextedit::focusOnPress() +{ + { + QString componentStr = "import Qt 4.6\nTextEdit { focusOnPress: true; text: \"Hello World\" }"; + QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QVERIFY(textEditObject != 0); + QCOMPARE(textEditObject->focusOnPress(), true); + } + + { + QString componentStr = "import Qt 4.6\nTextEdit { focusOnPress: false; text: \"Hello World\" }"; + QmlComponent texteditComponent(&engine, componentStr.toLatin1(), QUrl()); + QmlGraphicsTextEdit *textEditObject = qobject_cast(texteditComponent.create()); + QVERIFY(textEditObject != 0); + QCOMPARE(textEditObject->focusOnPress(), false); + } +} + void tst_qmlgraphicstextedit::selection() { QString testStr = standard[0];//TODO: What should happen for multiline/rich text? -- cgit v0.12