summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorBea Lam <bea.lam@nokia.com>2009-11-10 06:39:00 (GMT)
committerBea Lam <bea.lam@nokia.com>2009-11-10 06:39:00 (GMT)
commit432d54d092414431e1e54daa2259384d83600bf2 (patch)
tree0ec7c9080b5dcdae1f411457f8b057145ef94366 /tests
parentc411c39557d31b94efb5813be9e9ef43c05a9093 (diff)
parent4459e18afd3e537c2155dadad0937e0a5cdd76c5 (diff)
downloadQt-432d54d092414431e1e54daa2259384d83600bf2.zip
Qt-432d54d092414431e1e54daa2259384d83600bf2.tar.gz
Qt-432d54d092414431e1e54daa2259384d83600bf2.tar.bz2
Merge branch 'kinetic-declarativeui' of scm.dev.nokia.troll.no:qt/kinetic into kinetic-declarativeui
Diffstat (limited to 'tests')
-rw-r--r--tests/arthur/common/paintcommands.cpp4
-rw-r--r--tests/auto/checkxmlfiles/checkxmlfiles.pro2
-rw-r--r--tests/auto/declarative/.gitignore1
-rw-r--r--tests/auto/declarative/animations/tst_animations.cpp24
-rw-r--r--tests/auto/declarative/declarative.pro6
-rw-r--r--tests/auto/declarative/layouts/data/layouts.qml3
-rw-r--r--tests/auto/declarative/layouts/tst_layouts.cpp20
-rw-r--r--tests/auto/declarative/qmlgraphicsflickable/data/flickable01.qml4
-rw-r--r--tests/auto/declarative/qmlgraphicsflickable/data/flickable02.qml14
-rw-r--r--tests/auto/declarative/qmlgraphicsflickable/data/flickable03.qml14
-rw-r--r--tests/auto/declarative/qmlgraphicsflickable/data/flickable04.qml16
-rw-r--r--tests/auto/declarative/qmlgraphicsflickable/qmlgraphicsflickable.pro8
-rw-r--r--tests/auto/declarative/qmlgraphicsflickable/tst_qmlgraphicsflickable.cpp145
-rw-r--r--tests/auto/declarative/qmlgraphicsflipable/data/test-flipable.qml9
-rw-r--r--tests/auto/declarative/qmlgraphicsflipable/qmlgraphicsflipable.pro8
-rw-r--r--tests/auto/declarative/qmlgraphicsflipable/tst_qmlgraphicsflipable.cpp113
-rw-r--r--tests/auto/declarative/qmlgraphicsgridview/data/gridview.qml1
-rw-r--r--tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp88
-rw-r--r--tests/auto/declarative/qmlgraphicsitem/data/keys.qml3
-rw-r--r--tests/auto/declarative/qmlgraphicsitem/tst_qmlgraphicsitem.cpp31
-rw-r--r--tests/auto/declarative/qmlgraphicslistview/data/listview-initCurrent.qml1
-rw-r--r--tests/auto/declarative/qmlgraphicslistview/data/listview.qml2
-rw-r--r--tests/auto/declarative/qmlgraphicslistview/tst_qmlgraphicslistview.cpp27
-rw-r--r--tests/auto/declarative/qmlgraphicstextedit/tst_qmlgraphicstextedit.cpp52
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/data/basic.icobin0 -> 318 bytes
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/data/forward.html12
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/data/javaScript.html11
-rw-r--r--tests/auto/declarative/qmlgraphicswebview/data/loadError.qml5
-rw-r--r--tests/auto/declarative/states/tst_states.cpp5
-rw-r--r--tests/auto/declarative/visual/ListView/data/itemlist.0.pngbin0 -> 961 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data/itemlist.1.pngbin0 -> 972 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data/itemlist.2.pngbin0 -> 962 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data/itemlist.3.pngbin0 -> 962 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data/itemlist.4.pngbin0 -> 962 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data/itemlist.5.pngbin0 -> 970 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data/itemlist.6.pngbin0 -> 961 bytes
-rw-r--r--tests/auto/declarative/visual/ListView/data/itemlist.qml2203
-rw-r--r--tests/auto/declarative/visual/ListView/itemlist.qml40
-rw-r--r--tests/auto/declarative/visual/flickable/Day.qml26
-rw-r--r--tests/auto/declarative/visual/flickable/cork.jpgbin22211 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/flickable/data-X11/flickable.0.pngbin115546 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/flickable/data-X11/flickable.1.pngbin115627 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/flickable/data-X11/flickable.2.pngbin116034 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/flickable/data-X11/flickable.qml791
-rw-r--r--tests/auto/declarative/visual/flickable/data/flickable.0.pngbin116681 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/flickable/data/flickable.1.pngbin116856 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/flickable/data/flickable.2.pngbin117276 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/flickable/data/flickable.qml791
-rw-r--r--tests/auto/declarative/visual/flickable/flickable.qml55
-rw-r--r--tests/auto/declarative/visual/parentAction/data/parentAction.0.pngbin0 -> 1652 bytes
-rw-r--r--tests/auto/declarative/visual/parentAction/data/parentAction.1.pngbin0 -> 1492 bytes
-rw-r--r--tests/auto/declarative/visual/parentAction/data/parentAction.2.pngbin0 -> 1424 bytes
-rw-r--r--tests/auto/declarative/visual/parentAction/data/parentAction.3.pngbin0 -> 1583 bytes
-rw-r--r--tests/auto/declarative/visual/parentAction/data/parentAction.4.pngbin0 -> 1640 bytes
-rw-r--r--tests/auto/declarative/visual/parentAction/data/parentAction.5.pngbin0 -> 1640 bytes
-rw-r--r--tests/auto/declarative/visual/parentAction/data/parentAction.qml1207
-rw-r--r--tests/auto/declarative/visual/parentAction/parentAction.qml55
-rw-r--r--tests/auto/declarative/visual/propertyAction/data/propertyAction.0.pngbin0 -> 1418 bytes
-rw-r--r--tests/auto/declarative/visual/propertyAction/data/propertyAction.1.pngbin0 -> 1430 bytes
-rw-r--r--tests/auto/declarative/visual/propertyAction/data/propertyAction.2.pngbin0 -> 1431 bytes
-rw-r--r--tests/auto/declarative/visual/propertyAction/data/propertyAction.qml939
-rw-r--r--tests/auto/declarative/visual/propertyAction/propertyAction.qml34
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.0.pngbin0 -> 1427 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.1.pngbin0 -> 1357 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.2.pngbin0 -> 1405 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.3.pngbin0 -> 1427 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.qml1199
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.0.pngbin0 -> 1872 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.1.pngbin0 -> 1908 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.2.pngbin0 -> 1846 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.qml1107
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/flickable-horizontal.qml37
-rw-r--r--tests/auto/declarative/visual/qmlgraphicsflickable/flickable-vertical.qml37
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.0.pngbin3318 -> 3322 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.1.pngbin3323 -> 3323 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.2.pngbin3824 -> 3325 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.3.pngbin3364 -> 3332 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.4.pngbin3390 -> 3329 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.5.pngbin3328 -> 3818 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.6.pngbin3331 -> 3333 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.7.pngbin3344 -> 3332 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.8.pngbin3345 -> 3347 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.qml2568
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.0.pngbin4801 -> 4802 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.1.pngbin4802 -> 4804 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.2.pngbin4804 -> 4801 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.3.pngbin4804 -> 4791 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.4.pngbin4802 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.5.pngbin4801 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.6.pngbin4791 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.qml1390
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.0.pngbin3316 -> 3314 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.1.pngbin3317 -> 3377 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.2.pngbin3804 -> 3323 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.3.pngbin3348 -> 3325 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.4.pngbin3779 -> 3322 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.5.pngbin3326 -> 3322 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.6.pngbin3327 -> 3326 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.7.pngbin3327 -> 3814 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.8.pngbin3325 -> 3324 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.9.pngbin3322 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.qml2530
-rw-r--r--tests/auto/declarative/visual/scriptAction/data/scriptAction.0.pngbin0 -> 1418 bytes
-rw-r--r--tests/auto/declarative/visual/scriptAction/data/scriptAction.1.pngbin0 -> 1431 bytes
-rw-r--r--tests/auto/declarative/visual/scriptAction/data/scriptAction.qml535
-rw-r--r--tests/auto/declarative/visual/scriptAction/scriptAction.qml35
-rw-r--r--tests/auto/declarative/visual/webview/zooming/renderControl.html7
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/constructor.qml14
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/defaultState.qml30
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/domExceptionCodes.qml60
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/instanceStateValues.qml33
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/open.qml53
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/open_arg_count.1.qml18
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/open_arg_count.2.qml18
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/open_invalid_method.qml16
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/open_network.expect7
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/open_network.reply2
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/open_network.wait0
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/open_sync.qml17
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/open_username.qml54
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/seconddocument.html1
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_alreadySent.qml27
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_data.1.expect10
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_data.1.qml21
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_data.2.qml23
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_data.3.qml23
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_data.4.expect10
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_data.4.qml24
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_data.5.qml23
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_data.6.expect10
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_data.6.qml21
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_data.reply2
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_ignoreData.qml26
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_ignoreData.reply2
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_ignoreData_GET.expect7
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_ignoreData_PUT.expect7
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/send_unsent.qml16
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/setRequestHeader.expect9
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/setRequestHeader.qml28
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/setRequestHeader.reply2
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/setRequestHeader_illegalName.qml55
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/setRequestHeader_sent.qml31
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/setRequestHeader_unsent.qml17
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/staticStateValues.qml24
-rw-r--r--tests/auto/declarative/xmlhttprequest/data/testdocument.html1
-rw-r--r--tests/auto/declarative/xmlhttprequest/testhttpserver.cpp153
-rw-r--r--tests/auto/declarative/xmlhttprequest/testhttpserver.h75
-rw-r--r--tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp619
-rw-r--r--tests/auto/declarative/xmlhttprequest/xmlhttprequest.pro12
-rw-r--r--tests/auto/gestures/tst_gestures.cpp357
-rw-r--r--tests/auto/linguist/lrelease/tst_lrelease.cpp13
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp49
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.h51
-rw-r--r--tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result24
-rw-r--r--tests/auto/q3filedialog/tst_q3filedialog.cpp4
-rw-r--r--tests/auto/qabstractvideosurface/tst_qabstractvideosurface.cpp38
-rw-r--r--tests/auto/qaccessibility/tst_qaccessibility.cpp21
-rw-r--r--tests/auto/qanimationgroup/tst_qanimationgroup.cpp84
-rw-r--r--tests/auto/qclipboard/test/test.pro15
-rw-r--r--tests/auto/qcombobox/tst_qcombobox.cpp31
-rw-r--r--tests/auto/qcssparser/tst_qcssparser.cpp3
-rw-r--r--tests/auto/qdatetime/tst_qdatetime.cpp5
-rw-r--r--tests/auto/qfile/largefile/largefile.pro4
-rw-r--r--tests/auto/qfile/largefile/tst_largefile.cpp537
-rw-r--r--tests/auto/qfile/qfile.pro2
-rw-r--r--tests/auto/qfile/tst_qfile.cpp118
-rw-r--r--tests/auto/qgl/tst_qgl.cpp127
-rw-r--r--tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp326
-rw-r--r--tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp64
-rw-r--r--tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp4
-rw-r--r--tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp88
-rw-r--r--tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp220
-rw-r--r--tests/auto/qgraphicstransform/tst_qgraphicstransform.cpp6
-rw-r--r--tests/auto/qgraphicsview/tst_qgraphicsview.cpp72
-rw-r--r--tests/auto/qgridlayout/tst_qgridlayout.cpp4
-rw-r--r--tests/auto/qlabel/tst_qlabel.cpp8
-rw-r--r--tests/auto/qlineedit/tst_qlineedit.cpp16
-rw-r--r--tests/auto/qlistview/tst_qlistview.cpp27
-rw-r--r--tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp168
-rw-r--r--tests/auto/qpainter/tst_qpainter.cpp45
-rw-r--r--tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp136
-rw-r--r--tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp20
-rw-r--r--tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp506
-rw-r--r--tests/auto/qsound/tst_qsound.cpp26
-rw-r--r--tests/auto/qsqlquery/tst_qsqlquery.cpp34
-rw-r--r--tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp36
-rw-r--r--tests/auto/qstatemachine/tst_qstatemachine.cpp125
-rw-r--r--tests/auto/qstringbuilder1/stringbuilder.cpp26
-rw-r--r--tests/auto/qtableview/tst_qtableview.cpp19
-rw-r--r--tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp10
-rw-r--r--tests/auto/qtextlayout/tst_qtextlayout.cpp13
-rw-r--r--tests/auto/qtextscriptengine/generate/generate.pro1
-rw-r--r--tests/auto/qtextscriptengine/generate/main.cpp4
-rw-r--r--tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp87
-rw-r--r--tests/auto/qtreeview/tst_qtreeview.cpp4
-rw-r--r--tests/auto/qvariant/tst_qvariant.cpp6
-rw-r--r--tests/auto/qvideoframe/tst_qvideoframe.cpp18
-rw-r--r--tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp77
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp5
-rw-r--r--tests/auto/qwidgetaction/tst_qwidgetaction.cpp2
-rw-r--r--tests/auto/qxmlnodemodelindex/tst_qxmlnodemodelindex.cpp2
-rw-r--r--tests/auto/qxmlquery/tst_qxmlquery.cpp14
-rw-r--r--tests/auto/qxmlschema/tst_qxmlschema.cpp4
-rw-r--r--tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp12
-rw-r--r--tests/auto/qxmlserializer/tst_qxmlserializer.cpp4
-rw-r--r--tests/auto/uiloader/baseline/css_itemview_task258382.ui179
-rw-r--r--tests/auto/xmlpatterns.pri5
-rw-r--r--tests/auto/xmlpatterns/tst_xmlpatterns.cpp10
-rw-r--r--tests/auto/xmlpatterns/xmlpatterns.pro6
-rw-r--r--tests/auto/xmlpatternsdiagnosticsts/test/test.pro4
-rw-r--r--tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro5
-rw-r--r--tests/auto/xmlpatternsxqts/lib/Global.h2
-rw-r--r--tests/auto/xmlpatternsxqts/lib/lib.pro6
-rw-r--r--tests/auto/xmlpatternsxqts/test/test.pro2
-rw-r--r--tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro2
-rw-r--r--tests/benchmarks/declarative/qmlcomponent/samegame/BoomBlock.qml15
-rw-r--r--tests/benchmarks/qanimation/rectanimation.cpp5
-rw-r--r--tests/benchmarks/qanimation/rectanimation.h1
-rw-r--r--tests/benchmarks/qapplication/main.cpp30
-rw-r--r--tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp4
-rw-r--r--tests/manual/gestures/graphicsview/gestures.cpp24
-rw-r--r--tests/manual/gestures/graphicsview/gestures.h8
-rw-r--r--tests/manual/gestures/graphicsview/main.cpp10
-rw-r--r--tests/manual/gestures/graphicsview/mousepangesturerecognizer.cpp25
-rw-r--r--tests/manual/gestures/graphicsview/mousepangesturerecognizer.h4
-rw-r--r--tests/manual/gestures/scrollarea/main.cpp50
-rw-r--r--tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp37
-rw-r--r--tests/manual/gestures/scrollarea/mousepangesturerecognizer.h4
228 files changed, 16002 insertions, 5974 deletions
diff --git a/tests/arthur/common/paintcommands.cpp b/tests/arthur/common/paintcommands.cpp
index 475f07d..44deb0e 100644
--- a/tests/arthur/common/paintcommands.cpp
+++ b/tests/arthur/common/paintcommands.cpp
@@ -974,7 +974,7 @@ void PaintCommands::command_drawPixmap(QRegExp re)
if (sh == 0) sh = -1;
if (m_verboseMode)
- printf(" -(lance) drawPixmap('%s' dim=(%d, %d), depth=%d, (%d, %d, %d, %d), (%d, %d, %d, %d)\n",
+ printf(" -(lance) drawPixmap('%s' dim=(%d, %d), depth=%d, (%f, %f, %f, %f), (%f, %f, %f, %f)\n",
qPrintable(re.cap(1)), pm.width(), pm.height(), pm.depth(),
tx, ty, tw, th, sx, sy, sw, sh);
@@ -1022,7 +1022,7 @@ void PaintCommands::command_drawImage(QRegExp re)
if (sh == 0) sh = -1;
if (m_verboseMode)
- printf(" -(lance) drawImage('%s' dim=(%d, %d), (%d, %d, %d, %d), (%d, %d, %d, %d)\n",
+ printf(" -(lance) drawImage('%s' dim=(%d, %d), (%f, %f, %f, %f), (%f, %f, %f, %f)\n",
qPrintable(re.cap(1)), im.width(), im.height(), tx, ty, tw, th, sx, sy, sw, sh);
m_painter->drawImage(QRectF(tx, ty, tw, th), im, QRectF(sx, sy, sw, sh), Qt::OrderedDither | Qt::OrderedAlphaDither);
diff --git a/tests/auto/checkxmlfiles/checkxmlfiles.pro b/tests/auto/checkxmlfiles/checkxmlfiles.pro
index c368c02..d53c11c 100644
--- a/tests/auto/checkxmlfiles/checkxmlfiles.pro
+++ b/tests/auto/checkxmlfiles/checkxmlfiles.pro
@@ -12,7 +12,7 @@ addFiles.sources = \
$$QT_SOURCE_TREE/examples/sql/masterdetail/albumdetails.xml \
$$QT_SOURCE_TREE/examples/xmlpatterns/xquery/globalVariables/globals.gccxml \
$$QT_SOURCE_TREE/doc/src/diagrams/stylesheet/treeview.svg \
- $$QT_SOURCE_TREE/doc/src/diagrams/designer-mainwindow-actions.ui \
+ $$QT_SOURCE_TREE/doc/src/diagrams/designer-manual/designer-mainwindow-actions.ui \
$$QT_SOURCE_TREE/demos/undo/undo.qrc
addFiles.path = xmlfiles
DEPLOYMENT += addFiles
diff --git a/tests/auto/declarative/.gitignore b/tests/auto/declarative/.gitignore
index c8bbd2f..d937eb4 100644
--- a/tests/auto/declarative/.gitignore
+++ b/tests/auto/declarative/.gitignore
@@ -1,3 +1,4 @@
tst_*
!tst_*.*
+tst_*.debug
tst_*~
diff --git a/tests/auto/declarative/animations/tst_animations.cpp b/tests/auto/declarative/animations/tst_animations.cpp
index a4402cb..61f0e0a 100644
--- a/tests/auto/declarative/animations/tst_animations.cpp
+++ b/tests/auto/declarative/animations/tst_animations.cpp
@@ -44,6 +44,7 @@
#include <QtDeclarative/qmlview.h>
#include <private/qmlgraphicsrectangle_p.h>
#include <private/qmlanimation_p.h>
+#include <QVariantAnimation>
class tst_animations : public QObject
{
@@ -61,6 +62,7 @@ private slots:
void mixedTypes();
void properties();
void propertiesTransition();
+ void easingStringConversion();
};
#define QTIMED_COMPARE(lhs, rhs) do { \
@@ -134,7 +136,7 @@ void tst_animations::dotProperty()
animation.setProperty("border.width");
animation.setTo(10);
animation.start();
- QTest::qWait(animation.duration());
+ QTest::qWait(animation.duration()+50);
QTIMED_COMPARE(rect.border()->width(), 10);
rect.border()->setWidth(0);
@@ -352,7 +354,7 @@ void tst_animations::propertiesTransition()
QmlGraphicsRectangle *myRect = rect->findChild<QmlGraphicsRectangle*>("TheRect");
QVERIFY(myRect);
- QTest::ignoreMessage(QtWarningMsg, "QML QmlNumberAnimation (file:///home/brasser/depot/kinetic-declarativeui/qt/tests/auto/declarative/animations/data/propertiesTransition4.qml:22:9) targets/properties/exclude and target/property are mutually exclusive.");
+ QTest::ignoreMessage(QtWarningMsg, "QML QmlNumberAnimation (file:///home/brasser/depot/kinetic-declarativeui/qt/tests/auto/declarative/animations/data/propertiesTransition4.qml:22:9) matchTargets/matchProperties/exclude and target/property are mutually exclusive.");
rect->setState("moved");
QCOMPARE(myRect->x(),qreal(200));
}
@@ -365,7 +367,7 @@ void tst_animations::propertiesTransition()
QmlGraphicsRectangle *myRect = rect->findChild<QmlGraphicsRectangle*>("TheRect");
QVERIFY(myRect);
- QTest::ignoreMessage(QtWarningMsg, "QML QmlNumberAnimation (file:///home/brasser/depot/kinetic-declarativeui/qt/tests/auto/declarative/animations/data/propertiesTransition5.qml:22:9) targets/properties/exclude and target/property are mutually exclusive.");
+ QTest::ignoreMessage(QtWarningMsg, "QML QmlNumberAnimation (file:///home/brasser/depot/kinetic-declarativeui/qt/tests/auto/declarative/animations/data/propertiesTransition5.qml:22:9) matchTargets/matchProperties/exclude and target/property are mutually exclusive.");
rect->setState("moved");
QCOMPARE(myRect->x(),qreal(200));
}
@@ -384,6 +386,22 @@ void tst_animations::propertiesTransition()
}
}
+void tst_animations::easingStringConversion()
+{
+ QmlNumberAnimation *animation = new QmlNumberAnimation;
+ animation->setEasing("easeInOutQuad");
+ QCOMPARE(static_cast<QVariantAnimation*>(((QmlAbstractAnimation*)animation)->qtAnimation())->easingCurve(), QEasingCurve(QEasingCurve::InOutQuad));
+
+ animation->setEasing("OutQuad");
+ QCOMPARE(static_cast<QVariantAnimation*>(((QmlAbstractAnimation*)animation)->qtAnimation())->easingCurve(), QEasingCurve(QEasingCurve::OutQuad));
+
+ animation->setEasing("easeOutBounce(amplitude: 5)");
+ QCOMPARE(static_cast<QVariantAnimation*>(((QmlAbstractAnimation*)animation)->qtAnimation())->easingCurve().type(), QEasingCurve::OutBounce);
+ QCOMPARE(static_cast<QVariantAnimation*>(((QmlAbstractAnimation*)animation)->qtAnimation())->easingCurve().amplitude(), qreal(5));
+
+ delete animation;
+}
+
QTEST_MAIN(tst_animations)
#include "tst_animations.moc"
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro
index 6a939e0..d1194d9 100644
--- a/tests/auto/declarative/declarative.pro
+++ b/tests/auto/declarative/declarative.pro
@@ -24,6 +24,8 @@ SUBDIRS += \
qmlfontloader \ # Cover
qmlgraphicsitem \ # Cover
qmlgraphicsborderimage \ # Cover
+ qmlgraphicsflickable \ # Cover
+ qmlgraphicsflipable \ # Cover
qmlgraphicsparticles \ # Cover
qmlgraphicspositioners \ # Cover
qmlgraphicstext \ # Cover
@@ -46,7 +48,9 @@ SUBDIRS += \
sql \ # Cover
states \ # Cover
valuetypes \ # Cover
- visual # Cover
+ visual \ # Cover
+ xmlhttprequest # Cover
+
# Tests which should run in Pulse
PULSE_TESTS = $$SUBDIRS
diff --git a/tests/auto/declarative/layouts/data/layouts.qml b/tests/auto/declarative/layouts/data/layouts.qml
index ccc8cfe..b0ee63b 100644
--- a/tests/auto/declarative/layouts/data/layouts.qml
+++ b/tests/auto/declarative/layouts/data/layouts.qml
@@ -7,10 +7,9 @@ Item {
GraphicsObjectContainer {
anchors.fill:parent
+ synchronizedResizing: true
QGraphicsWidget {
- size.width:parent.width
- size.height:parent.height
layout: QGraphicsLinearLayout {
spacing: 0
diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp
index f619b57..1c2330d 100644
--- a/tests/auto/declarative/layouts/tst_layouts.cpp
+++ b/tests/auto/declarative/layouts/tst_layouts.cpp
@@ -68,10 +68,10 @@ void tst_QmlGraphicsLayouts::test_qml()
canvas->execute();
qApp->processEvents();
- QmlGraphicsLayoutItem *left = qobject_cast<QmlGraphicsLayoutItem*>(canvas->root()->findChild<QmlGraphicsItem*>("left"));
+ QmlGraphicsLayoutItem *left = static_cast<QmlGraphicsLayoutItem*>(canvas->root()->findChild<QmlGraphicsItem*>("left"));
QVERIFY(left != 0);
- QmlGraphicsLayoutItem *right = qobject_cast<QmlGraphicsLayoutItem*>(canvas->root()->findChild<QmlGraphicsItem*>("right"));
+ QmlGraphicsLayoutItem *right = static_cast<QmlGraphicsLayoutItem*>(canvas->root()->findChild<QmlGraphicsItem*>("right"));
QVERIFY(right != 0);
qreal gvMargin = 9.0;
@@ -101,17 +101,21 @@ void tst_QmlGraphicsLayouts::test_qml()
QCOMPARE(right->width(), 100.0);
QCOMPARE(right->height(), 100.0);
- //Maximum Size
- canvas->root()->setWidth(1000 + 2*gvMargin);
- canvas->root()->setHeight(1000 + 2*gvMargin);
+ //Between preferred and Maximum Size
+ /*Note that if set to maximum size (or above) GraphicsLinearLayout behavior
+ is to shrink them down to preferred size. So the exact maximum size can't
+ be used*/
+ canvas->root()->setWidth(670 + 2*gvMargin);
+ canvas->root()->setHeight(300 + 2*gvMargin);
QCOMPARE(left->x(), gvMargin);
- QCOMPARE(left->width(), 300.0);
+ QCOMPARE(left->width(), 270.0);
QCOMPARE(left->height(), 300.0);
- QCOMPARE(right->x(), 300.0 + gvMargin);
+ QCOMPARE(right->x(), 270.0 + gvMargin);
QCOMPARE(right->width(), 400.0);
- QCOMPARE(right->height(), 400.0);
+ QCOMPARE(right->height(), 300.0);
+
}
void tst_QmlGraphicsLayouts::test_cpp()
diff --git a/tests/auto/declarative/qmlgraphicsflickable/data/flickable01.qml b/tests/auto/declarative/qmlgraphicsflickable/data/flickable01.qml
new file mode 100644
index 0000000..8a1843c
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsflickable/data/flickable01.qml
@@ -0,0 +1,4 @@
+import Qt 4.6
+
+Flickable {
+}
diff --git a/tests/auto/declarative/qmlgraphicsflickable/data/flickable02.qml b/tests/auto/declarative/qmlgraphicsflickable/data/flickable02.qml
new file mode 100644
index 0000000..cf98dd9
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsflickable/data/flickable02.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+
+Flickable {
+ width: 100; height: 100
+ viewportWidth: row.width; viewportHeight: row.height
+
+ Row {
+ id: row
+ Repeater {
+ model: 4
+ Rectangle { width: 200; height: 300; color: dayColor }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicsflickable/data/flickable03.qml b/tests/auto/declarative/qmlgraphicsflickable/data/flickable03.qml
new file mode 100644
index 0000000..001bf2f
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsflickable/data/flickable03.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+
+Flickable {
+ width: 100; height: 100
+ viewportWidth: column.width; viewportHeight: column.height
+
+ Column {
+ id: column
+ Repeater {
+ model: 4
+ Rectangle { width: 200; height: 300; color: dayColor }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicsflickable/data/flickable04.qml b/tests/auto/declarative/qmlgraphicsflickable/data/flickable04.qml
new file mode 100644
index 0000000..5a27869
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsflickable/data/flickable04.qml
@@ -0,0 +1,16 @@
+import Qt 4.6
+
+Flickable {
+ width: 100; height: 100
+ viewportWidth: column.width; viewportHeight: column.height
+ pressDelay: 200; overShoot: false; interactive: false
+ maximumFlickVelocity: 2000
+
+ Column {
+ id: column
+ Repeater {
+ model: 4
+ Rectangle { width: 200; height: 300; color: dayColor }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlgraphicsflickable/qmlgraphicsflickable.pro b/tests/auto/declarative/qmlgraphicsflickable/qmlgraphicsflickable.pro
new file mode 100644
index 0000000..7c4c959
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsflickable/qmlgraphicsflickable.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative gui
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qmlgraphicsflickable.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qmlgraphicsflickable/tst_qmlgraphicsflickable.cpp b/tests/auto/declarative/qmlgraphicsflickable/tst_qmlgraphicsflickable.cpp
new file mode 100644
index 0000000..b11de80
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsflickable/tst_qmlgraphicsflickable.cpp
@@ -0,0 +1,145 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 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/qmlengine.h>
+#include <QtDeclarative/qmlcomponent.h>
+#include <private/qmlgraphicsflickable_p.h>
+#include <private/qmlvaluetype_p.h>
+#include <math.h>
+
+class tst_qmlgraphicsflickable : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qmlgraphicsflickable();
+
+private slots:
+ void create();
+ void horizontalViewportSize();
+ void verticalViewportSize();
+ void properties();
+
+private:
+ QmlEngine engine;
+};
+
+tst_qmlgraphicsflickable::tst_qmlgraphicsflickable()
+{
+}
+
+void tst_qmlgraphicsflickable::create()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/flickable01.qml"));
+ QmlGraphicsFlickable *obj = qobject_cast<QmlGraphicsFlickable*>(c.create());
+
+ QVERIFY(obj != 0);
+ QCOMPARE(obj->isAtXBeginning(), true);
+ QCOMPARE(obj->isAtXEnd(), false);
+ QCOMPARE(obj->isAtYBeginning(), true);
+ QCOMPARE(obj->isAtYEnd(), false);
+ QCOMPARE(obj->viewportX(), 0.);
+ QCOMPARE(obj->viewportY(), 0.);
+
+ QCOMPARE(obj->horizontalVelocity(), 0.);
+ QCOMPARE(obj->verticalVelocity(), 0.);
+ QCOMPARE(obj->reportedVelocitySmoothing(), 100.);
+
+ QCOMPARE(obj->isInteractive(), true);
+ QCOMPARE(obj->overShoot(), true);
+ QCOMPARE(obj->pressDelay(), 0);
+ QCOMPARE(obj->maximumFlickVelocity(), 5000.);
+
+ delete obj;
+}
+
+void tst_qmlgraphicsflickable::horizontalViewportSize()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/flickable02.qml"));
+ QmlGraphicsFlickable *obj = qobject_cast<QmlGraphicsFlickable*>(c.create());
+
+ QVERIFY(obj != 0);
+ QCOMPARE(obj->viewportWidth(), 800.);
+ QCOMPARE(obj->viewportHeight(), 300.);
+ QCOMPARE(obj->isAtXBeginning(), true);
+ QCOMPARE(obj->isAtXEnd(), false);
+ QCOMPARE(obj->isAtYBeginning(), true);
+ QCOMPARE(obj->isAtYEnd(), false);
+
+ delete obj;
+}
+
+void tst_qmlgraphicsflickable::verticalViewportSize()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/flickable03.qml"));
+ QmlGraphicsFlickable *obj = qobject_cast<QmlGraphicsFlickable*>(c.create());
+
+ QVERIFY(obj != 0);
+ QCOMPARE(obj->viewportWidth(), 200.);
+ QCOMPARE(obj->viewportHeight(), 1200.);
+ QCOMPARE(obj->isAtXBeginning(), true);
+ QCOMPARE(obj->isAtXEnd(), false);
+ QCOMPARE(obj->isAtYBeginning(), true);
+ QCOMPARE(obj->isAtYEnd(), false);
+
+ delete obj;
+}
+
+void tst_qmlgraphicsflickable::properties()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/flickable04.qml"));
+ QmlGraphicsFlickable *obj = qobject_cast<QmlGraphicsFlickable*>(c.create());
+
+ QVERIFY(obj != 0);
+ QCOMPARE(obj->isInteractive(), false);
+ QCOMPARE(obj->overShoot(), false);
+ QCOMPARE(obj->pressDelay(), 200);
+ QCOMPARE(obj->maximumFlickVelocity(), 2000.);
+
+ delete obj;
+}
+
+QTEST_MAIN(tst_qmlgraphicsflickable)
+
+#include "tst_qmlgraphicsflickable.moc"
diff --git a/tests/auto/declarative/qmlgraphicsflipable/data/test-flipable.qml b/tests/auto/declarative/qmlgraphicsflipable/data/test-flipable.qml
new file mode 100644
index 0000000..21d356d
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsflipable/data/test-flipable.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+
+Flipable {
+ id: flipable
+ width: 640; height: 480
+
+ front: Rectangle { anchors.fill: flipable }
+ back: Rectangle { anchors.fill: flipable }
+}
diff --git a/tests/auto/declarative/qmlgraphicsflipable/qmlgraphicsflipable.pro b/tests/auto/declarative/qmlgraphicsflipable/qmlgraphicsflipable.pro
new file mode 100644
index 0000000..b046086
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsflipable/qmlgraphicsflipable.pro
@@ -0,0 +1,8 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative gui
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qmlgraphicsflipable.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qmlgraphicsflipable/tst_qmlgraphicsflipable.cpp b/tests/auto/declarative/qmlgraphicsflipable/tst_qmlgraphicsflipable.cpp
new file mode 100644
index 0000000..f1a3ec8
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicsflipable/tst_qmlgraphicsflipable.cpp
@@ -0,0 +1,113 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 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/qmlengine.h>
+#include <QtDeclarative/qmlcomponent.h>
+#include <private/qmlgraphicsflipable_p.h>
+#include <private/qmlvaluetype_p.h>
+#include <QFontMetrics>
+#include <private/qmlgraphicsrectangle_p.h>
+#include <math.h>
+
+class tst_qmlgraphicsflipable : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qmlgraphicsflipable();
+
+private slots:
+ void create();
+ void checkFrontAndBack();
+ void setFrontAndBack();
+
+private:
+ QmlEngine engine;
+};
+
+tst_qmlgraphicsflipable::tst_qmlgraphicsflipable()
+{
+}
+
+void tst_qmlgraphicsflipable::create()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/test-flipable.qml"));
+ QmlGraphicsFlipable *obj = qobject_cast<QmlGraphicsFlipable*>(c.create());
+
+ QVERIFY(obj != 0);
+ delete obj;
+}
+
+void tst_qmlgraphicsflipable::checkFrontAndBack()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/test-flipable.qml"));
+ QmlGraphicsFlipable *obj = qobject_cast<QmlGraphicsFlipable*>(c.create());
+
+ QVERIFY(obj != 0);
+ QVERIFY(obj->front() != 0);
+ QVERIFY(obj->back() != 0);
+ delete obj;
+}
+
+void tst_qmlgraphicsflipable::setFrontAndBack()
+{
+ QmlEngine engine;
+ QmlComponent c(&engine, QUrl("file://" SRCDIR "/data/test-flipable.qml"));
+ QmlGraphicsFlipable *obj = qobject_cast<QmlGraphicsFlipable*>(c.create());
+
+ QVERIFY(obj != 0);
+ QVERIFY(obj->front() != 0);
+ QVERIFY(obj->back() != 0);
+
+ QString message = "QML " + QString(obj->metaObject()->className()) + " (" + c.url().toString() + ":3:1) front is a write-once property";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(message));
+ obj->setFront(new QmlGraphicsRectangle());
+
+ message = "QML " + QString(obj->metaObject()->className()) + " (" + c.url().toString() + ":3:1) back is a write-once property";
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(message));
+ obj->setBack(new QmlGraphicsRectangle());
+ delete obj;
+}
+
+QTEST_MAIN(tst_qmlgraphicsflipable)
+
+#include "tst_qmlgraphicsflipable.moc"
diff --git a/tests/auto/declarative/qmlgraphicsgridview/data/gridview.qml b/tests/auto/declarative/qmlgraphicsgridview/data/gridview.qml
index 37eb622..344b4b5 100644
--- a/tests/auto/declarative/qmlgraphicsgridview/data/gridview.qml
+++ b/tests/auto/declarative/qmlgraphicsgridview/data/gridview.qml
@@ -43,6 +43,7 @@ Rectangle {
height: 320
cellWidth: 80
cellHeight: 60
+ flow: (testTopToBottom == false) ? "LeftToRight" : "TopToBottom"
model: testModel
delegate: myDelegate
}
diff --git a/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp b/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp
index 7c32d14..d99b16f 100644
--- a/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp
+++ b/tests/auto/declarative/qmlgraphicsgridview/tst_qmlgraphicsgridview.cpp
@@ -53,12 +53,13 @@ public:
tst_QmlGraphicsGridView();
private slots:
- void currentIndex();
void items();
void changed();
void inserted();
void removed();
void moved();
+ void currentIndex();
+ void changeFlow();
private:
QmlView *createView(const QString &filename);
@@ -147,6 +148,7 @@ void tst_QmlGraphicsGridView::items()
QmlContext *ctxt = canvas->rootContext();
ctxt->setContextProperty("testModel", &model);
+ ctxt->setContextProperty("testTopToBottom", QVariant(false));
canvas->execute();
qApp->processEvents();
@@ -194,6 +196,7 @@ void tst_QmlGraphicsGridView::changed()
QmlContext *ctxt = canvas->rootContext();
ctxt->setContextProperty("testModel", &model);
+ ctxt->setContextProperty("testTopToBottom", QVariant(false));
canvas->execute();
qApp->processEvents();
@@ -226,6 +229,7 @@ void tst_QmlGraphicsGridView::inserted()
QmlContext *ctxt = canvas->rootContext();
ctxt->setContextProperty("testModel", &model);
+ ctxt->setContextProperty("testTopToBottom", QVariant(false));
canvas->execute();
qApp->processEvents();
@@ -253,8 +257,8 @@ void tst_QmlGraphicsGridView::inserted()
// Confirm items positioned correctly
for (int i = 0; i < model.count(); ++i) {
QmlGraphicsItem *item = findItem<QmlGraphicsItem>(viewport, "wrapper", i);
- QVERIFY(item->x() == (i%3)*80);
- QVERIFY(item->y() == (i/3)*60);
+ QCOMPARE(item->x(), (i%3)*80.0);
+ QCOMPARE(item->y(), (i/3)*60.0);
}
model.insertItem(0, "Foo", "1111"); // zero index, and current item
@@ -306,6 +310,7 @@ void tst_QmlGraphicsGridView::removed()
QmlContext *ctxt = canvas->rootContext();
ctxt->setContextProperty("testModel", &model);
+ ctxt->setContextProperty("testTopToBottom", QVariant(false));
canvas->execute();
qApp->processEvents();
@@ -420,6 +425,7 @@ void tst_QmlGraphicsGridView::moved()
QmlContext *ctxt = canvas->rootContext();
ctxt->setContextProperty("testModel", &model);
+ ctxt->setContextProperty("testTopToBottom", QVariant(false));
canvas->execute();
qApp->processEvents();
@@ -534,9 +540,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<QmlGraphicsItem>(viewport, "wrapper", 5));
+ QCOMPARE(gridview->currentItem()->y(), gridview->highlightItem()->y());
gridview->moveCurrentIndexRight();
QCOMPARE(gridview->currentIndex(), 6);
@@ -605,6 +614,79 @@ 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;
+}
+
+void tst_QmlGraphicsGridView::changeFlow()
+{
+ QmlView *canvas = createView(SRCDIR "/data/gridview.qml");
+
+ TestModel model;
+ for (int i = 0; i < 30; i++)
+ model.addItem("Item" + QString::number(i), QString::number(i));
+
+ QmlContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+ ctxt->setContextProperty("testTopToBottom", QVariant(false));
+
+ canvas->execute();
+ qApp->processEvents();
+
+ QmlGraphicsGridView *gridview = findItem<QmlGraphicsGridView>(canvas->root(), "grid");
+ QVERIFY(gridview != 0);
+
+ QmlGraphicsItem *viewport = gridview->viewport();
+ QVERIFY(viewport != 0);
+
+ // Confirm items positioned correctly and indexes correct
+ int itemCount = findItems<QmlGraphicsItem>(viewport, "wrapper").count();
+ for (int i = 3; i < model.count() && i < itemCount; ++i) {
+ QmlGraphicsItem *item = findItem<QmlGraphicsItem>(viewport, "wrapper", i);
+ if (!item) qWarning() << "Item" << i << "not found";
+ QVERIFY(item);
+ QCOMPARE(item->x(), qreal((i%3)*80));
+ QCOMPARE(item->y(), qreal((i/3)*60));
+ QmlGraphicsText *name = findItem<QmlGraphicsText>(viewport, "textName", i);
+ QVERIFY(name != 0);
+ QCOMPARE(name->text(), model.name(i));
+ QmlGraphicsText *number = findItem<QmlGraphicsText>(viewport, "textNumber", i);
+ QVERIFY(number != 0);
+ QCOMPARE(number->text(), model.number(i));
+ }
+
+ ctxt->setContextProperty("testTopToBottom", QVariant(true));
+ QTest::qWait(500);
+
+ // Confirm items positioned correctly and indexes correct
+ itemCount = findItems<QmlGraphicsItem>(viewport, "wrapper").count();
+ for (int i = 3; i < model.count() && i < itemCount; ++i) {
+ QmlGraphicsItem *item = findItem<QmlGraphicsItem>(viewport, "wrapper", i);
+ if (!item) qWarning() << "Item" << i << "not found";
+ QVERIFY(item);
+ QCOMPARE(item->x(), qreal((i/5)*80));
+ QCOMPARE(item->y(), qreal((i%5)*60));
+ QmlGraphicsText *name = findItem<QmlGraphicsText>(viewport, "textName", i);
+ QVERIFY(name != 0);
+ QCOMPARE(name->text(), model.name(i));
+ QmlGraphicsText *number = findItem<QmlGraphicsText>(viewport, "textNumber", i);
+ QVERIFY(number != 0);
+ QCOMPARE(number->text(), model.number(i));
+ }
+
delete canvas;
}
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;
}
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..83b8d79 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();
@@ -621,6 +625,7 @@ void tst_QmlGraphicsListView::enforceRange()
QCOMPARE(listview->preferredHighlightBegin(), 100.0);
QCOMPARE(listview->preferredHighlightEnd(), 100.0);
+ QCOMPARE(listview->highlightRangeMode(), QmlGraphicsListView::StrictlyEnforceRange);
QmlGraphicsItem *viewport = listview->viewport();
QVERIFY(viewport != 0);
@@ -656,6 +661,7 @@ void tst_QmlGraphicsListView::spacing()
QmlContext *ctxt = canvas->rootContext();
ctxt->setContextProperty("testModel", &model);
+ ctxt->setContextProperty("testAnimate", QVariant(false));
canvas->execute();
qApp->processEvents();
@@ -778,6 +784,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);
@@ -794,9 +801,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<QmlGraphicsItem>(viewport, "wrapper", 3));
+ QCOMPARE(listview->highlightItem()->y(), listview->currentItem()->y());
// no wrap
listview->setCurrentIndex(0);
@@ -811,7 +821,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);
@@ -844,6 +855,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;
}
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<QmlGraphicsTextEdit*>(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<QmlGraphicsTextEdit*>(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<QmlGraphicsTextEdit*>(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<QmlGraphicsTextEdit*>(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<QmlGraphicsTextEdit*>(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?
diff --git a/tests/auto/declarative/qmlgraphicswebview/data/basic.ico b/tests/auto/declarative/qmlgraphicswebview/data/basic.ico
new file mode 100644
index 0000000..8f3d05e
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicswebview/data/basic.ico
Binary files differ
diff --git a/tests/auto/declarative/qmlgraphicswebview/data/forward.html b/tests/auto/declarative/qmlgraphicswebview/data/forward.html
new file mode 100644
index 0000000..030446a
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicswebview/data/forward.html
@@ -0,0 +1,12 @@
+<html>
+<head><title>Forward</title>
+<link rel="icon" sizes="48x48" href="basic.png">
+</head>
+<body leftmargin="0" marginwidth="0">
+<table width="123">
+<tbody>
+<tr><td>This is more.</td></tr>
+</tbody>
+</table>
+</body>
+</html>
diff --git a/tests/auto/declarative/qmlgraphicswebview/data/javaScript.html b/tests/auto/declarative/qmlgraphicswebview/data/javaScript.html
new file mode 100644
index 0000000..35270bc
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicswebview/data/javaScript.html
@@ -0,0 +1,11 @@
+<html>
+<head><title>JavaScript</title>
+<link rel="icon" sizes="48x48" href="basic.png">
+<script type="text/javascript">
+<!--
+window.onload = function(){ window.status = "status here"; }
+// -->
+</script>
+</head>
+<body>
+This is a JS test.
diff --git a/tests/auto/declarative/qmlgraphicswebview/data/loadError.qml b/tests/auto/declarative/qmlgraphicswebview/data/loadError.qml
new file mode 100644
index 0000000..1460f30
--- /dev/null
+++ b/tests/auto/declarative/qmlgraphicswebview/data/loadError.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+WebView {
+ url: "does-not-exist.html"
+}
diff --git a/tests/auto/declarative/states/tst_states.cpp b/tests/auto/declarative/states/tst_states.cpp
index d6df37e..40e9aa8 100644
--- a/tests/auto/declarative/states/tst_states.cpp
+++ b/tests/auto/declarative/states/tst_states.cpp
@@ -365,13 +365,8 @@ void tst_states::signalOverrideCrash()
MyRect *rect = qobject_cast<MyRect*>(rectComponent.create());
QVERIFY(rect != 0);
- //QCOMPARE(rect->color(),QColor("red"));
- //rect->doSomething();
- //QCOMPARE(rect->color(),QColor("blue"));
-
rect->setState("overridden");
rect->doSomething();
- //QCOMPARE(rect->color(),QColor("green"));
}
void tst_states::parentChange()
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
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data/itemlist.0.png
Binary files 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
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data/itemlist.1.png
Binary files 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
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data/itemlist.2.png
Binary files 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
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data/itemlist.3.png
Binary files 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
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data/itemlist.4.png
Binary files 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
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data/itemlist.5.png
Binary files 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
--- /dev/null
+++ b/tests/auto/declarative/visual/ListView/data/itemlist.6.png
Binary files 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
+ }
+}
diff --git a/tests/auto/declarative/visual/flickable/Day.qml b/tests/auto/declarative/visual/flickable/Day.qml
deleted file mode 100644
index 8416724..0000000
--- a/tests/auto/declarative/visual/flickable/Day.qml
+++ /dev/null
@@ -1,26 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- property string day
-
- width: 200
- height: 300
- radius: 7
- border.color: "black"
- id: Page
- Image {
- x: 10
- y: 10
- source: "cork.jpg"
- }
- Text {
- x: 20
- y: 20
- height: 40
- font.pixelSize: 14
- font.bold: true
- text: day
- style: "Outline"
- styleColor: "#dedede"
- }
-}
diff --git a/tests/auto/declarative/visual/flickable/cork.jpg b/tests/auto/declarative/visual/flickable/cork.jpg
deleted file mode 100644
index 6dc3a3f..0000000
--- a/tests/auto/declarative/visual/flickable/cork.jpg
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/flickable/data-X11/flickable.0.png b/tests/auto/declarative/visual/flickable/data-X11/flickable.0.png
deleted file mode 100644
index 5da2f2a..0000000
--- a/tests/auto/declarative/visual/flickable/data-X11/flickable.0.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/flickable/data-X11/flickable.1.png b/tests/auto/declarative/visual/flickable/data-X11/flickable.1.png
deleted file mode 100644
index 1c33ca6..0000000
--- a/tests/auto/declarative/visual/flickable/data-X11/flickable.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/flickable/data-X11/flickable.2.png b/tests/auto/declarative/visual/flickable/data-X11/flickable.2.png
deleted file mode 100644
index 67cdf8f..0000000
--- a/tests/auto/declarative/visual/flickable/data-X11/flickable.2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/flickable/data-X11/flickable.qml b/tests/auto/declarative/visual/flickable/data-X11/flickable.qml
deleted file mode 100644
index 6a60409..0000000
--- a/tests/auto/declarative/visual/flickable/data-X11/flickable.qml
+++ /dev/null
@@ -1,791 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 32
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 48
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 64
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 80
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 96
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 112
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 128
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 144
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 160
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 176
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 192
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 208
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 224
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 240
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 256
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 272
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 288
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 304
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 320
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 336
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 352
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 368
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 384
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 400
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 416
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 432
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 448
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 464
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 480
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 496
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 512
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 528
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 544
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 560
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 576
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 592
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 608
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 624
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 640
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 656
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 672
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 688
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 704
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Frame {
- msec: 720
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 517; y: 154
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 736
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Mouse {
- type: 5
- button: 1
- buttons: 1
- x: 514; y: 154
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 752
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Mouse {
- type: 5
- button: 1
- buttons: 1
- x: 509; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 768
- hash: "2a07f4ab51ed6ac07c2efecfd561cdff"
- }
- Mouse {
- type: 5
- button: 1
- buttons: 1
- x: 497; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 784
- hash: "4f30ebc802a38cd4ad05018b6bc429a4"
- }
- Mouse {
- type: 5
- button: 1
- buttons: 1
- x: 480; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 800
- hash: "8d2e349b2aad07d98f11a30a33a5b409"
- }
- Mouse {
- type: 5
- button: 1
- buttons: 1
- x: 443; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 816
- hash: "09647796906da54345fffa18eb1b1f91"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 443; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 832
- hash: "09647796906da54345fffa18eb1b1f91"
- }
- Frame {
- msec: 848
- hash: "4a7dd2931129756437e38b3516474aa1"
- }
- Frame {
- msec: 864
- hash: "bbec3d9d7ca38599b03e44ed3c2b68b6"
- }
- Frame {
- msec: 880
- hash: "07214f888dba9ea84eae306cf92a0f7f"
- }
- Frame {
- msec: 896
- hash: "0feac7c874f8caf11db319c13ed2250e"
- }
- Frame {
- msec: 912
- hash: "7de76db129b4e9d17836d17fff687b99"
- }
- Frame {
- msec: 928
- hash: "7f3414d54148afd7b01ed0fe54b60ba2"
- }
- Frame {
- msec: 944
- hash: "692cde1197a0f37bee5a4e57160bff8b"
- }
- Frame {
- msec: 960
- image: "flickable.0.png"
- }
- Frame {
- msec: 976
- hash: "d0b879cb63d003c0fd00c14160e7d1a4"
- }
- Frame {
- msec: 992
- hash: "9a0879e4e9b23ad3c9340d7c28eb6386"
- }
- Frame {
- msec: 1008
- hash: "2b6f4cb48284a835f77bc6368566c187"
- }
- Frame {
- msec: 1024
- hash: "53c094e3aa4f841195b2ce4e0fa34fae"
- }
- Frame {
- msec: 1040
- hash: "3ef7530199a136d339adf677cf98f035"
- }
- Frame {
- msec: 1056
- hash: "1a707788b43773ffa05d0ad88e6f156d"
- }
- Frame {
- msec: 1072
- hash: "e51dc6702e59c68e6a34f4a8f6c5b5c5"
- }
- Frame {
- msec: 1088
- hash: "1fe6d9b517ad1b9aaf16d005577ab45d"
- }
- Frame {
- msec: 1104
- hash: "fac02bdb63d4aa7749a66f6aa91a7035"
- }
- Frame {
- msec: 1120
- hash: "4bad8d93cee30c76a4b263981adc0c2f"
- }
- Frame {
- msec: 1136
- hash: "8bcee1ab8a1ab66b22d59d975a265906"
- }
- Frame {
- msec: 1152
- hash: "a68fa84e32d4ba44d4d53b476505ff6e"
- }
- Frame {
- msec: 1168
- hash: "d7258071d6673ef22a8836a8fdc6c5a6"
- }
- Frame {
- msec: 1184
- hash: "c708f62342663a4a879c86cd97448b75"
- }
- Frame {
- msec: 1200
- hash: "2e28d213283f4791d051177f468d9246"
- }
- Frame {
- msec: 1216
- hash: "beb36da1d54eedc62b65c47ba7c43f59"
- }
- Frame {
- msec: 1232
- hash: "2cea7b5571c563a709e211fbb5684a9d"
- }
- Frame {
- msec: 1248
- hash: "9ef0bafe8a9d52bc2fb7732c02ea9304"
- }
- Frame {
- msec: 1264
- hash: "7a489611578c9590aaf1b85763d8ae2c"
- }
- Frame {
- msec: 1280
- hash: "31b8e33b788821922d6d437f40c7811c"
- }
- Frame {
- msec: 1296
- hash: "421ae01b4d757996aefb35641f167c2d"
- }
- Frame {
- msec: 1312
- hash: "175c93fde4cb520881802a57bf10be5f"
- }
- Frame {
- msec: 1328
- hash: "11602a6ca746c83c857524eafc4d9570"
- }
- Frame {
- msec: 1344
- hash: "4f10b74a1bb8d65f3d371cc613a1641a"
- }
- Frame {
- msec: 1360
- hash: "d8505ce7ad73683817ed4e3a7f3ab610"
- }
- Frame {
- msec: 1376
- hash: "a800684370e06817e1a2a34ceb2fc651"
- }
- Frame {
- msec: 1392
- hash: "267e184af16c63eefe290c6659917b34"
- }
- Frame {
- msec: 1408
- hash: "354c5b04c0ed2288c23064debb4e261e"
- }
- Frame {
- msec: 1424
- hash: "67d300a0f15f0642c4ba0c8bd7662c01"
- }
- Frame {
- msec: 1440
- hash: "2fe12d1625140c2da1f0af17e1bf548b"
- }
- Frame {
- msec: 1456
- hash: "fef2140a272d78f5c0e93ec3a4c6e6c9"
- }
- Frame {
- msec: 1472
- hash: "b9331a586bad1619e51794bc66bf36fc"
- }
- Frame {
- msec: 1488
- hash: "8ba04c015ca8c150e0bbb09769955b5d"
- }
- Frame {
- msec: 1504
- hash: "09f573e1465533e67fa0d504e5481c8b"
- }
- Frame {
- msec: 1520
- hash: "fe3e919aa08ddd51ee7b81ef405b10f4"
- }
- Frame {
- msec: 1536
- hash: "e5d85427a2e02dd83d2932205e7aa6ac"
- }
- Frame {
- msec: 1552
- hash: "4e97fda26cbb0273dd69e50cf134a147"
- }
- Frame {
- msec: 1568
- hash: "7e13b494b5397b747eb6065f7555acce"
- }
- Frame {
- msec: 1584
- hash: "fe9567c08f776bed903a74c9c21a18bb"
- }
- Frame {
- msec: 1600
- hash: "086dd974228d51513e732c96c69dd07f"
- }
- Frame {
- msec: 1616
- hash: "b43d5b4f44df55b1099c7ba339df1799"
- }
- Frame {
- msec: 1632
- hash: "ce0e82fc42ff0017b40278e323682348"
- }
- Frame {
- msec: 1648
- hash: "e28b9cee2047774d70df6510c83e9dfe"
- }
- Frame {
- msec: 1664
- hash: "568d97ff98ac2d867981eb7330b831b1"
- }
- Frame {
- msec: 1680
- hash: "10f38a5f95a91bc7380a13f5aa30f22f"
- }
- Frame {
- msec: 1696
- hash: "2f9ec9b1843f2970fa8225f313781404"
- }
- Frame {
- msec: 1712
- hash: "bdd8405a889ff9a6e33cce65416bdc43"
- }
- Frame {
- msec: 1728
- hash: "9f57f8460ade9e6ff3db7a0a8d044f07"
- }
- Frame {
- msec: 1744
- hash: "36d1e95a006c00b183b24a05c2acf12f"
- }
- Frame {
- msec: 1760
- hash: "78d7f8b056c0341b442c0eabbf6da90b"
- }
- Frame {
- msec: 1776
- hash: "f5786d9a77a28796908fcb376af2cc1f"
- }
- Frame {
- msec: 1792
- hash: "38cfaf7a356163f8ff9708ba625907b7"
- }
- Frame {
- msec: 1808
- hash: "989922a8c5e3c000811a994bfe183d7f"
- }
- Frame {
- msec: 1824
- hash: "989922a8c5e3c000811a994bfe183d7f"
- }
- Frame {
- msec: 1840
- hash: "989922a8c5e3c000811a994bfe183d7f"
- }
- Frame {
- msec: 1856
- hash: "f5786d9a77a28796908fcb376af2cc1f"
- }
- Frame {
- msec: 1872
- hash: "014cfc6573eb0a89acacd6f154098202"
- }
- Frame {
- msec: 1888
- hash: "247fead2e4139421cb6e5f7a97fa1768"
- }
- Frame {
- msec: 1904
- hash: "bdd8405a889ff9a6e33cce65416bdc43"
- }
- Frame {
- msec: 1920
- image: "flickable.1.png"
- }
- Frame {
- msec: 1936
- hash: "d64f65edf900912158634c88b5c0b5ca"
- }
- Frame {
- msec: 1952
- hash: "d714183774f603269335b0675e0656f8"
- }
- Frame {
- msec: 1968
- hash: "24f9e90f7789a7c5db65d59312d49fe1"
- }
- Frame {
- msec: 1984
- hash: "ce0e82fc42ff0017b40278e323682348"
- }
- Frame {
- msec: 2000
- hash: "f564293ff63ccc952597ac228c6437dc"
- }
- Frame {
- msec: 2016
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2032
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2048
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2064
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2080
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2096
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2112
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2128
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2144
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2160
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2176
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2192
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2208
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2224
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2240
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2256
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2272
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2288
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2304
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2320
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2336
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2352
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2368
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2384
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2400
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2416
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2432
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2448
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2464
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2480
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2496
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2512
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2528
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2544
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2560
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2576
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2592
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2608
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2624
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2640
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2656
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2672
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2688
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2704
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2720
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2736
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2752
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2768
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2784
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2800
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2816
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 2832
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2848
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2864
- hash: "555d97eac7e8b06cb81f4af74098ce65"
- }
- Frame {
- msec: 2880
- image: "flickable.2.png"
- }
-}
diff --git a/tests/auto/declarative/visual/flickable/data/flickable.0.png b/tests/auto/declarative/visual/flickable/data/flickable.0.png
deleted file mode 100644
index b7ddf5a..0000000
--- a/tests/auto/declarative/visual/flickable/data/flickable.0.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/flickable/data/flickable.1.png b/tests/auto/declarative/visual/flickable/data/flickable.1.png
deleted file mode 100644
index ef48b85..0000000
--- a/tests/auto/declarative/visual/flickable/data/flickable.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/flickable/data/flickable.2.png b/tests/auto/declarative/visual/flickable/data/flickable.2.png
deleted file mode 100644
index 60c357b..0000000
--- a/tests/auto/declarative/visual/flickable/data/flickable.2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/flickable/data/flickable.qml b/tests/auto/declarative/visual/flickable/data/flickable.qml
deleted file mode 100644
index 730c128..0000000
--- a/tests/auto/declarative/visual/flickable/data/flickable.qml
+++ /dev/null
@@ -1,791 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 32
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 48
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 64
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 80
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 96
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 112
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 128
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 144
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 160
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 176
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 192
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 208
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 224
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 240
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 256
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 272
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 288
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 304
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 320
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 336
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 352
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 368
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 384
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 400
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 416
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 432
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 448
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 464
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 480
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 496
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 512
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 528
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 544
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 560
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 576
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 592
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 608
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 624
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 640
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 656
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 672
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 688
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 704
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Frame {
- msec: 720
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 517; y: 154
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 736
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Mouse {
- type: 5
- button: 1
- buttons: 1
- x: 514; y: 154
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 752
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Mouse {
- type: 5
- button: 1
- buttons: 1
- x: 509; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 768
- hash: "eceae327c367ccc69c5133d027df77c2"
- }
- Mouse {
- type: 5
- button: 1
- buttons: 1
- x: 497; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 784
- hash: "6a0f0d49abe4b5c2f3347bb0912c46bd"
- }
- Mouse {
- type: 5
- button: 1
- buttons: 1
- x: 480; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 800
- hash: "c7c13b23ac20eaee2a0fca45a03495d3"
- }
- Mouse {
- type: 5
- button: 1
- buttons: 1
- x: 443; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 816
- hash: "50559226ce0e0d94d330f34b0dfdaf48"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 443; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 832
- hash: "50559226ce0e0d94d330f34b0dfdaf48"
- }
- Frame {
- msec: 848
- hash: "dda302c698e909c7bf4cffdedf68fffb"
- }
- Frame {
- msec: 864
- hash: "d2ef86c4e840e22f27b9d5806d2685c1"
- }
- Frame {
- msec: 880
- hash: "6a38ab0c8e4e6687b1922d1ab30c5193"
- }
- Frame {
- msec: 896
- hash: "ddec5e9353017ae5d12f3efb9a15327c"
- }
- Frame {
- msec: 912
- hash: "e383591b6ce172ef86e2f1a90c5988db"
- }
- Frame {
- msec: 928
- hash: "3cd848d258775f50cbb668490b7cebf6"
- }
- Frame {
- msec: 944
- hash: "348f9bb0282edbe99947e72f234c0c72"
- }
- Frame {
- msec: 960
- image: "flickable.0.png"
- }
- Frame {
- msec: 976
- hash: "f7744a4f78b6791ce5f5184834f1798e"
- }
- Frame {
- msec: 992
- hash: "c4014a38bf59218e0673519c5bab0f74"
- }
- Frame {
- msec: 1008
- hash: "2a6b3d050b0f854b8f71d77b58dd9d8f"
- }
- Frame {
- msec: 1024
- hash: "30f25f6dcbad9e495d869943a8d83eee"
- }
- Frame {
- msec: 1040
- hash: "b5d6d395c94a19e9776ff1162c64993f"
- }
- Frame {
- msec: 1056
- hash: "2ce75b60f41f4b6b0c421788effd4be8"
- }
- Frame {
- msec: 1072
- hash: "cda31ad2f65d7d6cc1c9974748243904"
- }
- Frame {
- msec: 1088
- hash: "ffa1e5a479e60304570d89465e8898b1"
- }
- Frame {
- msec: 1104
- hash: "d8c984c1e00056cdfd1814f96fc04125"
- }
- Frame {
- msec: 1120
- hash: "0e855b0616b1c837c22ea34bbff76f10"
- }
- Frame {
- msec: 1136
- hash: "d2189d6dc8f635f9df5889e6825d11fc"
- }
- Frame {
- msec: 1152
- hash: "4086f2213831f0c616e7e02f58b17c46"
- }
- Frame {
- msec: 1168
- hash: "40b216eb2b7a0025123fa2374215644a"
- }
- Frame {
- msec: 1184
- hash: "236edf2f7da209cb5bf3efe334977e7f"
- }
- Frame {
- msec: 1200
- hash: "c2a9242b261988b58e58dc764aac7fca"
- }
- Frame {
- msec: 1216
- hash: "a6b707c16d0b72552403a518a27e40c8"
- }
- Frame {
- msec: 1232
- hash: "e0800659c30618417c56e5a8b6de0eeb"
- }
- Frame {
- msec: 1248
- hash: "3006d6af221e50eef60f67cc32d45e30"
- }
- Frame {
- msec: 1264
- hash: "7deab264af55709f25d22a10a83f2595"
- }
- Frame {
- msec: 1280
- hash: "11e2c733f48c02e8b1c66c0e9cc7f4b0"
- }
- Frame {
- msec: 1296
- hash: "a1242c3ea085838371fa1f31e11b4cc4"
- }
- Frame {
- msec: 1312
- hash: "3cba18358c3db55a585095733a914b31"
- }
- Frame {
- msec: 1328
- hash: "45dde70b0436f365f1711005321fbc1a"
- }
- Frame {
- msec: 1344
- hash: "29a9c57bb78c41e89d5db19b54a4f760"
- }
- Frame {
- msec: 1360
- hash: "3ec8e579f2ee49da0bf384f4b688e70e"
- }
- Frame {
- msec: 1376
- hash: "e6b7d3147b213ed2cddc81ee784b275b"
- }
- Frame {
- msec: 1392
- hash: "77a82e5d657b32b6f7f1681139c83b83"
- }
- Frame {
- msec: 1408
- hash: "623bcf513f95f6ca3052dc6f1fb13fb5"
- }
- Frame {
- msec: 1424
- hash: "d10b5fac984040899790273cd9246f71"
- }
- Frame {
- msec: 1440
- hash: "7b48417ae3627fed645b804ea24b376a"
- }
- Frame {
- msec: 1456
- hash: "5e5eb1fdc7fdf34f3df46b187544b9d5"
- }
- Frame {
- msec: 1472
- hash: "e4f08871f3dcb355c267fc27654c5704"
- }
- Frame {
- msec: 1488
- hash: "e8d82fee9fb5b2bb2fd6149a12947ea6"
- }
- Frame {
- msec: 1504
- hash: "a54e845480bed6b16c120a59a2bb07c3"
- }
- Frame {
- msec: 1520
- hash: "a96ae1a5ca2d04d7b330c4e1d5e2594a"
- }
- Frame {
- msec: 1536
- hash: "d1a4c4b1864581bad005392dd3c54d8a"
- }
- Frame {
- msec: 1552
- hash: "5bd3ae538de83151f90a40c800c081a5"
- }
- Frame {
- msec: 1568
- hash: "be5adfb11a6ad52d432fb96c0526d2ee"
- }
- Frame {
- msec: 1584
- hash: "2ea08dda212fa9839e0183d2b742c64f"
- }
- Frame {
- msec: 1600
- hash: "ba0d9014b7e30a49c51196807809368b"
- }
- Frame {
- msec: 1616
- hash: "e6cfdc4688cc7e49842a58bc39a6a1b3"
- }
- Frame {
- msec: 1632
- hash: "3aca4ba1d6bd38cdc278ff5d19e37693"
- }
- Frame {
- msec: 1648
- hash: "41acb4e8cddfa8371446bef580d420b4"
- }
- Frame {
- msec: 1664
- hash: "4860e0bf80bfd01b9e7e1d3b11152ac4"
- }
- Frame {
- msec: 1680
- hash: "85806f7e41725a35cb20b3ca07a2b3be"
- }
- Frame {
- msec: 1696
- hash: "07a0af6f784b91838d1ed23c326c29ce"
- }
- Frame {
- msec: 1712
- hash: "d4d0c0e65861dbce8992d714f5b18f0b"
- }
- Frame {
- msec: 1728
- hash: "ebcc280d376fed1bb45588992ad777e3"
- }
- Frame {
- msec: 1744
- hash: "2d8c183189c0a9234d6ff1e663503853"
- }
- Frame {
- msec: 1760
- hash: "5e3bec7de667175a7bd89aa5eb704003"
- }
- Frame {
- msec: 1776
- hash: "709b890b1939261377537f7bddb45a60"
- }
- Frame {
- msec: 1792
- hash: "c95dfd0259048e27a98b4676957e5183"
- }
- Frame {
- msec: 1808
- hash: "bfff5f9e90e280a3684f46967e8cb73f"
- }
- Frame {
- msec: 1824
- hash: "bfff5f9e90e280a3684f46967e8cb73f"
- }
- Frame {
- msec: 1840
- hash: "bfff5f9e90e280a3684f46967e8cb73f"
- }
- Frame {
- msec: 1856
- hash: "709b890b1939261377537f7bddb45a60"
- }
- Frame {
- msec: 1872
- hash: "a7ca5f1053393486cf48d5a83d89d1a7"
- }
- Frame {
- msec: 1888
- hash: "d9c34a6fe59ed8f9ff7b792301f80f52"
- }
- Frame {
- msec: 1904
- hash: "d4d0c0e65861dbce8992d714f5b18f0b"
- }
- Frame {
- msec: 1920
- image: "flickable.1.png"
- }
- Frame {
- msec: 1936
- hash: "cc7228edac6583cab5b186cd9bbb2233"
- }
- Frame {
- msec: 1952
- hash: "6a6af6de32f68f85c902140bc40071d3"
- }
- Frame {
- msec: 1968
- hash: "43b6b548eb145f79fa655c270abaac32"
- }
- Frame {
- msec: 1984
- hash: "3aca4ba1d6bd38cdc278ff5d19e37693"
- }
- Frame {
- msec: 2000
- hash: "184e42b2bcc0e5cf354dc92acdc23cef"
- }
- Frame {
- msec: 2016
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2032
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2048
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2064
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2080
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2096
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2112
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2128
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2144
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2160
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2176
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2192
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2208
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2224
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2240
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2256
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2272
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2288
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2304
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2320
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2336
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2352
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2368
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2384
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2400
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2416
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2432
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2448
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2464
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2480
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2496
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2512
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2528
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2544
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2560
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2576
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2592
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2608
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2624
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2640
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2656
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2672
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2688
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2704
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2720
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2736
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2752
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2768
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2784
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2800
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2816
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 67108864
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 2832
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2848
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2864
- hash: "ca3d2b3643a5c682253a5f6d9a4d7bc6"
- }
- Frame {
- msec: 2880
- image: "flickable.2.png"
- }
-}
diff --git a/tests/auto/declarative/visual/flickable/flickable.qml b/tests/auto/declarative/visual/flickable/flickable.qml
deleted file mode 100644
index 42bd5b3..0000000
--- a/tests/auto/declarative/visual/flickable/flickable.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- color: "lightSteelBlue"
- width: 600
- height: 300
- ListModel {
- id: List
- ListElement {
- name: "Sunday"
- dayColor: "#808080"
- }
- ListElement {
- name: "Monday"
- dayColor: "blue"
- }
- ListElement {
- name: "Tuesday"
- dayColor: "yellow"
- }
- ListElement {
- name: "Wednesday"
- dayColor: "purple"
- }
- ListElement {
- name: "Thursday"
- dayColor: "blue"
- }
- ListElement {
- name: "Friday"
- dayColor: "green"
- }
- ListElement {
- name: "Saturday"
- dayColor: "orange"
- }
- }
- Flickable {
- id: Flick
- anchors.fill: parent
- viewportWidth: Lay.width
- Row {
- id: Lay
- Repeater {
- model: List
- Component {
- Day {
- day: name
- color: dayColor
- }
- }
- }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.0.png b/tests/auto/declarative/visual/parentAction/data/parentAction.0.png
new file mode 100644
index 0000000..a0032f8
--- /dev/null
+++ b/tests/auto/declarative/visual/parentAction/data/parentAction.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.1.png b/tests/auto/declarative/visual/parentAction/data/parentAction.1.png
new file mode 100644
index 0000000..958b6af
--- /dev/null
+++ b/tests/auto/declarative/visual/parentAction/data/parentAction.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.2.png b/tests/auto/declarative/visual/parentAction/data/parentAction.2.png
new file mode 100644
index 0000000..3a1811f
--- /dev/null
+++ b/tests/auto/declarative/visual/parentAction/data/parentAction.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.3.png b/tests/auto/declarative/visual/parentAction/data/parentAction.3.png
new file mode 100644
index 0000000..36064c2
--- /dev/null
+++ b/tests/auto/declarative/visual/parentAction/data/parentAction.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.4.png b/tests/auto/declarative/visual/parentAction/data/parentAction.4.png
new file mode 100644
index 0000000..c493a1d
--- /dev/null
+++ b/tests/auto/declarative/visual/parentAction/data/parentAction.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.5.png b/tests/auto/declarative/visual/parentAction/data/parentAction.5.png
new file mode 100644
index 0000000..c493a1d
--- /dev/null
+++ b/tests/auto/declarative/visual/parentAction/data/parentAction.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/parentAction/data/parentAction.qml b/tests/auto/declarative/visual/parentAction/data/parentAction.qml
new file mode 100644
index 0000000..de27af7
--- /dev/null
+++ b/tests/auto/declarative/visual/parentAction/data/parentAction.qml
@@ -0,0 +1,1207 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 32
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 48
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 64
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 80
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 96
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 112
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 128
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 144
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 160
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 176
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 192
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 208
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 224
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 240
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 256
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 272
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 288
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 304
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 320
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 336
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 352
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 368
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 384
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 400
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 416
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 432
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 448
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 464
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 480
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 496
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 512
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 528
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 544
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 560
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 576
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 150; y: 274
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 592
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 608
+ hash: "a7bb3d44c8bcf403906afa86f5bc3062"
+ }
+ Frame {
+ msec: 624
+ hash: "2b366e6009e70fa0227a1fee662fe1bf"
+ }
+ Frame {
+ msec: 640
+ hash: "c12869fb8002aa36c3bfad7fd0979240"
+ }
+ Frame {
+ msec: 656
+ hash: "56c583e77b5e0a8707e977dc937c2acf"
+ }
+ Frame {
+ msec: 672
+ hash: "6b191d57a45a3f2d010a7f44064e409a"
+ }
+ Frame {
+ msec: 688
+ hash: "9457ee33c999a63fa4bd4db5c3ceac8b"
+ }
+ Frame {
+ msec: 704
+ hash: "446b23b662640ad6ad8c456f956fe73a"
+ }
+ Frame {
+ msec: 720
+ hash: "23c59708069406486e4979c7d59f3f4a"
+ }
+ Frame {
+ msec: 736
+ hash: "c9ce43ddca79b5b6f26af2c2259dc071"
+ }
+ Frame {
+ msec: 752
+ hash: "e838229ba70c30112918f19bb471fa34"
+ }
+ Frame {
+ msec: 768
+ hash: "0cbaeddb2ff6408a37a68fc685e2bca0"
+ }
+ Frame {
+ msec: 784
+ hash: "616b4ec719586b151ba3d709e51038bf"
+ }
+ Frame {
+ msec: 800
+ hash: "89b2c709f5c3083c204a9450e605c1d4"
+ }
+ Frame {
+ msec: 816
+ hash: "427a5c2d13631d899ff2d673e762f114"
+ }
+ Frame {
+ msec: 832
+ hash: "958aa9ca5a6b91aa6dfbc2a1ae3e2deb"
+ }
+ Frame {
+ msec: 848
+ hash: "09a3ac0010ed8f3df2cfa7ed9d0a92e4"
+ }
+ Frame {
+ msec: 864
+ hash: "5607ea54f9990f3232d6f56080e1ef15"
+ }
+ Frame {
+ msec: 880
+ hash: "600682467c55288b9d5e65299637dd72"
+ }
+ Frame {
+ msec: 896
+ hash: "bc7a238611574a13650f854ceac35032"
+ }
+ Frame {
+ msec: 912
+ hash: "e5f6b19b3685a96d4d0c3b8384513643"
+ }
+ Frame {
+ msec: 928
+ hash: "d5d23b0fc09136fd1ae121e311866cc3"
+ }
+ Frame {
+ msec: 944
+ hash: "5099e5edd1a6bd37f5f6c836a6ca7644"
+ }
+ Frame {
+ msec: 960
+ image: "parentAction.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "97dd20f7774cfd8379e1d1b44f8ddc7b"
+ }
+ Frame {
+ msec: 992
+ hash: "ab2deea9e4f8c43ed58b5a355800ecda"
+ }
+ Frame {
+ msec: 1008
+ hash: "88ec383ce368259d3cc18612b6f5b941"
+ }
+ Frame {
+ msec: 1024
+ hash: "f84b20b849a77e50717f99b9d844240e"
+ }
+ Frame {
+ msec: 1040
+ hash: "6c042360c2d24ad56cec32d01ce82d6b"
+ }
+ Frame {
+ msec: 1056
+ hash: "c86b464720192f3e039fa5d8ab5f09bb"
+ }
+ Frame {
+ msec: 1072
+ hash: "35ec432fdf91fcd1dfcd945cfe785b09"
+ }
+ Frame {
+ msec: 1088
+ hash: "27a2ec28e4fef006622e8211fd709853"
+ }
+ Frame {
+ msec: 1104
+ hash: "8454d1f5ed89551e2a403c869885116a"
+ }
+ Frame {
+ msec: 1120
+ hash: "7e33aed53dc4338c168274d972c8e711"
+ }
+ Frame {
+ msec: 1136
+ hash: "e0192ea2049d6bae6012f00406630a92"
+ }
+ Frame {
+ msec: 1152
+ hash: "a2ea5489a373084169024035a0f69e71"
+ }
+ Frame {
+ msec: 1168
+ hash: "6947a72c4d959b90dafdaddcac815b3e"
+ }
+ Frame {
+ msec: 1184
+ hash: "0e22cc3c96d0934095b7254f0f28b18b"
+ }
+ Frame {
+ msec: 1200
+ hash: "72529ddc6f2678a783aedf445d7038a4"
+ }
+ Frame {
+ msec: 1216
+ hash: "38f03c0ee50488ffd23a2fb3d3445461"
+ }
+ Frame {
+ msec: 1232
+ hash: "b441721ed30c787874a2a71a94e1ba44"
+ }
+ Frame {
+ msec: 1248
+ hash: "1e37f26d78590414b2ef01c72ad136a9"
+ }
+ Frame {
+ msec: 1264
+ hash: "88e4af80d068485ebd8c3d51f9bbfe8d"
+ }
+ Frame {
+ msec: 1280
+ hash: "107707216c16c629d8409cf006f9f2dc"
+ }
+ Frame {
+ msec: 1296
+ hash: "f56f3f4f140ac072f7df47eddfc76844"
+ }
+ Frame {
+ msec: 1312
+ hash: "41239a9d8ed793c24967875aabeae8a5"
+ }
+ Frame {
+ msec: 1328
+ hash: "30035e37320dae4f9ead01a30895eb38"
+ }
+ Frame {
+ msec: 1344
+ hash: "fb2f535b42b862b65f8adb3ad1a46779"
+ }
+ Frame {
+ msec: 1360
+ hash: "e10ba7f74d52fc963e20a4647ff0d620"
+ }
+ Frame {
+ msec: 1376
+ hash: "5abf5388566bed2fdb71afc8cd7cfe9b"
+ }
+ Frame {
+ msec: 1392
+ hash: "91990471563e3c8292e8e8325a1d17a2"
+ }
+ Frame {
+ msec: 1408
+ hash: "59a6293a48f83a9197adcffed3f32f15"
+ }
+ Frame {
+ msec: 1424
+ hash: "db3e75df318e9f0d239ce9b76e92eff3"
+ }
+ Frame {
+ msec: 1440
+ hash: "3b5c64bc64a701edb5c2e40b23443bc3"
+ }
+ Frame {
+ msec: 1456
+ hash: "9db08c0375148b2317427591b5f43608"
+ }
+ Frame {
+ msec: 1472
+ hash: "2d761f1530846eff87a7625a120e0afd"
+ }
+ Frame {
+ msec: 1488
+ hash: "c5460f8c58b83c2ac15842ddb023ad4f"
+ }
+ Frame {
+ msec: 1504
+ hash: "0efb51810a2dc359c7964268c98ea8eb"
+ }
+ Frame {
+ msec: 1520
+ hash: "b92a42012df57eb261badf1f518b8e67"
+ }
+ Frame {
+ msec: 1536
+ hash: "8d348bae62af2d35bdfee806a1c39910"
+ }
+ Frame {
+ msec: 1552
+ hash: "762d9bb4ed11d249bfd902a541129d60"
+ }
+ Frame {
+ msec: 1568
+ hash: "bddbd9f64a9f7156984feccd5fa94093"
+ }
+ Frame {
+ msec: 1584
+ hash: "353a98e1573b0518941ff22bf2776244"
+ }
+ Frame {
+ msec: 1600
+ hash: "1765aed97e29f25dee93a77a06557b82"
+ }
+ Frame {
+ msec: 1616
+ hash: "73b5c2bdb7f268f7a33e129c8ba44013"
+ }
+ Frame {
+ msec: 1632
+ hash: "46ac1976fb9932d0ef6e0b5927386ad9"
+ }
+ Frame {
+ msec: 1648
+ hash: "90b5b5b46c9c352e8be41cc74f96133a"
+ }
+ Frame {
+ msec: 1664
+ hash: "0efe0036577c890fd45cd7dd53014616"
+ }
+ Frame {
+ msec: 1680
+ hash: "7f32df17481abf40ccb33afe6d17085d"
+ }
+ Frame {
+ msec: 1696
+ hash: "1fa8544c48a476764f4f8278c14b651d"
+ }
+ Frame {
+ msec: 1712
+ hash: "f8f06ece30f690deeba5999ce63bf40b"
+ }
+ Frame {
+ msec: 1728
+ hash: "885b230f4b2fe380c7cf68955940d206"
+ }
+ Frame {
+ msec: 1744
+ hash: "d0fc5aa4df46099bb46a1d7db30baa09"
+ }
+ Frame {
+ msec: 1760
+ hash: "8fa7fe5197cbe1ff67f8a2c47f1f0740"
+ }
+ Frame {
+ msec: 1776
+ hash: "aa3b3b03460daf54f085551e1a46c08b"
+ }
+ Frame {
+ msec: 1792
+ hash: "35a1728a2430027a9474fb7d61090643"
+ }
+ Frame {
+ msec: 1808
+ hash: "2b1cff3986b8b03f1061176a4722b0f9"
+ }
+ Frame {
+ msec: 1824
+ hash: "8047be1b35ee3d5078a68c6cdc35eeb7"
+ }
+ Frame {
+ msec: 1840
+ hash: "7f7afa48bb7d612b354c8488e72c8339"
+ }
+ Frame {
+ msec: 1856
+ hash: "691a876caefce9aa0f5140c17059b8f4"
+ }
+ Frame {
+ msec: 1872
+ hash: "903bec66e47db766dc431f060726988c"
+ }
+ Frame {
+ msec: 1888
+ hash: "f13593fc891f0b050c01b61963019da1"
+ }
+ Frame {
+ msec: 1904
+ hash: "aa00de965bdb370a5974b195c3fb38af"
+ }
+ Frame {
+ msec: 1920
+ image: "parentAction.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "168d3e27261c0943e6262b6be27adfb0"
+ }
+ Frame {
+ msec: 1952
+ hash: "6fafebd0b396e7c0a78c767c6af936ba"
+ }
+ Frame {
+ msec: 1968
+ hash: "827e3a3fcd6fd8588e9fcc043769b3a8"
+ }
+ Frame {
+ msec: 1984
+ hash: "155329bf1c1a6f6c37bf7e6e8a92c59b"
+ }
+ Frame {
+ msec: 2000
+ hash: "d3008d1e7cee5170171699ef6fb9aa81"
+ }
+ Frame {
+ msec: 2016
+ hash: "5c1244e7806e131a6063f22a66e4eb12"
+ }
+ Frame {
+ msec: 2032
+ hash: "fcd6b372229a6cf14face81e9d614456"
+ }
+ Frame {
+ msec: 2048
+ hash: "bf1a375a81bf43c5671cccc62e9a0462"
+ }
+ Frame {
+ msec: 2064
+ hash: "0e22404508470baaa6621f37361951fa"
+ }
+ Frame {
+ msec: 2080
+ hash: "45046f28c103caa161e41861f71731c4"
+ }
+ Frame {
+ msec: 2096
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2112
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2128
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2144
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2160
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2176
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2192
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2208
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2224
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2240
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2256
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2272
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2288
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2304
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2320
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2336
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2352
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2368
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2384
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2400
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2416
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2432
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2448
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2464
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2480
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2496
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2512
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2528
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2544
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2560
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2576
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2592
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2608
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2624
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2640
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2656
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2672
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2688
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2704
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2720
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2736
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2752
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 150; y: 274
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2768
+ hash: "7a92731c713470a2b2c91fd6b83447de"
+ }
+ Frame {
+ msec: 2784
+ hash: "44a0b46c21bd4c76d44883ba146e3614"
+ }
+ Frame {
+ msec: 2800
+ hash: "2224abc3333a2bc5fa1cf3c4e8d6a6f9"
+ }
+ Frame {
+ msec: 2816
+ hash: "ea9c05c0295a300e21aacbdfd5b4968e"
+ }
+ Frame {
+ msec: 2832
+ hash: "e630e2893f89a6ae536bcbd1a084af07"
+ }
+ Frame {
+ msec: 2848
+ hash: "af56f1e79eb3746efb9e4bcbc3fbced8"
+ }
+ Frame {
+ msec: 2864
+ hash: "96be8c3ba0d7a85c6f6df877b869b563"
+ }
+ Frame {
+ msec: 2880
+ image: "parentAction.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "603d8684cb6f097e3ab2a2e5ef053112"
+ }
+ Frame {
+ msec: 2912
+ hash: "0433d242d1dd40a3792f55f807ebbff4"
+ }
+ Frame {
+ msec: 2928
+ hash: "1190067cacc7361f6cfe09f153c7a07e"
+ }
+ Frame {
+ msec: 2944
+ hash: "98e917880471511122847ad8a406e3a3"
+ }
+ Frame {
+ msec: 2960
+ hash: "fff06869074a3a6c5823ed3fb6fa7a43"
+ }
+ Frame {
+ msec: 2976
+ hash: "602d95daee8f160a0fd784931d0a06bd"
+ }
+ Frame {
+ msec: 2992
+ hash: "f7e466bbd52f40e88ff567758f4db835"
+ }
+ Frame {
+ msec: 3008
+ hash: "54417a4c4fb71d458439ad2e2126f8e1"
+ }
+ Frame {
+ msec: 3024
+ hash: "fe150dd5056b9dbf1cd0b196e9a7a47b"
+ }
+ Frame {
+ msec: 3040
+ hash: "1384c871bead85916f7bfcdebc370697"
+ }
+ Frame {
+ msec: 3056
+ hash: "5f13339cc0e604b75a9d1d85342fa717"
+ }
+ Frame {
+ msec: 3072
+ hash: "655069d61b7a44e729a2cbb33d683c3e"
+ }
+ Frame {
+ msec: 3088
+ hash: "2324e9e4a02e41855b066983dbf0e61d"
+ }
+ Frame {
+ msec: 3104
+ hash: "0217baf091325b95c033ba073bd68ce5"
+ }
+ Frame {
+ msec: 3120
+ hash: "c27854c3af5b58db85846a1762ab18ba"
+ }
+ Frame {
+ msec: 3136
+ hash: "45246ee6383ceb6260f84571a885ba90"
+ }
+ Frame {
+ msec: 3152
+ hash: "d82ded86f093d1a376994cacf43d0343"
+ }
+ Frame {
+ msec: 3168
+ hash: "c9179d30f80c6101bca2bed40d6a859f"
+ }
+ Frame {
+ msec: 3184
+ hash: "a63e032d20a9d985c6c345434d98a364"
+ }
+ Frame {
+ msec: 3200
+ hash: "fc7d6797ce15edf7fadb9dae691ecd5c"
+ }
+ Frame {
+ msec: 3216
+ hash: "76cf37ad8c50fed8b1900784b647819c"
+ }
+ Frame {
+ msec: 3232
+ hash: "256aab3690c9ba928bb4d4dd3bbfc756"
+ }
+ Frame {
+ msec: 3248
+ hash: "90cab52fdefbae4e7d0f0f93b46ebeb0"
+ }
+ Frame {
+ msec: 3264
+ hash: "badb5103bf826dc467f6e620cc2b47be"
+ }
+ Frame {
+ msec: 3280
+ hash: "e7d0e437de5ebc0fa07b2a4ef11159cb"
+ }
+ Frame {
+ msec: 3296
+ hash: "5931b1c3932ab91446324165d7e2603a"
+ }
+ Frame {
+ msec: 3312
+ hash: "ce1808db90ba955ab3cb845500f4c013"
+ }
+ Frame {
+ msec: 3328
+ hash: "142f8a440d1fe2d868f47ba3006de9d7"
+ }
+ Frame {
+ msec: 3344
+ hash: "10d32a6cc90319ea66d7f2c1241590ce"
+ }
+ Frame {
+ msec: 3360
+ hash: "7f633559d715396e6de451b3dd2fadbd"
+ }
+ Frame {
+ msec: 3376
+ hash: "d44590ae51ceef5e082747c44bc41be9"
+ }
+ Frame {
+ msec: 3392
+ hash: "2b498181668fb1fbf65294d575654929"
+ }
+ Frame {
+ msec: 3408
+ hash: "7efeeffd08e4de440da83511313de729"
+ }
+ Frame {
+ msec: 3424
+ hash: "8de2331393d1e712192d11ed096836d3"
+ }
+ Frame {
+ msec: 3440
+ hash: "fa9381ef2e295865a9b8cb9b36a0eacf"
+ }
+ Frame {
+ msec: 3456
+ hash: "97debc4432c5ecb7f606a81e5411b02c"
+ }
+ Frame {
+ msec: 3472
+ hash: "eb4c1bb1f4398e3c18182c28a015be76"
+ }
+ Frame {
+ msec: 3488
+ hash: "a976aa509f4c6f309d9a6011eeae02aa"
+ }
+ Frame {
+ msec: 3504
+ hash: "457de7ee05e0ef0ef120a3d4e371c02e"
+ }
+ Frame {
+ msec: 3520
+ hash: "0c01f9f150fe33155fa20703735a6d27"
+ }
+ Frame {
+ msec: 3536
+ hash: "5af4f80624082a264010247ea8630a1a"
+ }
+ Frame {
+ msec: 3552
+ hash: "b23a1191d149549fa29a61b6dc70f037"
+ }
+ Frame {
+ msec: 3568
+ hash: "e00fb32cb13b1347e4b7b9fdbcca68e5"
+ }
+ Frame {
+ msec: 3584
+ hash: "fef0503c82f253f8bc3fb3e705a98aa7"
+ }
+ Frame {
+ msec: 3600
+ hash: "7a9beca28340d2aa89da5e05f5ac2a55"
+ }
+ Frame {
+ msec: 3616
+ hash: "f3c57ea07ab486ffa1f46da60de0b8f1"
+ }
+ Frame {
+ msec: 3632
+ hash: "ef0a4ad9ac339fd6ea50dbe6baa9387f"
+ }
+ Frame {
+ msec: 3648
+ hash: "1b317a9eb4ce022f005d551546c688a4"
+ }
+ Frame {
+ msec: 3664
+ hash: "628e912a4a26800b9b7b5e60e60e3a7d"
+ }
+ Frame {
+ msec: 3680
+ hash: "3587b75e4d834a88729754d2c2a4b193"
+ }
+ Frame {
+ msec: 3696
+ hash: "084bc1360a38123589baec5aae15b4ff"
+ }
+ Frame {
+ msec: 3712
+ hash: "47f0f6c3cdf456826a6fd6846e58dcc8"
+ }
+ Frame {
+ msec: 3728
+ hash: "ed982c4c3ebd132baaaf43efad40a3f7"
+ }
+ Frame {
+ msec: 3744
+ hash: "d7ddce47c23fada4c69d53d934582d71"
+ }
+ Frame {
+ msec: 3760
+ hash: "74f2f911bee26c4c551f4c70596753ae"
+ }
+ Frame {
+ msec: 3776
+ hash: "3ed7cbf10dfce3a485d7878766cf9da6"
+ }
+ Frame {
+ msec: 3792
+ hash: "87a74257551ab6c7fcfe05e815482ae9"
+ }
+ Frame {
+ msec: 3808
+ hash: "4f63e4904e97d4ce832b20b7317a9958"
+ }
+ Frame {
+ msec: 3824
+ hash: "f912da8781e547c6e28890655c1b8884"
+ }
+ Frame {
+ msec: 3840
+ image: "parentAction.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "faa640ccf993324400254ffb862ac279"
+ }
+ Frame {
+ msec: 3872
+ hash: "b67f342424d1b9a364b09da8994fcd6b"
+ }
+ Frame {
+ msec: 3888
+ hash: "b2407732194c1e0c2a9bfb379b94b562"
+ }
+ Frame {
+ msec: 3904
+ hash: "55733608d0302ef90c124322ac6d8dc6"
+ }
+ Frame {
+ msec: 3920
+ hash: "734f5b628a26d3d7c91ee84fb26d5b5f"
+ }
+ Frame {
+ msec: 3936
+ hash: "27839fefa4a218cd77843358392bb874"
+ }
+ Frame {
+ msec: 3952
+ hash: "8cac19559d37bd2b581cef0a4c707753"
+ }
+ Frame {
+ msec: 3968
+ hash: "91422870aa1471571e7dd8ff5103f76c"
+ }
+ Frame {
+ msec: 3984
+ hash: "7156166d5f8d13483467ef515627c95d"
+ }
+ Frame {
+ msec: 4000
+ hash: "6028e8374c2ce42a9a9e85b4a8b53027"
+ }
+ Frame {
+ msec: 4016
+ hash: "17c99592be58d2e03f9f173c47c0649b"
+ }
+ Frame {
+ msec: 4032
+ hash: "6084b53186c6a7eda38ac7fa34bf45ce"
+ }
+ Frame {
+ msec: 4048
+ hash: "e82131a8a5a06519f49308bbc25738cf"
+ }
+ Frame {
+ msec: 4064
+ hash: "77bdb69cbe55d9c503c6aa1c0f974d87"
+ }
+ Frame {
+ msec: 4080
+ hash: "b2346ec5d376651347281d5fb00fc4d7"
+ }
+ Frame {
+ msec: 4096
+ hash: "36a3b72c9d7f09795c546855a269801d"
+ }
+ Frame {
+ msec: 4112
+ hash: "4e5478b33baca797f3f8f72c2c6c51ad"
+ }
+ Frame {
+ msec: 4128
+ hash: "e59d12be3ed1f58de010d385ddfe78e5"
+ }
+ Frame {
+ msec: 4144
+ hash: "9674106a146effd47c2724a2dd82ae84"
+ }
+ Frame {
+ msec: 4160
+ hash: "862cec781f169f713032e6d52d3616ce"
+ }
+ Frame {
+ msec: 4176
+ hash: "c8d47bdfb6518ef4827677023313d559"
+ }
+ Frame {
+ msec: 4192
+ hash: "19413931b3e788067dfaef39b47d30ff"
+ }
+ Frame {
+ msec: 4208
+ hash: "600e426532c0348cd622257b0773efd5"
+ }
+ Frame {
+ msec: 4224
+ hash: "6d975e259d4efa108375d271451531c1"
+ }
+ Frame {
+ msec: 4240
+ hash: "50b0da4848564c063694202ce16ea808"
+ }
+ Frame {
+ msec: 4256
+ hash: "0a9450739031f680735b5210e6a30c3f"
+ }
+ Frame {
+ msec: 4272
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4288
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4304
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4320
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4336
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4352
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4368
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4384
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4400
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4416
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4432
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4448
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4464
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4480
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4496
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4512
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4528
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4544
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4560
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4576
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4592
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4608
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4624
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4640
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4656
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4672
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4688
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+ Frame {
+ msec: 4704
+ hash: "23ce049cd7e715c28f5845fd1a1fc195"
+ }
+}
diff --git a/tests/auto/declarative/visual/parentAction/parentAction.qml b/tests/auto/declarative/visual/parentAction/parentAction.qml
new file mode 100644
index 0000000..e69d234
--- /dev/null
+++ b/tests/auto/declarative/visual/parentAction/parentAction.qml
@@ -0,0 +1,55 @@
+import Qt 4.6
+
+Rectangle {
+ width: 400; height: 400
+ Item {
+ scale: .5
+ rotation: 15
+ transformOrigin: "Center"
+ x: 10; y: 10
+ Rectangle {
+ id: MyRect
+ x: 5
+ width: 100; height: 100
+ transformOrigin: "BottomLeft"
+ color: "red"
+ }
+ }
+ MouseRegion {
+ id: Clickable
+ anchors.fill: parent
+ }
+
+ Item {
+ x: 200; y: 200
+ rotation: 52;
+ scale: 2
+ Item {
+ id: newParent
+ x: 100; y: 100
+ }
+ }
+
+ states: State {
+ name: "moved"
+ when: Clickable.pressed
+ ParentChange {
+ target: MyRect
+ parent: newParent
+ }
+ PropertyChanges {
+ target: MyRect
+ rotation: -52
+ scale: 1
+ color: "blue"
+ }
+ }
+
+ transitions: Transition {
+ SequentialAnimation {
+ ColorAnimation { duration: 500}
+ ParentAction {}
+ NumberAnimation { matchProperties: "rotation, scale"; duration: 1000 }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png b/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png
new file mode 100644
index 0000000..64d6b06
--- /dev/null
+++ b/tests/auto/declarative/visual/propertyAction/data/propertyAction.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png b/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png
new file mode 100644
index 0000000..f7fce15
--- /dev/null
+++ b/tests/auto/declarative/visual/propertyAction/data/propertyAction.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png b/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png
new file mode 100644
index 0000000..3080df5
--- /dev/null
+++ b/tests/auto/declarative/visual/propertyAction/data/propertyAction.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml b/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml
new file mode 100644
index 0000000..7c8c233
--- /dev/null
+++ b/tests/auto/declarative/visual/propertyAction/data/propertyAction.qml
@@ -0,0 +1,939 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 32
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 48
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 64
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 80
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 96
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 112
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 128
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 144
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 160
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 176
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 192
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 208
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 224
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 240
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 256
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 272
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 288
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 304
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 320
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 336
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 352
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 368
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 384
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 400
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 416
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 432
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 448
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 464
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 480
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 496
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 512
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 528
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 544
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 560
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 576
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 592
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 608
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 624
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 640
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 656
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 672
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 688
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 704
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 720
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 736
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 752
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 768
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 784
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 800
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 816
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 832
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 848
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 864
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 880
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 896
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 912
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 928
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 944
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 960
+ image: "propertyAction.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 992
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1008
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1024
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1040
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1056
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1072
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1088
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1104
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1120
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1136
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1152
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1168
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1184
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1200
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1216
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1232
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1248
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1264
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1280
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1296
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1312
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1328
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1344
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1360
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1376
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1392
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1408
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1424
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1440
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1456
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1472
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1488
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1504
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1520
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1536
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1552
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1568
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1584
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1600
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 109; y: 247
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1616
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1632
+ hash: "c91921dba899d7a86de3cd013773889f"
+ }
+ Frame {
+ msec: 1648
+ hash: "888c0fc86155e10b5fc577ef6ec5755a"
+ }
+ Frame {
+ msec: 1664
+ hash: "7fd61a8910bf7b0d2bf57653a268c5d8"
+ }
+ Frame {
+ msec: 1680
+ hash: "f42f5073f90a423adf011d0e168c8a9b"
+ }
+ Frame {
+ msec: 1696
+ hash: "a3d89deb6cfa2bbbaa1d7d5b5e5b48d5"
+ }
+ Frame {
+ msec: 1712
+ hash: "f10e997d7a17c18251a32d58b018105a"
+ }
+ Frame {
+ msec: 1728
+ hash: "09ffb57d5f67edfa34d6aad36a002554"
+ }
+ Frame {
+ msec: 1744
+ hash: "01f3a2f5b9815f1397a907b099339360"
+ }
+ Frame {
+ msec: 1760
+ hash: "58c0910c49748edd2ef8472960179472"
+ }
+ Frame {
+ msec: 1776
+ hash: "cc82c5f7f93c5bc1af1c6c509268566a"
+ }
+ Frame {
+ msec: 1792
+ hash: "3ef272c6439b85fbc166375d1b98403c"
+ }
+ Frame {
+ msec: 1808
+ hash: "98c576f0900e4b8752d1f951bb6bf391"
+ }
+ Frame {
+ msec: 1824
+ hash: "4d66dd64d8736ef50163e08723873478"
+ }
+ Frame {
+ msec: 1840
+ hash: "9a5d8455b6763456185625811253e0b1"
+ }
+ Frame {
+ msec: 1856
+ hash: "77e85731efa786a2492aae19a87523c6"
+ }
+ Frame {
+ msec: 1872
+ hash: "f3199d0c860f1236e0b9472bef8785bc"
+ }
+ Frame {
+ msec: 1888
+ hash: "f3199d0c860f1236e0b9472bef8785bc"
+ }
+ Frame {
+ msec: 1904
+ hash: "32ccdab249268b01d9f1658a736052f1"
+ }
+ Frame {
+ msec: 1920
+ image: "propertyAction.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "db3010ef552146df938c237f6c92bff5"
+ }
+ Frame {
+ msec: 1952
+ hash: "101e8595d0301e88376ec52ba9361f84"
+ }
+ Frame {
+ msec: 1968
+ hash: "119d548c59baa7e47266d2ceca663288"
+ }
+ Frame {
+ msec: 1984
+ hash: "f141fafe102a0b9a2bf33e8c3fc800ff"
+ }
+ Frame {
+ msec: 2000
+ hash: "b01f9ca8d4fbff17b3d48c70898a044d"
+ }
+ Frame {
+ msec: 2016
+ hash: "cf67954a2d1b22e8d2cfdc26419bafb8"
+ }
+ Frame {
+ msec: 2032
+ hash: "7680b2b5a63dea13d733947297e01355"
+ }
+ Frame {
+ msec: 2048
+ hash: "af1c017acf6b3c8cff86c9ceb60db3cb"
+ }
+ Frame {
+ msec: 2064
+ hash: "0b23ec51f71fddae5e2238ab5754f1db"
+ }
+ Frame {
+ msec: 2080
+ hash: "976643961ecbdc86335180ba812b874e"
+ }
+ Frame {
+ msec: 2096
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2112
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2128
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2144
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2160
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2176
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2192
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2208
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2224
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2240
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2256
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2272
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2288
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2304
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2320
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2336
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2352
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2368
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2384
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2400
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2416
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2432
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2448
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2464
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2480
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2496
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2512
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2528
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2544
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2560
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2576
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2592
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2608
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2624
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2640
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2656
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2672
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2688
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2704
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2720
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2736
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2752
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 109; y: 247
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2768
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2784
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2800
+ hash: "ab924ae435262e76381c2e4af5d64342"
+ }
+ Frame {
+ msec: 2816
+ hash: "d60758fc12471a19d31c85f058f2ded7"
+ }
+ Frame {
+ msec: 2832
+ hash: "c62e2956f8eb5d2c8cd76ba05c5929d5"
+ }
+ Frame {
+ msec: 2848
+ hash: "f2967ee7e035a9ff258116a2706529f8"
+ }
+ Frame {
+ msec: 2864
+ hash: "885c4705c6c29f69c56c44abc1251d75"
+ }
+ Frame {
+ msec: 2880
+ image: "propertyAction.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "f4af6871e522511f95bc4c5abfc2a562"
+ }
+ Frame {
+ msec: 2912
+ hash: "b27e1e7e0d90468525309528ccfe2823"
+ }
+ Frame {
+ msec: 2928
+ hash: "78e7d84a4466258b40315fe61b7ca15c"
+ }
+ Frame {
+ msec: 2944
+ hash: "471013d921d8d6e7468fd6aba0b75c71"
+ }
+ Frame {
+ msec: 2960
+ hash: "856048da893c9136ac5740bc89b64128"
+ }
+ Frame {
+ msec: 2976
+ hash: "32ccdab249268b01d9f1658a736052f1"
+ }
+ Frame {
+ msec: 2992
+ hash: "2264fa3acd979f104633c1301a0efd8f"
+ }
+ Frame {
+ msec: 3008
+ hash: "f3199d0c860f1236e0b9472bef8785bc"
+ }
+ Frame {
+ msec: 3024
+ hash: "ad899d1ecaa43a5541be7b70413caee5"
+ }
+ Frame {
+ msec: 3040
+ hash: "4e652524c992f5ee1b987275ca509728"
+ }
+ Frame {
+ msec: 3056
+ hash: "a44b3dec2a016694bc8553a51b29d46c"
+ }
+ Frame {
+ msec: 3072
+ hash: "7fbe20346bc3c28c345e0797b55599f3"
+ }
+ Frame {
+ msec: 3088
+ hash: "bcff18ad433bb4f08126ee66efb037d1"
+ }
+ Frame {
+ msec: 3104
+ hash: "836666c64f73c38e87de95944ff2fe72"
+ }
+ Frame {
+ msec: 3120
+ hash: "4379982d23db239b1741b5d72c53e160"
+ }
+ Frame {
+ msec: 3136
+ hash: "0ed9476337214e1493c1510b8a4c90f8"
+ }
+ Frame {
+ msec: 3152
+ hash: "dab637406577a1924c7dbb30680e1af3"
+ }
+ Frame {
+ msec: 3168
+ hash: "dcc79277fdb8966e5a3f2ed1b2fc4292"
+ }
+ Frame {
+ msec: 3184
+ hash: "5f207d1dfad4907f200d76104881bf56"
+ }
+ Frame {
+ msec: 3200
+ hash: "3434fc7f81e859722585dae97c557864"
+ }
+ Frame {
+ msec: 3216
+ hash: "7c775b9be8c5293d4962324574267c22"
+ }
+ Frame {
+ msec: 3232
+ hash: "da0ff6955c2e4cd86421bdb9053f56e6"
+ }
+ Frame {
+ msec: 3248
+ hash: "a1297d525a3ad41abbbb7c2f15efd4fb"
+ }
+ Frame {
+ msec: 3264
+ hash: "5326b220995b2a1eaa308ad10fd353fa"
+ }
+ Frame {
+ msec: 3280
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3296
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3312
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3328
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3344
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3360
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3376
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3392
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3408
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3424
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3440
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3456
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3472
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3488
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3504
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3520
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3536
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3552
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3568
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3584
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3600
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3616
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3632
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+}
diff --git a/tests/auto/declarative/visual/propertyAction/propertyAction.qml b/tests/auto/declarative/visual/propertyAction/propertyAction.qml
new file mode 100644
index 0000000..a9d3c74
--- /dev/null
+++ b/tests/auto/declarative/visual/propertyAction/propertyAction.qml
@@ -0,0 +1,34 @@
+import Qt 4.6
+
+Rectangle {
+ width: 400; height: 400
+ Rectangle {
+ id: MyRect
+ width: 100; height: 100
+ color: "red"
+ }
+ MouseRegion {
+ id: Clickable
+ anchors.fill: parent
+ }
+
+ states: State {
+ name: "state1"
+ when: Clickable.pressed
+ PropertyChanges {
+ target: MyRect
+ x: 50; y: 50
+ color: "blue"
+ }
+ }
+
+ transitions: Transition {
+ to: "state1"
+ reversible: true
+ SequentialAnimation {
+ ColorAnimation {}
+ PropertyAction { matchProperties: "x" }
+ NumberAnimation { matchProperties: "y"; easing: "InOutQuad" }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.0.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.0.png
new file mode 100644
index 0000000..d58afd8
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.1.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.1.png
new file mode 100644
index 0000000..6271bfb
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.2.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.2.png
new file mode 100644
index 0000000..b6f0241
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.3.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.3.png
new file mode 100644
index 0000000..d58afd8
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.qml b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.qml
new file mode 100644
index 0000000..d5f67bf
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-horizontal.qml
@@ -0,0 +1,1199 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 32
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 48
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 64
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 80
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 96
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 112
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 128
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 144
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 160
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 176
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 192
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 208
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 224
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 240
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 256
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 272
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 288
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 304
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 320
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 336
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 352
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 368
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 384
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 400
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 416
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 432
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 448
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 464
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 480
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 496
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 512
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 528
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 544
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 560
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 576
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 592
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 608
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 624
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 640
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 656
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 672
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 688
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 704
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 720
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 736
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 752
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 768
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 784
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 800
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 816
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 832
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 848
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 864
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 880
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 896
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 912
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 928
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 944
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 477; y: 171
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 960
+ image: "flickable-horizontal.0.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 473; y: 171
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 976
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 463; y: 171
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 992
+ hash: "c4d91a9e7f785ccd50db55f697d75cb9"
+ }
+ Frame {
+ msec: 1008
+ hash: "c4d91a9e7f785ccd50db55f697d75cb9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 449; y: 171
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1024
+ hash: "4f054038668f56cf3fc46dee08504b24"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 425; y: 172
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1040
+ hash: "e6ae6e2a8e5fb7204ae1f559b5dc4a63"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 393; y: 172
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 393; y: 172
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1056
+ hash: "3bfaaef12ca852421ad179d8598a306d"
+ }
+ Frame {
+ msec: 1072
+ hash: "e00ff5e13a9a97bc11e041f89e4782f5"
+ }
+ Frame {
+ msec: 1088
+ hash: "ae10ada837b21365936672e9a4b4b175"
+ }
+ Frame {
+ msec: 1104
+ hash: "63566d7f1707025c9ec37e398d0e69ef"
+ }
+ Frame {
+ msec: 1120
+ hash: "20e9d299cd867d680cf85f99e06cd200"
+ }
+ Frame {
+ msec: 1136
+ hash: "4d3a19b3c50a20ba1d93a8bcd178a424"
+ }
+ Frame {
+ msec: 1152
+ hash: "d373ab5240e438e8234ae05f935c1ef8"
+ }
+ Frame {
+ msec: 1168
+ hash: "2f9c00aa1f8a8cc5d10e6c6a0baee366"
+ }
+ Frame {
+ msec: 1184
+ hash: "0fd8203b0a33fd8243ecd878f04f9b42"
+ }
+ Frame {
+ msec: 1200
+ hash: "24a197df4209c7076d68031e5dd4fd9e"
+ }
+ Frame {
+ msec: 1216
+ hash: "9e4271eacdc875183e3c8e7a1eb098c2"
+ }
+ Frame {
+ msec: 1232
+ hash: "cdf7aac4ff7e5df806977eb38392f5bc"
+ }
+ Frame {
+ msec: 1248
+ hash: "1ace4a1312cad6f173a04c388624a97f"
+ }
+ Frame {
+ msec: 1264
+ hash: "193d6d6838ac1d5ddb941fbb340ec506"
+ }
+ Frame {
+ msec: 1280
+ hash: "ed82807a48f28610ba9bda0c7ab91ce4"
+ }
+ Frame {
+ msec: 1296
+ hash: "e1168bb9a88a972decb0c537d86d7758"
+ }
+ Frame {
+ msec: 1312
+ hash: "828ba428b04826687c6ef19b72318924"
+ }
+ Frame {
+ msec: 1328
+ hash: "7dae52c428253cf44045ffaabaadd2f4"
+ }
+ Frame {
+ msec: 1344
+ hash: "06e2a81e1a2421523642cfcf17ec22e4"
+ }
+ Frame {
+ msec: 1360
+ hash: "283997835a54e80c0ab8a0321bd03ce7"
+ }
+ Frame {
+ msec: 1376
+ hash: "6354f9379b7b25c8fabda4e5bc3cdf6a"
+ }
+ Frame {
+ msec: 1392
+ hash: "6bc87dfd21d59efd3397e3cfb0d00d25"
+ }
+ Frame {
+ msec: 1408
+ hash: "4f97fc9aa1f79a6b007a00459386b9ff"
+ }
+ Frame {
+ msec: 1424
+ hash: "2b5c711ede124c9e97d3ef83a3fdcc8b"
+ }
+ Frame {
+ msec: 1440
+ hash: "5a8cbd4ac3fcd920f2aea6e2cfa96467"
+ }
+ Frame {
+ msec: 1456
+ hash: "5b32961cb36e519f5b1d50386e796d3e"
+ }
+ Frame {
+ msec: 1472
+ hash: "c91f95cccd38cbd1a16ee65abffd40ab"
+ }
+ Frame {
+ msec: 1488
+ hash: "25108050298d3ffc850113971bcf54da"
+ }
+ Frame {
+ msec: 1504
+ hash: "6a236881f2a1cb487ee1945c279e020b"
+ }
+ Frame {
+ msec: 1520
+ hash: "2df1824df1cf20022595f64d26adb4ad"
+ }
+ Frame {
+ msec: 1536
+ hash: "4ca4a0a4b4fd9f9c4846adebcdc8fd67"
+ }
+ Frame {
+ msec: 1552
+ hash: "1696ef0862ff4772f960d203c43fbddf"
+ }
+ Frame {
+ msec: 1568
+ hash: "c5846835b8eb5d98c481ee5811344ea1"
+ }
+ Frame {
+ msec: 1584
+ hash: "fbcb044ee53302de573321b43f068e65"
+ }
+ Frame {
+ msec: 1600
+ hash: "d369e0a6c4a3e63102be29a7362ef9eb"
+ }
+ Frame {
+ msec: 1616
+ hash: "e93131b881805d4aa44949c69f486821"
+ }
+ Frame {
+ msec: 1632
+ hash: "b7aeee9e5065f1d4656e451b542ecf6a"
+ }
+ Frame {
+ msec: 1648
+ hash: "05521ca19960c070d5f3dd72c5ade0e4"
+ }
+ Frame {
+ msec: 1664
+ hash: "2c68cb3291cf1f892c8b8eb28b409e4d"
+ }
+ Frame {
+ msec: 1680
+ hash: "5a0908aea91df2b9e65d222829c2b0ba"
+ }
+ Frame {
+ msec: 1696
+ hash: "0d4ff147517eee8b3dbcd51a708b2aa7"
+ }
+ Frame {
+ msec: 1712
+ hash: "521e1075de1de89c6e25f469d2728ab7"
+ }
+ Frame {
+ msec: 1728
+ hash: "c543447f98ae608058c6c02c8c8665e6"
+ }
+ Frame {
+ msec: 1744
+ hash: "ac259db754b7dfb8cce8548527c72e4b"
+ }
+ Frame {
+ msec: 1760
+ hash: "bc5b68d5ecfb583ae41001e326b7aa9b"
+ }
+ Frame {
+ msec: 1776
+ hash: "e08051cb1ab2d8f979a52dc86411f78f"
+ }
+ Frame {
+ msec: 1792
+ hash: "b1746ad9563359f0d70a1aaee62e9bd8"
+ }
+ Frame {
+ msec: 1808
+ hash: "5d6bc33ff2857fb8db582362bf7c19c7"
+ }
+ Frame {
+ msec: 1824
+ hash: "83f2c3a7124f9be4dbe883a27ca7df8e"
+ }
+ Frame {
+ msec: 1840
+ hash: "189f7cfb5ede1f8380b1a05b7e3d942e"
+ }
+ Frame {
+ msec: 1856
+ hash: "07b1a4e5ca156e6aa1f3e76b825807ce"
+ }
+ Frame {
+ msec: 1872
+ hash: "48b25f0acfe6eb3bc2cb9eb16e6595d0"
+ }
+ Frame {
+ msec: 1888
+ hash: "15ae05f5ed098021073c4593587949ea"
+ }
+ Frame {
+ msec: 1904
+ hash: "b300f2c75f4aebcf84ed37ad424ca9fa"
+ }
+ Frame {
+ msec: 1920
+ image: "flickable-horizontal.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "7d8ea492fb1c664502e95e085896c569"
+ }
+ Frame {
+ msec: 1952
+ hash: "7513b077e073d78b387309b56e1fd44c"
+ }
+ Frame {
+ msec: 1968
+ hash: "ed1ac5cf6d4b081983a8e16258f431bf"
+ }
+ Frame {
+ msec: 1984
+ hash: "fbb31f23ba6e5d02011363abfb4b3f18"
+ }
+ Frame {
+ msec: 2000
+ hash: "6f01df424b38036b9921b4ee1491a1c1"
+ }
+ Frame {
+ msec: 2016
+ hash: "11f706dfacbec5c0be0c2f3c5442f717"
+ }
+ Frame {
+ msec: 2032
+ hash: "0a70348986f4987f43db3e55af63fca5"
+ }
+ Frame {
+ msec: 2048
+ hash: "6f8b7aaad846f83c6349836d7af34662"
+ }
+ Frame {
+ msec: 2064
+ hash: "44723b22aad6d2d814e074ff9324f3c4"
+ }
+ Frame {
+ msec: 2080
+ hash: "44723b22aad6d2d814e074ff9324f3c4"
+ }
+ Frame {
+ msec: 2096
+ hash: "44723b22aad6d2d814e074ff9324f3c4"
+ }
+ Frame {
+ msec: 2112
+ hash: "1c12d2c68223324f040b7a693cef2074"
+ }
+ Frame {
+ msec: 2128
+ hash: "0a70348986f4987f43db3e55af63fca5"
+ }
+ Frame {
+ msec: 2144
+ hash: "bf4de7baf2730cdaf83887d50d577986"
+ }
+ Frame {
+ msec: 2160
+ hash: "23ddb2c0793d7161a0d8c5b2a777dceb"
+ }
+ Frame {
+ msec: 2176
+ hash: "7513b077e073d78b387309b56e1fd44c"
+ }
+ Frame {
+ msec: 2192
+ hash: "83fa82362057466dff6a243a95d423db"
+ }
+ Frame {
+ msec: 2208
+ hash: "0e60b632ce511109cb01d2e5ff6945f8"
+ }
+ Frame {
+ msec: 2224
+ hash: "78c25194827c4243a16807491f798cdf"
+ }
+ Frame {
+ msec: 2240
+ hash: "4c9dc46794d4a32e654395bb9d78409e"
+ }
+ Frame {
+ msec: 2256
+ hash: "e996d4f3a0b3a4a4ed29ec23a1ad5615"
+ }
+ Frame {
+ msec: 2272
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2288
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2304
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2320
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2336
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2352
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2368
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2384
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2400
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2416
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2432
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2448
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2464
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2480
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2496
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2512
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2528
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2544
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2560
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2576
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2592
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2608
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2624
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2640
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2656
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2672
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2688
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2704
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2720
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2736
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2752
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2768
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 152; y: 189
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2784
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2800
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Frame {
+ msec: 2816
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 154; y: 190
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2832
+ hash: "cd6770afe63f28517a93f0961cf9c26e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 169; y: 191
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2848
+ hash: "edd015434d7ead96c03a51a2b1c9e527"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 202; y: 192
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2864
+ hash: "ea0eda505daea4171e27aac358aa6a4a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 256; y: 192
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2880
+ image: "flickable-horizontal.2.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 331; y: 192
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2896
+ hash: "34f70dfe1c226e63300112aa9a4a6968"
+ }
+ Frame {
+ msec: 2912
+ hash: "34f70dfe1c226e63300112aa9a4a6968"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 395; y: 194
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 395; y: 194
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2928
+ hash: "dd61e0ae58d7a344908a10bb97cfcb39"
+ }
+ Frame {
+ msec: 2944
+ hash: "14a384c4bdd3e89808761d1e86976170"
+ }
+ Frame {
+ msec: 2960
+ hash: "0e82a4920a53239f117448cd0e0b27f2"
+ }
+ Frame {
+ msec: 2976
+ hash: "711e29bf6fbbeb7882064adb0619f4ac"
+ }
+ Frame {
+ msec: 2992
+ hash: "43307cbfe1688daf300fafc8df0082b8"
+ }
+ Frame {
+ msec: 3008
+ hash: "46d788d926c03d85a68b66252e73ae90"
+ }
+ Frame {
+ msec: 3024
+ hash: "a0042935ad2d5557c906050d4a3581c9"
+ }
+ Frame {
+ msec: 3040
+ hash: "b618a40490ca0aea310f08b452fa8c68"
+ }
+ Frame {
+ msec: 3056
+ hash: "e2aaad7f160a6d77dd788c76bb8cb8a7"
+ }
+ Frame {
+ msec: 3072
+ hash: "ab5c27fa790c67a6678db0bbae1ae477"
+ }
+ Frame {
+ msec: 3088
+ hash: "b43ed7af838cd6edd32393fc56cf8fb1"
+ }
+ Frame {
+ msec: 3104
+ hash: "88ac50602c9f27fb5b882ad32d14ff46"
+ }
+ Frame {
+ msec: 3120
+ hash: "259af2e080ed93e16cb633fa940c7c08"
+ }
+ Frame {
+ msec: 3136
+ hash: "d05bec2351068d552b7bbbf47cf82fad"
+ }
+ Frame {
+ msec: 3152
+ hash: "5354b8e07f1ed22950687187ee7a0290"
+ }
+ Frame {
+ msec: 3168
+ hash: "3bfaaef12ca852421ad179d8598a306d"
+ }
+ Frame {
+ msec: 3184
+ hash: "40d3a77fce7a9a9ca7ae6023fc4cfc10"
+ }
+ Frame {
+ msec: 3200
+ hash: "5837c0122aa6b28518f1b7043ead99a9"
+ }
+ Frame {
+ msec: 3216
+ hash: "9514d8530275e4642810ac441e8de353"
+ }
+ Frame {
+ msec: 3232
+ hash: "3b720882f52340549d8e1b9659443461"
+ }
+ Frame {
+ msec: 3248
+ hash: "4de5b95c8f4949a4f1ee9a119940e80a"
+ }
+ Frame {
+ msec: 3264
+ hash: "a35097c00483e0b481222e4ad220c7a4"
+ }
+ Frame {
+ msec: 3280
+ hash: "82ac348a63a4e358a877a2e45d48e2b1"
+ }
+ Frame {
+ msec: 3296
+ hash: "1322108409d1fa87d128f0c44c81ab4b"
+ }
+ Frame {
+ msec: 3312
+ hash: "f6b030effcca891ab20073f106b22d73"
+ }
+ Frame {
+ msec: 3328
+ hash: "a7ccd998ac2ff2777d9423d704ddef48"
+ }
+ Frame {
+ msec: 3344
+ hash: "b6d971a4f3321b7f3632e778ce733589"
+ }
+ Frame {
+ msec: 3360
+ hash: "b6d971a4f3321b7f3632e778ce733589"
+ }
+ Frame {
+ msec: 3376
+ hash: "b6d971a4f3321b7f3632e778ce733589"
+ }
+ Frame {
+ msec: 3392
+ hash: "82ef6700a513e39508fb6de5ef07f1e7"
+ }
+ Frame {
+ msec: 3408
+ hash: "9e4c4d479bc0b1a61566eae12416bea6"
+ }
+ Frame {
+ msec: 3424
+ hash: "f6b030effcca891ab20073f106b22d73"
+ }
+ Frame {
+ msec: 3440
+ hash: "8968acd022a9ba6fcc3ea52bdd7268c4"
+ }
+ Frame {
+ msec: 3456
+ hash: "de8f1a1fd680af475173d5f81e85b26c"
+ }
+ Frame {
+ msec: 3472
+ hash: "82e8c0c7cb7c2b1e8d7a5fc019533e6b"
+ }
+ Frame {
+ msec: 3488
+ hash: "f820d250252cd910af97e5c9be181457"
+ }
+ Frame {
+ msec: 3504
+ hash: "a40558c1fbf328d3c891b473b2454020"
+ }
+ Frame {
+ msec: 3520
+ hash: "0ef9e64bad67670102e1e4d9ef0e96f3"
+ }
+ Frame {
+ msec: 3536
+ hash: "1d8013765ac2d3fe09ccaa6db098a208"
+ }
+ Frame {
+ msec: 3552
+ hash: "1d8013765ac2d3fe09ccaa6db098a208"
+ }
+ Frame {
+ msec: 3568
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3584
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3600
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3616
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3632
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3648
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3664
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3680
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3696
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3712
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3728
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3744
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3760
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3776
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3792
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3808
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3824
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3840
+ image: "flickable-horizontal.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3872
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3888
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3904
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3920
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3936
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3952
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3968
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 3984
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4000
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4016
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4032
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4048
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4064
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4080
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4096
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4112
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4128
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4144
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4160
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4176
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4192
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4208
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4224
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4240
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+ Frame {
+ msec: 4256
+ hash: "0fa60818532d1e5c20cd82ce3d61e3f7"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.0.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.0.png
new file mode 100644
index 0000000..2187f8e
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.1.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.1.png
new file mode 100644
index 0000000..cf3e770
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.2.png b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.2.png
new file mode 100644
index 0000000..8a1554a
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.qml b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.qml
new file mode 100644
index 0000000..cb8df62
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/data/flickable-vertical.qml
@@ -0,0 +1,1107 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 32
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 48
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 64
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 80
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 96
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 112
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 128
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 144
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 160
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 176
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 192
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 208
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 224
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 240
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 256
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 272
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 288
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 304
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 320
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 336
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 352
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 368
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 384
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 400
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 416
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 432
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 448
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 464
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 480
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 496
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 512
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 528
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 544
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 560
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 576
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 592
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 608
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 624
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 640
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 656
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 672
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 688
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 704
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 720
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 736
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 752
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 768
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 784
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 800
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 202; y: 486
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 816
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 832
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 202; y: 484
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 848
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 202; y: 476
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 864
+ hash: "7ee6361319fa538204cece6cfdfd6ec0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 202; y: 466
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 880
+ hash: "aac822b5bfed36a6574b00e1c2da7768"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 448
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 896
+ hash: "356a2162d597298c5295e2d62ee6f185"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 420
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 912
+ hash: "cc72b8b9fe2f8f2a14559f3e1ef07b62"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 380
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 928
+ hash: "38e6fdcd1ed7d93369a2585172e693a5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 334
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 208; y: 334
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 944
+ hash: "5060aa07416f909ce62debcb7dc41f59"
+ }
+ Frame {
+ msec: 960
+ image: "flickable-vertical.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "ff2a52636ef08cc1c50017a932d1d7a2"
+ }
+ Frame {
+ msec: 992
+ hash: "951e80e2015f0ea4d3a4a625453df725"
+ }
+ Frame {
+ msec: 1008
+ hash: "9cb54b41349e62192e4f58b458d02114"
+ }
+ Frame {
+ msec: 1024
+ hash: "b2e2bb3805facc5051d1a07d9a2c1148"
+ }
+ Frame {
+ msec: 1040
+ hash: "00e22e1a119d50c111b33473530aed79"
+ }
+ Frame {
+ msec: 1056
+ hash: "1226183cd5118b785ae3dd0d45417434"
+ }
+ Frame {
+ msec: 1072
+ hash: "50d41bff31234d7b3fa5081ae418ffba"
+ }
+ Frame {
+ msec: 1088
+ hash: "8ecc7dc39bd17c6baecd0998fbf6937e"
+ }
+ Frame {
+ msec: 1104
+ hash: "40ae10e92f7bcc791bf433ab8de538b9"
+ }
+ Frame {
+ msec: 1120
+ hash: "6fb7d01b1c9d486100af56121eff60d5"
+ }
+ Frame {
+ msec: 1136
+ hash: "fa5f7adad0a1e5ff06902860aa4f8248"
+ }
+ Frame {
+ msec: 1152
+ hash: "67081124a7f909b9366cce1cbc89b03c"
+ }
+ Frame {
+ msec: 1168
+ hash: "7ccee35625f4daf9b97c0929f9eb14ae"
+ }
+ Frame {
+ msec: 1184
+ hash: "db9b8bab0f2c71be0fb8d10d57199533"
+ }
+ Frame {
+ msec: 1200
+ hash: "81a01620e28817c476fdda383183dc0e"
+ }
+ Frame {
+ msec: 1216
+ hash: "8f99dd630d547c3ffb74048b5e557dab"
+ }
+ Frame {
+ msec: 1232
+ hash: "15b90b0f3f0ecbea02c1c0a096b0375c"
+ }
+ Frame {
+ msec: 1248
+ hash: "411d7b73389bf23019f4db6e4e8aec40"
+ }
+ Frame {
+ msec: 1264
+ hash: "8cb8d626658d5a244be2efceb6cc0caa"
+ }
+ Frame {
+ msec: 1280
+ hash: "a4c09ac39ce6fd73e374fb7830362d28"
+ }
+ Frame {
+ msec: 1296
+ hash: "34f372f9f4edef7eaf806312178b6229"
+ }
+ Frame {
+ msec: 1312
+ hash: "e60a578e183a8b0f650d55f5ae53af47"
+ }
+ Frame {
+ msec: 1328
+ hash: "92ad03e47c3011594cbe9eacea96b567"
+ }
+ Frame {
+ msec: 1344
+ hash: "8c11b1658e99644966586672f0ed795a"
+ }
+ Frame {
+ msec: 1360
+ hash: "ee39e7ef14ac135d893c309395c7325b"
+ }
+ Frame {
+ msec: 1376
+ hash: "f4569fa1ae5d06bcf6a3d7fa07a79d36"
+ }
+ Frame {
+ msec: 1392
+ hash: "5b3a74d2e33848d27bc39ac68b18f1cb"
+ }
+ Frame {
+ msec: 1408
+ hash: "3037e5c910247bfa05664fc4f88b329a"
+ }
+ Frame {
+ msec: 1424
+ hash: "134ff2884f7a4ccb5b0b5022331ac981"
+ }
+ Frame {
+ msec: 1440
+ hash: "8e8335263e26f24bb88df0b86ccdef1e"
+ }
+ Frame {
+ msec: 1456
+ hash: "c976d8abcd6511dc263bada0de531535"
+ }
+ Frame {
+ msec: 1472
+ hash: "8b09b7bffc48df791f8044fa8fd8c810"
+ }
+ Frame {
+ msec: 1488
+ hash: "ff82a1f8070f76e8de314ef8cd800031"
+ }
+ Frame {
+ msec: 1504
+ hash: "98f720a9ab7cc824c0971d6e29954863"
+ }
+ Frame {
+ msec: 1520
+ hash: "98f720a9ab7cc824c0971d6e29954863"
+ }
+ Frame {
+ msec: 1536
+ hash: "98a1cad92ec9d8eeae93eb3894ee65ef"
+ }
+ Frame {
+ msec: 1552
+ hash: "6d0a08623d30aa0bbca1acd6f84db84f"
+ }
+ Frame {
+ msec: 1568
+ hash: "473e40326f5e2059a2bf3d6d03a96aca"
+ }
+ Frame {
+ msec: 1584
+ hash: "c976d8abcd6511dc263bada0de531535"
+ }
+ Frame {
+ msec: 1600
+ hash: "196df7fdcb6ee4cfafb724b72a9dbab5"
+ }
+ Frame {
+ msec: 1616
+ hash: "8cf6ecc49e016f1543529826cad71e20"
+ }
+ Frame {
+ msec: 1632
+ hash: "63ce337f006b71999e9b07f5feacfc3f"
+ }
+ Frame {
+ msec: 1648
+ hash: "3ac7c056389764e33c77df0b08b3fb3d"
+ }
+ Frame {
+ msec: 1664
+ hash: "ef788c78a0e35d70e219af3a46b93a23"
+ }
+ Frame {
+ msec: 1680
+ hash: "0ea550b3f88a925b0293153ce3044fc3"
+ }
+ Frame {
+ msec: 1696
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1712
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1728
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1744
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1760
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1776
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1792
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1808
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1824
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1840
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1856
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1872
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1888
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1904
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1920
+ image: "flickable-vertical.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1952
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1968
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 1984
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2000
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2016
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2032
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2048
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2064
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2080
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2096
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2112
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2128
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2144
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2160
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 209; y: 122
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 122
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2176
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2192
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Frame {
+ msec: 2208
+ hash: "9ca67bbd73fefc521819df517e6a0ecf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 130
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 141
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2224
+ hash: "2121160b0cab27b1b5f1d29b463f4c15"
+ }
+ Frame {
+ msec: 2240
+ hash: "2121160b0cab27b1b5f1d29b463f4c15"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 160
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2256
+ hash: "22ea9a42269540113c3f83eb1e8d47af"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 188
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2272
+ hash: "e0534106f487317ed11ce5c0cc41315f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 226
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2288
+ hash: "fcfca6b84764d04f6750754e3e880703"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 272
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2304
+ hash: "939e7ee0446e39926531e202a1117968"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 322
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 210; y: 322
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2320
+ hash: "301ab8202173c104a5eada9ff98e9972"
+ }
+ Frame {
+ msec: 2336
+ hash: "c8fe58c0ab2afbd7afe0887143b52fc4"
+ }
+ Frame {
+ msec: 2352
+ hash: "8a1d3c0f7e1ad817ba9bfd28272afa08"
+ }
+ Frame {
+ msec: 2368
+ hash: "28f48036d03696abb890fed65adeb4e8"
+ }
+ Frame {
+ msec: 2384
+ hash: "963d9bf16016c191be09a325575e4939"
+ }
+ Frame {
+ msec: 2400
+ hash: "fb69cf91ae5cae41692e97e7dd670ef8"
+ }
+ Frame {
+ msec: 2416
+ hash: "451552f0598cc9ebf7abc682450716bb"
+ }
+ Frame {
+ msec: 2432
+ hash: "ea15dd0b1fd64608d56cd89cf85758cb"
+ }
+ Frame {
+ msec: 2448
+ hash: "f3810b0a2e3bd1965648d2f8aac071e4"
+ }
+ Frame {
+ msec: 2464
+ hash: "2d049055ac110f3fb9889a5aa8c7e40f"
+ }
+ Frame {
+ msec: 2480
+ hash: "58cb05fb96601e068d94839e23fe5d5c"
+ }
+ Frame {
+ msec: 2496
+ hash: "7bf16d64e31f7689852ecd30edde91a5"
+ }
+ Frame {
+ msec: 2512
+ hash: "07f8a7336649e7bd0175033af61e7c13"
+ }
+ Frame {
+ msec: 2528
+ hash: "5f14c8d4d4df78bb980316d5504b18c5"
+ }
+ Frame {
+ msec: 2544
+ hash: "dfd747f34771af04f53509975ad2e55a"
+ }
+ Frame {
+ msec: 2560
+ hash: "b81eb1626f100a52d9da05c79f24d83b"
+ }
+ Frame {
+ msec: 2576
+ hash: "1febbc750e271153a93c61a244723b34"
+ }
+ Frame {
+ msec: 2592
+ hash: "b604470f6621930b3022c7b1d1190ab1"
+ }
+ Frame {
+ msec: 2608
+ hash: "0563d86b925b1f32542efd6c5012df9f"
+ }
+ Frame {
+ msec: 2624
+ hash: "2d92ae71cc424a8d5bd20de4664b37ae"
+ }
+ Frame {
+ msec: 2640
+ hash: "f9122195cd14c767ca373090f2ecec87"
+ }
+ Frame {
+ msec: 2656
+ hash: "74c6e3a107666609054737252df1ad86"
+ }
+ Frame {
+ msec: 2672
+ hash: "8845ca88445b5317863ac50db511b9fb"
+ }
+ Frame {
+ msec: 2688
+ hash: "0fed9f5fe46073fd0cbacdf66e9d8619"
+ }
+ Frame {
+ msec: 2704
+ hash: "caaec9b6f8d17a72224eb14bd7dccc84"
+ }
+ Frame {
+ msec: 2720
+ hash: "e41245a9c1d8ebbf2ebd695e06e5ea09"
+ }
+ Frame {
+ msec: 2736
+ hash: "f0ec12f7a8a5c5f82afbd5db71a22945"
+ }
+ Frame {
+ msec: 2752
+ hash: "286fc5815c3097c88ad5059c88f54ecb"
+ }
+ Frame {
+ msec: 2768
+ hash: "b4ffa4c9aebdcbf9bbf19e0de70142dd"
+ }
+ Frame {
+ msec: 2784
+ hash: "758675faec11cd74517c95255a7f64e2"
+ }
+ Frame {
+ msec: 2800
+ hash: "758675faec11cd74517c95255a7f64e2"
+ }
+ Frame {
+ msec: 2816
+ hash: "8f7cae2c23f1becfde192934db12ba03"
+ }
+ Frame {
+ msec: 2832
+ hash: "286fc5815c3097c88ad5059c88f54ecb"
+ }
+ Frame {
+ msec: 2848
+ hash: "2e3e8e53074ddef149367edffe7b430e"
+ }
+ Frame {
+ msec: 2864
+ hash: "8765816b08838bf96415879faf094830"
+ }
+ Frame {
+ msec: 2880
+ image: "flickable-vertical.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "7a55c3562be2471f91268ccf76f0a6d8"
+ }
+ Frame {
+ msec: 2912
+ hash: "1258f71c1c27a2101e600785a19fa305"
+ }
+ Frame {
+ msec: 2928
+ hash: "9a0e0ac06bbe83987ece38124c7ada92"
+ }
+ Frame {
+ msec: 2944
+ hash: "0fed9f5fe46073fd0cbacdf66e9d8619"
+ }
+ Frame {
+ msec: 2960
+ hash: "04cd9d6996e4ce039646d1ce87cb5882"
+ }
+ Frame {
+ msec: 2976
+ hash: "04cd9d6996e4ce039646d1ce87cb5882"
+ }
+ Frame {
+ msec: 2992
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3008
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3024
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3040
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3056
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3072
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3088
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3104
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3120
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3136
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3152
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3168
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3184
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3200
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3216
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3232
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3248
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3264
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3280
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3296
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3312
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3328
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3344
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3360
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3376
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3392
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3408
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3424
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3440
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3456
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3472
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3488
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3504
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3520
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3536
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3552
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3568
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3584
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3600
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3616
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3632
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3648
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3664
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3680
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3696
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3712
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+ Frame {
+ msec: 3728
+ hash: "12f8ae38d58e978d78bf83c7c339537d"
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-horizontal.qml b/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-horizontal.qml
new file mode 100644
index 0000000..2b4f55d
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-horizontal.qml
@@ -0,0 +1,37 @@
+import Qt 4.6
+
+Rectangle {
+ color: "lightSteelBlue"
+ width: 600; height: 300
+
+ ListModel {
+ id: List
+ ListElement { dayColor: "steelblue" }
+ ListElement { dayColor: "blue" }
+ ListElement { dayColor: "yellow" }
+ ListElement { dayColor: "purple" }
+ ListElement { dayColor: "red" }
+ ListElement { dayColor: "green" }
+ ListElement { dayColor: "orange" }
+ }
+
+ Flickable {
+ id: Flick
+ anchors.fill: parent; viewportWidth: row.width
+
+ Row {
+ id: row
+ Repeater {
+ model: List
+ Rectangle { width: 200; height: 300; color: dayColor }
+ }
+ }
+ }
+ Rectangle {
+ radius: 3
+ y: Flick.height-8
+ height: 8
+ x: Flick.visibleArea.xPosition * Flick.width
+ width: Flick.visibleArea.widthRatio * Flick.width
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-vertical.qml b/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-vertical.qml
new file mode 100644
index 0000000..0d6bbed
--- /dev/null
+++ b/tests/auto/declarative/visual/qmlgraphicsflickable/flickable-vertical.qml
@@ -0,0 +1,37 @@
+import Qt 4.6
+
+Rectangle {
+ color: "lightSteelBlue"
+ width: 300; height: 600
+
+ ListModel {
+ id: List
+ ListElement { dayColor: "steelblue" }
+ ListElement { dayColor: "blue" }
+ ListElement { dayColor: "yellow" }
+ ListElement { dayColor: "purple" }
+ ListElement { dayColor: "red" }
+ ListElement { dayColor: "green" }
+ ListElement { dayColor: "orange" }
+ }
+
+ Flickable {
+ id: Flick
+ anchors.fill: parent; viewportHeight: column.height
+
+ Column {
+ id: column
+ Repeater {
+ model: List
+ Rectangle { width: 300; height: 200; color: dayColor }
+ }
+ }
+ }
+ Rectangle {
+ radius: 3
+ x: Flick.width-8
+ width: 8
+ y: Flick.visibleArea.yPosition * Flick.height
+ height: Flick.visibleArea.heightRatio * Flick.height
+ }
+}
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.0.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.0.png
index f4e5b62..555996a 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.0.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.1.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.1.png
index cf82c2d..b705bad 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.1.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.2.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.2.png
index 636a413..094cd2a 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.2.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.3.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.3.png
index d37705f..9c519c7 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.3.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.4.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.4.png
index 289e973..3ec77b5 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.4.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.5.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.5.png
index 9ef28fd..579a66e 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.5.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.6.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.6.png
index 5d13e20..9e5ac90 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.6.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.7.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.7.png
index 0b882f6..9f3acfc 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.7.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.8.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.8.png
index 85930ee..f27518a 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.8.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.qml b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.qml
index 1708858..8578d48 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.qml
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/cursorDelegate.qml
@@ -134,119 +134,111 @@ VisualTest {
}
Frame {
msec: 528
- hash: "2aec32493055ad17f4aac9b3c9b84c5f"
+ hash: "15da97430bcbac3a16d9897bbf2e4dbd"
}
Frame {
msec: 544
- hash: "e0826ff09b628a5e3ddf6d9e5593f937"
+ hash: "2aec32493055ad17f4aac9b3c9b84c5f"
}
Frame {
msec: 560
- hash: "eacfa8db605b9e386a55508e8943e7d1"
+ hash: "e0826ff09b628a5e3ddf6d9e5593f937"
}
Frame {
msec: 576
- hash: "2dbe9b5bbb5baf12cd2cbfb4190be316"
+ hash: "eacfa8db605b9e386a55508e8943e7d1"
}
Frame {
msec: 592
- hash: "60a60e06237318bf005f87bbba386fef"
+ hash: "2dbe9b5bbb5baf12cd2cbfb4190be316"
}
Frame {
msec: 608
- hash: "97549f388c02adb8884c2e79510adc7e"
+ hash: "60a60e06237318bf005f87bbba386fef"
}
Frame {
msec: 624
- hash: "d882fe91d9df9862d620cf984e27d0bd"
+ hash: "97549f388c02adb8884c2e79510adc7e"
}
Frame {
msec: 640
- hash: "6310b65572e39256122c7620f7e87442"
+ hash: "d882fe91d9df9862d620cf984e27d0bd"
}
Frame {
msec: 656
- hash: "4e7374a683050ff440056b6e7c971d2b"
+ hash: "6310b65572e39256122c7620f7e87442"
}
Frame {
msec: 672
- hash: "35c0d55cda3a02eb4c441a5832bcbbf4"
+ hash: "4e7374a683050ff440056b6e7c971d2b"
}
Frame {
msec: 688
- hash: "8d71c418593eb3e4834d5e608ffd3f29"
+ hash: "35c0d55cda3a02eb4c441a5832bcbbf4"
}
Frame {
msec: 704
- hash: "0da2c1cd0138172698a3bee5d19168c5"
+ hash: "8d71c418593eb3e4834d5e608ffd3f29"
}
Frame {
msec: 720
- hash: "8ca757a4fd1987329488f63251b0f6b4"
+ hash: "0da2c1cd0138172698a3bee5d19168c5"
}
Frame {
msec: 736
- hash: "70c827f1b34b44cbd775b666913556d6"
+ hash: "8ca757a4fd1987329488f63251b0f6b4"
}
Frame {
msec: 752
- hash: "2b91dcef1b3ca66059dd9db4c8e335f3"
+ hash: "70c827f1b34b44cbd775b666913556d6"
}
Frame {
msec: 768
- hash: "38abc77b2361ce257d39c0cf268ba42b"
+ hash: "2b91dcef1b3ca66059dd9db4c8e335f3"
}
Frame {
msec: 784
- hash: "59865194eb63465dd0f3925c7a500340"
+ hash: "38abc77b2361ce257d39c0cf268ba42b"
}
Frame {
msec: 800
- hash: "7bed5747d6b771db0fe5802153e54f2f"
+ hash: "59865194eb63465dd0f3925c7a500340"
}
Frame {
msec: 816
- hash: "9ac1bf268749bc8e58bc4d04b55ef849"
+ hash: "7bed5747d6b771db0fe5802153e54f2f"
}
Frame {
msec: 832
- hash: "64ea5cb46782d250c46a7a2c8cceea20"
+ hash: "9ac1bf268749bc8e58bc4d04b55ef849"
}
Frame {
msec: 848
- hash: "d81037eb21bfcb434b6c7f3bbd21ad12"
+ hash: "64ea5cb46782d250c46a7a2c8cceea20"
}
Frame {
msec: 864
- hash: "1079ea3a1a62e2cca9a8e907bc5aa4e1"
+ hash: "d81037eb21bfcb434b6c7f3bbd21ad12"
}
Frame {
msec: 880
- hash: "96422f9bfbc11775cd7d1fae2ba357bd"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "1079ea3a1a62e2cca9a8e907bc5aa4e1"
}
Frame {
msec: 896
- hash: "1e3f580f37a0dc063a383bdf435e85ea"
+ hash: "96422f9bfbc11775cd7d1fae2ba357bd"
}
Frame {
msec: 912
- hash: "75e854ccaad087bfe776a843f0bd7284"
+ hash: "0d247385059a6f68b37bc34f6b2214b1"
}
Frame {
msec: 928
- hash: "ad65de5a6887c0a31a9d8f72a2a651db"
+ hash: "7c513361e13a90eef229b42e68ffaa18"
}
Frame {
msec: 944
- hash: "62bc9c57724f7ab6bcf7d75d8ff68097"
+ hash: "510b8441c613f0637dfc46e03c278112"
}
Frame {
msec: 960
@@ -254,7 +246,7 @@ VisualTest {
}
Frame {
msec: 976
- hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ hash: "8d90112e2e1c6f226a1a5f4f75785939"
}
Frame {
msec: 992
@@ -264,14 +256,6 @@ VisualTest {
msec: 1008
hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
Frame {
msec: 1024
hash: "60edce44dd4ca7fac8d8093990ee5ec1"
@@ -286,255 +270,247 @@ VisualTest {
}
Frame {
msec: 1072
- hash: "00dfc5f4468482cb5f74e62be235b1d2"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 1088
- hash: "62bc9c57724f7ab6bcf7d75d8ff68097"
+ hash: "8d90112e2e1c6f226a1a5f4f75785939"
}
Frame {
msec: 1104
- hash: "ad65de5a6887c0a31a9d8f72a2a651db"
+ hash: "85e6af1f5fd15338a15f984e24d5ec9d"
}
Frame {
msec: 1120
- hash: "75e854ccaad087bfe776a843f0bd7284"
+ hash: "510b8441c613f0637dfc46e03c278112"
}
Frame {
msec: 1136
- hash: "1e3f580f37a0dc063a383bdf435e85ea"
+ hash: "7c513361e13a90eef229b42e68ffaa18"
}
Frame {
msec: 1152
- hash: "3d78320cb021944d7c6cee1a42056663"
+ hash: "0d247385059a6f68b37bc34f6b2214b1"
}
Frame {
msec: 1168
- hash: "fca865f762c1a6cc3e487e0e908eef73"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "96422f9bfbc11775cd7d1fae2ba357bd"
}
Frame {
msec: 1184
- hash: "2671e1ac09624a01d59be2877050b031"
+ hash: "1079ea3a1a62e2cca9a8e907bc5aa4e1"
}
Frame {
msec: 1200
- hash: "45d5bbc7810d14187c7d118bc066ea15"
+ hash: "d81037eb21bfcb434b6c7f3bbd21ad12"
}
Frame {
msec: 1216
- hash: "600c95a895d004747d307a3f23f35410"
+ hash: "64ea5cb46782d250c46a7a2c8cceea20"
}
Frame {
msec: 1232
- hash: "0def8e163832f1c71f88ab20e808699b"
+ hash: "9ac1bf268749bc8e58bc4d04b55ef849"
}
Frame {
msec: 1248
- hash: "cae9912e52a5d06cc9112af637857c84"
+ hash: "7bed5747d6b771db0fe5802153e54f2f"
}
Frame {
msec: 1264
- hash: "71195254611b4262159904fa85810a5a"
+ hash: "59865194eb63465dd0f3925c7a500340"
}
Frame {
msec: 1280
- hash: "e40575fe4bf88802614245f34cdbd5e8"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "38abc77b2361ce257d39c0cf268ba42b"
}
Frame {
msec: 1296
- hash: "e112ddc25a24c3d1dec75145ef2f07f1"
+ hash: "2b91dcef1b3ca66059dd9db4c8e335f3"
}
Frame {
msec: 1312
- hash: "e0b97ac2258cbb5e52413f1a2fd2ca13"
+ hash: "70c827f1b34b44cbd775b666913556d6"
}
Frame {
msec: 1328
- hash: "4a8a477bf9fdfd46b83b891501c58ebf"
+ hash: "8ca757a4fd1987329488f63251b0f6b4"
}
Frame {
msec: 1344
- hash: "7c6905ba981ba168d54de6b4e13f3c6e"
+ hash: "0da2c1cd0138172698a3bee5d19168c5"
}
Frame {
msec: 1360
- hash: "d5220edb347b7e5353190ed4c87bb5c4"
+ hash: "8d71c418593eb3e4834d5e608ffd3f29"
}
Frame {
msec: 1376
- hash: "ddd4b1f84789a7e216225deec8971e9d"
+ hash: "35c0d55cda3a02eb4c441a5832bcbbf4"
+ }
+ Key {
+ type: 6
+ key: 16777232
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 1392
- hash: "1bac282c1a0253e000bb3418708f45e3"
+ hash: "4e7374a683050ff440056b6e7c971d2b"
}
Frame {
msec: 1408
- hash: "67da087a04fa9087084e5608303d4f9d"
+ hash: "6310b65572e39256122c7620f7e87442"
}
Frame {
msec: 1424
- hash: "ad4277259f32df1cfcb7126a1dce0d26"
+ hash: "d882fe91d9df9862d620cf984e27d0bd"
}
Frame {
msec: 1440
- hash: "f668c0fc141db3df1bd058ba79eade53"
+ hash: "97549f388c02adb8884c2e79510adc7e"
}
Frame {
msec: 1456
- hash: "2014f44c14427b14537b85db28238503"
+ hash: "60a60e06237318bf005f87bbba386fef"
+ }
+ Key {
+ type: 7
+ key: 16777232
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 1472
- hash: "e0cbddaa3ba555989128308f081f1a5e"
+ hash: "2dbe9b5bbb5baf12cd2cbfb4190be316"
}
Frame {
msec: 1488
- hash: "4e568b3badfff98b66197e3a807cb0ed"
+ hash: "eacfa8db605b9e386a55508e8943e7d1"
}
Frame {
msec: 1504
- hash: "69d90e788fd3abbfdacbf52b2187a28f"
+ hash: "e0826ff09b628a5e3ddf6d9e5593f937"
}
Frame {
msec: 1520
- hash: "b18ddec8d31cc2ebaa5769159907d7ac"
+ hash: "2aec32493055ad17f4aac9b3c9b84c5f"
}
Frame {
msec: 1536
- hash: "eaebc251865fbdf6e5b9a45ef7c691b7"
+ hash: "c0e72cdf776b0c62742aa9c3683cd523"
}
Frame {
msec: 1552
- hash: "5f21192d18303607998f5e8e61f06ce5"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "ea3f512181b3ee94d8cdd4d9f59ed962"
}
Frame {
msec: 1568
- hash: "0b1f013aa635865f98c33ad8e78022f1"
+ hash: "de924155855e76d0591217448f79bdb6"
}
Frame {
msec: 1584
- hash: "a30d56ede486abc3a402ebcdacd1e61f"
+ hash: "51da770a75102de9ad1920f1f6c44146"
}
Frame {
msec: 1600
- hash: "c97427f5e3abb0311408fb1f3d3e0d11"
+ hash: "e3c0e8f6385ef2ab9b671be3243774c4"
}
Frame {
msec: 1616
- hash: "d8ac7f3b5a0c236a924ada760e8754df"
+ hash: "eac6de65ea6726f0cc50b6d30c1b7ba5"
}
Frame {
msec: 1632
- hash: "cf0bc83a365fbc479d00a8db664b967f"
+ hash: "2ee111386bd646c4ee577405e490a2f7"
+ }
+ Key {
+ type: 6
+ key: 16777233
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 1648
- hash: "5be670fae881594f9bba83ab6ede952f"
+ hash: "24c376d5a2b3555126b156c8bc7a7a0c"
}
Frame {
msec: 1664
- hash: "64d4b22a82b9924630028acb60eb9880"
+ hash: "d9c35de8b02f11db321d9bdcdcd65403"
}
Frame {
msec: 1680
- hash: "7a1e1047d3c04ce1663fe1e14a0b1616"
+ hash: "0b32a66497ec3cdd05dc27c0ef9c5718"
}
Frame {
msec: 1696
- hash: "12f5c8f77036075326d9b4ba5d434f2e"
+ hash: "9626f80ef170af2db135792337203265"
+ }
+ Frame {
+ msec: 1712
+ hash: "6e4ce7599da579f764ff10e982888889"
+ }
+ Frame {
+ msec: 1728
+ hash: "5ad4dd681be780c0068734ca5c722507"
}
Key {
type: 7
- key: 16777236
+ key: 16777233
modifiers: 0
text: ""
autorep: false
count: 1
}
Frame {
- msec: 1712
- hash: "b94b360fbe47dbda0038dc0ae771a991"
- }
- Frame {
- msec: 1728
- hash: "6cf00b54e1fd004118ec4c50ed6157ac"
- }
- Frame {
msec: 1744
- hash: "02bfd51fabd21f731898c46025702431"
+ hash: "7d620ef53049f9195cc832d6f9dfd52b"
}
Frame {
msec: 1760
- hash: "6de8d8e53e0069919d03d14ecf5bdc6f"
+ hash: "0f54144c574af01958505eedd69162f6"
}
Frame {
msec: 1776
- hash: "cb5f77656d46b18999d4f6bf83dd8fc7"
+ hash: "50f168354e3901283708a4ae9088783d"
}
Frame {
msec: 1792
- hash: "1a135c7e31417d363b13a4d483951bb8"
+ hash: "c55fdf2fd0a4eeb9ca0e3072aa3e60c4"
}
Frame {
msec: 1808
- hash: "f29028b5e9b16ddb462badc143f66792"
+ hash: "d351de13e7bb5b273ec3aebb88dffbd5"
}
Frame {
msec: 1824
- hash: "ca03982595666a6554862d6881eaa90d"
+ hash: "977d44194d1ef05801167157714891af"
}
Frame {
msec: 1840
- hash: "86c353c3420de36c1dc692ca23eba143"
+ hash: "ef3694ca78764709abbe2f8781578fb4"
}
Frame {
msec: 1856
- hash: "685da933aa3ce092ae1840719c73590f"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "77afbc0e0b828d03148ed7fe342dfbda"
}
Frame {
msec: 1872
- hash: "e763559863f48da22e44f72c25837562"
+ hash: "0d94e37430d8b835e65750a6af525ef7"
}
Frame {
msec: 1888
- hash: "350f4cc9d78cc59d349308208931c704"
+ hash: "e009a8d2cb7c7f1200055666cf2efd9c"
}
Frame {
msec: 1904
- hash: "f09927669a2e7ebc7f192d7210f3d160"
+ hash: "096a2742962d7b22dba768577373e656"
}
Frame {
msec: 1920
@@ -542,27 +518,19 @@ VisualTest {
}
Frame {
msec: 1936
- hash: "89a1fa690770ed828bacbae768a6be65"
+ hash: "905b6c7ab24fd1a12f17494fc1935e98"
}
Frame {
msec: 1952
- hash: "06d1cba8aaed2304fc4bfbecce16c967"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "9bc98b4a32ea933fcc3a40eaae9b3516"
}
Frame {
msec: 1968
- hash: "c870ceb7eda26cbe63dc979f4207c99a"
+ hash: "70f0313540b3517f3b6d403c3ab1199c"
}
Frame {
msec: 1984
- hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ hash: "309ae1af1ef7dbaf0b892ad60fd3eb93"
}
Frame {
msec: 2000
@@ -576,261 +544,245 @@ VisualTest {
msec: 2032
hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
Frame {
msec: 2048
hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 2064
- hash: "a7e20d15e7e61448374472dbbf7ebaf0"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 2080
- hash: "42989771b83675c9e7e97f1d205d2897"
+ hash: "309ae1af1ef7dbaf0b892ad60fd3eb93"
}
Frame {
msec: 2096
- hash: "c5efb69cf47fecb0aa2c568d711ac159"
+ hash: "70f0313540b3517f3b6d403c3ab1199c"
}
Frame {
msec: 2112
- hash: "988f1a76d07222c9ad443654568b7590"
+ hash: "9bc98b4a32ea933fcc3a40eaae9b3516"
}
Key {
- type: 7
- key: 16777236
- modifiers: 0
+ type: 6
+ key: 16777248
+ modifiers: 33554432
text: ""
autorep: false
count: 1
}
Frame {
msec: 2128
- hash: "d2fec58ff1068f2d5b476ed0fa956ac0"
+ hash: "905b6c7ab24fd1a12f17494fc1935e98"
}
Frame {
msec: 2144
- hash: "6db061a716c84dcfb23d7e66bae67f20"
+ hash: "31adf3a3bfbd1083c50cae7ed5d64334"
}
Frame {
msec: 2160
- hash: "0c125acf5f9362564d14737efae0ce06"
+ hash: "096a2742962d7b22dba768577373e656"
}
Frame {
msec: 2176
- hash: "d706d3d1c732f45acc6d4e8696cdb8c9"
+ hash: "e009a8d2cb7c7f1200055666cf2efd9c"
}
Frame {
msec: 2192
- hash: "961a395c3b345ebf51fea1bc5163c1ab"
+ hash: "0d94e37430d8b835e65750a6af525ef7"
}
Frame {
msec: 2208
- hash: "079bbc920e675b01c7e5928a7c768464"
+ hash: "77afbc0e0b828d03148ed7fe342dfbda"
}
Frame {
msec: 2224
- hash: "5f3c93b9e88a0f59ab4bc4faa6674a85"
+ hash: "ef3694ca78764709abbe2f8781578fb4"
}
Frame {
msec: 2240
- hash: "04430d46296b2457194d81be31634b7f"
+ hash: "977d44194d1ef05801167157714891af"
}
Frame {
msec: 2256
- hash: "fb484db53505c10dc5e71fd0c413b95e"
+ hash: "d351de13e7bb5b273ec3aebb88dffbd5"
}
Frame {
msec: 2272
- hash: "9439de4d10e5b0e8ca698318f86553a7"
+ hash: "c55fdf2fd0a4eeb9ca0e3072aa3e60c4"
}
Frame {
msec: 2288
- hash: "d01c1ed851f6470c04d2ba3b6612d73a"
+ hash: "50f168354e3901283708a4ae9088783d"
}
Frame {
msec: 2304
- hash: "62be3af779d1a3fdb4878e7fc3de4633"
+ hash: "0f54144c574af01958505eedd69162f6"
}
Frame {
msec: 2320
- hash: "893084a93d959e4c1ff03cbbced24191"
+ hash: "7d620ef53049f9195cc832d6f9dfd52b"
+ }
+ Key {
+ type: 6
+ key: 16777232
+ modifiers: 33554432
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 2336
- hash: "918b17ae243a40a2abbbf4bd58fd8305"
+ hash: "03e906dfb3bf98f521d805331d3b5b9c"
}
Frame {
msec: 2352
- hash: "70d6d7f543c9be6b80d27f258c6b38cf"
+ hash: "c2376393ea9541b909b6b4fe188fa03e"
}
Frame {
msec: 2368
- hash: "867a4f34c4e314c013b422ad7757ebce"
+ hash: "9b3935370412c75acdf6e91100cf2f53"
}
Frame {
msec: 2384
- hash: "8e1fe740e5206fc309189a5ebe85df31"
+ hash: "30ab7913bdfc51d2df5ab9f3863d28c7"
}
Frame {
msec: 2400
- hash: "2a2c1c1ee8451cfe1184780442c821ce"
+ hash: "593656e93d6e01419002dbb581aa6cbd"
}
Frame {
msec: 2416
- hash: "80e3feec77d123194a24acf5a1f48977"
+ hash: "33800dd560e44ce39d6325bbdee689de"
}
Frame {
msec: 2432
- hash: "4340de0e0ee9b15e99751bc55d68ed6a"
+ hash: "c41a9c4f08053d5d18fb2d530ed8b5ad"
}
Key {
- type: 6
- key: 16777248
+ type: 7
+ key: 16777232
modifiers: 33554432
text: ""
autorep: false
count: 1
}
- Key {
- type: 6
- key: 16777249
- modifiers: 100663296
- text: ""
- autorep: false
- count: 1
- }
Frame {
msec: 2448
- hash: "bd8b4fc579b539dfec5c1521e8c15439"
+ hash: "b3f2d4a2cb9a9d1304a2a2d07ad41ff2"
}
Frame {
msec: 2464
- hash: "25cc17bcc65a0d689d962c16da1d0719"
+ hash: "93cf7fe53bc1fd749c523d40b27d17b4"
}
Frame {
msec: 2480
- hash: "4cf94442e9d2132afeb76bb236f7f605"
+ hash: "6e9226d01dd93cff763e851148da8dfd"
}
Frame {
msec: 2496
- hash: "ef25e4813243fc98f6940dbfe3ad6aeb"
+ hash: "79fdbda495bbc6c9ae8be03e1467de92"
}
Frame {
msec: 2512
- hash: "5d6b520a78e945e27012396aec85ebb3"
+ hash: "c30fc0fa9351dbcdbe4f2a297cba9a52"
}
Frame {
msec: 2528
- hash: "55ab5f28283b0b4060b227c79adad533"
+ hash: "eaf26162fd5ce42262ea08ef39a7123d"
}
Frame {
msec: 2544
- hash: "436cd19fa3955f80e4918366d7e9cdba"
+ hash: "7bf0d6a5753a60eefae6d3c3819fabe4"
}
Frame {
msec: 2560
- hash: "b160f730781a1f1f105ca2eca4e54cec"
+ hash: "a2ee3a3b9cd22d7c0e54524cad32e647"
}
Frame {
msec: 2576
- hash: "6ef663c07ac12951662e0ca385304b91"
+ hash: "822298cfc4e2d64db1bf3e442dd891e6"
}
Frame {
msec: 2592
- hash: "a88fc8450599277cf9abccd136846c95"
+ hash: "d075c64000b045eae1b42dce701787b7"
}
Frame {
msec: 2608
- hash: "f4f1621c7b8eb7341456952df7282bc3"
+ hash: "5ca7f15af781f896c83c81077f6b072e"
}
Frame {
msec: 2624
- hash: "168a6c07a3f5366d41c2370c9ff3182b"
+ hash: "7d0f14896e67c56ed5238472dc127cb1"
}
Frame {
msec: 2640
- hash: "46d159d1e94299e51692b97ba3771fd4"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 100663296
- text: ""
- autorep: false
- count: 1
+ hash: "dca161e8a9d786ba9d50aa655ccbecd3"
}
Frame {
msec: 2656
- hash: "79442b583caa35ca2f2ed89e06a8ce48"
+ hash: "73bfcb0f5104efd056f25f7d73126369"
}
Frame {
msec: 2672
- hash: "7b1cadacd91242443dce6ec9571515be"
+ hash: "0090459043b05bf9504434f36230b32b"
}
Frame {
msec: 2688
- hash: "7009c7fab8766705889b40333f204426"
+ hash: "f64315858f375c6ded480b2017fc18a5"
}
Frame {
msec: 2704
- hash: "f2964f67007befba6bbda5798d4cd098"
+ hash: "fe4c0ecfa9779c9fe052d4ffc9386d46"
}
Frame {
msec: 2720
- hash: "7938f15dafabfd3d7e993a39477cd43d"
+ hash: "849ad15f0ca893881165e956e8a26174"
}
Frame {
msec: 2736
- hash: "e9c4c4e18bd413610c1ecd5c0e3f8ef5"
+ hash: "c4373fa63ed00832c70a6b94cb729397"
}
Frame {
msec: 2752
- hash: "b280ff9e708156a82954226315458184"
+ hash: "0c7e08fb7f0dd954b0f171a37ef2a310"
}
Frame {
msec: 2768
- hash: "eebfea4032824a6f0d2c0753df16c11e"
+ hash: "505071572df7aa300a675f8a808bc7f4"
}
Frame {
msec: 2784
- hash: "cca0519a7fe7e95b88fc61c7cc5167ca"
+ hash: "52839867e81d52746196f299a8371453"
+ }
+ Key {
+ type: 7
+ key: 16777248
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 2800
- hash: "93af825c9f937816f02d1aacf9c71c80"
+ hash: "c4d214a7e0fc52c2a45fc6e3df12550a"
}
Frame {
msec: 2816
- hash: "2814cf5b7fea3430597920e9cc21e73a"
+ hash: "f1fa48d796667bd053fff4af7ec1d8ce"
}
Frame {
msec: 2832
- hash: "1641013379f176820d8a3e15091e4870"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 100663296
- text: ""
- autorep: false
- count: 1
+ hash: "081e46decc8aba911f018acfd761cda1"
}
Frame {
msec: 2848
- hash: "1cb865667ec30a59028c89c1b0da5d0c"
+ hash: "fa417c9bfda1da66320a8e59fbaeb5b6"
}
Frame {
msec: 2864
- hash: "ab516bef95a42ce166e0434b82586441"
+ hash: "83dfa353fd20f3bf7caa8e6ca9a9933c"
}
Frame {
msec: 2880
@@ -838,279 +790,271 @@ VisualTest {
}
Frame {
msec: 2896
- hash: "52eb4f26df592bcf80662b8dde09a263"
+ hash: "c11459b1d3e51f3d2f5bd30049bcca42"
}
Frame {
msec: 2912
- hash: "f8ad5c09a59d08db371b49f1d38fb3a6"
+ hash: "997ff3fa82ba2fb27a9c41ed9abe8991"
}
Frame {
msec: 2928
- hash: "b13daa4bad7dae110d7180648f3b674b"
+ hash: "f8baaadde147266416c9ab3f9d9106ce"
}
Frame {
msec: 2944
- hash: "bf177a3dde6e2c8888e03a7d9dc8a546"
+ hash: "79d1d34fd343d8de631aa3259167fe26"
}
Frame {
msec: 2960
- hash: "833aacce79c5411ca367f1c0df0a7da7"
+ hash: "8b1445ca6131a0fc4377ded24a60186a"
}
Frame {
msec: 2976
- hash: "a407af015695bdab0486cbad120c73e4"
+ hash: "784cc01604ecadf74a45164f73f0336d"
}
Frame {
msec: 2992
- hash: "a407af015695bdab0486cbad120c73e4"
+ hash: "b9aeac2be5c8e16e7938e141f32776be"
}
Frame {
msec: 3008
- hash: "a407af015695bdab0486cbad120c73e4"
+ hash: "b9aeac2be5c8e16e7938e141f32776be"
}
Frame {
msec: 3024
- hash: "a407af015695bdab0486cbad120c73e4"
+ hash: "b9aeac2be5c8e16e7938e141f32776be"
}
Frame {
msec: 3040
- hash: "a407af015695bdab0486cbad120c73e4"
+ hash: "b9aeac2be5c8e16e7938e141f32776be"
}
Frame {
msec: 3056
- hash: "a407af015695bdab0486cbad120c73e4"
+ hash: "b9aeac2be5c8e16e7938e141f32776be"
}
Frame {
msec: 3072
- hash: "833aacce79c5411ca367f1c0df0a7da7"
+ hash: "b9aeac2be5c8e16e7938e141f32776be"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 3088
- hash: "bf177a3dde6e2c8888e03a7d9dc8a546"
+ hash: "00dfc5f4468482cb5f74e62be235b1d2"
}
Frame {
msec: 3104
- hash: "b13daa4bad7dae110d7180648f3b674b"
+ hash: "62bc9c57724f7ab6bcf7d75d8ff68097"
}
Frame {
msec: 3120
- hash: "f8ad5c09a59d08db371b49f1d38fb3a6"
+ hash: "ad65de5a6887c0a31a9d8f72a2a651db"
}
Frame {
msec: 3136
- hash: "52eb4f26df592bcf80662b8dde09a263"
+ hash: "75e854ccaad087bfe776a843f0bd7284"
}
Frame {
msec: 3152
- hash: "bddb322e87c277cb0149d2005c6f5419"
+ hash: "1e3f580f37a0dc063a383bdf435e85ea"
}
Frame {
msec: 3168
- hash: "ab516bef95a42ce166e0434b82586441"
+ hash: "3d78320cb021944d7c6cee1a42056663"
}
Frame {
msec: 3184
- hash: "1cb865667ec30a59028c89c1b0da5d0c"
+ hash: "fca865f762c1a6cc3e487e0e908eef73"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 3200
- hash: "1641013379f176820d8a3e15091e4870"
+ hash: "fb7ad9156658f3866d19e43f006cf013"
}
Frame {
msec: 3216
- hash: "2814cf5b7fea3430597920e9cc21e73a"
+ hash: "6f7411363c66d0959ea5a16a9b610e61"
}
Frame {
msec: 3232
- hash: "93af825c9f937816f02d1aacf9c71c80"
+ hash: "a33dce3c55b1b1541cfb9b85a75fcb53"
}
Frame {
msec: 3248
- hash: "cca0519a7fe7e95b88fc61c7cc5167ca"
+ hash: "56b81435dc4ce193bb98c3d02c781242"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 3264
- hash: "eebfea4032824a6f0d2c0753df16c11e"
+ hash: "59865194eb63465dd0f3925c7a500340"
}
Frame {
msec: 3280
- hash: "b280ff9e708156a82954226315458184"
+ hash: "38abc77b2361ce257d39c0cf268ba42b"
}
Frame {
msec: 3296
- hash: "e9c4c4e18bd413610c1ecd5c0e3f8ef5"
+ hash: "2b91dcef1b3ca66059dd9db4c8e335f3"
}
Frame {
msec: 3312
- hash: "7938f15dafabfd3d7e993a39477cd43d"
+ hash: "70c827f1b34b44cbd775b666913556d6"
}
Frame {
msec: 3328
- hash: "f2964f67007befba6bbda5798d4cd098"
+ hash: "8ca757a4fd1987329488f63251b0f6b4"
}
Frame {
msec: 3344
- hash: "7009c7fab8766705889b40333f204426"
+ hash: "0da2c1cd0138172698a3bee5d19168c5"
}
Frame {
msec: 3360
- hash: "7b1cadacd91242443dce6ec9571515be"
- }
- Frame {
- msec: 3376
- hash: "79442b583caa35ca2f2ed89e06a8ce48"
+ hash: "8d71c418593eb3e4834d5e608ffd3f29"
}
Key {
- type: 6
- key: 16777236
- modifiers: 100663296
+ type: 7
+ key: 16777234
+ modifiers: 0
text: ""
autorep: false
count: 1
}
Frame {
+ msec: 3376
+ hash: "35c0d55cda3a02eb4c441a5832bcbbf4"
+ }
+ Frame {
msec: 3392
- hash: "40fcf25fa8e804a98c044a4a0c8963dc"
+ hash: "4e7374a683050ff440056b6e7c971d2b"
}
Frame {
msec: 3408
- hash: "7aa7329d93a94043c2e3f99824dceb38"
+ hash: "6310b65572e39256122c7620f7e87442"
}
Frame {
msec: 3424
- hash: "d9f6827c49f2cec1c03f643c7ec4ffb0"
+ hash: "d882fe91d9df9862d620cf984e27d0bd"
}
Frame {
msec: 3440
- hash: "2bbb69ac7f56dfd211606838623141f9"
+ hash: "97549f388c02adb8884c2e79510adc7e"
}
Frame {
msec: 3456
- hash: "9e0585c9feccfcefbc524145fa95497a"
+ hash: "60a60e06237318bf005f87bbba386fef"
}
Frame {
msec: 3472
- hash: "4cfaf73775079f90d6161caadc005394"
+ hash: "2dbe9b5bbb5baf12cd2cbfb4190be316"
}
Frame {
msec: 3488
- hash: "a907b5d9b2eba7966e40dcaad5ad43b9"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 100663296
- text: ""
- autorep: false
- count: 1
+ hash: "eacfa8db605b9e386a55508e8943e7d1"
}
Frame {
msec: 3504
- hash: "0f515bfc5b1e8f3a871e72a1199e8b51"
+ hash: "e0826ff09b628a5e3ddf6d9e5593f937"
}
Frame {
msec: 3520
- hash: "1748a6c37538b94610f7268392303406"
+ hash: "2aec32493055ad17f4aac9b3c9b84c5f"
}
Frame {
msec: 3536
- hash: "9ee0526e4fb7af7181c2cabcf4c586e4"
+ hash: "c0e72cdf776b0c62742aa9c3683cd523"
}
Frame {
msec: 3552
- hash: "ca1257b3c59017954c82b299ef109d63"
+ hash: "ea3f512181b3ee94d8cdd4d9f59ed962"
}
Frame {
msec: 3568
- hash: "4330cedd40d9c4887458a74412c89e0d"
+ hash: "de924155855e76d0591217448f79bdb6"
}
Frame {
msec: 3584
- hash: "72776155e38dae3bb6af03bb997e39bf"
+ hash: "51da770a75102de9ad1920f1f6c44146"
}
Frame {
msec: 3600
- hash: "07bf334c3b1b1bafefcb012b7eadd2cb"
+ hash: "e3c0e8f6385ef2ab9b671be3243774c4"
}
Frame {
msec: 3616
- hash: "e8a676957b5b27dc4288c3338ef1598f"
+ hash: "eac6de65ea6726f0cc50b6d30c1b7ba5"
}
Frame {
msec: 3632
- hash: "559d9c06ad042b476aab1d870315de3e"
+ hash: "2ee111386bd646c4ee577405e490a2f7"
}
Frame {
msec: 3648
- hash: "04ec4c3b89dfbd0eedf614fc987820d8"
+ hash: "fe95122352effcf1815bc237fc6ce6ab"
}
Frame {
msec: 3664
- hash: "abf824bb990348d2f5e5f8349de059c6"
+ hash: "e3bb1ec3b84df25712f06e0d6963efdd"
}
Frame {
msec: 3680
- hash: "39d8d0c2990709d4f9f6566456e1a986"
+ hash: "a10d3184acc85c46e171fe4cf82e1c23"
}
Frame {
msec: 3696
- hash: "c7b961da3fd9adebc623083a99923dda"
- }
- Key {
- type: 7
- key: 16777249
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
+ hash: "d566b2763312e5e823593806acd9e809"
}
Frame {
msec: 3712
- hash: "69a4a9cb5c8e77bbff0dacc2a4bd8078"
+ hash: "7db073b7487ddea48e7c9df8b9bfdc00"
}
Frame {
msec: 3728
- hash: "4e756f067b85bc1aef9f2fbfb0664cd7"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 100663296
- text: ""
- autorep: false
- count: 1
+ hash: "85c663b943f67d158367dba0508980a5"
}
Frame {
msec: 3744
- hash: "4c350a1ac455b1ddc5b8469898f00802"
+ hash: "6336ce0d912ee63773475c4c6c5d59be"
}
Frame {
msec: 3760
- hash: "2b03f98feae344041a29ced8d37bf8bb"
- }
- Key {
- type: 7
- key: 16777249
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
+ hash: "c75ba80484af36633b6a4d17b666b1c9"
}
Frame {
msec: 3776
- hash: "c00fa58039a96a467179c183325ca71a"
+ hash: "08b7d4eef2d15bc717ff1a981a11f275"
}
Frame {
msec: 3792
- hash: "8c25bd3c5f9077d83453d9c58789f69d"
+ hash: "0ab8bebb0e43786a7e51ea780745080c"
}
Frame {
msec: 3808
- hash: "1ab4b48891fc1bdca8e1f110f74f0ec2"
+ hash: "6fa1811f520eff9893b3c7b00e53fa7d"
}
Frame {
msec: 3824
- hash: "8b2a3cb2626ecdfb9a77f2996c7aae07"
+ hash: "6feb44655bfbec651cc2902676bd08b4"
}
Frame {
msec: 3840
@@ -1118,263 +1062,239 @@ VisualTest {
}
Frame {
msec: 3856
- hash: "b5c1d4908b213f9099931f97038467b6"
+ hash: "00b7714df163d8055514e0dbd8a83bac"
}
Frame {
msec: 3872
- hash: "b6690cdf5138c7ea526efeca609fb57b"
+ hash: "6ef2a330d70a7e0ce343bb352c46f126"
}
Frame {
msec: 3888
- hash: "3b12c46513b018915cd842881f8303fb"
+ hash: "f4e26309fa3b8a6d55f44bf146544101"
}
Frame {
msec: 3904
- hash: "544322ef932fc68e7656887dada61427"
+ hash: "dfa1e24149f2662a4a552da3bb64348c"
}
Frame {
msec: 3920
- hash: "c84a3906fe530b44ef7b797645352bcc"
+ hash: "9ab9d6ef4aeb5863401a9e251f684e2d"
}
Frame {
msec: 3936
- hash: "fdcc6489cee565f34bf38556a10c31ab"
+ hash: "c9f7591a37a3743b3b48de5337fd2fa0"
}
Frame {
msec: 3952
- hash: "8dc9c663aa6f6d4d62a53e1f696a8d95"
+ hash: "2d38f17db530050574d9192c805c142d"
}
Frame {
msec: 3968
- hash: "f1cb8485ec63e10f46b5f39fde943da6"
+ hash: "38a4ad2cf9fa3015eff67014900a44cc"
}
Frame {
msec: 3984
- hash: "ca7fcf5b17f3516b070253fcea8716c3"
+ hash: "9d9ce4ac0de6caa2f0bb78eac414ba65"
}
Frame {
msec: 4000
- hash: "ca7fcf5b17f3516b070253fcea8716c3"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 4016
- hash: "ca7fcf5b17f3516b070253fcea8716c3"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 4032
- hash: "ca7fcf5b17f3516b070253fcea8716c3"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 4048
- hash: "b5d6eeb24692097be0d52858b274b16c"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 4064
- hash: "981ecb46065267b68085ca9ddca98804"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 4080
- hash: "73528013bcd7aa00f108a97a3a91a82f"
+ hash: "9d9ce4ac0de6caa2f0bb78eac414ba65"
}
Frame {
msec: 4096
- hash: "b85b1a50c234068cfb95c995402a6a19"
+ hash: "38a4ad2cf9fa3015eff67014900a44cc"
}
Frame {
msec: 4112
- hash: "3aa851ea40430609784619433464eaf2"
+ hash: "2d38f17db530050574d9192c805c142d"
}
Frame {
msec: 4128
- hash: "9fa982cd46eab20749eda34a0efa5406"
+ hash: "c9f7591a37a3743b3b48de5337fd2fa0"
}
Frame {
msec: 4144
- hash: "dc39e2fdd33e66067738f31c3166ab0c"
+ hash: "9ab9d6ef4aeb5863401a9e251f684e2d"
}
Frame {
msec: 4160
- hash: "3b2b778311b6d47e567cc4f74cc59df6"
+ hash: "dfa1e24149f2662a4a552da3bb64348c"
}
Frame {
msec: 4176
- hash: "29eb472c8d8973e557932405c8f03b65"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
+ hash: "f4e26309fa3b8a6d55f44bf146544101"
}
Frame {
msec: 4192
- hash: "24eaeaec5e2c623f3c634ca599652a07"
+ hash: "6ef2a330d70a7e0ce343bb352c46f126"
}
Frame {
msec: 4208
- hash: "f5314b471bbd10ba3918b7f87f42ea89"
+ hash: "00b7714df163d8055514e0dbd8a83bac"
}
Frame {
msec: 4224
- hash: "5d4f909cd65677417a39ab993bf843e7"
+ hash: "ae46d672649a4b0fc5171f776af93a2c"
}
Frame {
msec: 4240
- hash: "089cf253073fa3d5028f230305fcff99"
+ hash: "6feb44655bfbec651cc2902676bd08b4"
}
Frame {
msec: 4256
- hash: "c6f3040b9e1a08d1b3ede305f9cd6555"
+ hash: "6fa1811f520eff9893b3c7b00e53fa7d"
}
Frame {
msec: 4272
- hash: "8d8b1acea793bd0ef19c22bcfea4f299"
+ hash: "0ab8bebb0e43786a7e51ea780745080c"
}
Frame {
msec: 4288
- hash: "9054c98d9d70894ee8130dbdf6c032dc"
+ hash: "08b7d4eef2d15bc717ff1a981a11f275"
}
Frame {
msec: 4304
- hash: "ae83817a75817c75e718d5aadf689cd0"
+ hash: "c75ba80484af36633b6a4d17b666b1c9"
}
Frame {
msec: 4320
- hash: "6bda09878f2891926b4a8c4eb06c1a95"
+ hash: "6336ce0d912ee63773475c4c6c5d59be"
}
Frame {
msec: 4336
- hash: "4d7e669157830691557c5d87396bbf95"
+ hash: "85c663b943f67d158367dba0508980a5"
}
Frame {
msec: 4352
- hash: "fac0e9a988fde97b11ad62d6a062fef7"
+ hash: "7db073b7487ddea48e7c9df8b9bfdc00"
}
Frame {
msec: 4368
- hash: "3d4922c20f7c6ec1339d928b13bb543c"
+ hash: "d566b2763312e5e823593806acd9e809"
}
Frame {
msec: 4384
- hash: "d2ae8259336d814ace548a09fd2a8929"
+ hash: "a10d3184acc85c46e171fe4cf82e1c23"
}
Frame {
msec: 4400
- hash: "83b403aebe7455756f28deff44bf67be"
+ hash: "e3bb1ec3b84df25712f06e0d6963efdd"
}
Frame {
msec: 4416
- hash: "d72063dcffdb4214b016298bfd49c2f8"
+ hash: "fe95122352effcf1815bc237fc6ce6ab"
}
Frame {
msec: 4432
- hash: "b0b99cc967ffb07f5bbb426aaff42546"
+ hash: "2ee111386bd646c4ee577405e490a2f7"
}
Frame {
msec: 4448
- hash: "63cec13d54ee89da9f8de1704651abf8"
+ hash: "eac6de65ea6726f0cc50b6d30c1b7ba5"
}
Frame {
msec: 4464
- hash: "3b11b70d6269b00ba0c760310b89f57d"
+ hash: "e3c0e8f6385ef2ab9b671be3243774c4"
}
Frame {
msec: 4480
- hash: "34eb5efcfeab860f1e852351e60533ef"
+ hash: "51da770a75102de9ad1920f1f6c44146"
}
Frame {
msec: 4496
- hash: "7c734437e82e3903566ea03c99f3cd2d"
+ hash: "de924155855e76d0591217448f79bdb6"
}
Frame {
msec: 4512
- hash: "e17e803711b984448b14cb404bd8f554"
+ hash: "ea3f512181b3ee94d8cdd4d9f59ed962"
}
Frame {
msec: 4528
- hash: "709b6fba0fd0d654964e7004d7acea04"
+ hash: "c0e72cdf776b0c62742aa9c3683cd523"
}
Frame {
msec: 4544
- hash: "9659ed9683bf771550173bbc63e35f5d"
+ hash: "2aec32493055ad17f4aac9b3c9b84c5f"
}
Frame {
msec: 4560
- hash: "75fb093bb9209dfbb469966130796a6e"
+ hash: "e0826ff09b628a5e3ddf6d9e5593f937"
}
Frame {
msec: 4576
- hash: "e36ed352f51eaaf91c972e3ecf78a41b"
+ hash: "eacfa8db605b9e386a55508e8943e7d1"
}
Frame {
msec: 4592
- hash: "3bd4f403f8b202a8a98c266bbec9fb5a"
+ hash: "2dbe9b5bbb5baf12cd2cbfb4190be316"
}
Frame {
msec: 4608
- hash: "ba82e8e2aa94249774f61c6f8908ffab"
+ hash: "60a60e06237318bf005f87bbba386fef"
}
Frame {
msec: 4624
- hash: "937c363c327d6ff88e78b6346f2ac6f1"
+ hash: "97549f388c02adb8884c2e79510adc7e"
}
Frame {
msec: 4640
- hash: "e7c468c4a4b957257ab9f0db2921ade4"
+ hash: "d882fe91d9df9862d620cf984e27d0bd"
}
Frame {
msec: 4656
- hash: "fbebc389d6d3b2f87a9fa877516a5a9d"
+ hash: "6310b65572e39256122c7620f7e87442"
}
Frame {
msec: 4672
- hash: "821d206a57e81c2a75e7b89a3118796b"
+ hash: "4e7374a683050ff440056b6e7c971d2b"
}
Frame {
msec: 4688
- hash: "bd5875a6b6923719e8576cec3524a614"
+ hash: "35c0d55cda3a02eb4c441a5832bcbbf4"
}
Frame {
msec: 4704
- hash: "5176151598f9dd7d970410cf65a1add2"
+ hash: "8d71c418593eb3e4834d5e608ffd3f29"
}
Frame {
msec: 4720
- hash: "99489e3204db8fb9e5cf763e78c71f3e"
- }
- Key {
- type: 7
- key: 16777248
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "0da2c1cd0138172698a3bee5d19168c5"
}
Frame {
msec: 4736
- hash: "4b7fd4dd0d9a9a8dee1e780138a8904e"
+ hash: "8ca757a4fd1987329488f63251b0f6b4"
}
Frame {
msec: 4752
- hash: "736fcbe3dc9bd9bb3e721026d9b7ff7a"
+ hash: "70c827f1b34b44cbd775b666913556d6"
}
Frame {
msec: 4768
- hash: "e786f2dc74d39698c5ed8b56d789ec02"
+ hash: "2b91dcef1b3ca66059dd9db4c8e335f3"
}
Frame {
msec: 4784
- hash: "65c3620aca2d14eb2022c5f7c272ad44"
+ hash: "38abc77b2361ce257d39c0cf268ba42b"
}
Frame {
msec: 4800
@@ -1382,587 +1302,1699 @@ VisualTest {
}
Frame {
msec: 4816
- hash: "7741e166478f264f258490ef73f5ebe4"
+ hash: "7bed5747d6b771db0fe5802153e54f2f"
}
Frame {
msec: 4832
- hash: "fd7777c88a75610ee4aa9b65213e6d85"
+ hash: "9ac1bf268749bc8e58bc4d04b55ef849"
}
Frame {
msec: 4848
- hash: "c489be2d43f847b2e850acaaf00004c6"
+ hash: "64ea5cb46782d250c46a7a2c8cceea20"
}
Frame {
msec: 4864
- hash: "4f294aed3f5c44c5f77b7c629a4fd805"
+ hash: "d81037eb21bfcb434b6c7f3bbd21ad12"
}
Frame {
msec: 4880
- hash: "4500593c3e82484a60298a1810818309"
+ hash: "1079ea3a1a62e2cca9a8e907bc5aa4e1"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 130; y: 101
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4896
- hash: "5ce614392842eef7630439472189ca0b"
+ hash: "3d78320cb021944d7c6cee1a42056663"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 130; y: 102
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4912
- hash: "ab427e2ed2a16541ab1b35ebaae0a61c"
+ hash: "1e3f580f37a0dc063a383bdf435e85ea"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 131; y: 102
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4928
- hash: "a2a325a215f0eda4b29e491bfda43b5c"
+ hash: "75e854ccaad087bfe776a843f0bd7284"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 132; y: 103
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4944
- hash: "bbe9603864b65b42c1a9cf8535b1c829"
+ hash: "ad65de5a6887c0a31a9d8f72a2a651db"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 133; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 134; y: 103
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4960
- hash: "6ef7833786bd118c95834a33ea1f8029"
+ hash: "62bc9c57724f7ab6bcf7d75d8ff68097"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 135; y: 103
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4976
- hash: "b5d6eeb24692097be0d52858b274b16c"
+ hash: "00dfc5f4468482cb5f74e62be235b1d2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 136; y: 103
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 4992
- hash: "b5d6eeb24692097be0d52858b274b16c"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 137; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 138; y: 102
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5008
- hash: "b5d6eeb24692097be0d52858b274b16c"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 139; y: 101
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5024
- hash: "b5d6eeb24692097be0d52858b274b16c"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 140; y: 101
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5040
- hash: "b5d6eeb24692097be0d52858b274b16c"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 141; y: 100
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 143; y: 100
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5056
- hash: "b5d6eeb24692097be0d52858b274b16c"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 144; y: 100
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5072
- hash: "6ef7833786bd118c95834a33ea1f8029"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 146; y: 99
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5088
- hash: "bbe9603864b65b42c1a9cf8535b1c829"
+ hash: "748dc58a3ad83d7b99d7b26ad2f82786"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 148; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 149; y: 99
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5104
- hash: "a2a325a215f0eda4b29e491bfda43b5c"
+ hash: "242cc0ee7c3bdb44e8933068d3a93b61"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 150; y: 99
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5120
- hash: "ab427e2ed2a16541ab1b35ebaae0a61c"
+ hash: "3be6f0a35fb085dcf6c9481cf1c23f9d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 151; y: 99
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5136
- hash: "5ce614392842eef7630439472189ca0b"
+ hash: "a6f63267eaba9aefd2c9ab338571ef33"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 152; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 152; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5152
- hash: "4500593c3e82484a60298a1810818309"
+ hash: "ba37dd9ba649e294465dc707f6b768ec"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 153; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5168
- hash: "4f294aed3f5c44c5f77b7c629a4fd805"
+ hash: "35b186609721ec0b8a121d15bc54ce49"
}
- Key {
- type: 6
- key: 16777232
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 154; y: 98
modifiers: 0
- text: ""
- autorep: false
- count: 1
+ sendToViewport: true
}
Frame {
msec: 5184
- hash: "d81037eb21bfcb434b6c7f3bbd21ad12"
+ hash: "700ff15e4e48af93362455a149d90363"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 155; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 156; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5200
- hash: "64ea5cb46782d250c46a7a2c8cceea20"
+ hash: "1c51eb8d4d25d086bda4d595a49c3a86"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 157; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5216
- hash: "9ac1bf268749bc8e58bc4d04b55ef849"
+ hash: "2f085b047d24384d463163df7fac2bd3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 158; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5232
- hash: "7bed5747d6b771db0fe5802153e54f2f"
+ hash: "46d7aff6eb47e50e23c061ecb149fbf9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 160; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 161; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5248
- hash: "59865194eb63465dd0f3925c7a500340"
+ hash: "48d7a8f749f7501dbaa4599ca41096a5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 97
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5264
- hash: "38abc77b2361ce257d39c0cf268ba42b"
+ hash: "4c2a085c69c118fedfa15fe46cdc508b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 164; y: 97
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5280
- hash: "2b91dcef1b3ca66059dd9db4c8e335f3"
+ hash: "25f25828a4d22fe85db0de5c562f658e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 166; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 168; y: 96
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5296
- hash: "70c827f1b34b44cbd775b666913556d6"
+ hash: "e9fb14ec21e9ec1235d2fea6e055b69d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 170; y: 96
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5312
- hash: "8ca757a4fd1987329488f63251b0f6b4"
+ hash: "66417881aeb85778be66566241c45f5a"
}
- Key {
- type: 7
- key: 16777232
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 174; y: 96
modifiers: 0
- text: ""
- autorep: false
- count: 1
+ sendToViewport: true
}
Frame {
msec: 5328
- hash: "0da2c1cd0138172698a3bee5d19168c5"
+ hash: "c8c136690ffd8e5cc3e58f7376693b4f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 176; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 178; y: 96
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5344
- hash: "8d71c418593eb3e4834d5e608ffd3f29"
+ hash: "c58c4fb5b7197cd8bd95742dc8715bbf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 179; y: 96
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5360
- hash: "35c0d55cda3a02eb4c441a5832bcbbf4"
+ hash: "2e0c93380883fcf2d0e56024fecba605"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 180; y: 96
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5376
- hash: "4e7374a683050ff440056b6e7c971d2b"
+ hash: "5f169f09e3d868eb0425a331d4bc3144"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 182; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 183; y: 95
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5392
- hash: "6310b65572e39256122c7620f7e87442"
+ hash: "ed648742be4b0ded04e713e83ed24b27"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 185; y: 94
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5408
- hash: "d882fe91d9df9862d620cf984e27d0bd"
+ hash: "92131288bb38480469f4578282dedaf8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 187; y: 94
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5424
- hash: "97549f388c02adb8884c2e79510adc7e"
+ hash: "e16773f750bb0f635552b1eeadb2d625"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 189; y: 93
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 92
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5440
- hash: "60a60e06237318bf005f87bbba386fef"
+ hash: "6e653cd552d82f38f30b8027d1951534"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 92
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5456
- hash: "2dbe9b5bbb5baf12cd2cbfb4190be316"
+ hash: "cfc1d6efa8d1b3b86396704f0be031ad"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 92
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5472
- hash: "eacfa8db605b9e386a55508e8943e7d1"
+ hash: "5848af73f5ab7c811639a6d01921d502"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 198; y: 92
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5488
- hash: "e0826ff09b628a5e3ddf6d9e5593f937"
+ hash: "3823e7da05678f63e6761a81ed7233e2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 199; y: 92
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5504
- hash: "2aec32493055ad17f4aac9b3c9b84c5f"
+ hash: "d095abe9814a60824914960a11663f12"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 91
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5520
- hash: "c0e72cdf776b0c62742aa9c3683cd523"
+ hash: "18922bb3269d903a36e0b690249b473a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 201; y: 90
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5536
- hash: "ea3f512181b3ee94d8cdd4d9f59ed962"
+ hash: "4d8400a3ca2b782e7b054bb2f71d4543"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 202; y: 89
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5552
- hash: "de924155855e76d0591217448f79bdb6"
+ hash: "24ed25d7a767f01fb02f545fc6c6931a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 88
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5568
- hash: "51da770a75102de9ad1920f1f6c44146"
+ hash: "55fb16784e3655ae70f97d6c32853cdc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 88
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5584
- hash: "e3c0e8f6385ef2ab9b671be3243774c4"
+ hash: "694e6979f0de62b61324dc4b144a2d5d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 85
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5600
- hash: "eac6de65ea6726f0cc50b6d30c1b7ba5"
+ hash: "e61b8b03251f6312e3de4e0c8af684d5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 85
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5616
- hash: "2ee111386bd646c4ee577405e490a2f7"
+ hash: "6203321f87d53692dbb2b2aaf7dd3944"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 212; y: 84
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5632
- hash: "fe95122352effcf1815bc237fc6ce6ab"
+ hash: "297b77029475d77cd8e481199b23da30"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 213; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 214; y: 84
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5648
- hash: "e3bb1ec3b84df25712f06e0d6963efdd"
+ hash: "414615d772b4c80bf85eabfdca6fd0e0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 215; y: 84
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5664
- hash: "a10d3184acc85c46e171fe4cf82e1c23"
+ hash: "46d70882552a21267eebb3505da086f3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 84
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5680
- hash: "d566b2763312e5e823593806acd9e809"
+ hash: "372acafc63624307bcb384c48a803ab7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 217; y: 84
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5696
- hash: "7db073b7487ddea48e7c9df8b9bfdc00"
+ hash: "1b98094dd4f192af8229b7058b8ce396"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 218; y: 84
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5712
- hash: "85c663b943f67d158367dba0508980a5"
+ hash: "d627fa0ce696e46650225e43134643f5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 218; y: 84
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5728
- hash: "6336ce0d912ee63773475c4c6c5d59be"
+ hash: "0410f4b504d768bc00940b20d3d942f9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 219; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 219; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 220; y: 86
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5744
- hash: "c75ba80484af36633b6a4d17b666b1c9"
+ hash: "5f8011b44681d769800af8d205c757cb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 221; y: 87
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5760
image: "cursorDelegate.5.png"
}
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 87
+ modifiers: 0
+ sendToViewport: true
+ }
Frame {
msec: 5776
- hash: "0ab8bebb0e43786a7e51ea780745080c"
+ hash: "99f7a46f841f96445962b5fb3496d996"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 88
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5792
- hash: "6fa1811f520eff9893b3c7b00e53fa7d"
+ hash: "ed8bba2823ca2fe7cf138af0fcc52806"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 224; y: 90
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5808
- hash: "6feb44655bfbec651cc2902676bd08b4"
+ hash: "c9007b7ae5038ba59bfc6fac15c80d5f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 226; y: 92
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5824
- hash: "ae46d672649a4b0fc5171f776af93a2c"
+ hash: "2db81c955a99652bcfef958e870054af"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 228; y: 94
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5840
- hash: "00b7714df163d8055514e0dbd8a83bac"
+ hash: "1e3906d7f3ee5a29c3c90b8e1f6c1eb0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 229; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 231; y: 97
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5856
- hash: "6ef2a330d70a7e0ce343bb352c46f126"
+ hash: "fc59738903cc9e6f36ef4d27bfde9496"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 232; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5872
- hash: "f4e26309fa3b8a6d55f44bf146544101"
+ hash: "768aaf4ef2b13b40b75bdf15787966b6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 233; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5888
- hash: "dfa1e24149f2662a4a552da3bb64348c"
+ hash: "3085baedc0c58a6757b134bb4f80fa9e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 233; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5904
- hash: "9ab9d6ef4aeb5863401a9e251f684e2d"
+ hash: "0a1b8cad167bf93801f4d0dd34bf872e"
}
Frame {
msec: 5920
- hash: "c9f7591a37a3743b3b48de5337fd2fa0"
+ hash: "6366e04808ee015feed44d95cc117e1e"
}
Frame {
msec: 5936
- hash: "2d38f17db530050574d9192c805c142d"
+ hash: "dd67a8542a243aac9462e25dc1586e6e"
}
Frame {
msec: 5952
- hash: "38a4ad2cf9fa3015eff67014900a44cc"
+ hash: "e06c8788b2ef327d005b4048f0807334"
}
Frame {
msec: 5968
- hash: "9d9ce4ac0de6caa2f0bb78eac414ba65"
+ hash: "dda2beda1253bd477d04cada4ec4df27"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 233; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 5984
- hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ hash: "d659d1724637d90497c8e417764d3477"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 232; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 232; y: 99
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6000
- hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ hash: "91035aecf2ac15f3c2c3dbc4b73b540f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 231; y: 99
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6016
- hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ hash: "91035aecf2ac15f3c2c3dbc4b73b540f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 230; y: 99
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6032
- hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ hash: "91035aecf2ac15f3c2c3dbc4b73b540f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 229; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 228; y: 100
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6048
- hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ hash: "91035aecf2ac15f3c2c3dbc4b73b540f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 227; y: 100
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6064
- hash: "9d9ce4ac0de6caa2f0bb78eac414ba65"
+ hash: "91035aecf2ac15f3c2c3dbc4b73b540f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 225; y: 100
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6080
- hash: "38a4ad2cf9fa3015eff67014900a44cc"
+ hash: "bdc53613cad59416ed79287874eb59f8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 224; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 101
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6096
- hash: "2d38f17db530050574d9192c805c142d"
+ hash: "54efe0acb07fb69827024a566773a36e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 220; y: 102
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6112
- hash: "c9f7591a37a3743b3b48de5337fd2fa0"
+ hash: "860530a5ac3d89193f3cf234e21f8f6a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 219; y: 102
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6128
- hash: "9ab9d6ef4aeb5863401a9e251f684e2d"
+ hash: "ade5f8e28159304b22866f688efdbb46"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 217; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 102
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6144
- hash: "dfa1e24149f2662a4a552da3bb64348c"
+ hash: "7d5f5cf34910527d899e89ea07fb7254"
}
- Key {
- type: 6
- key: 16777233
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 215; y: 102
modifiers: 0
- text: ""
- autorep: false
- count: 1
+ sendToViewport: true
}
Frame {
msec: 6160
- hash: "e009a8d2cb7c7f1200055666cf2efd9c"
+ hash: "c201ed0f2419396a229d8396152aba01"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 213; y: 102
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6176
- hash: "0d94e37430d8b835e65750a6af525ef7"
+ hash: "b99135e2cb03ab252ff379c8001c26ad"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 212; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 212; y: 102
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6192
- hash: "77afbc0e0b828d03148ed7fe342dfbda"
+ hash: "768aaf4ef2b13b40b75bdf15787966b6"
}
- Key {
- type: 7
- key: 16777233
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 102
modifiers: 0
- text: ""
- autorep: false
- count: 1
+ sendToViewport: true
}
Frame {
msec: 6208
- hash: "ef3694ca78764709abbe2f8781578fb4"
+ hash: "71a5bed1a87e16c986b2f4b245e956b8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 210; y: 102
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6224
- hash: "977d44194d1ef05801167157714891af"
+ hash: "7155607add8c7254286097cda52b5888"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 103
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6240
- hash: "d351de13e7bb5b273ec3aebb88dffbd5"
+ hash: "e516e4d8a4ef0195ae04b3287f536ffd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 103
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6256
- hash: "c55fdf2fd0a4eeb9ca0e3072aa3e60c4"
+ hash: "afa06d10b37d8ad8b57e392142ff50f2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 103
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6272
- hash: "50f168354e3901283708a4ae9088783d"
+ hash: "88c3fe68f7251d87a5bf197b9d59b899"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 104
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6288
- hash: "0f54144c574af01958505eedd69162f6"
+ hash: "b2687baf5148539ee2181b18077e0a3d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 202; y: 104
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6304
- hash: "7d620ef53049f9195cc832d6f9dfd52b"
+ hash: "457aed68cee2b9f3ff3c7d5f0eb2b6aa"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 201; y: 104
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6320
- hash: "5ad4dd681be780c0068734ca5c722507"
+ hash: "48bb4683718a3b7c34baea29260fbe8c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 199; y: 103
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6336
- hash: "6e4ce7599da579f764ff10e982888889"
+ hash: "7c32fbf799bbfc10d0fbdd96bcfa9d95"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 197; y: 102
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6352
- hash: "9626f80ef170af2db135792337203265"
+ hash: "68cee3b8213a9d38e2ed431d06eb6756"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 196; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 101
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6368
- hash: "0b32a66497ec3cdd05dc27c0ef9c5718"
+ hash: "596c732c40a86d16bc649f164b919457"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 188; y: 100
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6384
- hash: "d9c35de8b02f11db321d9bdcdcd65403"
+ hash: "d9cb5bf69d4f8aaebefae6d680a99185"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 187; y: 99
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6400
- hash: "24c376d5a2b3555126b156c8bc7a7a0c"
+ hash: "bb6759f3aff00f027f4f426efb775d2d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 185; y: 99
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6416
- hash: "5410d7126938921ce5a6eaa915b84df5"
+ hash: "a408d88f97c30ab8ab12a222b03571b4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 182; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6432
- hash: "165b351f0aff255d5b33cb5de8e800d9"
+ hash: "bb2e8994dc014eb6d4e4e33257269c2a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 176; y: 96
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6448
- hash: "ec28ccc9a24e37fac646f64bdc0ac4be"
+ hash: "190e9df0b8d20b0f37a198e9f3976416"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 171; y: 95
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6464
- hash: "eec1bc74c627d2fe645f5f1f8af5064d"
+ hash: "aa7be52534c8550948deea6ae174330d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 166; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 94
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6480
- hash: "1fe734f2199fabb1d738242a0ab344ec"
+ hash: "533caac613ea1279a51a5b5b29acdccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 160; y: 94
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6496
- hash: "b6ddd0d0ea1fee41f07b2126175b0a87"
+ hash: "288cc34879d9ed8ed381ba6cc31de3e7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 159; y: 94
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6512
- hash: "f17f5f882bc80455028b96c5d15aafba"
+ hash: "2a57602c47ab788f288daa81b985fc1d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 157; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 156; y: 94
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6528
- hash: "635e67948c997ca2ea4c5f3d6179049f"
+ hash: "fa3540fafa1a9e3c5e796b598dce8fb1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 156; y: 94
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6544
- hash: "212457586210d5656780b6d030e27ce2"
+ hash: "7e9b17ae7c10cb30153539911ac6eb13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 155; y: 94
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6560
- hash: "d211b2dd22582d9d1a92299ee2d56c1b"
+ hash: "9e62b16c858e80ff1294ec53e2390498"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 154; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 153; y: 95
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6576
- hash: "54ea64058da3f2d9942185cff8f1701a"
+ hash: "287470e6cf9bd4b9acfd1cd1512307e3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 152; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 151; y: 95
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6592
- hash: "4537333bda52e966ba876f00f9cc2cd2"
+ hash: "4086c7c7a573a1b9f98d22ebf9b46c5f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 149; y: 95
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6608
- hash: "94ace3be42f05ff66d64dbf7b107223b"
+ hash: "7d0868f000a1102916720a29a332543f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 148; y: 96
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6624
- hash: "d971f4158db77baf1c9e089c9687b831"
+ hash: "bda3cfdca81f7cba54514c512eb6b12e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 146; y: 96
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6640
- hash: "527d3bb96498cf676290438c3cc242cc"
+ hash: "923ff9fac39c3fba2c9cf7b52fc652ad"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 145; y: 97
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6656
- hash: "98b27b167e6f2d1c82221fbca9e27293"
+ hash: "269718e3586affbbdf0b9599e12f5677"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 145; y: 97
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6672
- hash: "95f7f83379a6efa08dcab31042db54c8"
+ hash: "d12e03b5da6ea7b162d7dec6930c1a54"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 144; y: 97
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6688
- hash: "4c48e1a6e690d2066ede0997e7c3d9f0"
+ hash: "96edf1f15c674c5d8c4e4ce9e1d34f1d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 144; y: 97
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6704
- hash: "0269247254bb871f565aaae9764a7e4f"
+ hash: "70ce229fae6985dd49de8cca01c031e6"
}
Frame {
msec: 6720
image: "cursorDelegate.6.png"
}
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 144; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
Frame {
msec: 6736
- hash: "ab836e909ad5ef3aba8e26f5e38dd5f7"
+ hash: "56215b7d24ac382ff1ed256c80d14091"
}
Frame {
msec: 6752
- hash: "13a0d2b27d624ec3e178412294b60607"
+ hash: "ac132304e072806431803d26e345b264"
}
Frame {
msec: 6768
- hash: "8afd8daffb34efd8c875ede669953199"
+ hash: "a8f3e7fbb95ed8fe2b83871eb3d2c151"
}
Frame {
msec: 6784
- hash: "effed4e7f709e09f02c9261381199fc1"
+ hash: "43906030c2572af0f8f0577dbc86e346"
}
Frame {
msec: 6800
- hash: "70389553a2229b7ef381a6d6c96c0d12"
+ hash: "d64b58801430d5063225dceac1603bca"
}
Frame {
msec: 6816
- hash: "fd6e25f0a05e0e0e20f3190230091c4c"
+ hash: "56b81435dc4ce193bb98c3d02c781242"
}
Frame {
msec: 6832
- hash: "b811734467cc1dcc439413ff5311d84d"
+ hash: "a33dce3c55b1b1541cfb9b85a75fcb53"
}
Frame {
msec: 6848
- hash: "e6a4d038614266483749fe4be0f8872b"
+ hash: "6f7411363c66d0959ea5a16a9b610e61"
}
Frame {
msec: 6864
- hash: "1a18927369d88f49b5a67f7dc24496e0"
+ hash: "fb7ad9156658f3866d19e43f006cf013"
}
Frame {
msec: 6880
- hash: "4491c5228f407fbc77a4c92a17cb2602"
+ hash: "fca865f762c1a6cc3e487e0e908eef73"
}
Frame {
msec: 6896
- hash: "f14b8696c75e0e4f1dc6bc06a7fb19fb"
+ hash: "3d78320cb021944d7c6cee1a42056663"
}
Frame {
msec: 6912
- hash: "6c03c5a66af0b00db5dc509ed686c331"
+ hash: "1e3f580f37a0dc063a383bdf435e85ea"
}
Frame {
msec: 6928
- hash: "4c8ae787ca4a3b327f012d790341788c"
- }
- Key {
- type: 6
- key: 16777248
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
+ hash: "75e854ccaad087bfe776a843f0bd7284"
}
Frame {
msec: 6944
- hash: "142236f178fa7b0c314de8106e7b3a90"
+ hash: "ad65de5a6887c0a31a9d8f72a2a651db"
}
Frame {
msec: 6960
- hash: "11c72fc6dc63c666a296965aa90a0d64"
+ hash: "62bc9c57724f7ab6bcf7d75d8ff68097"
}
Frame {
msec: 6976
- hash: "60edce44dd4ca7fac8d8093990ee5ec1"
+ hash: "00dfc5f4468482cb5f74e62be235b1d2"
}
Frame {
msec: 6992
@@ -1986,179 +3018,155 @@ VisualTest {
}
Frame {
msec: 7072
- hash: "11c72fc6dc63c666a296965aa90a0d64"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 7088
- hash: "142236f178fa7b0c314de8106e7b3a90"
+ hash: "00dfc5f4468482cb5f74e62be235b1d2"
}
Frame {
msec: 7104
- hash: "4c8ae787ca4a3b327f012d790341788c"
+ hash: "62bc9c57724f7ab6bcf7d75d8ff68097"
}
Frame {
msec: 7120
- hash: "6c03c5a66af0b00db5dc509ed686c331"
+ hash: "ad65de5a6887c0a31a9d8f72a2a651db"
}
Frame {
msec: 7136
- hash: "f14b8696c75e0e4f1dc6bc06a7fb19fb"
+ hash: "75e854ccaad087bfe776a843f0bd7284"
}
Frame {
msec: 7152
- hash: "4491c5228f407fbc77a4c92a17cb2602"
- }
- Key {
- type: 6
- key: 33
- modifiers: 33554432
- text: "21"
- autorep: false
- count: 1
+ hash: "1e3f580f37a0dc063a383bdf435e85ea"
}
Frame {
msec: 7168
- hash: "0ba12ed7cfb4a67604c4725570486588"
+ hash: "3d78320cb021944d7c6cee1a42056663"
}
Frame {
msec: 7184
- hash: "6361cc7629949f0c178485488ee1774c"
+ hash: "fca865f762c1a6cc3e487e0e908eef73"
}
Frame {
msec: 7200
- hash: "ca5e4f87029873fa2417da6b7ca7dec3"
+ hash: "fb7ad9156658f3866d19e43f006cf013"
}
Frame {
msec: 7216
- hash: "380ee1b7aa7e79b00891b888853cb38c"
+ hash: "6f7411363c66d0959ea5a16a9b610e61"
}
Frame {
msec: 7232
- hash: "79adead91b4e60051cc4867a3604627f"
+ hash: "a33dce3c55b1b1541cfb9b85a75fcb53"
}
Frame {
msec: 7248
- hash: "b160235692af4e85a573bbe5be767ce5"
+ hash: "56b81435dc4ce193bb98c3d02c781242"
}
Frame {
msec: 7264
- hash: "c941ed3f402c4261161bbc8a51014f5b"
+ hash: "d64b58801430d5063225dceac1603bca"
}
Frame {
msec: 7280
- hash: "500d618cde448896cf948a7c531b0ec2"
- }
- Key {
- type: 7
- key: 33
- modifiers: 33554432
- text: "21"
- autorep: false
- count: 1
+ hash: "43906030c2572af0f8f0577dbc86e346"
}
Frame {
msec: 7296
- hash: "f0f090831d1e6f24c01bb33cefbf4e4c"
+ hash: "a8f3e7fbb95ed8fe2b83871eb3d2c151"
}
Frame {
msec: 7312
- hash: "3b9454a1e81eed3cbd58ba07ffdc02fa"
+ hash: "ac132304e072806431803d26e345b264"
}
Frame {
msec: 7328
- hash: "1a0093f61a5cb3d984f6c83fa1d37cc1"
+ hash: "56215b7d24ac382ff1ed256c80d14091"
}
Frame {
msec: 7344
- hash: "79c35556aa06aacd01f03600dc849e18"
+ hash: "4d5c97925b21d699f1c3720a3f51ebbb"
}
Frame {
msec: 7360
- hash: "f55fbea8c275c6dc8a97ac98657dbe51"
+ hash: "70ce229fae6985dd49de8cca01c031e6"
}
Frame {
msec: 7376
- hash: "3db59e0b0131043148efa87a73e0a97a"
+ hash: "96edf1f15c674c5d8c4e4ce9e1d34f1d"
}
Frame {
msec: 7392
- hash: "f259933ba4cf12f7d16f77d1a6cb5458"
+ hash: "d12e03b5da6ea7b162d7dec6930c1a54"
}
Frame {
msec: 7408
- hash: "03f94d5e55aeada908ac8b8e42838f2b"
+ hash: "269718e3586affbbdf0b9599e12f5677"
}
Frame {
msec: 7424
- hash: "3f3efb5796d82a1c53a9df877fd0811a"
+ hash: "42d19ea6dd328c505da5a4eee23a257d"
}
Frame {
msec: 7440
- hash: "b6cc63f6a70e0d17d883503633b0d1d4"
+ hash: "e4d9d77859759dd95cf3ffee8f142cd8"
}
Frame {
msec: 7456
- hash: "001ace4fccee24150ffdbeb53be8f629"
+ hash: "445e4c6e9872b63a1461e3277dd8185c"
}
Frame {
msec: 7472
- hash: "b3ba8bbc9942ad27322105b1a2ab02ca"
+ hash: "d6343c629acd987179eae0d158d2504c"
}
Frame {
msec: 7488
- hash: "657fcf877ee8794939ed72e74b935bc2"
+ hash: "a5340087baa2c3694ed0cc2bbc3e2ad9"
}
Frame {
msec: 7504
- hash: "0911fbe26bb2e2dcbb3bb3673c0ea68c"
+ hash: "205973c30aaca71d1f20e740ce971d82"
}
Frame {
msec: 7520
- hash: "98d2bd0370c3f42d477cfeab2e203d19"
+ hash: "ed28c7e07755e177222c7e322116bfb4"
}
Frame {
msec: 7536
- hash: "cb5ef5e46e9259965b2066e478380f80"
- }
- Key {
- type: 7
- key: 16777248
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "6cebfc407a985694c803940608ab1303"
}
Frame {
msec: 7552
- hash: "a61caba79c9a5303f5f02efb6f3327d0"
+ hash: "87f825fc820d3942e4d9b5ece5be3714"
}
Frame {
msec: 7568
- hash: "1a63b48e70515c175e968d0c8eee7774"
+ hash: "9aa56dfe90ed2eba58eee0ff6ff3822c"
}
Frame {
msec: 7584
- hash: "b75188cbb703710bc2a15dde67362352"
+ hash: "c93acf87a918f21a55cf39ea255315a3"
}
Frame {
msec: 7600
- hash: "adf2eb813d2528a9ec4431f87077fa59"
+ hash: "f8ce1bec5d5016c56fc66d52c28e69d1"
}
Frame {
msec: 7616
- hash: "ed5ddb352c3738c0130be7160b8bbcba"
+ hash: "a365dba2f7c4be77ea98b727813c2f03"
}
Frame {
msec: 7632
- hash: "957a2366fb86a5a0ae6900eec3efcf0f"
+ hash: "e8d1c35ee9ef74c4070adfce5e4560f1"
}
Frame {
msec: 7648
- hash: "3399f92c90e107ad77c46f63dd30ae35"
+ hash: "f5f2dbb041eeb4de1821761f4fbca506"
}
Frame {
msec: 7664
- hash: "5bea888d8053eee723d6bb9a5629e33d"
+ hash: "f4ea6e9dff51778e9b5d1321453617ec"
}
Frame {
msec: 7680
@@ -2166,239 +3174,255 @@ VisualTest {
}
Frame {
msec: 7696
- hash: "55a6ae6a8da11f4e842e5fa53bed00fc"
+ hash: "f2869791dde1eb4c2ea24e04dc3ac653"
}
Frame {
msec: 7712
- hash: "d5034694ccc80df660ee6f962876884f"
+ hash: "9bd70e91b765de22b70fe295adc4f87f"
}
Frame {
msec: 7728
- hash: "1584572ae41aa0286d706650eb776db5"
+ hash: "c0338d0a5c72ba63bff666a76ab3242c"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 227; y: 114
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7744
- hash: "52df591a6ef5d12859ed468df0cc2c54"
+ hash: "cb2a643eed9b5658260e04495820cd3d"
}
Frame {
msec: 7760
- hash: "25390964f5c9fb11cc43c9076cb7c74a"
+ hash: "6dda51f2e611b1f589c75820fd8c7295"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 227; y: 114
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7776
- hash: "371943abdfdf79436ba9cc969ec6a6cd"
+ hash: "98d8692afd47c61421ddcae62414a72e"
}
Frame {
msec: 7792
- hash: "0ed089fc520408b49b9bf3f5825af8a0"
+ hash: "2c533bcdd9df45c6f942d47509ebf20e"
}
Frame {
msec: 7808
- hash: "3d5930a5283a549f2410d3c5d5af2f70"
+ hash: "d28f231fb1e128329e8985689deac882"
}
Frame {
msec: 7824
- hash: "a96a572cff6ceb9e940374b997dfee26"
+ hash: "ea73450baf98a2f629ce1c203cfcd728"
}
Frame {
msec: 7840
- hash: "6a2a95c4a346e71060e52a4f7bdd6fb7"
+ hash: "959a31d38edc343b5e081fd0cddc81df"
}
Frame {
msec: 7856
- hash: "200decb91b8e9094e0fea1f255f76f82"
+ hash: "9b1ae10ee8e9b3f176357733af9e6735"
}
Frame {
msec: 7872
- hash: "6cc952cbf10e3903479420e40b8a6fd5"
+ hash: "89b0dd11f456bbb321e0bd2e1614c193"
}
Frame {
msec: 7888
- hash: "a6297f64682519d5b4d845c92941051b"
+ hash: "a0a3aa6d8d4c677894e745ee432084e2"
}
Frame {
msec: 7904
- hash: "1ae93dbbfe0645558bd92bacec44ccf8"
+ hash: "f63207b8903085b19de1c9b6a9ff90e0"
}
Frame {
msec: 7920
- hash: "a720efe3da29677e12ebcdd5ed459379"
+ hash: "c8f2126fece8c2b473c6511aa568dddb"
}
Frame {
msec: 7936
- hash: "aeed42bf877c6d58726943433d3aff16"
+ hash: "6ccd1f30e85dbad74468c228d92a9a3c"
}
Frame {
msec: 7952
- hash: "0ee38db069436e2d931f2903517f39d1"
+ hash: "bae09fe9f29e0f6ebda298cae753ddab"
}
Frame {
msec: 7968
- hash: "4fd7a301ecff3c70a34966e8faed7a51"
+ hash: "cde4abae868488345fb124b927f46b45"
}
Frame {
msec: 7984
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "a88ccf9c8ae34ffcfd15af4e66102040"
}
Frame {
msec: 8000
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 8016
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 8032
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 8048
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 8064
- hash: "4fd7a301ecff3c70a34966e8faed7a51"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 8080
- hash: "0ee38db069436e2d931f2903517f39d1"
+ hash: "a88ccf9c8ae34ffcfd15af4e66102040"
}
Frame {
msec: 8096
- hash: "aeed42bf877c6d58726943433d3aff16"
+ hash: "cde4abae868488345fb124b927f46b45"
}
Frame {
msec: 8112
- hash: "a720efe3da29677e12ebcdd5ed459379"
+ hash: "bae09fe9f29e0f6ebda298cae753ddab"
}
Frame {
msec: 8128
- hash: "1ae93dbbfe0645558bd92bacec44ccf8"
+ hash: "6ccd1f30e85dbad74468c228d92a9a3c"
}
Frame {
msec: 8144
- hash: "a6297f64682519d5b4d845c92941051b"
+ hash: "c8f2126fece8c2b473c6511aa568dddb"
}
Frame {
msec: 8160
- hash: "6cc952cbf10e3903479420e40b8a6fd5"
+ hash: "f63207b8903085b19de1c9b6a9ff90e0"
}
Frame {
msec: 8176
- hash: "200decb91b8e9094e0fea1f255f76f82"
+ hash: "a0a3aa6d8d4c677894e745ee432084e2"
}
Frame {
msec: 8192
- hash: "6a2a95c4a346e71060e52a4f7bdd6fb7"
+ hash: "89b0dd11f456bbb321e0bd2e1614c193"
}
Frame {
msec: 8208
- hash: "a96a572cff6ceb9e940374b997dfee26"
+ hash: "9b1ae10ee8e9b3f176357733af9e6735"
}
Frame {
msec: 8224
- hash: "3d5930a5283a549f2410d3c5d5af2f70"
+ hash: "959a31d38edc343b5e081fd0cddc81df"
}
Frame {
msec: 8240
- hash: "0ed089fc520408b49b9bf3f5825af8a0"
+ hash: "ea73450baf98a2f629ce1c203cfcd728"
}
Frame {
msec: 8256
- hash: "371943abdfdf79436ba9cc969ec6a6cd"
+ hash: "d28f231fb1e128329e8985689deac882"
}
Frame {
msec: 8272
- hash: "25390964f5c9fb11cc43c9076cb7c74a"
+ hash: "2c533bcdd9df45c6f942d47509ebf20e"
}
Frame {
msec: 8288
- hash: "52df591a6ef5d12859ed468df0cc2c54"
+ hash: "98d8692afd47c61421ddcae62414a72e"
}
Frame {
msec: 8304
- hash: "1584572ae41aa0286d706650eb776db5"
+ hash: "6dda51f2e611b1f589c75820fd8c7295"
}
Frame {
msec: 8320
- hash: "d5034694ccc80df660ee6f962876884f"
+ hash: "cb2a643eed9b5658260e04495820cd3d"
}
Frame {
msec: 8336
- hash: "55a6ae6a8da11f4e842e5fa53bed00fc"
+ hash: "88afd2fa1182fbb2aab100d4587a1006"
}
Frame {
msec: 8352
- hash: "8eaecafeaa1c034c7aae451e5ed26c01"
+ hash: "bc657c5181a11a9ff9565f134bdccb8d"
}
Frame {
msec: 8368
- hash: "5bea888d8053eee723d6bb9a5629e33d"
+ hash: "a296634d814a6e12f9d09f4d8a9fa097"
}
Frame {
msec: 8384
- hash: "3399f92c90e107ad77c46f63dd30ae35"
+ hash: "f05a2deeb12722904c4f31d641dffeb4"
}
Frame {
msec: 8400
- hash: "957a2366fb86a5a0ae6900eec3efcf0f"
+ hash: "75823698247e39dd10a70fe224e13597"
}
Frame {
msec: 8416
- hash: "ed5ddb352c3738c0130be7160b8bbcba"
+ hash: "244fa06c168f7a7401b8ec7f5ddb0e52"
}
Frame {
msec: 8432
- hash: "adf2eb813d2528a9ec4431f87077fa59"
+ hash: "a78e0f88d269290e9086d1d854618f0c"
}
Frame {
msec: 8448
- hash: "b75188cbb703710bc2a15dde67362352"
+ hash: "57b1281d29d5c5fdc15d9cf1e3a5545c"
}
Frame {
msec: 8464
- hash: "1a63b48e70515c175e968d0c8eee7774"
+ hash: "a24ac211ef29dcf7f22ac95991f1af3f"
}
Frame {
msec: 8480
- hash: "a61caba79c9a5303f5f02efb6f3327d0"
+ hash: "361f978ea3597fd518c25c0069c22e8b"
}
Frame {
msec: 8496
- hash: "cb5ef5e46e9259965b2066e478380f80"
+ hash: "ac8e2c01eb58aac0eb4feb6aba9b9628"
}
Frame {
msec: 8512
- hash: "98d2bd0370c3f42d477cfeab2e203d19"
+ hash: "6099612934b5eb90296f1cc3cb5c1a84"
}
Frame {
msec: 8528
- hash: "0911fbe26bb2e2dcbb3bb3673c0ea68c"
+ hash: "7c3f08291168065fc9c1d62108022d33"
}
Frame {
msec: 8544
- hash: "657fcf877ee8794939ed72e74b935bc2"
+ hash: "8bf57ba445d668af5f3e59276c4f8800"
}
Frame {
msec: 8560
- hash: "b3ba8bbc9942ad27322105b1a2ab02ca"
+ hash: "c8ed352cbfbc472ea4802a9e03d40052"
}
Frame {
msec: 8576
- hash: "001ace4fccee24150ffdbeb53be8f629"
+ hash: "11e5546b30e47d2f3067c0364b9f0877"
}
Frame {
msec: 8592
- hash: "b6cc63f6a70e0d17d883503633b0d1d4"
+ hash: "9df0f136fca92d4a05f17ee68f0cd286"
}
Frame {
msec: 8608
- hash: "3f3efb5796d82a1c53a9df877fd0811a"
+ hash: "39f47838a622ba328548cad57cca9e12"
}
Frame {
msec: 8624
- hash: "03f94d5e55aeada908ac8b8e42838f2b"
+ hash: "c891d582be4b23c01e29032fe861081f"
}
Frame {
msec: 8640
@@ -2406,202 +3430,126 @@ VisualTest {
}
Frame {
msec: 8656
- hash: "3db59e0b0131043148efa87a73e0a97a"
+ hash: "c3820dfd382c4568d9fbd2ee95889eda"
}
Frame {
msec: 8672
- hash: "f55fbea8c275c6dc8a97ac98657dbe51"
+ hash: "528cf8778318bf7216b54f983dadb2b4"
}
Frame {
msec: 8688
- hash: "79c35556aa06aacd01f03600dc849e18"
+ hash: "419518a3c63aa36f6070e95eb93e58a3"
}
Frame {
msec: 8704
- hash: "1a0093f61a5cb3d984f6c83fa1d37cc1"
+ hash: "11b22e2853c0a9ea6e4ac764348698c9"
}
Frame {
msec: 8720
- hash: "3b9454a1e81eed3cbd58ba07ffdc02fa"
+ hash: "8018329c4b57647942ae34a5f83c2b12"
}
Frame {
msec: 8736
- hash: "f0f090831d1e6f24c01bb33cefbf4e4c"
+ hash: "c37e9fd5c3d664c2e4911c8cb9fcabf7"
}
Frame {
msec: 8752
- hash: "500d618cde448896cf948a7c531b0ec2"
+ hash: "4e7895f802c9fc249894ba0db25959f7"
}
Frame {
msec: 8768
- hash: "c941ed3f402c4261161bbc8a51014f5b"
+ hash: "5fed71d99ef70432bc6be8caaea36f17"
}
Frame {
msec: 8784
- hash: "b160235692af4e85a573bbe5be767ce5"
+ hash: "69976d074acbd7a5731c70b33c8f084b"
}
Frame {
msec: 8800
- hash: "79adead91b4e60051cc4867a3604627f"
+ hash: "c88952348da3df0627b12b8bb05ca13e"
}
Frame {
msec: 8816
- hash: "380ee1b7aa7e79b00891b888853cb38c"
+ hash: "cc5222da7a17c66d4db146c406492701"
}
Frame {
msec: 8832
- hash: "ca5e4f87029873fa2417da6b7ca7dec3"
+ hash: "8915e752776da27cb86019c9decc8a8c"
}
Frame {
msec: 8848
- hash: "6361cc7629949f0c178485488ee1774c"
+ hash: "d8a77ccc7c01cf187e846a2903e1c55e"
}
Frame {
msec: 8864
- hash: "0ba12ed7cfb4a67604c4725570486588"
+ hash: "3cf3f02f98a199c81ef73e8905e7f7ee"
}
Frame {
msec: 8880
- hash: "e773813cfb7d1328f46a5201bec45fd7"
+ hash: "7a1d47e0109fc370bf63714040cbef96"
}
Frame {
msec: 8896
- hash: "38a5b5753458aca936a2baf99e156bbb"
+ hash: "2ca8b8ddbe73b29327e474da34a14a87"
}
Frame {
msec: 8912
- hash: "0772cea653bbe61bc4b27ad961f69dd9"
+ hash: "ee75214865fca848aa38cc05b6049d8f"
}
Frame {
msec: 8928
- hash: "d489700122863613124460f5ed8676b0"
+ hash: "05ab7d8118a806f2215160f5f266a082"
}
Frame {
msec: 8944
- hash: "9ccde8669704e34c2f9c17a4dbd07cbe"
+ hash: "31e63095b7be56d0bf75e9cff832feb7"
}
Frame {
msec: 8960
- hash: "2b330ad269da858d0e0227938c8d247d"
+ hash: "3ffda2c2f154f1eb806e9f0963057fa1"
}
Frame {
msec: 8976
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "4e805203b58e8f6f331f2e878704fa01"
}
Frame {
msec: 8992
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 9008
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 9024
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 9040
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 9056
- hash: "2da5645eac95aeab33f8348c4a299773"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 9072
- hash: "2b330ad269da858d0e0227938c8d247d"
+ hash: "60edce44dd4ca7fac8d8093990ee5ec1"
}
Frame {
msec: 9088
- hash: "9ccde8669704e34c2f9c17a4dbd07cbe"
+ hash: "4e805203b58e8f6f331f2e878704fa01"
}
Frame {
msec: 9104
- hash: "d489700122863613124460f5ed8676b0"
+ hash: "3ffda2c2f154f1eb806e9f0963057fa1"
}
Frame {
msec: 9120
- hash: "0772cea653bbe61bc4b27ad961f69dd9"
+ hash: "31e63095b7be56d0bf75e9cff832feb7"
}
Frame {
msec: 9136
- hash: "38a5b5753458aca936a2baf99e156bbb"
- }
- Frame {
- msec: 9152
- hash: "e773813cfb7d1328f46a5201bec45fd7"
- }
- Frame {
- msec: 9168
- hash: "0ba12ed7cfb4a67604c4725570486588"
- }
- Frame {
- msec: 9184
- hash: "6361cc7629949f0c178485488ee1774c"
- }
- Frame {
- msec: 9200
- hash: "ca5e4f87029873fa2417da6b7ca7dec3"
- }
- Frame {
- msec: 9216
- hash: "380ee1b7aa7e79b00891b888853cb38c"
- }
- Frame {
- msec: 9232
- hash: "79adead91b4e60051cc4867a3604627f"
- }
- Frame {
- msec: 9248
- hash: "b160235692af4e85a573bbe5be767ce5"
- }
- Frame {
- msec: 9264
- hash: "c941ed3f402c4261161bbc8a51014f5b"
- }
- Frame {
- msec: 9280
- hash: "500d618cde448896cf948a7c531b0ec2"
- }
- Frame {
- msec: 9296
- hash: "f0f090831d1e6f24c01bb33cefbf4e4c"
- }
- Frame {
- msec: 9312
- hash: "3b9454a1e81eed3cbd58ba07ffdc02fa"
- }
- Frame {
- msec: 9328
- hash: "1a0093f61a5cb3d984f6c83fa1d37cc1"
- }
- Frame {
- msec: 9344
- hash: "79c35556aa06aacd01f03600dc849e18"
- }
- Frame {
- msec: 9360
- hash: "f55fbea8c275c6dc8a97ac98657dbe51"
- }
- Frame {
- msec: 9376
- hash: "3db59e0b0131043148efa87a73e0a97a"
- }
- Frame {
- msec: 9392
- hash: "f259933ba4cf12f7d16f77d1a6cb5458"
- }
- Frame {
- msec: 9408
- hash: "03f94d5e55aeada908ac8b8e42838f2b"
- }
- Frame {
- msec: 9424
- hash: "3f3efb5796d82a1c53a9df877fd0811a"
- }
- Frame {
- msec: 9440
- hash: "b6cc63f6a70e0d17d883503633b0d1d4"
+ hash: "05ab7d8118a806f2215160f5f266a082"
}
}
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.0.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.0.png
index cd2f112..95a835a 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.0.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.1.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.1.png
index 95a835a..409192c 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.1.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.2.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.2.png
index 409192c..cd2f112 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.2.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.3.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.3.png
index 409192c..7191c1e 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.3.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.4.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.4.png
deleted file mode 100644
index 95a835a..0000000
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.4.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.5.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.5.png
deleted file mode 100644
index 249e843..0000000
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.5.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.6.png b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.6.png
deleted file mode 100644
index 7191c1e..0000000
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.6.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.qml b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.qml
index 5c64a9a..352c890 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.qml
+++ b/tests/auto/declarative/visual/qmlgraphicstextedit/data/qt-669.qml
@@ -100,50 +100,6 @@ VisualTest {
msec: 384
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
- Frame {
- msec: 400
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 416
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 432
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 448
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 464
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 480
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 496
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 512
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 528
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 544
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 560
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
Key {
type: 6
key: 16777236
@@ -153,27 +109,15 @@ VisualTest {
count: 1
}
Frame {
- msec: 576
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 592
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 608
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 624
+ msec: 400
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 640
+ msec: 416
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 656
+ msec: 432
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Key {
@@ -185,51 +129,27 @@ VisualTest {
count: 1
}
Frame {
- msec: 672
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 688
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 704
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 720
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 736
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 752
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 768
+ msec: 448
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 784
+ msec: 464
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 800
+ msec: 480
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 816
+ msec: 496
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 832
+ msec: 512
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 848
+ msec: 528
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Key {
@@ -241,23 +161,15 @@ VisualTest {
count: 1
}
Frame {
- msec: 864
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 880
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 896
+ msec: 544
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 912
+ msec: 560
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 928
+ msec: 576
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Key {
@@ -269,63 +181,27 @@ VisualTest {
count: 1
}
Frame {
- msec: 944
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 960
- image: "qt-669.0.png"
- }
- Frame {
- msec: 976
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 992
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 1008
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 1024
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 1040
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 1056
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 1072
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 1088
+ msec: 592
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 1104
+ msec: 608
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 1120
+ msec: 624
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 1136
+ msec: 640
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 1152
+ msec: 656
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 1168
+ msec: 672
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Key {
@@ -337,27 +213,19 @@ VisualTest {
count: 1
}
Frame {
- msec: 1184
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1200
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1216
+ msec: 688
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 1232
+ msec: 704
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 1248
+ msec: 720
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 1264
+ msec: 736
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Key {
@@ -369,59 +237,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 1280
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1296
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1312
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1328
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1344
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1360
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1376
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1392
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1408
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 1424
+ msec: 752
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 1440
+ msec: 768
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 1456
+ msec: 784
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 1472
+ msec: 800
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 1488
+ msec: 816
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Key {
@@ -433,27 +265,19 @@ VisualTest {
count: 1
}
Frame {
- msec: 1504
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1520
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1536
+ msec: 832
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 1552
+ msec: 848
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 1568
+ msec: 864
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 1584
+ msec: 880
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Key {
@@ -465,59 +289,19 @@ VisualTest {
count: 1
}
Frame {
- msec: 1600
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1616
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1632
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1648
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1664
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1680
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1696
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1712
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1728
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1744
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 1760
+ msec: 896
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 1776
+ msec: 912
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 1792
+ msec: 928
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 1808
+ msec: 944
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Key {
@@ -529,27 +313,19 @@ VisualTest {
count: 1
}
Frame {
- msec: 1824
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 1840
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 1856
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
+ msec: 960
+ image: "qt-669.0.png"
}
Frame {
- msec: 1872
+ msec: 976
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 1888
+ msec: 992
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 1904
+ msec: 1008
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Key {
@@ -561,59 +337,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 1920
- image: "qt-669.1.png"
- }
- Frame {
- msec: 1936
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 1952
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 1968
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 1984
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 2000
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 2016
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 2032
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 2048
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 2064
+ msec: 1024
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 2080
+ msec: 1040
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 2096
+ msec: 1056
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 2112
+ msec: 1072
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 2128
+ msec: 1088
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Key {
@@ -625,27 +365,15 @@ VisualTest {
count: 1
}
Frame {
- msec: 2144
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2160
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2176
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2192
+ msec: 1104
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 2208
+ msec: 1120
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 2224
+ msec: 1136
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Key {
@@ -657,55 +385,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 2240
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2256
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2272
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2288
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2304
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2320
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2336
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2352
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 2368
+ msec: 1152
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 2384
+ msec: 1168
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 2400
+ msec: 1184
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 2416
+ msec: 1200
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 2432
+ msec: 1216
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Key {
@@ -717,27 +413,19 @@ VisualTest {
count: 1
}
Frame {
- msec: 2448
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2464
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2480
+ msec: 1232
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 2496
+ msec: 1248
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 2512
+ msec: 1264
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 2528
+ msec: 1280
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Key {
@@ -749,55 +437,19 @@ VisualTest {
count: 1
}
Frame {
- msec: 2544
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2560
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2576
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2592
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2608
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2624
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2640
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2656
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2672
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 2688
+ msec: 1296
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 2704
+ msec: 1312
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 2720
+ msec: 1328
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 2736
+ msec: 1344
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Key {
@@ -809,31 +461,19 @@ VisualTest {
count: 1
}
Frame {
- msec: 2752
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 2768
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 2784
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 2800
+ msec: 1360
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 2816
+ msec: 1376
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 2832
+ msec: 1392
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 2848
+ msec: 1408
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Key {
@@ -845,67 +485,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 2864
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 2880
- image: "qt-669.2.png"
- }
- Frame {
- msec: 2896
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 2912
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 2928
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 2944
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 2960
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 2976
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 2992
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 3008
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 3024
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 3040
+ msec: 1424
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 3056
+ msec: 1440
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 3072
+ msec: 1456
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 3088
+ msec: 1472
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 3104
+ msec: 1488
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Key {
@@ -917,23 +513,15 @@ VisualTest {
count: 1
}
Frame {
- msec: 3120
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3136
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3152
+ msec: 1504
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3168
+ msec: 1520
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3184
+ msec: 1536
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Key {
@@ -945,147 +533,79 @@ VisualTest {
count: 1
}
Frame {
- msec: 3200
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3216
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3232
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3248
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3264
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3280
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3296
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3312
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3328
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3344
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3360
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3376
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3392
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3408
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3424
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3440
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3456
- hash: "a3b98f215b2329e29d17b61eba0f9e45"
- }
- Frame {
- msec: 3472
+ msec: 1552
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3488
+ msec: 1568
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3504
+ msec: 1584
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3520
+ msec: 1600
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3536
+ msec: 1616
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3552
+ msec: 1632
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3568
+ msec: 1648
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3584
+ msec: 1664
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3600
+ msec: 1680
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3616
+ msec: 1696
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3632
+ msec: 1712
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3648
+ msec: 1728
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3664
+ msec: 1744
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3680
+ msec: 1760
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3696
+ msec: 1776
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3712
+ msec: 1792
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3728
+ msec: 1808
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3744
+ msec: 1824
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Frame {
- msec: 3760
+ msec: 1840
hash: "a3b98f215b2329e29d17b61eba0f9e45"
}
Key {
@@ -1097,31 +617,39 @@ VisualTest {
count: 1
}
Frame {
- msec: 3776
+ msec: 1856
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 3792
+ msec: 1872
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 3808
+ msec: 1888
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 3824
+ msec: 1904
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 3840
- image: "qt-669.3.png"
+ msec: 1920
+ image: "qt-669.1.png"
}
Frame {
- msec: 3856
+ msec: 1936
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 3872
+ msec: 1952
+ hash: "d85314199885fdf9cc8e666c3fb723fb"
+ }
+ Frame {
+ msec: 1968
+ hash: "d85314199885fdf9cc8e666c3fb723fb"
+ }
+ Frame {
+ msec: 1984
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Key {
@@ -1133,55 +661,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 3888
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 3904
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 3920
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 3936
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 3952
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 3968
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 3984
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 4000
- hash: "d85314199885fdf9cc8e666c3fb723fb"
- }
- Frame {
- msec: 4016
+ msec: 2000
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 4032
+ msec: 2016
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 4048
+ msec: 2032
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 4064
+ msec: 2048
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Frame {
- msec: 4080
+ msec: 2064
hash: "d85314199885fdf9cc8e666c3fb723fb"
}
Key {
@@ -1193,31 +689,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 4096
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4112
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4128
+ msec: 2080
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 4144
+ msec: 2096
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 4160
+ msec: 2112
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 4176
+ msec: 2128
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 4192
+ msec: 2144
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Key {
@@ -1229,67 +717,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 4208
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4224
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4240
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4256
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4272
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4288
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4304
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4320
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4336
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4352
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4368
- hash: "1313880b796ae7134f50fa8dafa4a974"
- }
- Frame {
- msec: 4384
+ msec: 2160
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 4400
+ msec: 2176
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 4416
+ msec: 2192
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 4432
+ msec: 2208
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Frame {
- msec: 4448
+ msec: 2224
hash: "1313880b796ae7134f50fa8dafa4a974"
}
Key {
@@ -1301,23 +745,11 @@ VisualTest {
count: 1
}
Frame {
- msec: 4464
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4480
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4496
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4512
+ msec: 2240
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 4528
+ msec: 2256
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Key {
@@ -1329,55 +761,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 4544
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4560
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4576
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4592
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4608
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4624
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4640
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4656
- hash: "c899e9d181860f682ba7275fa36f82a1"
- }
- Frame {
- msec: 4672
+ msec: 2272
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 4688
+ msec: 2288
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 4704
+ msec: 2304
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 4720
+ msec: 2320
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Frame {
- msec: 4736
+ msec: 2336
hash: "c899e9d181860f682ba7275fa36f82a1"
}
Key {
@@ -1389,27 +789,15 @@ VisualTest {
count: 1
}
Frame {
- msec: 4752
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 4768
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 4784
+ msec: 2352
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 4800
- image: "qt-669.4.png"
- }
- Frame {
- msec: 4816
+ msec: 2368
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 4832
+ msec: 2384
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Key {
@@ -1421,63 +809,55 @@ VisualTest {
count: 1
}
Frame {
- msec: 4848
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 4864
- hash: "2caf044acf7aaf0af6a03e7b8180fa16"
- }
- Frame {
- msec: 4880
+ msec: 2400
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 4896
+ msec: 2416
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 4912
+ msec: 2432
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 4928
+ msec: 2448
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 4944
+ msec: 2464
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 4960
+ msec: 2480
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 4976
+ msec: 2496
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 4992
+ msec: 2512
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 5008
+ msec: 2528
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 5024
+ msec: 2544
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 5040
+ msec: 2560
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 5056
+ msec: 2576
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Frame {
- msec: 5072
+ msec: 2592
hash: "2caf044acf7aaf0af6a03e7b8180fa16"
}
Key {
@@ -1489,27 +869,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 5088
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5104
+ msec: 2608
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 5120
+ msec: 2624
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 5136
+ msec: 2640
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 5152
+ msec: 2656
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 5168
+ msec: 2672
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Key {
@@ -1521,79 +897,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 5184
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5200
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5216
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5232
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5248
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5264
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5280
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5296
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5312
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5328
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5344
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5360
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5376
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5392
- hash: "c87aaf72137c2b9e8c876879e7215072"
- }
- Frame {
- msec: 5408
+ msec: 2688
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 5424
+ msec: 2704
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 5440
+ msec: 2720
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 5456
+ msec: 2736
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Frame {
- msec: 5472
+ msec: 2752
hash: "c87aaf72137c2b9e8c876879e7215072"
}
Key {
@@ -1605,23 +925,15 @@ VisualTest {
count: 1
}
Frame {
- msec: 5488
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5504
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5520
+ msec: 2768
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 5536
+ msec: 2784
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 5552
+ msec: 2800
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Key {
@@ -1633,67 +945,19 @@ VisualTest {
count: 1
}
Frame {
- msec: 5568
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5584
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5600
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5616
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5632
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5648
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5664
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5680
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5696
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5712
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5728
- hash: "3c455f51fea0926576077d55d6fbfbb2"
- }
- Frame {
- msec: 5744
+ msec: 2816
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 5760
- image: "qt-669.5.png"
- }
- Frame {
- msec: 5776
+ msec: 2832
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 5792
+ msec: 2848
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Frame {
- msec: 5808
+ msec: 2864
hash: "3c455f51fea0926576077d55d6fbfbb2"
}
Key {
@@ -1705,27 +969,19 @@ VisualTest {
count: 1
}
Frame {
- msec: 5824
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 5840
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 5856
- hash: "394360c0bff5ee3ad206d2911838d64e"
+ msec: 2880
+ image: "qt-669.2.png"
}
Frame {
- msec: 5872
+ msec: 2896
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 5888
+ msec: 2912
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 5904
+ msec: 2928
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Key {
@@ -1737,55 +993,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 5920
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 5936
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 5952
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 5968
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 5984
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 6000
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 6016
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 6032
- hash: "394360c0bff5ee3ad206d2911838d64e"
- }
- Frame {
- msec: 6048
+ msec: 2944
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 6064
+ msec: 2960
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 6080
+ msec: 2976
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 6096
+ msec: 2992
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Frame {
- msec: 6112
+ msec: 3008
hash: "394360c0bff5ee3ad206d2911838d64e"
}
Key {
@@ -1797,31 +1021,23 @@ VisualTest {
count: 1
}
Frame {
- msec: 6128
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 6144
- hash: "10573e4c9dab5bd6e46ec79949c098e5"
- }
- Frame {
- msec: 6160
+ msec: 3024
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6176
+ msec: 3040
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6192
+ msec: 3056
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6208
+ msec: 3072
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6224
+ msec: 3088
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Key {
@@ -1833,339 +1049,323 @@ VisualTest {
count: 1
}
Frame {
- msec: 6240
+ msec: 3104
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6256
+ msec: 3120
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6272
+ msec: 3136
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6288
+ msec: 3152
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6304
+ msec: 3168
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6320
+ msec: 3184
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6336
+ msec: 3200
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6352
+ msec: 3216
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6368
+ msec: 3232
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6384
+ msec: 3248
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6400
+ msec: 3264
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6416
+ msec: 3280
hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 6432
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Frame {
- msec: 6448
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
Frame {
- msec: 6464
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3296
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6480
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3312
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6496
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3328
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6512
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ msec: 3344
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6528
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3360
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6544
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3376
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6560
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3392
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6576
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3408
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6592
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3424
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6608
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3440
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6624
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3456
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6640
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3472
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6656
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3488
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6672
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3504
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6688
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3520
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6704
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3536
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6720
- image: "qt-669.6.png"
+ msec: 3552
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6736
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3568
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6752
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3584
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6768
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3600
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6784
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3616
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6800
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3632
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6816
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3648
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6832
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3664
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6848
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3680
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
Frame {
- msec: 6864
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3696
+ hash: "10573e4c9dab5bd6e46ec79949c098e5"
}
- Frame {
- msec: 6880
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
- msec: 6896
+ msec: 3712
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 6912
+ msec: 3728
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 6928
+ msec: 3744
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 6944
+ msec: 3760
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 6960
+ msec: 3776
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 6976
+ msec: 3792
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
- Frame {
- msec: 6992
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
- msec: 7008
+ msec: 3808
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7024
+ msec: 3824
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7040
- hash: "4e0ce00bde70a96774a6477ef2305b7f"
+ msec: 3840
+ image: "qt-669.3.png"
}
Frame {
- msec: 7056
+ msec: 3856
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7072
+ msec: 3872
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7088
+ msec: 3888
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7104
+ msec: 3904
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7120
+ msec: 3920
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7136
+ msec: 3936
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7152
+ msec: 3952
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7168
+ msec: 3968
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7184
+ msec: 3984
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7200
+ msec: 4000
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7216
+ msec: 4016
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7232
+ msec: 4032
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7248
+ msec: 4048
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7264
+ msec: 4064
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7280
+ msec: 4080
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7296
+ msec: 4096
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7312
+ msec: 4112
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7328
+ msec: 4128
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7344
+ msec: 4144
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7360
+ msec: 4160
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7376
+ msec: 4176
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7392
+ msec: 4192
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7408
+ msec: 4208
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7424
+ msec: 4224
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7440
+ msec: 4240
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7456
+ msec: 4256
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7472
+ msec: 4272
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7488
+ msec: 4288
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
Frame {
- msec: 7504
+ msec: 4304
hash: "4e0ce00bde70a96774a6477ef2305b7f"
}
}
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.0.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.0.png
index ec698cd..f04f65e 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.0.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.1.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.1.png
index 1d8761e..46a703a 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.1.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.2.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.2.png
index 2f2ba70..e4a3877 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.2.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.3.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.3.png
index 990a556..9ef842a 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.3.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.4.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.4.png
index 82a7086..706e2b3 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.4.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.5.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.5.png
index f277eae..bcc86cc 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.5.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.6.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.6.png
index aa881c3..51ddd44 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.6.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.7.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.7.png
index 4f7cd10..0a2fdda 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.7.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.8.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.8.png
index aac89b1..9c88bff 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.8.png
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.9.png b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.9.png
deleted file mode 100644
index 6196bd1..0000000
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.9.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.qml b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.qml
index 7211814..df2dd38 100644
--- a/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.qml
+++ b/tests/auto/declarative/visual/qmlgraphicstextinput/data/cursorDelegate.qml
@@ -132,73 +132,113 @@ VisualTest {
msec: 512
hash: "cd442d6dc4d155f54ae24f03d080f50c"
}
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
Frame {
msec: 528
- hash: "cd442d6dc4d155f54ae24f03d080f50c"
+ hash: "56db24ad686d34e75a2d184e5b1da2a9"
}
Frame {
msec: 544
- hash: "90af75eeef63ae67e9f6ff1a61d7cca3"
+ hash: "c3487c7c7dcd392e7eacb74045dd4143"
}
Frame {
msec: 560
- hash: "b9dcdd88fba70636cbcae160edcc0136"
+ hash: "70aedcda6c93875d18ee111d8a19549e"
}
Frame {
msec: 576
- hash: "679ee2b26a118ab53a84fa116de09edf"
+ hash: "47ad557d366536ad457f6866241dba93"
}
Frame {
msec: 592
- hash: "0fa12b48c08266f50e77506e4136dd56"
+ hash: "e715c2a82745829665226df78598b819"
}
Frame {
msec: 608
- hash: "7aed794eae2f0c65342f190ed4d4f889"
+ hash: "2ff4bd5602c34c020162f0503d625049"
}
Frame {
msec: 624
- hash: "23edee3af8f1904558863d37c520555a"
+ hash: "a494b3b25a23daa858034ebccce0d1c7"
}
Frame {
msec: 640
- hash: "2f9ed13e8a0d0edf098b05db02c04bdf"
+ hash: "59d2fb8e21802d256b11730b31919fb3"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 656
- hash: "86ed2aa2428feb9c6c14ad2a74e97978"
+ hash: "5e09b95292d6d0afe76a5015b0ccebf1"
}
Frame {
msec: 672
- hash: "e189dc0dae9457a6af5082c6ccf451b6"
+ hash: "de3c911aec7e42557ece4bdcf02ce562"
}
Frame {
msec: 688
- hash: "62d4bfa65bfdc50d24d9204f4df7bad8"
+ hash: "680f51f63c4b11a247a668eb7bbd2b62"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 704
- hash: "5a11ec8a0485a018ebe317e01136e4a5"
+ hash: "9aa569f7b251371bdd1cb05c8d3aab28"
}
Frame {
msec: 720
- hash: "9aa569f7b251371bdd1cb05c8d3aab28"
+ hash: "a242c9d5ed7f9aef0a0622dcb66d0a7e"
}
Frame {
msec: 736
- hash: "a242c9d5ed7f9aef0a0622dcb66d0a7e"
+ hash: "a0cb3f796fddf7100ca19aee3dedbea8"
}
Frame {
msec: 752
- hash: "a0cb3f796fddf7100ca19aee3dedbea8"
+ hash: "b4e273b6415e3951eab2f831100b0bb2"
}
Frame {
msec: 768
- hash: "b4e273b6415e3951eab2f831100b0bb2"
+ hash: "fd3fd655785c4e3c470f742451e3470f"
}
Frame {
msec: 784
- hash: "fd3fd655785c4e3c470f742451e3470f"
+ hash: "7a9b2057760e48d5f9cfdc79b08866d8"
+ }
+ Frame {
+ msec: 800
+ hash: "2a55b52db02d97963d382c9862307384"
+ }
+ Frame {
+ msec: 816
+ hash: "c6c90915393fc7cb0aaa464caefbadb0"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Key {
type: 6
@@ -209,28 +249,28 @@ VisualTest {
count: 1
}
Frame {
- msec: 800
- hash: "4220dde85eb1c027366efd0798927e8d"
- }
- Frame {
- msec: 816
- hash: "512b9746ae4482557b8cef9f99905954"
- }
- Frame {
msec: 832
- hash: "e7346d8f223684143a0940def878b874"
+ hash: "4f097223462c8f619188b0b0c2ecb080"
}
Frame {
msec: 848
- hash: "4f097223462c8f619188b0b0c2ecb080"
+ hash: "243be452ff0798538defc6a14cb8a08b"
}
Frame {
msec: 864
- hash: "243be452ff0798538defc6a14cb8a08b"
+ hash: "e5472ed9a8a43a64a0fea12540619940"
}
Frame {
msec: 880
- hash: "e5472ed9a8a43a64a0fea12540619940"
+ hash: "90b0f5f1aa7b5f066fb1266ea63254eb"
+ }
+ Frame {
+ msec: 896
+ hash: "97d5f9fe02e4bd06ec30a7805945f167"
+ }
+ Frame {
+ msec: 912
+ hash: "eb381a1e2ad945e4cfa540c137edbda7"
}
Key {
type: 7
@@ -241,20 +281,12 @@ VisualTest {
count: 1
}
Frame {
- msec: 896
- hash: "90b0f5f1aa7b5f066fb1266ea63254eb"
- }
- Frame {
- msec: 912
- hash: "97d5f9fe02e4bd06ec30a7805945f167"
- }
- Frame {
msec: 928
- hash: "eb381a1e2ad945e4cfa540c137edbda7"
+ hash: "75252ff61682fd32117f0759ebe4b6a1"
}
Frame {
msec: 944
- hash: "75252ff61682fd32117f0759ebe4b6a1"
+ hash: "d724bdacc59bce29d0a42d72479be0b6"
}
Frame {
msec: 960
@@ -262,15 +294,7 @@ VisualTest {
}
Frame {
msec: 976
- hash: "d7703c18b69f485bba3abd655100b50d"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 992
@@ -288,277 +312,269 @@ VisualTest {
msec: 1040
hash: "e3948b393a3778066a90197b31c71e51"
}
+ Frame {
+ msec: 1056
+ hash: "e3948b393a3778066a90197b31c71e51"
+ }
Key {
- type: 7
- key: 16777234
- modifiers: 0
+ type: 6
+ key: 16777248
+ modifiers: 33554432
text: ""
autorep: false
count: 1
}
- Frame {
- msec: 1056
- hash: "e3948b393a3778066a90197b31c71e51"
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 100663296
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 1072
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "d7703c18b69f485bba3abd655100b50d"
}
Frame {
msec: 1088
- hash: "a822d3eb3706788ac56b5daa014fe9d1"
+ hash: "d724bdacc59bce29d0a42d72479be0b6"
}
Frame {
msec: 1104
- hash: "ac714f3934ca3188d7cec77c2d7b8ef9"
+ hash: "75252ff61682fd32117f0759ebe4b6a1"
}
Frame {
msec: 1120
- hash: "49b60bcb0a6122d8363b924bbc22510d"
+ hash: "eb381a1e2ad945e4cfa540c137edbda7"
}
Frame {
msec: 1136
- hash: "fcc73bea3b386af2175918978a3930ff"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "97d5f9fe02e4bd06ec30a7805945f167"
}
Frame {
msec: 1152
- hash: "cf2762f6357ed5fcf6ceb994017a18c5"
+ hash: "90b0f5f1aa7b5f066fb1266ea63254eb"
}
Frame {
msec: 1168
- hash: "0fcbf1c7fa650de7f925ea36f5f2b85d"
+ hash: "e5472ed9a8a43a64a0fea12540619940"
}
Frame {
msec: 1184
- hash: "3d8aae5cf4a81aa46962652f64016eb0"
+ hash: "243be452ff0798538defc6a14cb8a08b"
}
Frame {
msec: 1200
- hash: "bc32d013342ffe96beeeadb9312b1081"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "4f097223462c8f619188b0b0c2ecb080"
}
Frame {
msec: 1216
- hash: "3341ce005686e044d0d1e61dd82e973f"
+ hash: "e7346d8f223684143a0940def878b874"
}
Frame {
msec: 1232
- hash: "6064af6e59a13fd64d1a79c286b9f2d7"
+ hash: "512b9746ae4482557b8cef9f99905954"
}
Frame {
msec: 1248
- hash: "0dd8d59ce276710bed7dcd371fdeb88a"
+ hash: "4220dde85eb1c027366efd0798927e8d"
}
Frame {
msec: 1264
- hash: "dd11369f671b922cf33542028baf7299"
+ hash: "54f7f94b5cdf1becb2ee61d7f6f02c0e"
}
Frame {
msec: 1280
- hash: "b1872308815a8ed02e4684bf1b05d218"
+ hash: "de09380dd57c58ae99fbdba169a19975"
}
Frame {
msec: 1296
- hash: "416178263988009b2659aa3cf0da9380"
+ hash: "bfc1b03df244839a012e8302dc07764f"
}
Frame {
msec: 1312
- hash: "b44310e7f78f6ea10d55cd4c24d6ad94"
+ hash: "d5f220e5337837ec0d07eb118e2f948e"
}
Frame {
msec: 1328
- hash: "d928a11606e8fb4c67c0b7a8ecc1ff59"
+ hash: "7640c78a286b0b7bdf2ec9117ceced4a"
}
Key {
type: 6
key: 16777234
- modifiers: 0
+ modifiers: 100663296
text: ""
autorep: false
count: 1
}
Frame {
msec: 1344
- hash: "14d25f3f3468fe16ced831cdc177022a"
+ hash: "c659fd76d632aac26d396809b57826dd"
}
Frame {
msec: 1360
- hash: "3b620550ff16e7cb8ab5cc8fb17ad785"
+ hash: "b5ba335eca37416970dcab53157d7ae6"
}
Frame {
msec: 1376
- hash: "62b0cd3aead2630545de2efb8f396c3a"
+ hash: "df498dac81260d8867221612ff3b7619"
}
Frame {
msec: 1392
- hash: "6500f3e6571d64645852e64439370d0f"
+ hash: "578c3a682278f4ead0ca894f029dbfb7"
}
Frame {
msec: 1408
- hash: "17dddb58ba52b5d2e5420ba922e55161"
+ hash: "5fe9b2365b091047df1b18bcaa5b1bb4"
+ }
+ Frame {
+ msec: 1424
+ hash: "c513b8df83f1d1cc3c05769c41741653"
}
Key {
type: 7
key: 16777234
- modifiers: 0
+ modifiers: 100663296
text: ""
autorep: false
count: 1
}
Frame {
- msec: 1424
- hash: "a13b215ea2d4e0c80fdc15784c76b5d9"
- }
- Frame {
msec: 1440
- hash: "e4e3df1b0c3a5fe23137ba946a9e69d3"
+ hash: "ee70a2002f52a3f4a9fa32db668db3d0"
}
Frame {
msec: 1456
- hash: "704b723fa0ed13c1ab0c0e230eca88e6"
+ hash: "3f299da38c2f3f9057df987d5d339e1f"
}
Frame {
msec: 1472
- hash: "7a364e644ce25241edfa2642c80fc14a"
+ hash: "55f6adbd00910e5f39977162cfe8dcc5"
}
Frame {
msec: 1488
- hash: "beb79f46ef8dc85bede608f561e2cce9"
+ hash: "151fb386855954ae5143046cab314ddf"
}
Frame {
msec: 1504
- hash: "9448e1162835c2bab615f30c69ff391e"
+ hash: "d9ec76b2c07077b5b6d6c3777d116164"
}
Frame {
msec: 1520
- hash: "10eacfde43a0cbea66736a67769dc1d3"
+ hash: "ef3ba6c27d9b28de829360985505c185"
}
Frame {
msec: 1536
- hash: "56cf4ae40c6bd8ccf3710d3fa7abb40f"
+ hash: "8eafd8f9aea08c172f40de3c4f2b3b59"
}
Frame {
msec: 1552
- hash: "14df3de6888f25f55f1c09ebe2fd6530"
+ hash: "2329d5b8182794bb8375f0de204c9b16"
}
Frame {
msec: 1568
- hash: "df55ac2630defd2cf519cb7edda4acc8"
+ hash: "e6b25cf1a8c6858f6937e649b1315955"
}
Frame {
msec: 1584
- hash: "adb2b0c763a065785da9dce43a5774a6"
+ hash: "3aeedff600509a138b0de31e10bbdd7b"
}
Frame {
msec: 1600
- hash: "9829d3726e19da204e48ed628e05f9ff"
+ hash: "0636dee0ddc551ce8ecf3a6c6300b020"
}
Frame {
msec: 1616
- hash: "6141475196769abd2051da566072a81e"
+ hash: "77f5b0dfdf0c631cf863be60bd09db9c"
}
Frame {
msec: 1632
- hash: "3f3df1294880b24619b71d44c91ca476"
+ hash: "2e86762371ae933546e8b2154c78f74b"
+ }
+ Frame {
+ msec: 1648
+ hash: "1051ec29f94c31b257a5b1c922f8e93f"
}
Key {
type: 6
- key: 16777234
- modifiers: 0
+ key: 16777236
+ modifiers: 100663296
text: ""
autorep: false
count: 1
}
Frame {
- msec: 1648
- hash: "e69a852f1d52940dd64232f238f8dbd8"
- }
- Frame {
msec: 1664
- hash: "fc2b51f6c152a6ed7f97cefe27f14a24"
+ hash: "5c60da876c8cc9fa334905b5fc7c2a3d"
}
Frame {
msec: 1680
- hash: "451e320a37356a5f3573938b759ff58b"
+ hash: "c0b0cddd62853ac3499b7ada200d206a"
}
Frame {
msec: 1696
- hash: "65ebec0c7fdbefbdcc35d9c097bcd654"
+ hash: "5bd588d64917f942e0f5ea1553acbf63"
}
Frame {
msec: 1712
- hash: "b3f5c16c8a56a03570a45189a1ec4a0f"
- }
- Frame {
- msec: 1728
- hash: "7891672c5ed584de49de4201c8ca81d9"
+ hash: "bc5744ef5c81b7d5b365bf977f909be5"
}
Key {
type: 7
- key: 16777234
- modifiers: 0
+ key: 16777236
+ modifiers: 100663296
text: ""
autorep: false
count: 1
}
Frame {
+ msec: 1728
+ hash: "892a1a8a5a9c198e5ae04cc19f0e1d0c"
+ }
+ Frame {
msec: 1744
- hash: "2602e01ad276f5e9116ed226ac87af48"
+ hash: "708799d2d834302c659958701e217b37"
}
Frame {
msec: 1760
- hash: "70fb0fd5e9fe08c83be78c411c4dd8c5"
+ hash: "360d75bcc178bcfd4f93741d653fd821"
}
Frame {
msec: 1776
- hash: "6f7fcb30e62b0785ae650ee1946125f3"
+ hash: "1cfe03528b1cd84e69efc02b9677c748"
}
Frame {
msec: 1792
- hash: "5c3819bcf8a96b0178d18c41bc7ebda7"
+ hash: "6f45d7c37f1fb90138011b2af24aaf1e"
}
Frame {
msec: 1808
- hash: "f8705997d6c89ee004de6fbc7686acd0"
+ hash: "ba164375e7ac18cf2e1e613498158fbf"
}
Frame {
msec: 1824
- hash: "5b495514831825aceed8ac715357c6ba"
+ hash: "14052b9da9e17a6f06fed05d4ed82b9c"
}
Frame {
msec: 1840
- hash: "f43c0dcafe7e737951120e25f2af38ea"
+ hash: "aac15ce22bfe38f44a46e4644913f144"
}
Frame {
msec: 1856
- hash: "4188c6571af3251253213fc1c720c383"
+ hash: "c63aa02ba29ea18334b188185690948d"
}
Frame {
msec: 1872
- hash: "911d4a2352b18376c60545b96a890948"
+ hash: "11ed187ccd4c2221f166851c08b6b467"
}
Frame {
msec: 1888
- hash: "3a6e6338cba1cb4619c7564ca49f2b30"
+ hash: "3543bd4e538981d4bb2c2313c9663a53"
}
Frame {
msec: 1904
- hash: "f3ebf35352f01bd73bbfcecdc49dc70d"
+ hash: "a05fa618b094bde2b54b730f513bcabe"
}
Frame {
msec: 1920
@@ -566,319 +582,327 @@ VisualTest {
}
Frame {
msec: 1936
- hash: "7d505004e5ec31546b7ae574043ba6f2"
+ hash: "52fc4a32526a74f9a04d8795c7a47c6e"
}
Frame {
msec: 1952
- hash: "c98b5d6b67b559f3de28f9298cc95f7b"
+ hash: "17623e1b0ffca3b7736ce930f078dbe0"
}
Frame {
msec: 1968
- hash: "36f141bcc565b1f01b23cc29013a696f"
+ hash: "75226dac5691627851d83c7370d7603c"
+ }
+ Key {
+ type: 7
+ key: 16777249
+ modifiers: 33554432
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 1984
- hash: "7e521964f15c4963ff3f99741703e9b5"
+ hash: "9e506ad52020e2913e80a13a7f3ac797"
}
Frame {
msec: 2000
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "9e506ad52020e2913e80a13a7f3ac797"
}
Frame {
msec: 2016
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "9e506ad52020e2913e80a13a7f3ac797"
}
Frame {
msec: 2032
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "9e506ad52020e2913e80a13a7f3ac797"
}
Frame {
msec: 2048
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "9e506ad52020e2913e80a13a7f3ac797"
}
Frame {
msec: 2064
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "75226dac5691627851d83c7370d7603c"
}
Frame {
msec: 2080
- hash: "7e521964f15c4963ff3f99741703e9b5"
+ hash: "17623e1b0ffca3b7736ce930f078dbe0"
}
Frame {
msec: 2096
- hash: "36f141bcc565b1f01b23cc29013a696f"
+ hash: "52fc4a32526a74f9a04d8795c7a47c6e"
}
Frame {
msec: 2112
- hash: "c98b5d6b67b559f3de28f9298cc95f7b"
+ hash: "89f2d3b4441faee557b8d5f44e1e1e18"
}
Frame {
msec: 2128
- hash: "7d505004e5ec31546b7ae574043ba6f2"
- }
- Key {
- type: 6
- key: 16777248
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 100663296
- text: ""
- autorep: false
- count: 1
+ hash: "a05fa618b094bde2b54b730f513bcabe"
}
Frame {
msec: 2144
- hash: "796916dcd72a5087199c2b8ff576d9cf"
+ hash: "3543bd4e538981d4bb2c2313c9663a53"
}
Frame {
msec: 2160
- hash: "f3ebf35352f01bd73bbfcecdc49dc70d"
+ hash: "11ed187ccd4c2221f166851c08b6b467"
}
Frame {
msec: 2176
- hash: "3a6e6338cba1cb4619c7564ca49f2b30"
+ hash: "c63aa02ba29ea18334b188185690948d"
}
Frame {
msec: 2192
- hash: "911d4a2352b18376c60545b96a890948"
+ hash: "aac15ce22bfe38f44a46e4644913f144"
}
Frame {
msec: 2208
- hash: "4188c6571af3251253213fc1c720c383"
+ hash: "14052b9da9e17a6f06fed05d4ed82b9c"
}
Frame {
msec: 2224
- hash: "f43c0dcafe7e737951120e25f2af38ea"
+ hash: "ba164375e7ac18cf2e1e613498158fbf"
}
Frame {
msec: 2240
- hash: "5b495514831825aceed8ac715357c6ba"
+ hash: "6f45d7c37f1fb90138011b2af24aaf1e"
}
Frame {
msec: 2256
- hash: "f8705997d6c89ee004de6fbc7686acd0"
+ hash: "1cfe03528b1cd84e69efc02b9677c748"
+ }
+ Key {
+ type: 7
+ key: 16777248
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 2272
- hash: "5c3819bcf8a96b0178d18c41bc7ebda7"
+ hash: "360d75bcc178bcfd4f93741d653fd821"
}
Frame {
msec: 2288
- hash: "6f7fcb30e62b0785ae650ee1946125f3"
+ hash: "708799d2d834302c659958701e217b37"
}
Frame {
msec: 2304
- hash: "70fb0fd5e9fe08c83be78c411c4dd8c5"
+ hash: "892a1a8a5a9c198e5ae04cc19f0e1d0c"
}
Frame {
msec: 2320
- hash: "2602e01ad276f5e9116ed226ac87af48"
+ hash: "bc5744ef5c81b7d5b365bf977f909be5"
}
Frame {
msec: 2336
- hash: "7891672c5ed584de49de4201c8ca81d9"
+ hash: "5bd588d64917f942e0f5ea1553acbf63"
}
Frame {
msec: 2352
- hash: "b3f5c16c8a56a03570a45189a1ec4a0f"
- }
- Frame {
- msec: 2368
- hash: "65ebec0c7fdbefbdcc35d9c097bcd654"
+ hash: "c0b0cddd62853ac3499b7ada200d206a"
}
Key {
type: 6
- key: 16777234
- modifiers: 100663296
+ key: 16777236
+ modifiers: 0
text: ""
autorep: false
count: 1
}
Frame {
+ msec: 2368
+ hash: "5c60da876c8cc9fa334905b5fc7c2a3d"
+ }
+ Frame {
msec: 2384
- hash: "a0d21a9830b7a78d6293a74429873367"
+ hash: "136a103a893991b97ec09f373c68c5b9"
}
Frame {
msec: 2400
- hash: "47d2c8b9f22d167c09e1a5e604768acc"
+ hash: "b2181ce0165ee060e1a8b713027011a9"
}
Frame {
msec: 2416
- hash: "a1606f2eb47b1981b3fc09994d5f3a2e"
+ hash: "e4836bbaf1834658e3ec4bf54a619b53"
}
Frame {
msec: 2432
- hash: "6a257e83d779670a8e4e94c926f658a0"
+ hash: "3072492f5f72427c8d45cf3c5d3ff919"
}
Frame {
msec: 2448
- hash: "0a782742341c137d7b7723e5b8dca531"
+ hash: "d897cba896239c77df4f7adb93ad5def"
+ }
+ Frame {
+ msec: 2464
+ hash: "ec9867a95de6d6f4c0f92af567d73771"
}
Key {
type: 7
- key: 16777234
- modifiers: 100663296
+ key: 16777236
+ modifiers: 0
text: ""
autorep: false
count: 1
}
Frame {
- msec: 2464
- hash: "fc0b9af8786c18dab89d85f77437e248"
- }
- Frame {
msec: 2480
- hash: "d34af5c58f1eb24c8980b5a8013d9a26"
+ hash: "06b72e3180eb946622e4592de0fa6f91"
}
Frame {
msec: 2496
- hash: "a685dfee70e7a53baf4160ac59094ec5"
+ hash: "33f109c026eaefed113cc12db5912a19"
}
Frame {
msec: 2512
- hash: "9fbc9a8d1592a4f5184ad7a94362c58c"
+ hash: "ce72c4b4470394dc1c4efd4d9de9907f"
}
Frame {
msec: 2528
- hash: "94eab6da73a70eedc2349f172b979602"
+ hash: "64ac1105ea10ae1f6401e8421731c606"
}
Frame {
msec: 2544
- hash: "4851f8cb23eea521a27c99acef972361"
+ hash: "ef977bd74941d3506b8f3ee4b1f587ad"
}
Frame {
msec: 2560
- hash: "0e00932eb52824a5d1e13153ca353f71"
+ hash: "9278de91e10788ae5a80399ff5372460"
}
Frame {
msec: 2576
- hash: "bdb57370df6a812685684a004da4b6b3"
+ hash: "ddaaf945a5f714b856ed5155f4e502b2"
}
Frame {
msec: 2592
- hash: "08e1f2c34b74bd9f3a564406dde4a5e3"
+ hash: "f6bb6ba15d996345df04825da71c2cf3"
}
Frame {
msec: 2608
- hash: "a6753fc779b51ec5fd99177356e17571"
+ hash: "466c78a5a5052b39b113adeda761da6c"
}
Frame {
msec: 2624
- hash: "cc9912af101aa9fc676921c45dff7e88"
+ hash: "db650537d773e0d8a737a7bf5f408a5e"
}
Frame {
msec: 2640
- hash: "29495f888c8f574a82d69af5dd861e4b"
+ hash: "64be9f85869f19defada296343895a2b"
}
Frame {
msec: 2656
- hash: "d189fcaa5ea17b0030139a48bc7bf561"
+ hash: "5ac6d9751bfadbc7aa064ca0b4d78b2b"
}
Frame {
msec: 2672
- hash: "5b73dc226f11c2b3c44ce9b338811d2c"
+ hash: "a088b351dcc6fc3a8d29256f3a2410c3"
}
Frame {
msec: 2688
- hash: "70978aa41243f15fb751ac61e2121673"
+ hash: "a16a77170a6c969042024fa0868da12d"
}
Frame {
msec: 2704
- hash: "e12b656fc042820d65bb293a25bf45df"
+ hash: "3a2509d0d3a314d2ed72f811f4af741e"
}
Frame {
msec: 2720
- hash: "38155df6417d88dc78eef4aaf762f663"
+ hash: "484db4e1954048cad7eea48bfea08267"
}
Frame {
msec: 2736
- hash: "208795950a60dea9aacd3747f6eab0b8"
+ hash: "ad0f84634c5f99ab62ab6d12ad8d8c6a"
}
Frame {
msec: 2752
- hash: "47359db1f54664550186b0359f396ad9"
+ hash: "d99b590307f6910963257a1c41c50120"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 2768
- hash: "1844b94d6fc16ee0a91a6487efdf70d7"
+ hash: "54f7f94b5cdf1becb2ee61d7f6f02c0e"
}
Frame {
msec: 2784
- hash: "4b45cfcbb00982801ed7c7d7412bb380"
+ hash: "4220dde85eb1c027366efd0798927e8d"
}
Frame {
msec: 2800
- hash: "5605a9132353126c5258e9a2743b836b"
+ hash: "512b9746ae4482557b8cef9f99905954"
}
Frame {
msec: 2816
- hash: "c22e8cca59c917f7d99cd3ffd9137a6c"
+ hash: "e7346d8f223684143a0940def878b874"
}
Frame {
msec: 2832
- hash: "f0180e38fa3d3e0112d1f9807877bdf3"
+ hash: "4f097223462c8f619188b0b0c2ecb080"
}
Frame {
msec: 2848
- hash: "45398bfb584506e05ccc5e8a2b46e996"
+ hash: "243be452ff0798538defc6a14cb8a08b"
}
Frame {
msec: 2864
- hash: "b4b6238099cd09a29cce28f4870eb455"
+ hash: "e5472ed9a8a43a64a0fea12540619940"
}
Frame {
msec: 2880
image: "cursorDelegate.2.png"
}
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
Frame {
msec: 2896
- hash: "3d247e380e19ec8497f441f9228783c7"
+ hash: "97d5f9fe02e4bd06ec30a7805945f167"
}
Frame {
msec: 2912
- hash: "c287f209a45d8d46be57afa3d8e0bd1c"
+ hash: "eb381a1e2ad945e4cfa540c137edbda7"
}
Frame {
msec: 2928
- hash: "b6ff7bde677960481e71333e1a912729"
+ hash: "75252ff61682fd32117f0759ebe4b6a1"
}
Frame {
msec: 2944
- hash: "67ac6f886d9f35795705a7a86ecc15f4"
+ hash: "d724bdacc59bce29d0a42d72479be0b6"
}
Frame {
msec: 2960
- hash: "8e4842bc0b6a3ae1ee6cfc0e220753f8"
+ hash: "d7703c18b69f485bba3abd655100b50d"
}
Frame {
msec: 2976
- hash: "e5edd18389b26851e5cbe84ac00a2f62"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 2992
- hash: "d5ac74c9eda240864177096f27c19ad6"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 3008
- hash: "d5ac74c9eda240864177096f27c19ad6"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 3024
- hash: "d5ac74c9eda240864177096f27c19ad6"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 100663296
- text: ""
- autorep: false
- count: 1
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 3040
@@ -890,227 +914,195 @@ VisualTest {
}
Frame {
msec: 3072
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "d7703c18b69f485bba3abd655100b50d"
}
Frame {
msec: 3088
- hash: "8f9dacb4e67808ff78fcdd62274c0c7c"
+ hash: "d724bdacc59bce29d0a42d72479be0b6"
}
Frame {
msec: 3104
- hash: "e92c44fb4ad550bb7421b831363bf4d4"
+ hash: "75252ff61682fd32117f0759ebe4b6a1"
}
Frame {
msec: 3120
- hash: "ec2c1e1aef0e1e0116a4feceb31c8d7b"
+ hash: "eb381a1e2ad945e4cfa540c137edbda7"
}
Frame {
msec: 3136
- hash: "5c1f0a3a19152b7e43969eb89507820c"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 100663296
- text: ""
- autorep: false
- count: 1
+ hash: "97d5f9fe02e4bd06ec30a7805945f167"
}
Frame {
msec: 3152
- hash: "490d1c455b155648d430d45e291a4c91"
+ hash: "90b0f5f1aa7b5f066fb1266ea63254eb"
}
Frame {
msec: 3168
- hash: "d54ad0b2f40faf7f5639f78acec0d000"
+ hash: "e5472ed9a8a43a64a0fea12540619940"
}
Frame {
msec: 3184
- hash: "a1fe3db1c5e7d137b40dea619f1766a9"
+ hash: "243be452ff0798538defc6a14cb8a08b"
}
Frame {
msec: 3200
- hash: "e04893deffc38729617a66ffa33dbf9f"
+ hash: "4f097223462c8f619188b0b0c2ecb080"
}
Frame {
msec: 3216
- hash: "be6694a7989438ae34bff4271eec42b5"
+ hash: "e7346d8f223684143a0940def878b874"
}
Frame {
msec: 3232
- hash: "d8b3e6b235f3510768b0171596c0fc3c"
+ hash: "512b9746ae4482557b8cef9f99905954"
}
Frame {
msec: 3248
- hash: "1f2e9a90eef3042ad97f6180520f19cf"
+ hash: "4220dde85eb1c027366efd0798927e8d"
}
Frame {
msec: 3264
- hash: "059c111be9c62b81115218ede8328083"
+ hash: "54f7f94b5cdf1becb2ee61d7f6f02c0e"
}
Frame {
msec: 3280
- hash: "04645b3dba9272950509585fb8ec3611"
- }
- Key {
- type: 7
- key: 16777249
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
+ hash: "de09380dd57c58ae99fbdba169a19975"
}
Frame {
msec: 3296
- hash: "a2d160393610cb55e2f1651ef247558b"
+ hash: "bfc1b03df244839a012e8302dc07764f"
}
Frame {
msec: 3312
- hash: "7fcd2288e60023a04fc2c1c518a8ce24"
+ hash: "d5f220e5337837ec0d07eb118e2f948e"
}
Frame {
msec: 3328
- hash: "d06abd6fec1ac1ea0ce4b37a5296b18d"
+ hash: "7640c78a286b0b7bdf2ec9117ceced4a"
}
Frame {
msec: 3344
- hash: "4073a65ce2169328174ff8acc0904a56"
+ hash: "680f51f63c4b11a247a668eb7bbd2b62"
}
Frame {
msec: 3360
- hash: "ed681e1b35e373a89195fd121767a5a2"
+ hash: "de3c911aec7e42557ece4bdcf02ce562"
}
Frame {
msec: 3376
- hash: "6711c4d7418d4848f4b7f340371d30ea"
+ hash: "5e09b95292d6d0afe76a5015b0ccebf1"
}
Frame {
msec: 3392
- hash: "5424fd998bcf94f5e159ae553b8186f0"
+ hash: "59d2fb8e21802d256b11730b31919fb3"
}
Frame {
msec: 3408
- hash: "29d1a7c3ca714f2b5555c2b8f4e16acf"
+ hash: "a494b3b25a23daa858034ebccce0d1c7"
}
Frame {
msec: 3424
- hash: "498152d87a9e608f3dd1227a47a53938"
+ hash: "2ff4bd5602c34c020162f0503d625049"
}
Frame {
msec: 3440
- hash: "de3669854e357a1d27b9fde41f47595d"
+ hash: "e715c2a82745829665226df78598b819"
}
Frame {
msec: 3456
- hash: "04524fc53f8c06430e9ee8730d4b0ce4"
+ hash: "47ad557d366536ad457f6866241dba93"
}
Frame {
msec: 3472
- hash: "3fdf5ed8baf9b19a11b1bc192b36e78b"
+ hash: "70aedcda6c93875d18ee111d8a19549e"
}
Frame {
msec: 3488
- hash: "a58dea8435926ea2a8a52890df980a5b"
+ hash: "c3487c7c7dcd392e7eacb74045dd4143"
}
Frame {
msec: 3504
- hash: "bf648f584aa05ef228fffbdad91416a1"
+ hash: "56db24ad686d34e75a2d184e5b1da2a9"
}
Frame {
msec: 3520
- hash: "122c7a1c61fc2ec3ad0b36a14f69d63f"
+ hash: "436349a8371597a74404428983cd894c"
}
Frame {
msec: 3536
- hash: "4ea2ca59536c1ab74a6f515bb7291f49"
+ hash: "6e1bb59ec518614a0414092f4939d5ad"
}
Frame {
msec: 3552
- hash: "63f2430b48f3d9fe68d7d408b09167b2"
+ hash: "f0aa02772df579b921e0c68f794d2327"
}
Frame {
msec: 3568
- hash: "1f8d534ed508b2c1fcbce82a1756633f"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
+ hash: "09ea1462da333c2aeaaa01e9e4f8d54b"
}
Frame {
msec: 3584
- hash: "4f58e9a12b0bce4f3dd4b1fe15fd14fe"
+ hash: "46d23d8472ce833591dcff548a644288"
}
Frame {
msec: 3600
- hash: "dc20813dc0183c14baed858e8754e277"
+ hash: "a7566d5d35a89078bb378bf3f6c78e13"
}
Frame {
msec: 3616
- hash: "c6461a18e86bd2e92a14f4198bccaad8"
+ hash: "4c5f7155b20e34a5627387cdc466e890"
}
Frame {
msec: 3632
- hash: "f2d7224931085fe33e73605ad23ec474"
+ hash: "e9b98922327c412db0116a56283d3c86"
}
Frame {
msec: 3648
- hash: "978cf09c8ebc1d436c17ef997d1f674f"
+ hash: "29ffede9c16c34ead5f291e69e388084"
}
Frame {
msec: 3664
- hash: "53e012b074b4ce5ff92f3e3c26f16ae5"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
+ hash: "16958b8f0b1dbdc15333d99bd1349124"
}
Frame {
msec: 3680
- hash: "504397c6b18d042381c184296906eda0"
+ hash: "3408f8d6e4d6ef34d4d5a0cb51090c4c"
}
Frame {
msec: 3696
- hash: "9b225a60a8e493e64825f2115dd405d1"
+ hash: "b32b099b260789266d0a3c0edd61c04e"
}
Frame {
msec: 3712
- hash: "f5ab337eab9a18961bf94151e6d1009a"
+ hash: "4dd3617b25e8b95cf2ec31db8b3bb80f"
}
Frame {
msec: 3728
- hash: "97511b93e19751491a7b5067f0198303"
+ hash: "46b42a08c59909f067810d1984f7a04e"
}
Frame {
msec: 3744
- hash: "2f36748ab7cfdda1ddd032c2cb21decc"
+ hash: "ab8c505601c381e8a44fa7b6eea6579d"
}
Frame {
msec: 3760
- hash: "95aac396434448d2f54bbc2a909d9140"
+ hash: "73f56e6e1d2cbf3f559d679eb2c15529"
}
Frame {
msec: 3776
- hash: "a190b6c95be7812107db4b8b45527655"
+ hash: "b230c56da330823d7d7f7e081c304acb"
}
Frame {
msec: 3792
- hash: "20d7cbff4a603d546f060c88f73a5107"
+ hash: "9f3cbd0023dbd78ba4951c26f71c7d5d"
}
Frame {
msec: 3808
- hash: "0871b1eb79bdd1ff25789adf981ba54d"
+ hash: "9e9b11cf2695dd02c1ab175ff194f491"
}
Frame {
msec: 3824
- hash: "857d78e88992fb23bf50a91bad0ec800"
+ hash: "8fa6f8eb5deb0ab95c3454e5812ada1d"
}
Frame {
msec: 3840
@@ -1118,287 +1110,271 @@ VisualTest {
}
Frame {
msec: 3856
- hash: "25a8cf4df57c322cf71f254917e30aed"
+ hash: "0b6b24ae8df7c3aa9abb48edb6619d8a"
}
Frame {
msec: 3872
- hash: "a7a5300347d00d8eda2ef96efccda179"
+ hash: "45805295dd2482fdf21ac8c9bfe47869"
}
Frame {
msec: 3888
- hash: "e6abe54cf03f02f62d7d897b7ec5bf82"
+ hash: "4893cd31a730d786f075edfd0afc0ad9"
}
Frame {
msec: 3904
- hash: "90f4ba6ff58fb740cb47f25f999e4231"
+ hash: "a3fbfe732568f5cf6e63809fd7e0c32e"
}
Frame {
msec: 3920
- hash: "8b99d52bc804832a0475b67338b396fa"
+ hash: "21d3327710d51f714e84b5a28df13e4f"
}
Frame {
msec: 3936
- hash: "b84dc15391c63cb2f0ba2d6761337839"
+ hash: "ea065ab48f27f60505eab36debee3faa"
}
Frame {
msec: 3952
- hash: "0fddad686fe39d7dc08d53abf927f836"
+ hash: "fe4c2e368d2110374b7ba9e30f330713"
}
Frame {
msec: 3968
- hash: "52bc93f0a4f4b164347d9d23ee15ea9e"
+ hash: "723281f6c1a3f03cf170e4de93fa4dbf"
}
Frame {
msec: 3984
- hash: "96e9e80206ee788f208fa1404e7a6bac"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 4000
- hash: "a51d3632e7538fb9cb659a039ed3cbd2"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 4016
- hash: "a51d3632e7538fb9cb659a039ed3cbd2"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 4032
- hash: "a51d3632e7538fb9cb659a039ed3cbd2"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 4048
- hash: "a51d3632e7538fb9cb659a039ed3cbd2"
+ hash: "e3948b393a3778066a90197b31c71e51"
+ }
+ Frame {
+ msec: 4064
+ hash: "723281f6c1a3f03cf170e4de93fa4dbf"
}
Key {
type: 6
- key: 16777236
- modifiers: 33554432
+ key: 16777232
+ modifiers: 0
text: ""
autorep: false
count: 1
}
Frame {
- msec: 4064
- hash: "e3948b393a3778066a90197b31c71e51"
- }
- Frame {
msec: 4080
- hash: "7e521964f15c4963ff3f99741703e9b5"
+ hash: "c779e46a89c3c9d0f8234a3192175b60"
}
Frame {
msec: 4096
- hash: "36f141bcc565b1f01b23cc29013a696f"
+ hash: "f223cfeba468e161943b24ac960196de"
}
Frame {
msec: 4112
- hash: "c98b5d6b67b559f3de28f9298cc95f7b"
+ hash: "dd2f21f063d055edc23c874380149067"
+ }
+ Frame {
+ msec: 4128
+ hash: "af580b32b67117eb062bbcefe262c719"
}
Key {
type: 7
- key: 16777236
- modifiers: 33554432
+ key: 16777232
+ modifiers: 0
text: ""
autorep: false
count: 1
}
Frame {
- msec: 4128
- hash: "7d505004e5ec31546b7ae574043ba6f2"
- }
- Frame {
msec: 4144
- hash: "796916dcd72a5087199c2b8ff576d9cf"
+ hash: "991f76d483e033024932790f85bb3c5d"
}
Frame {
msec: 4160
- hash: "f3ebf35352f01bd73bbfcecdc49dc70d"
+ hash: "3d8aa66ab9533d14a468f0869b457033"
}
Frame {
msec: 4176
- hash: "3a6e6338cba1cb4619c7564ca49f2b30"
+ hash: "a5540bd5d088ab1201b5f22b32579d7c"
}
Frame {
msec: 4192
- hash: "911d4a2352b18376c60545b96a890948"
+ hash: "e0844f30578fef2cdcee4e4ff28ab7cf"
}
Frame {
msec: 4208
- hash: "4188c6571af3251253213fc1c720c383"
+ hash: "710e7022b65a9b3fd3a7372bf7f37c7a"
}
Frame {
msec: 4224
- hash: "f43c0dcafe7e737951120e25f2af38ea"
+ hash: "db553c856b11db7e6feb38b9d562a804"
}
Frame {
msec: 4240
- hash: "5b495514831825aceed8ac715357c6ba"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
+ hash: "6ba56c4ec6e903b0d82235c230ed78cb"
}
Frame {
msec: 4256
- hash: "522551c85a1cb90ee2c6a27f4b23d65c"
+ hash: "786de35a11c3fc1a228392195f509c28"
}
Frame {
msec: 4272
- hash: "ccdde43fa55279b127e686785cbcb239"
+ hash: "cc6307597cea821b63391fc9bdbe038b"
}
Frame {
msec: 4288
- hash: "86d70781574740c9b4822c3b16b9cc9a"
+ hash: "73d49e4d0bef103e11820d888bef0368"
}
Frame {
msec: 4304
- hash: "4da8f4cb685683977955fab8d7689d0e"
+ hash: "b2ed6ebf66252463326c2f220b3992fa"
}
Frame {
msec: 4320
- hash: "3e2b20a802f396413b234adcb2d84886"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
+ hash: "129b5bc6d55621e2366fc0d80f105df2"
}
Frame {
msec: 4336
- hash: "9330c594d485ad6fa81c2f34aa3b51ef"
+ hash: "ae8fe55fa9b497cd6eff18a517c301d8"
}
Frame {
msec: 4352
- hash: "2a07b6d74742bac77bb827b6d01f77e6"
+ hash: "535210bd848a20db2966b06278198e07"
}
Frame {
msec: 4368
- hash: "dc678fc3ffdabcff16c4a623583ff3ef"
+ hash: "1f4ea7783b5c60bfc424c73cea07a3a0"
}
Frame {
msec: 4384
- hash: "5f65476194ed7329f6336fd880b8d6f2"
+ hash: "5b61f2e9308c4de2864bb7cf133ce545"
}
Frame {
msec: 4400
- hash: "2ba2e985276d8532154292f164364b37"
+ hash: "f641f87e9556ecfd24f0f0a772295e52"
}
Frame {
msec: 4416
- hash: "3295bdffd4f23d141297e9d19b2dd5a2"
+ hash: "36f28574c0b042647bc064d75afa9fbc"
}
Frame {
msec: 4432
- hash: "acfa09b8cc5da4dc375b84cd1ccbe30d"
+ hash: "dba2ca165b8ab35113b8ec127b204ae9"
}
Frame {
msec: 4448
- hash: "b692125e34c366c41e367109fa9257c8"
+ hash: "56324b95f63eabba718df588159f374d"
}
Frame {
msec: 4464
- hash: "929f435a601c675066a8124741f5de28"
+ hash: "af65d67fef3c743e31acca03716040c4"
}
Frame {
msec: 4480
- hash: "b61fec4eeef2141ec6d615a462245e87"
+ hash: "105481b5becd127af4c28961d900148c"
}
Frame {
msec: 4496
- hash: "b35940dbf2ff71062e6d3db4f9e2b2be"
+ hash: "4859d6bf9c456e52fd463e4c2f68d7f6"
}
Frame {
msec: 4512
- hash: "1636936fb5d1f29673922ce860a34d86"
+ hash: "21c0958bd3c6a1056bb062165c9bc18b"
}
Frame {
msec: 4528
- hash: "ca04fe11183e2d262a1cd6ef15fe49ec"
+ hash: "287d258a79f45c26c92c69cce6b1a2f3"
}
Frame {
msec: 4544
- hash: "baa57e091ceeb047d2c55bda05ee62e8"
+ hash: "deabc5c7dd111adcb253eb833f118764"
}
Frame {
msec: 4560
- hash: "480bbf99b0a521cbcc6f091fb607859f"
+ hash: "4bad7380f6b645c551edbe06ff67cac9"
}
Frame {
msec: 4576
- hash: "4bd65a2479a0c3c9ec8e977a30de7c8d"
+ hash: "67fc71c16d0b9405c35590bafdc5ea40"
}
Key {
type: 6
- key: 16777249
- modifiers: 100663296
+ key: 16777233
+ modifiers: 0
text: ""
autorep: false
count: 1
}
Frame {
msec: 4592
- hash: "54a1afd19756a383a6df699a3ddfa142"
+ hash: "7aed794eae2f0c65342f190ed4d4f889"
}
Frame {
msec: 4608
- hash: "15243c00773a5111dd1ec278297f7ca6"
+ hash: "23edee3af8f1904558863d37c520555a"
}
Frame {
msec: 4624
- hash: "2f646700f48de22d0508a87623fd36c9"
+ hash: "2f9ed13e8a0d0edf098b05db02c04bdf"
+ }
+ Key {
+ type: 7
+ key: 16777233
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
}
Frame {
msec: 4640
- hash: "d5841e53645b36641fac2efba7a22b2f"
+ hash: "86ed2aa2428feb9c6c14ad2a74e97978"
}
Frame {
msec: 4656
- hash: "9995211df69d50e1c1ce50bd9c8d0822"
+ hash: "e189dc0dae9457a6af5082c6ccf451b6"
}
Frame {
msec: 4672
- hash: "7a8e4ac72f3729774d8bb017b5bb918b"
+ hash: "62d4bfa65bfdc50d24d9204f4df7bad8"
}
Frame {
msec: 4688
- hash: "ffb7a66844fee5650d390ebd8d3896e0"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 100663296
- text: ""
- autorep: false
- count: 1
+ hash: "5a11ec8a0485a018ebe317e01136e4a5"
}
Frame {
msec: 4704
- hash: "d7c05b96d5824c965833548f43aa1b93"
+ hash: "9aa569f7b251371bdd1cb05c8d3aab28"
}
Frame {
msec: 4720
- hash: "df82f608f1a1a7be0be0c7e34947ff97"
+ hash: "a242c9d5ed7f9aef0a0622dcb66d0a7e"
}
Frame {
msec: 4736
- hash: "f340d3cd51c2af8cb80e50bd3ae92e91"
+ hash: "a0cb3f796fddf7100ca19aee3dedbea8"
}
Frame {
msec: 4752
- hash: "cb6bd6af65abc600cfd55448047e3065"
+ hash: "b4e273b6415e3951eab2f831100b0bb2"
}
Frame {
msec: 4768
- hash: "569ffbf933a4f1c4e5358e2d20276991"
+ hash: "fd3fd655785c4e3c470f742451e3470f"
}
Frame {
msec: 4784
- hash: "a81308d5fb238aef9379a65d1fb3a8a4"
+ hash: "7a9b2057760e48d5f9cfdc79b08866d8"
}
Frame {
msec: 4800
@@ -1406,339 +1382,299 @@ VisualTest {
}
Frame {
msec: 4816
- hash: "a968bc553ccd8836f676fd0483bf2210"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 100663296
- text: ""
- autorep: false
- count: 1
+ hash: "c6c90915393fc7cb0aaa464caefbadb0"
}
Frame {
msec: 4832
- hash: "495632cad06414dfd6128b50db417a3b"
+ hash: "36b65658073ac2687dbd88ec7a408a98"
}
Frame {
msec: 4848
- hash: "3559c212dd8093eee9a3a89bdf76ad3e"
+ hash: "84e165f9f2c55c5c51a260b11ca195c2"
}
Frame {
msec: 4864
- hash: "0bd6b99421ccff9de159dcec4c3ce4ea"
+ hash: "c11cfcfda6f161d058a3d9e93349b578"
}
Frame {
msec: 4880
- hash: "679dae270660877a3d195a541bb97e26"
+ hash: "0568f8c0e1fa51b7547790a7f4978ea3"
}
Frame {
msec: 4896
- hash: "412339cfe7dff6b955730a499cb4292d"
+ hash: "b66fd97ac36ac395df74e9a0dd58d0c7"
}
Frame {
msec: 4912
- hash: "2415f3a5784d4f785760605bf169d774"
+ hash: "31b5b3d68e452ffd90e9804ff9e9a264"
}
Frame {
msec: 4928
- hash: "7bf2a320ffad5ea3d9db7a203e303b04"
+ hash: "3cc8791e419986e1e913d4e153243fb2"
}
Frame {
msec: 4944
- hash: "51bb398194848c6a31456eb1b2bd4c52"
+ hash: "ff1b3ce85bc9f3dd3feb90fa31c3bc0a"
}
Frame {
msec: 4960
- hash: "ee7029a8a2050fff9e61a60bd80b8a38"
+ hash: "d3ae969e538c642d82662d08ef05964e"
}
Frame {
msec: 4976
- hash: "ec5a9b265900d814fce1aec6ac4e7742"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 4992
- hash: "b829fc01b5a16034fa682d19b23d1ce2"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 5008
- hash: "b829fc01b5a16034fa682d19b23d1ce2"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 5024
- hash: "b829fc01b5a16034fa682d19b23d1ce2"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 5040
- hash: "b829fc01b5a16034fa682d19b23d1ce2"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 5056
- hash: "b829fc01b5a16034fa682d19b23d1ce2"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 5072
- hash: "b829fc01b5a16034fa682d19b23d1ce2"
+ hash: "d3ae969e538c642d82662d08ef05964e"
}
Frame {
msec: 5088
- hash: "ec5a9b265900d814fce1aec6ac4e7742"
+ hash: "ff1b3ce85bc9f3dd3feb90fa31c3bc0a"
}
Frame {
msec: 5104
- hash: "ee7029a8a2050fff9e61a60bd80b8a38"
+ hash: "3cc8791e419986e1e913d4e153243fb2"
}
Frame {
msec: 5120
- hash: "51bb398194848c6a31456eb1b2bd4c52"
+ hash: "31b5b3d68e452ffd90e9804ff9e9a264"
}
Frame {
msec: 5136
- hash: "7bf2a320ffad5ea3d9db7a203e303b04"
+ hash: "b66fd97ac36ac395df74e9a0dd58d0c7"
}
Frame {
msec: 5152
- hash: "2415f3a5784d4f785760605bf169d774"
+ hash: "0568f8c0e1fa51b7547790a7f4978ea3"
}
Frame {
msec: 5168
- hash: "412339cfe7dff6b955730a499cb4292d"
+ hash: "c11cfcfda6f161d058a3d9e93349b578"
}
Frame {
msec: 5184
- hash: "679dae270660877a3d195a541bb97e26"
- }
- Key {
- type: 7
- key: 16777248
- modifiers: 67108864
- text: ""
- autorep: false
- count: 1
+ hash: "84e165f9f2c55c5c51a260b11ca195c2"
}
Frame {
msec: 5200
- hash: "0bd6b99421ccff9de159dcec4c3ce4ea"
+ hash: "36b65658073ac2687dbd88ec7a408a98"
}
Frame {
msec: 5216
- hash: "3559c212dd8093eee9a3a89bdf76ad3e"
+ hash: "c6c90915393fc7cb0aaa464caefbadb0"
}
Frame {
msec: 5232
- hash: "495632cad06414dfd6128b50db417a3b"
+ hash: "2a55b52db02d97963d382c9862307384"
}
Frame {
msec: 5248
- hash: "a968bc553ccd8836f676fd0483bf2210"
+ hash: "7a9b2057760e48d5f9cfdc79b08866d8"
}
Frame {
msec: 5264
- hash: "99b7a5c76ef5592a9891bcf0659d0070"
+ hash: "fd3fd655785c4e3c470f742451e3470f"
}
Frame {
msec: 5280
- hash: "a81308d5fb238aef9379a65d1fb3a8a4"
+ hash: "b4e273b6415e3951eab2f831100b0bb2"
}
Frame {
msec: 5296
- hash: "569ffbf933a4f1c4e5358e2d20276991"
+ hash: "a0cb3f796fddf7100ca19aee3dedbea8"
}
Frame {
msec: 5312
- hash: "cb6bd6af65abc600cfd55448047e3065"
+ hash: "a242c9d5ed7f9aef0a0622dcb66d0a7e"
}
Frame {
msec: 5328
- hash: "f340d3cd51c2af8cb80e50bd3ae92e91"
+ hash: "9aa569f7b251371bdd1cb05c8d3aab28"
}
Frame {
msec: 5344
- hash: "df82f608f1a1a7be0be0c7e34947ff97"
+ hash: "5a11ec8a0485a018ebe317e01136e4a5"
}
Frame {
msec: 5360
- hash: "d7c05b96d5824c965833548f43aa1b93"
+ hash: "62d4bfa65bfdc50d24d9204f4df7bad8"
}
Frame {
msec: 5376
- hash: "f282bd326e2b0f0f23e39f947f3b1981"
+ hash: "e189dc0dae9457a6af5082c6ccf451b6"
}
Frame {
msec: 5392
- hash: "aac603e2c8251ca60b3cf66e89d7a98d"
+ hash: "86ed2aa2428feb9c6c14ad2a74e97978"
}
Frame {
msec: 5408
- hash: "49bb3dab6af1c472dc5af65671bffcaa"
+ hash: "2f9ed13e8a0d0edf098b05db02c04bdf"
}
Frame {
msec: 5424
- hash: "660feb1c8ad047e1e4c5544938ff6d22"
+ hash: "23edee3af8f1904558863d37c520555a"
}
Frame {
msec: 5440
- hash: "b9cc37e6cd6753b59d5dda833498a386"
+ hash: "7aed794eae2f0c65342f190ed4d4f889"
}
Frame {
msec: 5456
- hash: "67fa847fb21ab53acf97167678fabd7c"
+ hash: "0fa12b48c08266f50e77506e4136dd56"
}
Frame {
msec: 5472
- hash: "1b0814a42f774b608a14340a343b0efd"
- }
- Key {
- type: 7
- key: 16777249
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "679ee2b26a118ab53a84fa116de09edf"
}
Frame {
msec: 5488
- hash: "5941d1b6e76646ac9553ac5a1e15f8cf"
+ hash: "b9dcdd88fba70636cbcae160edcc0136"
}
Frame {
msec: 5504
- hash: "3867b05b3624edd19f88770c680bbb08"
+ hash: "90af75eeef63ae67e9f6ff1a61d7cca3"
}
Frame {
msec: 5520
- hash: "79dda9805824211ed611ee6b93a29524"
+ hash: "29d80ae32451c24b655c4d1fd01d3aa1"
}
Frame {
msec: 5536
- hash: "0fb4e946ca6a4f1bfbc2e7480c603368"
+ hash: "c73fe137644cbc006d0b5274b72faa46"
}
Frame {
msec: 5552
- hash: "b2aeab24ffb0353f27ba9b5e9a588486"
+ hash: "8a4d76ae60f5d720a382cced2f6a2b5e"
}
Frame {
msec: 5568
- hash: "24a43d9fadec6f90d81d17ae83c81da7"
+ hash: "a1efa0d424d568d338c6db9fc095c2fb"
}
Frame {
msec: 5584
- hash: "1ec444e3ccf78551ba861a84731644aa"
+ hash: "205cafcabb29b78a6db3dcaf44a74ab6"
}
Frame {
msec: 5600
- hash: "993e51bcfac06cdcabf38c709975412c"
+ hash: "7507a3d2158d4cc68454c85922526871"
}
Frame {
msec: 5616
- hash: "263dbd9d4e4ca9985ca48bfa6e554fd2"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
+ hash: "7135a6a7999e82cb81e39228805332ee"
}
Frame {
msec: 5632
- hash: "671efc2d0c287f2a56c5faaa56f6e7c2"
+ hash: "ac2b714b5f32d2b911f31690d7082dc1"
}
Frame {
msec: 5648
- hash: "e69a852f1d52940dd64232f238f8dbd8"
+ hash: "5cb1ae6d86aafdf11284480c81b939dc"
}
Frame {
msec: 5664
- hash: "fc2b51f6c152a6ed7f97cefe27f14a24"
+ hash: "ac705840cc94eb4af7a52d62649d0157"
}
Frame {
msec: 5680
- hash: "451e320a37356a5f3573938b759ff58b"
+ hash: "8c2ebcd80e26ac7b9d25be486f54c4ce"
}
Frame {
msec: 5696
- hash: "65ebec0c7fdbefbdcc35d9c097bcd654"
+ hash: "12b84aa02dbbab3592d3eb3cb6884b41"
}
Frame {
msec: 5712
- hash: "b3f5c16c8a56a03570a45189a1ec4a0f"
+ hash: "675043ddde6ed65a3ec4ed093be1e760"
}
Frame {
msec: 5728
- hash: "7891672c5ed584de49de4201c8ca81d9"
+ hash: "478126aeef5ddae9c0a77d08294cf3f2"
}
Frame {
msec: 5744
- hash: "2602e01ad276f5e9116ed226ac87af48"
+ hash: "0b43af73d91a500ccdf27b4347b9bc47"
}
Frame {
msec: 5760
image: "cursorDelegate.5.png"
}
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
Frame {
msec: 5776
- hash: "6f7fcb30e62b0785ae650ee1946125f3"
+ hash: "a6d8708d08bedf0cab5230d6f2936936"
}
Frame {
msec: 5792
- hash: "5c3819bcf8a96b0178d18c41bc7ebda7"
+ hash: "02e0646024aeef6f01b7541b15267baa"
}
Frame {
msec: 5808
- hash: "f8705997d6c89ee004de6fbc7686acd0"
+ hash: "da6717c94b46ad7a647c445c06314b0d"
}
Frame {
msec: 5824
- hash: "5b495514831825aceed8ac715357c6ba"
+ hash: "2ed12d49d72884160ebbf6b6d0e15a9d"
}
Frame {
msec: 5840
- hash: "f43c0dcafe7e737951120e25f2af38ea"
+ hash: "a1fbc3333b7f742a8336a6fcbad156c9"
}
Frame {
msec: 5856
- hash: "4188c6571af3251253213fc1c720c383"
+ hash: "25cac33299d58cdd7775e8b75410085e"
}
Frame {
msec: 5872
- hash: "911d4a2352b18376c60545b96a890948"
+ hash: "5d81833eb342f632945c0571e18cb1f9"
}
Frame {
msec: 5888
- hash: "3a6e6338cba1cb4619c7564ca49f2b30"
+ hash: "23f6f2a7d971494af43a0fb97dbf8fb5"
}
Frame {
msec: 5904
- hash: "f3ebf35352f01bd73bbfcecdc49dc70d"
+ hash: "216b70d02a4685dc07258454bb4e7c85"
}
Frame {
msec: 5920
- hash: "796916dcd72a5087199c2b8ff576d9cf"
+ hash: "1e06742af58d6e63facdc599c46e11b1"
}
Frame {
msec: 5936
- hash: "7d505004e5ec31546b7ae574043ba6f2"
+ hash: "00f8ac72d3794ed8d66db987402ecde0"
}
Frame {
msec: 5952
- hash: "c98b5d6b67b559f3de28f9298cc95f7b"
+ hash: "42ab5f162acba94f563823f5be1e37d2"
}
Frame {
msec: 5968
- hash: "36f141bcc565b1f01b23cc29013a696f"
+ hash: "3272b97fdc54eb9f3590e7bbe4ac457d"
}
Frame {
msec: 5984
- hash: "7e521964f15c4963ff3f99741703e9b5"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 6000
@@ -1758,687 +1694,1487 @@ VisualTest {
}
Frame {
msec: 6064
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "3272b97fdc54eb9f3590e7bbe4ac457d"
}
Frame {
msec: 6080
- hash: "7e521964f15c4963ff3f99741703e9b5"
+ hash: "42ab5f162acba94f563823f5be1e37d2"
}
Frame {
msec: 6096
- hash: "36f141bcc565b1f01b23cc29013a696f"
+ hash: "00f8ac72d3794ed8d66db987402ecde0"
}
Frame {
msec: 6112
- hash: "c98b5d6b67b559f3de28f9298cc95f7b"
+ hash: "1e06742af58d6e63facdc599c46e11b1"
}
Frame {
msec: 6128
- hash: "7d505004e5ec31546b7ae574043ba6f2"
+ hash: "216b70d02a4685dc07258454bb4e7c85"
}
Frame {
msec: 6144
- hash: "796916dcd72a5087199c2b8ff576d9cf"
+ hash: "23f6f2a7d971494af43a0fb97dbf8fb5"
}
Frame {
msec: 6160
- hash: "f3ebf35352f01bd73bbfcecdc49dc70d"
+ hash: "5d81833eb342f632945c0571e18cb1f9"
}
Frame {
msec: 6176
- hash: "3a6e6338cba1cb4619c7564ca49f2b30"
+ hash: "25cac33299d58cdd7775e8b75410085e"
}
Frame {
msec: 6192
- hash: "911d4a2352b18376c60545b96a890948"
+ hash: "a1fbc3333b7f742a8336a6fcbad156c9"
}
Frame {
msec: 6208
- hash: "4188c6571af3251253213fc1c720c383"
+ hash: "2ed12d49d72884160ebbf6b6d0e15a9d"
}
Frame {
msec: 6224
- hash: "f43c0dcafe7e737951120e25f2af38ea"
+ hash: "da6717c94b46ad7a647c445c06314b0d"
}
Frame {
msec: 6240
- hash: "5b495514831825aceed8ac715357c6ba"
+ hash: "02e0646024aeef6f01b7541b15267baa"
}
Frame {
msec: 6256
- hash: "f8705997d6c89ee004de6fbc7686acd0"
+ hash: "a6d8708d08bedf0cab5230d6f2936936"
}
Frame {
msec: 6272
- hash: "5c3819bcf8a96b0178d18c41bc7ebda7"
+ hash: "68d459091a85f24ece39a207e395039b"
}
Frame {
msec: 6288
- hash: "6f7fcb30e62b0785ae650ee1946125f3"
+ hash: "0b43af73d91a500ccdf27b4347b9bc47"
}
Frame {
msec: 6304
- hash: "70fb0fd5e9fe08c83be78c411c4dd8c5"
+ hash: "478126aeef5ddae9c0a77d08294cf3f2"
}
Frame {
msec: 6320
- hash: "2602e01ad276f5e9116ed226ac87af48"
+ hash: "675043ddde6ed65a3ec4ed093be1e760"
}
Frame {
msec: 6336
- hash: "7891672c5ed584de49de4201c8ca81d9"
+ hash: "12b84aa02dbbab3592d3eb3cb6884b41"
}
Frame {
msec: 6352
- hash: "b3f5c16c8a56a03570a45189a1ec4a0f"
+ hash: "8c2ebcd80e26ac7b9d25be486f54c4ce"
}
Frame {
msec: 6368
- hash: "65ebec0c7fdbefbdcc35d9c097bcd654"
+ hash: "ac705840cc94eb4af7a52d62649d0157"
}
Frame {
msec: 6384
- hash: "451e320a37356a5f3573938b759ff58b"
+ hash: "5cb1ae6d86aafdf11284480c81b939dc"
}
Frame {
msec: 6400
- hash: "fc2b51f6c152a6ed7f97cefe27f14a24"
+ hash: "ac2b714b5f32d2b911f31690d7082dc1"
}
Frame {
msec: 6416
- hash: "e69a852f1d52940dd64232f238f8dbd8"
+ hash: "7135a6a7999e82cb81e39228805332ee"
}
Frame {
msec: 6432
- hash: "671efc2d0c287f2a56c5faaa56f6e7c2"
+ hash: "7507a3d2158d4cc68454c85922526871"
}
Frame {
msec: 6448
- hash: "0b045e2e765ecda25f1fd2167a13de1e"
+ hash: "205cafcabb29b78a6db3dcaf44a74ab6"
}
Frame {
msec: 6464
- hash: "015123141cc96da6f1b574e8a0e6e113"
+ hash: "a1efa0d424d568d338c6db9fc095c2fb"
}
Frame {
msec: 6480
- hash: "bb6eb1a1e6386779d1498a4972741e92"
+ hash: "8a4d76ae60f5d720a382cced2f6a2b5e"
}
Frame {
msec: 6496
- hash: "1f8d534ed508b2c1fcbce82a1756633f"
+ hash: "c73fe137644cbc006d0b5274b72faa46"
}
Frame {
msec: 6512
- hash: "63f2430b48f3d9fe68d7d408b09167b2"
+ hash: "29d80ae32451c24b655c4d1fd01d3aa1"
}
Frame {
msec: 6528
- hash: "4ea2ca59536c1ab74a6f515bb7291f49"
+ hash: "90af75eeef63ae67e9f6ff1a61d7cca3"
}
Frame {
msec: 6544
- hash: "122c7a1c61fc2ec3ad0b36a14f69d63f"
+ hash: "b9dcdd88fba70636cbcae160edcc0136"
}
Frame {
msec: 6560
- hash: "bf648f584aa05ef228fffbdad91416a1"
+ hash: "679ee2b26a118ab53a84fa116de09edf"
}
Frame {
msec: 6576
- hash: "a58dea8435926ea2a8a52890df980a5b"
+ hash: "0fa12b48c08266f50e77506e4136dd56"
}
Frame {
msec: 6592
- hash: "3fdf5ed8baf9b19a11b1bc192b36e78b"
+ hash: "7aed794eae2f0c65342f190ed4d4f889"
}
Frame {
msec: 6608
- hash: "04524fc53f8c06430e9ee8730d4b0ce4"
+ hash: "23edee3af8f1904558863d37c520555a"
}
Frame {
msec: 6624
- hash: "de3669854e357a1d27b9fde41f47595d"
+ hash: "2f9ed13e8a0d0edf098b05db02c04bdf"
}
Frame {
msec: 6640
- hash: "498152d87a9e608f3dd1227a47a53938"
+ hash: "86ed2aa2428feb9c6c14ad2a74e97978"
}
Frame {
msec: 6656
- hash: "29d1a7c3ca714f2b5555c2b8f4e16acf"
+ hash: "e189dc0dae9457a6af5082c6ccf451b6"
}
Frame {
msec: 6672
- hash: "5424fd998bcf94f5e159ae553b8186f0"
+ hash: "62d4bfa65bfdc50d24d9204f4df7bad8"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 271; y: 89
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6688
- hash: "6711c4d7418d4848f4b7f340371d30ea"
+ hash: "680f51f63c4b11a247a668eb7bbd2b62"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 271; y: 92
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6704
- hash: "ed681e1b35e373a89195fd121767a5a2"
+ hash: "7640c78a286b0b7bdf2ec9117ceced4a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 271; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 270; y: 99
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6720
image: "cursorDelegate.6.png"
}
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 269; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
Frame {
msec: 6736
- hash: "d06abd6fec1ac1ea0ce4b37a5296b18d"
+ hash: "bfc1b03df244839a012e8302dc07764f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 268; y: 107
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6752
- hash: "7fcd2288e60023a04fc2c1c518a8ce24"
+ hash: "de09380dd57c58ae99fbdba169a19975"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 266; y: 114
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6768
- hash: "a2d160393610cb55e2f1651ef247558b"
+ hash: "54f7f94b5cdf1becb2ee61d7f6f02c0e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 266; y: 117
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6784
- hash: "04645b3dba9272950509585fb8ec3611"
+ hash: "4220dde85eb1c027366efd0798927e8d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 265; y: 117
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6800
- hash: "059c111be9c62b81115218ede8328083"
+ hash: "512b9746ae4482557b8cef9f99905954"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 263; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 261; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6816
- hash: "1f2e9a90eef3042ad97f6180520f19cf"
+ hash: "e7346d8f223684143a0940def878b874"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 259; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6832
- hash: "d8b3e6b235f3510768b0171596c0fc3c"
+ hash: "7e7382302681cd29a2c6959a3a704660"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 256; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6848
- hash: "be6694a7989438ae34bff4271eec42b5"
+ hash: "ef8f7dfdd4e70100ecaecca4055d8f52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 250; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 243; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6864
- hash: "e04893deffc38729617a66ffa33dbf9f"
+ hash: "f5cacabb78b88c31af1a1b1e6f60069b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 235; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6880
- hash: "a1fe3db1c5e7d137b40dea619f1766a9"
+ hash: "b016ef2306b0a721df86b6916e7953e4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 227; y: 121
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6896
- hash: "d54ad0b2f40faf7f5639f78acec0d000"
+ hash: "a78e9b0b93569b77b0659c771336971a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 218; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 126
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6912
- hash: "490d1c455b155648d430d45e291a4c91"
+ hash: "b957ab07bcbaeffca963d9148130a965"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 126
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6928
- hash: "5c1f0a3a19152b7e43969eb89507820c"
+ hash: "140bc4b078bac52d6903bdfdfc35a94c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 190; y: 127
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6944
- hash: "ec2c1e1aef0e1e0116a4feceb31c8d7b"
+ hash: "047c3a7403ae88cceb7fc875793d1ed8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 181; y: 127
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 172; y: 127
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6960
- hash: "e92c44fb4ad550bb7421b831363bf4d4"
+ hash: "03d48446aaf94450a3a9a8f1e956493f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 127
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6976
- hash: "8f9dacb4e67808ff78fcdd62274c0c7c"
+ hash: "6672e47aa6a975fbd82d2fe5bc99bbaf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 154; y: 126
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 6992
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "3bc73489d06e446d4c96117756a59227"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 146; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 138; y: 121
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7008
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "aed995a61df4a1c189ef2962000d02de"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 130; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7024
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "aed995a61df4a1c189ef2962000d02de"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 123; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7040
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "74f0bbe92a23146fbdbd365edd5741c8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 118; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 114; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7056
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "74f0bbe92a23146fbdbd365edd5741c8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 110; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7072
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "6456208c6367687b8dc701791eccd7d4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 108; y: 117
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7088
- hash: "8f9dacb4e67808ff78fcdd62274c0c7c"
+ hash: "376b59dc6e00a51bc9f2d4cfa2718e57"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 107; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 106; y: 117
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7104
- hash: "e92c44fb4ad550bb7421b831363bf4d4"
+ hash: "fb7bc3401f70ce6eee131c9c7510e1fe"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 105; y: 117
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7120
- hash: "ec2c1e1aef0e1e0116a4feceb31c8d7b"
+ hash: "675a419f0cd8351d6b2a65daf7d2707a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 104; y: 117
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7136
- hash: "5c1f0a3a19152b7e43969eb89507820c"
+ hash: "2f7951abac64e0f10d3b66d04966b6e9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 103; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 102; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7152
- hash: "490d1c455b155648d430d45e291a4c91"
+ hash: "1f8daa78c58ae11ec105bd87681c1762"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7168
- hash: "d54ad0b2f40faf7f5639f78acec0d000"
+ hash: "23ab196ed43219c26d94431698f6ac8d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7184
- hash: "a1fe3db1c5e7d137b40dea619f1766a9"
+ hash: "9581e2695f4818e063ec032cb5bb6b7f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7200
- hash: "e04893deffc38729617a66ffa33dbf9f"
+ hash: "6752cd7c5383e0ccc9b08f79db6ac310"
}
Frame {
msec: 7216
- hash: "be6694a7989438ae34bff4271eec42b5"
+ hash: "51f5675e0fb1410c5a8ec03a86b42681"
}
Frame {
msec: 7232
- hash: "d8b3e6b235f3510768b0171596c0fc3c"
+ hash: "c3c23213b2649b5ccabd8e420a251e00"
}
Frame {
msec: 7248
- hash: "1f2e9a90eef3042ad97f6180520f19cf"
+ hash: "02ceab31171fe983a10e862b53aea16f"
}
Frame {
msec: 7264
- hash: "059c111be9c62b81115218ede8328083"
+ hash: "8a774dda9a1bc16bd270724e570daf20"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7280
- hash: "04645b3dba9272950509585fb8ec3611"
+ hash: "2b6b892cebfcce14a9db485fecf16703"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7296
- hash: "a2d160393610cb55e2f1651ef247558b"
+ hash: "8b8e6d3362f018cbd9b487f03cfb7a22"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7312
- hash: "7fcd2288e60023a04fc2c1c518a8ce24"
+ hash: "a8477a9429633384073618cc60841e6c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 102; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 102; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7328
- hash: "d06abd6fec1ac1ea0ce4b37a5296b18d"
+ hash: "59558c6665b73f02809259e039b4423a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 103; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7344
- hash: "4073a65ce2169328174ff8acc0904a56"
+ hash: "93540071bab8a970a929d209f628970e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 104; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 105; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7360
- hash: "ed681e1b35e373a89195fd121767a5a2"
+ hash: "78cdb0a05583150ea33040d32d95de47"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 107; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7376
- hash: "6711c4d7418d4848f4b7f340371d30ea"
+ hash: "4b1ee34985d3f5b8dd4355678ad39af4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 110; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7392
- hash: "5424fd998bcf94f5e159ae553b8186f0"
+ hash: "5484e7699c388eabf0311de49706397f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 113; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 117; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7408
- hash: "29d1a7c3ca714f2b5555c2b8f4e16acf"
+ hash: "dee6c2380f398323002ebb43a38d27e8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 124; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7424
- hash: "498152d87a9e608f3dd1227a47a53938"
+ hash: "d66a27728e7fd3c616842613a034c5a0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 131; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7440
- hash: "de3669854e357a1d27b9fde41f47595d"
+ hash: "5f851161f99fcf5b67cbe008a3faf411"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 138; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 144; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7456
- hash: "04524fc53f8c06430e9ee8730d4b0ce4"
+ hash: "013e949285cfa9edb34ab14e26753230"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 148; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 152; y: 117
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7472
- hash: "3fdf5ed8baf9b19a11b1bc192b36e78b"
+ hash: "5b50acdcbd49969bcce2cfab6f9af380"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 155; y: 117
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7488
- hash: "a58dea8435926ea2a8a52890df980a5b"
+ hash: "d4aeb24211007cfc01512d289ae7aa01"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 157; y: 116
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7504
- hash: "bf648f584aa05ef228fffbdad91416a1"
+ hash: "6f1b7e12bbf54586e9a48989145f3274"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 159; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 162; y: 116
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7520
- hash: "122c7a1c61fc2ec3ad0b36a14f69d63f"
+ hash: "0e09c7468bc03770c6cc7f0fba1ee9c0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 116
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7536
- hash: "4ea2ca59536c1ab74a6f515bb7291f49"
+ hash: "0fc4522bbf1a2e72002eb0a3c7224e1f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 165; y: 116
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7552
- hash: "63f2430b48f3d9fe68d7d408b09167b2"
+ hash: "91727292aaa314bf263c618a577b7f74"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 166; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 168; y: 116
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7568
- hash: "1f8d534ed508b2c1fcbce82a1756633f"
+ hash: "a78fb2545d11c521a50a10fd2d1700a7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 171; y: 116
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7584
- hash: "bb6eb1a1e6386779d1498a4972741e92"
+ hash: "c207a291b47628921125acd4b8ed5ea8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 174; y: 116
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7600
- hash: "015123141cc96da6f1b574e8a0e6e113"
+ hash: "9a8e3df504ba36e82c51d71a3f5ce268"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 177; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 183; y: 117
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7616
- hash: "0b045e2e765ecda25f1fd2167a13de1e"
+ hash: "8cd9da94db91da50ae457d41866a32ba"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 188; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7632
- hash: "671efc2d0c287f2a56c5faaa56f6e7c2"
+ hash: "9e52b6fdc3ce4ad9c5986e47ffa762fc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 193; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7648
- hash: "e69a852f1d52940dd64232f238f8dbd8"
+ hash: "a1aff55bffb76bd4e2ac9ee482a03978"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 198; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7664
- hash: "fc2b51f6c152a6ed7f97cefe27f14a24"
+ hash: "ba52431b72683cfbf0cc795a2407630e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7680
image: "cursorDelegate.7.png"
}
- Frame {
- msec: 7696
- hash: "65ebec0c7fdbefbdcc35d9c097bcd654"
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 119
+ modifiers: 0
+ sendToViewport: true
}
Frame {
- msec: 7712
- hash: "b3f5c16c8a56a03570a45189a1ec4a0f"
+ msec: 7696
+ hash: "eb5a19fbfbdceef233ed3c86c782817c"
}
- Frame {
- msec: 7728
- hash: "7891672c5ed584de49de4201c8ca81d9"
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 212; y: 119
+ modifiers: 0
+ sendToViewport: true
}
- Frame {
- msec: 7744
- hash: "2602e01ad276f5e9116ed226ac87af48"
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 212; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
- msec: 7760
- hash: "70fb0fd5e9fe08c83be78c411c4dd8c5"
+ msec: 7712
+ hash: "7c8f3f2e96fa6a63867cb716061c8c77"
}
Mouse {
- type: 2
- button: 1
+ type: 5
+ button: 0
buttons: 1
- x: 164; y: 102
+ x: 213; y: 118
modifiers: 0
sendToViewport: true
}
+ Frame {
+ msec: 7728
+ hash: "96b0007f857aa19b41d184a7c7931f69"
+ }
Mouse {
type: 5
button: 0
buttons: 1
- x: 164; y: 102
+ x: 214; y: 118
modifiers: 0
sendToViewport: true
}
Frame {
- msec: 7776
- hash: "c25cffe6e374302eacd7165238caf0db"
+ msec: 7744
+ hash: "96201712b9ffbd9bfbebb5a5b7e23aba"
}
Mouse {
type: 5
button: 0
buttons: 1
- x: 164; y: 102
+ x: 215; y: 118
modifiers: 0
sendToViewport: true
}
Frame {
+ msec: 7760
+ hash: "d75e13a7715d5c329a47fdb818dfdbe5"
+ }
+ Frame {
+ msec: 7776
+ hash: "c8fa0c2d9e6aa1f3a33e76a31534359d"
+ }
+ Frame {
msec: 7792
- hash: "794f174d587ae9108ec8a9023e7f8ff0"
+ hash: "03b11cc517f84c58a681906fdda98347"
}
Mouse {
type: 5
button: 0
buttons: 1
- x: 164; y: 101
+ x: 215; y: 118
modifiers: 0
sendToViewport: true
}
- Frame {
- msec: 7808
- hash: "835d3309c4a711909cc0521c1f0798c0"
- }
Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 164; y: 101
+ type: 5
+ button: 0
+ buttons: 1
+ x: 215; y: 118
modifiers: 0
sendToViewport: true
}
Frame {
+ msec: 7808
+ hash: "74cdf8af5d56216ad422951a56661536"
+ }
+ Frame {
msec: 7824
- hash: "57f62b46d88d06f6bcdd34cf07a6820f"
+ hash: "fcac2575aad872eada547508f312f09c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 118
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7840
- hash: "5743998cf812d561f0209eca33fb474f"
+ hash: "7d76aec1f29d2d6745585be8ef113be5"
}
Frame {
msec: 7856
- hash: "66416d17699d9a26daf0e45375b2a154"
+ hash: "2b4fe4f39433671a9bc440efa1c589a8"
}
Frame {
msec: 7872
- hash: "9ac94ac80c1f1b706da5bca743563c53"
+ hash: "55a166f920e76173e14121d848a11aa0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 117
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7888
- hash: "d1bd3a835c8fe59e97af0fb21250052b"
+ hash: "f764df8ecd68161d3529800e922254f4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 116
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7904
- hash: "7e6e3fd8b7e438161d6bca2b193df392"
+ hash: "749caf21947e915b163f72e6fd190032"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 116
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7920
- hash: "781249aafe428918f11579b984f6f767"
+ hash: "c350910df8ae4fea573a20d334fd3401"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 217; y: 116
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7936
- hash: "e9f9ccc0b95bfb9e884087d89327b011"
+ hash: "d177da450f1d380a6d2406e2393b9582"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 218; y: 115
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 218; y: 115
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7952
- hash: "6cc9b57ecb03fa8df8db486e8533ab53"
+ hash: "bf3da78d7cac19daf2d5150b77840b1e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 219; y: 114
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7968
- hash: "c77f11a88d5a07b7896f38e896d6fcca"
+ hash: "22e337b0b81b18045a205355da6981ad"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 220; y: 114
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 7984
- hash: "413fd5cc3952ec8a4838db21636fe853"
+ hash: "66c66927d2fc590fc43c146a403c1ccb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 221; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 113
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 8000
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "66c66927d2fc590fc43c146a403c1ccb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 113
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 8016
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "66c66927d2fc590fc43c146a403c1ccb"
}
Frame {
msec: 8032
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "66c66927d2fc590fc43c146a403c1ccb"
}
Frame {
msec: 8048
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "66c66927d2fc590fc43c146a403c1ccb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 114
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 8064
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "22e337b0b81b18045a205355da6981ad"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 222; y: 114
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 8080
- hash: "413fd5cc3952ec8a4838db21636fe853"
+ hash: "bf3da78d7cac19daf2d5150b77840b1e"
}
Frame {
msec: 8096
- hash: "c77f11a88d5a07b7896f38e896d6fcca"
+ hash: "d177da450f1d380a6d2406e2393b9582"
}
Frame {
msec: 8112
- hash: "6cc9b57ecb03fa8df8db486e8533ab53"
+ hash: "c350910df8ae4fea573a20d334fd3401"
}
Frame {
msec: 8128
- hash: "e9f9ccc0b95bfb9e884087d89327b011"
+ hash: "749caf21947e915b163f72e6fd190032"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 222; y: 114
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 8144
- hash: "781249aafe428918f11579b984f6f767"
+ hash: "f764df8ecd68161d3529800e922254f4"
}
Frame {
msec: 8160
- hash: "7e6e3fd8b7e438161d6bca2b193df392"
+ hash: "55a166f920e76173e14121d848a11aa0"
}
Frame {
msec: 8176
- hash: "d1bd3a835c8fe59e97af0fb21250052b"
+ hash: "2b4fe4f39433671a9bc440efa1c589a8"
}
Frame {
msec: 8192
- hash: "9ac94ac80c1f1b706da5bca743563c53"
+ hash: "7d76aec1f29d2d6745585be8ef113be5"
}
Frame {
msec: 8208
- hash: "66416d17699d9a26daf0e45375b2a154"
+ hash: "fcac2575aad872eada547508f312f09c"
}
Frame {
msec: 8224
- hash: "5743998cf812d561f0209eca33fb474f"
+ hash: "74cdf8af5d56216ad422951a56661536"
}
Frame {
msec: 8240
- hash: "57f62b46d88d06f6bcdd34cf07a6820f"
+ hash: "03b11cc517f84c58a681906fdda98347"
}
Frame {
msec: 8256
- hash: "835d3309c4a711909cc0521c1f0798c0"
+ hash: "c8fa0c2d9e6aa1f3a33e76a31534359d"
}
Frame {
msec: 8272
- hash: "794f174d587ae9108ec8a9023e7f8ff0"
+ hash: "d75e13a7715d5c329a47fdb818dfdbe5"
}
Frame {
msec: 8288
- hash: "c25cffe6e374302eacd7165238caf0db"
+ hash: "96201712b9ffbd9bfbebb5a5b7e23aba"
}
Frame {
msec: 8304
- hash: "7ff505820e8f66dc8b003cf75710b6a1"
+ hash: "96b0007f857aa19b41d184a7c7931f69"
}
Frame {
msec: 8320
- hash: "9fcddf000f801428e88b1a83618f068e"
+ hash: "bff5b731de7c93fa0cdcefbf99beeb5e"
}
Frame {
msec: 8336
- hash: "3f65fe21f6831c4389bb3c7b5c7d286f"
+ hash: "ce76704964873be1bc6a324d8a3381be"
}
Frame {
msec: 8352
- hash: "b0fd0b46de74301ee9a670a01331ab8f"
+ hash: "a31b4f2a3defc968098029328de9352d"
}
Frame {
msec: 8368
- hash: "b102a1d870c9d01d3aa1dedb5141ab7c"
+ hash: "295e3f40a511bd30e1c6599ead93619a"
}
Frame {
msec: 8384
- hash: "8d8a6ee478a95b081bc8bb3a36c83ae6"
+ hash: "3cd74da8b04de8ec7446490dea0e4e6c"
}
Frame {
msec: 8400
- hash: "de0d9be3a688c6180a501ff46ecb6b5c"
+ hash: "78a7db5a316609136d1b873d20d5dd3e"
}
Frame {
msec: 8416
- hash: "8fd0c6f845bbec10aa98c000870e7780"
+ hash: "0f176fb11bfe26f872ef7103011df9e6"
}
Frame {
msec: 8432
- hash: "8daf4c0a930c25ecea9e7ca2229afcb3"
+ hash: "47866013e79bc77607e0c40bf8457bed"
}
Frame {
msec: 8448
- hash: "7b6c39763edf6e33b1565d502004e76f"
+ hash: "5f35467db5c5e0baf5caff90b97e2d0c"
}
Frame {
msec: 8464
- hash: "0ea05fb7415a35786abd91fb064296ba"
+ hash: "fefa89763cc1ad8323fdf37b1f5f63d3"
}
Frame {
msec: 8480
- hash: "dad17c0e3d43c8ff4eff91e584d49c8a"
+ hash: "b9823f88fa51944075ce6dedd695f097"
}
Frame {
msec: 8496
- hash: "f793b590def74b7a12a7c83f24f6e9e3"
+ hash: "72521de21fcc57d6ccf16350b0df8eee"
}
Frame {
msec: 8512
- hash: "2e72675a8ed8cdc1b6d2010c96df6c27"
+ hash: "fcd591a2e56ba5efa95b315b7bd10532"
}
Frame {
msec: 8528
- hash: "bf0e79968356a94a3a88083e9114f99e"
+ hash: "5d437d59995741030e0975829712f85d"
}
Frame {
msec: 8544
- hash: "c400f2aab375eb87812fe1f1cc4f0981"
+ hash: "e7189d174b181985b6aef10b8642726f"
}
Frame {
msec: 8560
- hash: "c3ceebc2fb6ab2d9d58d87dc95227a48"
+ hash: "cefadbae14e573f6c83d07ffc3a5152e"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 277; y: 97
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 8576
- hash: "f12917c73667797cee1a31ff3a0d2ec6"
+ hash: "0fa12b48c08266f50e77506e4136dd56"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 277; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 8592
- hash: "6462229815c38c54c2fa0170059f0251"
+ hash: "7aed794eae2f0c65342f190ed4d4f889"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 276; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 8608
- hash: "3c033a3756a903eaeb7b798ebcf58114"
+ hash: "23edee3af8f1904558863d37c520555a"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 276; y: 98
+ modifiers: 0
+ sendToViewport: true
}
Frame {
msec: 8624
- hash: "543a4e616942c1e1b425a0451a13eecf"
+ hash: "2f9ed13e8a0d0edf098b05db02c04bdf"
}
Frame {
msec: 8640
@@ -2446,119 +3182,87 @@ VisualTest {
}
Frame {
msec: 8656
- hash: "fec3fa5c91ce2f540f8d72b8727a5c0c"
+ hash: "e189dc0dae9457a6af5082c6ccf451b6"
}
Frame {
msec: 8672
- hash: "8d8d9bcddd2575c3e021cb83500046d3"
+ hash: "62d4bfa65bfdc50d24d9204f4df7bad8"
}
Frame {
msec: 8688
- hash: "6b1988a37451e3eaf4afc6e036c03578"
+ hash: "5a11ec8a0485a018ebe317e01136e4a5"
}
Frame {
msec: 8704
- hash: "9a2dfae5eb95eb402c6827d34e44f621"
+ hash: "9aa569f7b251371bdd1cb05c8d3aab28"
}
Frame {
msec: 8720
- hash: "7011722afc422c184eb5316bb8887705"
+ hash: "a242c9d5ed7f9aef0a0622dcb66d0a7e"
}
Frame {
msec: 8736
- hash: "32b45be3e902288ce5a4dfefec5e89a8"
+ hash: "a0cb3f796fddf7100ca19aee3dedbea8"
}
Frame {
msec: 8752
- hash: "e66e3784411ff1a10026960aa7ff9611"
+ hash: "b4e273b6415e3951eab2f831100b0bb2"
}
Frame {
msec: 8768
- hash: "ec8daae03b9657c53fbb7b13cdbbf926"
+ hash: "fd3fd655785c4e3c470f742451e3470f"
}
Frame {
msec: 8784
- hash: "5abc3da4467bba5650c426e20c2a6d29"
+ hash: "7a9b2057760e48d5f9cfdc79b08866d8"
}
Frame {
msec: 8800
- hash: "bb0b2f93de57604dfd644161d6a64291"
+ hash: "2a55b52db02d97963d382c9862307384"
}
Frame {
msec: 8816
- hash: "90f28a089b566f5d4a7a2babdc24d781"
+ hash: "c6c90915393fc7cb0aaa464caefbadb0"
}
Frame {
msec: 8832
- hash: "a8f5f9e040c9c77a0d024df9ee770033"
+ hash: "36b65658073ac2687dbd88ec7a408a98"
}
Frame {
msec: 8848
- hash: "53e63839cb371b66dbd9f3e5837bacb9"
+ hash: "84e165f9f2c55c5c51a260b11ca195c2"
}
Frame {
msec: 8864
- hash: "39e4433a8c180a26252d32471251e358"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 122; y: 102
- modifiers: 0
- sendToViewport: true
+ hash: "c11cfcfda6f161d058a3d9e93349b578"
}
Frame {
msec: 8880
- hash: "c0ee2c1872869cde0a1af5bc1e3f6a94"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 122; y: 102
- modifiers: 0
- sendToViewport: true
+ hash: "0568f8c0e1fa51b7547790a7f4978ea3"
}
Frame {
msec: 8896
- hash: "14b19098f0e65545bf7abdcb921d9e41"
+ hash: "b66fd97ac36ac395df74e9a0dd58d0c7"
}
Frame {
msec: 8912
- hash: "a8cf0c43216ca34697c0074a7774cacc"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 122; y: 102
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 122; y: 102
- modifiers: 0
- sendToViewport: true
+ hash: "31b5b3d68e452ffd90e9804ff9e9a264"
}
Frame {
msec: 8928
- hash: "266689d707d866864afaaf3800d94e42"
+ hash: "3cc8791e419986e1e913d4e153243fb2"
}
Frame {
msec: 8944
- hash: "462698b15180ad4c75ddb89fa8d75d22"
+ hash: "ff1b3ce85bc9f3dd3feb90fa31c3bc0a"
}
Frame {
msec: 8960
- hash: "759f2e9232e8ad098d22bc4c938ed7da"
+ hash: "d3ae969e538c642d82662d08ef05964e"
}
Frame {
msec: 8976
- hash: "df2654ff08fb7eff69bb5afb0d94fe2e"
+ hash: "e3948b393a3778066a90197b31c71e51"
}
Frame {
msec: 8992
@@ -2582,350 +3286,94 @@ VisualTest {
}
Frame {
msec: 9072
- hash: "e3948b393a3778066a90197b31c71e51"
+ hash: "d3ae969e538c642d82662d08ef05964e"
}
Frame {
msec: 9088
- hash: "df2654ff08fb7eff69bb5afb0d94fe2e"
+ hash: "ff1b3ce85bc9f3dd3feb90fa31c3bc0a"
}
Frame {
msec: 9104
- hash: "759f2e9232e8ad098d22bc4c938ed7da"
+ hash: "3cc8791e419986e1e913d4e153243fb2"
}
Frame {
msec: 9120
- hash: "462698b15180ad4c75ddb89fa8d75d22"
+ hash: "31b5b3d68e452ffd90e9804ff9e9a264"
}
Frame {
msec: 9136
- hash: "266689d707d866864afaaf3800d94e42"
+ hash: "b66fd97ac36ac395df74e9a0dd58d0c7"
}
Frame {
msec: 9152
- hash: "a8cf0c43216ca34697c0074a7774cacc"
+ hash: "0568f8c0e1fa51b7547790a7f4978ea3"
}
Frame {
msec: 9168
- hash: "14b19098f0e65545bf7abdcb921d9e41"
+ hash: "c11cfcfda6f161d058a3d9e93349b578"
}
Frame {
msec: 9184
- hash: "c0ee2c1872869cde0a1af5bc1e3f6a94"
+ hash: "84e165f9f2c55c5c51a260b11ca195c2"
}
Frame {
msec: 9200
- hash: "31e4d2c2166ffec75002f1feda0920df"
+ hash: "36b65658073ac2687dbd88ec7a408a98"
}
Frame {
msec: 9216
- hash: "bf9e90b6217efb415129bcb9bf5f89ba"
+ hash: "c6c90915393fc7cb0aaa464caefbadb0"
}
Frame {
msec: 9232
- hash: "963aabb6aa02bf9cfb6ed2a5950796a4"
+ hash: "2a55b52db02d97963d382c9862307384"
}
Frame {
msec: 9248
- hash: "707195521d4b224d3bbd6138bdfef96d"
+ hash: "7a9b2057760e48d5f9cfdc79b08866d8"
}
Frame {
msec: 9264
- hash: "a4f98c9a277c47eacd757fcbd8508643"
+ hash: "fd3fd655785c4e3c470f742451e3470f"
}
Frame {
msec: 9280
- hash: "d6103e9130fa31b1965b37bc4ab395ff"
+ hash: "b4e273b6415e3951eab2f831100b0bb2"
}
Frame {
msec: 9296
- hash: "60804ced4c70ae4394c84e82a00a4ae8"
+ hash: "a0cb3f796fddf7100ca19aee3dedbea8"
}
Frame {
msec: 9312
- hash: "d5a45ec320f8b4ce27fa618a9925ac15"
+ hash: "a242c9d5ed7f9aef0a0622dcb66d0a7e"
}
Frame {
msec: 9328
- hash: "85ed44d1065d0a56e152b14aae860f49"
+ hash: "9aa569f7b251371bdd1cb05c8d3aab28"
}
Frame {
msec: 9344
- hash: "30a986f7d3f12cfaea61f903566ac661"
+ hash: "5a11ec8a0485a018ebe317e01136e4a5"
}
Frame {
msec: 9360
- hash: "2f7e086bc7fd484c86d9913f4fd7cde0"
+ hash: "62d4bfa65bfdc50d24d9204f4df7bad8"
}
Frame {
msec: 9376
- hash: "af39de67e5a3974f902f115c5643970f"
+ hash: "e189dc0dae9457a6af5082c6ccf451b6"
}
Frame {
msec: 9392
- hash: "5634bb6019ef82edbcaefff00ec14b08"
+ hash: "86ed2aa2428feb9c6c14ad2a74e97978"
}
Frame {
msec: 9408
- hash: "7f9b86616758d1adbe67dfb054aad5cc"
+ hash: "2f9ed13e8a0d0edf098b05db02c04bdf"
}
Frame {
msec: 9424
- hash: "ff22fd8ec8a56735b8e8c016204fcd46"
- }
- Frame {
- msec: 9440
- hash: "d5038584644bf55a2875dcc37eeb6d07"
- }
- Frame {
- msec: 9456
- hash: "709c2e50099df7248df4fef946e96432"
- }
- Frame {
- msec: 9472
- hash: "67fc71c16d0b9405c35590bafdc5ea40"
- }
- Frame {
- msec: 9488
- hash: "4bad7380f6b645c551edbe06ff67cac9"
- }
- Frame {
- msec: 9504
- hash: "deabc5c7dd111adcb253eb833f118764"
- }
- Frame {
- msec: 9520
- hash: "287d258a79f45c26c92c69cce6b1a2f3"
- }
- Frame {
- msec: 9536
- hash: "21c0958bd3c6a1056bb062165c9bc18b"
- }
- Frame {
- msec: 9552
- hash: "4859d6bf9c456e52fd463e4c2f68d7f6"
- }
- Frame {
- msec: 9568
- hash: "105481b5becd127af4c28961d900148c"
- }
- Frame {
- msec: 9584
- hash: "af65d67fef3c743e31acca03716040c4"
- }
- Frame {
- msec: 9600
- image: "cursorDelegate.9.png"
- }
- Frame {
- msec: 9616
- hash: "dba2ca165b8ab35113b8ec127b204ae9"
- }
- Frame {
- msec: 9632
- hash: "36f28574c0b042647bc064d75afa9fbc"
- }
- Frame {
- msec: 9648
- hash: "f641f87e9556ecfd24f0f0a772295e52"
- }
- Frame {
- msec: 9664
- hash: "5b61f2e9308c4de2864bb7cf133ce545"
- }
- Frame {
- msec: 9680
- hash: "1f4ea7783b5c60bfc424c73cea07a3a0"
- }
- Frame {
- msec: 9696
- hash: "535210bd848a20db2966b06278198e07"
- }
- Frame {
- msec: 9712
- hash: "ae8fe55fa9b497cd6eff18a517c301d8"
- }
- Frame {
- msec: 9728
- hash: "129b5bc6d55621e2366fc0d80f105df2"
- }
- Frame {
- msec: 9744
- hash: "b2ed6ebf66252463326c2f220b3992fa"
- }
- Frame {
- msec: 9760
- hash: "73d49e4d0bef103e11820d888bef0368"
- }
- Frame {
- msec: 9776
- hash: "cc6307597cea821b63391fc9bdbe038b"
- }
- Frame {
- msec: 9792
- hash: "786de35a11c3fc1a228392195f509c28"
- }
- Frame {
- msec: 9808
- hash: "6ba56c4ec6e903b0d82235c230ed78cb"
- }
- Frame {
- msec: 9824
- hash: "db553c856b11db7e6feb38b9d562a804"
- }
- Frame {
- msec: 9840
- hash: "710e7022b65a9b3fd3a7372bf7f37c7a"
- }
- Frame {
- msec: 9856
- hash: "e0844f30578fef2cdcee4e4ff28ab7cf"
- }
- Frame {
- msec: 9872
- hash: "a5540bd5d088ab1201b5f22b32579d7c"
- }
- Frame {
- msec: 9888
- hash: "3d8aa66ab9533d14a468f0869b457033"
- }
- Frame {
- msec: 9904
- hash: "991f76d483e033024932790f85bb3c5d"
- }
- Frame {
- msec: 9920
- hash: "af580b32b67117eb062bbcefe262c719"
- }
- Frame {
- msec: 9936
- hash: "dd2f21f063d055edc23c874380149067"
- }
- Frame {
- msec: 9952
- hash: "f223cfeba468e161943b24ac960196de"
- }
- Frame {
- msec: 9968
- hash: "c779e46a89c3c9d0f8234a3192175b60"
- }
- Frame {
- msec: 9984
- hash: "1990af80640a5ccd725ab73b822e5381"
- }
- Frame {
- msec: 10000
- hash: "e3948b393a3778066a90197b31c71e51"
- }
- Frame {
- msec: 10016
- hash: "e3948b393a3778066a90197b31c71e51"
- }
- Frame {
- msec: 10032
- hash: "e3948b393a3778066a90197b31c71e51"
- }
- Frame {
- msec: 10048
- hash: "e3948b393a3778066a90197b31c71e51"
- }
- Frame {
- msec: 10064
- hash: "e3948b393a3778066a90197b31c71e51"
- }
- Frame {
- msec: 10080
- hash: "1990af80640a5ccd725ab73b822e5381"
- }
- Frame {
- msec: 10096
- hash: "c779e46a89c3c9d0f8234a3192175b60"
- }
- Frame {
- msec: 10112
- hash: "f223cfeba468e161943b24ac960196de"
- }
- Frame {
- msec: 10128
- hash: "dd2f21f063d055edc23c874380149067"
- }
- Frame {
- msec: 10144
- hash: "af580b32b67117eb062bbcefe262c719"
- }
- Frame {
- msec: 10160
- hash: "991f76d483e033024932790f85bb3c5d"
- }
- Frame {
- msec: 10176
- hash: "3d8aa66ab9533d14a468f0869b457033"
- }
- Frame {
- msec: 10192
- hash: "a5540bd5d088ab1201b5f22b32579d7c"
- }
- Frame {
- msec: 10208
- hash: "e0844f30578fef2cdcee4e4ff28ab7cf"
- }
- Frame {
- msec: 10224
- hash: "710e7022b65a9b3fd3a7372bf7f37c7a"
- }
- Frame {
- msec: 10240
- hash: "db553c856b11db7e6feb38b9d562a804"
- }
- Frame {
- msec: 10256
- hash: "6ba56c4ec6e903b0d82235c230ed78cb"
- }
- Frame {
- msec: 10272
- hash: "786de35a11c3fc1a228392195f509c28"
- }
- Frame {
- msec: 10288
- hash: "cc6307597cea821b63391fc9bdbe038b"
- }
- Frame {
- msec: 10304
- hash: "73d49e4d0bef103e11820d888bef0368"
- }
- Frame {
- msec: 10320
- hash: "b2ed6ebf66252463326c2f220b3992fa"
- }
- Frame {
- msec: 10336
- hash: "129b5bc6d55621e2366fc0d80f105df2"
- }
- Frame {
- msec: 10352
- hash: "ae8fe55fa9b497cd6eff18a517c301d8"
- }
- Frame {
- msec: 10368
- hash: "535210bd848a20db2966b06278198e07"
- }
- Frame {
- msec: 10384
- hash: "1f4ea7783b5c60bfc424c73cea07a3a0"
- }
- Frame {
- msec: 10400
- hash: "5b61f2e9308c4de2864bb7cf133ce545"
- }
- Frame {
- msec: 10416
- hash: "f641f87e9556ecfd24f0f0a772295e52"
- }
- Frame {
- msec: 10432
- hash: "36f28574c0b042647bc064d75afa9fbc"
- }
- Frame {
- msec: 10448
- hash: "dba2ca165b8ab35113b8ec127b204ae9"
+ hash: "23edee3af8f1904558863d37c520555a"
}
}
diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png b/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png
new file mode 100644
index 0000000..64d6b06
--- /dev/null
+++ b/tests/auto/declarative/visual/scriptAction/data/scriptAction.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png b/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png
new file mode 100644
index 0000000..1a25c63
--- /dev/null
+++ b/tests/auto/declarative/visual/scriptAction/data/scriptAction.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml b/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml
new file mode 100644
index 0000000..01da490
--- /dev/null
+++ b/tests/auto/declarative/visual/scriptAction/data/scriptAction.qml
@@ -0,0 +1,535 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 32
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 48
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 64
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 80
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 96
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 112
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 128
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 144
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 160
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 176
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 192
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 208
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 224
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 240
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 256
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 272
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 288
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 304
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 320
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 336
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 352
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 368
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 384
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 400
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 416
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 432
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 448
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 464
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 480
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 496
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 512
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 528
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 544
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 560
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 576
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 592
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 608
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 624
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 640
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 656
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 672
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 688
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 704
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 720
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 736
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 752
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 768
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 784
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 800
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 816
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 832
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 848
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 864
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 880
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 896
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 912
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 928
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 944
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 960
+ image: "scriptAction.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 992
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1008
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1024
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1040
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1056
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1072
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1088
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 146; y: 259
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1104
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1120
+ hash: "9850cd8ed4643900409d1a87ef0bc4cf"
+ }
+ Frame {
+ msec: 1136
+ hash: "1cf03396b01e931e4e7e8e7e57e19c5f"
+ }
+ Frame {
+ msec: 1152
+ hash: "25fe648b85ec2d82621853dcbdbf695a"
+ }
+ Frame {
+ msec: 1168
+ hash: "1ca701e56fe387d5849f6933eb53aee9"
+ }
+ Frame {
+ msec: 1184
+ hash: "b39ecb792659a053a8985e2a849d6d51"
+ }
+ Frame {
+ msec: 1200
+ hash: "9a783432a054beec81cc5687f75a36dc"
+ }
+ Frame {
+ msec: 1216
+ hash: "edbd222d7ba6c6f819ded45fe316d461"
+ }
+ Frame {
+ msec: 1232
+ hash: "eaf20159c4b90f90872bbd514d3a0cec"
+ }
+ Frame {
+ msec: 1248
+ hash: "964807dd9b91e765577a773ef1ce2593"
+ }
+ Frame {
+ msec: 1264
+ hash: "16e12026ab14657b0f36b8315684455d"
+ }
+ Frame {
+ msec: 1280
+ hash: "d001a6b2fec3c66baaa45d9ff93b3f63"
+ }
+ Frame {
+ msec: 1296
+ hash: "fef11eb5f635bc11cd9679b7213b3b92"
+ }
+ Frame {
+ msec: 1312
+ hash: "0a0cd5f5004048d88712cfe6943470c0"
+ }
+ Frame {
+ msec: 1328
+ hash: "0d83178afdae5feaa9915d56c24373ad"
+ }
+ Frame {
+ msec: 1344
+ hash: "0a9e6e0b7b23ce93dc4e1f886cf9c7d1"
+ }
+ Frame {
+ msec: 1360
+ hash: "f3199d0c860f1236e0b9472bef8785bc"
+ }
+ Frame {
+ msec: 1376
+ hash: "f3199d0c860f1236e0b9472bef8785bc"
+ }
+ Frame {
+ msec: 1392
+ hash: "32ccdab249268b01d9f1658a736052f1"
+ }
+ Frame {
+ msec: 1408
+ hash: "dc98f32a1a2d6e74998123b5232107b0"
+ }
+ Frame {
+ msec: 1424
+ hash: "db3010ef552146df938c237f6c92bff5"
+ }
+ Frame {
+ msec: 1440
+ hash: "101e8595d0301e88376ec52ba9361f84"
+ }
+ Frame {
+ msec: 1456
+ hash: "119d548c59baa7e47266d2ceca663288"
+ }
+ Frame {
+ msec: 1472
+ hash: "f141fafe102a0b9a2bf33e8c3fc800ff"
+ }
+ Frame {
+ msec: 1488
+ hash: "b01f9ca8d4fbff17b3d48c70898a044d"
+ }
+ Frame {
+ msec: 1504
+ hash: "cf67954a2d1b22e8d2cfdc26419bafb8"
+ }
+ Frame {
+ msec: 1520
+ hash: "7680b2b5a63dea13d733947297e01355"
+ }
+ Frame {
+ msec: 1536
+ hash: "af1c017acf6b3c8cff86c9ceb60db3cb"
+ }
+ Frame {
+ msec: 1552
+ hash: "0b23ec51f71fddae5e2238ab5754f1db"
+ }
+ Frame {
+ msec: 1568
+ hash: "976643961ecbdc86335180ba812b874e"
+ }
+ Frame {
+ msec: 1584
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1600
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1616
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1632
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1648
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1664
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1680
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1696
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1712
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1728
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1744
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1760
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1776
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1792
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1808
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1824
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1840
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1856
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1872
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1888
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1904
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1920
+ image: "scriptAction.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1952
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1968
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 1984
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2000
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2016
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2032
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2048
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+}
diff --git a/tests/auto/declarative/visual/scriptAction/scriptAction.qml b/tests/auto/declarative/visual/scriptAction/scriptAction.qml
new file mode 100644
index 0000000..b1254e2
--- /dev/null
+++ b/tests/auto/declarative/visual/scriptAction/scriptAction.qml
@@ -0,0 +1,35 @@
+import Qt 4.6
+
+Rectangle {
+ width: 400; height: 400
+ Rectangle {
+ id: myRect
+ width: 100; height: 100
+ color: "red"
+ }
+ MouseRegion {
+ id: Clickable
+ anchors.fill: parent
+ }
+
+ states: State {
+ name: "state1"
+ when: Clickable.pressed
+ PropertyChanges {
+ target: myRect
+ x: 50; y: 50
+ }
+ StateChangeScript {
+ name: "setColor"
+ script: myRect.color = "blue"
+ }
+ }
+
+ transitions: Transition {
+ SequentialAnimation {
+ NumberAnimation { matchProperties: "x"; easing: "InOutQuad" }
+ ScriptAction { stateChangeScriptName: "setColor" }
+ NumberAnimation { matchProperties: "y"; easing: "InOutQuad" }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/webview/zooming/renderControl.html b/tests/auto/declarative/visual/webview/zooming/renderControl.html
new file mode 100644
index 0000000..1a01a33
--- /dev/null
+++ b/tests/auto/declarative/visual/webview/zooming/renderControl.html
@@ -0,0 +1,7 @@
+<html>
+<body>
+<h1>Render Control</h1>
+<p>
+This test shows how zooming and panning can be
+optimized for speed over quality by delaying rendering.
+<img src="qtlogo.png">
diff --git a/tests/auto/declarative/xmlhttprequest/data/constructor.qml b/tests/auto/declarative/xmlhttprequest/data/constructor.qml
new file mode 100644
index 0000000..4b9e9ce
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/constructor.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+
+Object {
+ property bool calledAsConstructor
+ property bool calledAsFunction
+
+ Component.onCompleted: {
+ var x1 = new XMLHttpRequest;
+ var x2 = XMLHttpRequest();
+
+ calledAsConstructor = (x1 != null && x1 instanceof XMLHttpRequest);
+ calledAsFunction = (x2 == undefined);
+ }
+}
diff --git a/tests/auto/declarative/xmlhttprequest/data/defaultState.qml b/tests/auto/declarative/xmlhttprequest/data/defaultState.qml
new file mode 100644
index 0000000..5cc2971
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/defaultState.qml
@@ -0,0 +1,30 @@
+import Qt 4.6
+
+Object {
+ property int readyState
+ property bool statusIsException: false
+ property bool statusTextIsException: false
+ property string responseText
+ property bool responseXMLIsNull
+
+ Component.onCompleted: {
+ var xhr = new XMLHttpRequest();
+
+ readyState = xhr.readyState;
+ try {
+ status = xhr.status;
+ } catch (error) {
+ if (error.code == DOMException.INVALID_STATE_ERR)
+ statusIsException = true;
+ }
+ try {
+ statusText = xhr.statusText;
+ } catch (error) {
+ if (error.code == DOMException.INVALID_STATE_ERR)
+ statusTextIsException = true;
+ }
+ responseText = xhr.responseText;
+ responseXMLIsNull = (xhr.responseXML == null);
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/domExceptionCodes.qml b/tests/auto/declarative/xmlhttprequest/data/domExceptionCodes.qml
new file mode 100644
index 0000000..a4ab66c
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/domExceptionCodes.qml
@@ -0,0 +1,60 @@
+import Qt 4.6
+
+Object {
+ property int index_size_err: DOMException.INDEX_SIZE_ERR
+ property int domstring_size_err: DOMException.DOMSTRING_SIZE_ERR
+ property int hierarchy_request_err: DOMException.HIERARCHY_REQUEST_ERR
+ property int wrong_document_err: DOMException.WRONG_DOCUMENT_ERR
+ property int invalid_character_err: DOMException.INVALID_CHARACTER_ERR
+ property int no_data_allowed_err: DOMException.NO_DATA_ALLOWED_ERR
+ property int no_modification_allowed_err: DOMException.NO_MODIFICATION_ALLOWED_ERR
+ property int not_found_err: DOMException.NOT_FOUND_ERR
+ property int not_supported_err: DOMException.NOT_SUPPORTED_ERR
+ property int inuse_attribute_err: DOMException.INUSE_ATTRIBUTE_ERR
+ property int invalid_state_err: DOMException.INVALID_STATE_ERR
+ property int syntax_err: DOMException.SYNTAX_ERR
+ property int invalid_modification_err: DOMException.INVALID_MODIFICATION_ERR
+ property int namespace_err: DOMException.NAMESPACE_ERR
+ property int invalid_access_err: DOMException.INVALID_ACCESS_ERR
+ property int validation_err: DOMException.VALIDATION_ERR
+ property int type_mismatch_err: DOMException.TYPE_MISMATCH_ERR
+
+ Component.onCompleted: {
+ // Attempt to overwrite and delete values
+ DOMException.INDEX_SIZE_ERR = 44;
+ DOMException.DOMSTRING_SIZE_ERR = 44;
+ DOMException.HIERARCHY_REQUEST_ERR = 44;
+ DOMException.WRONG_DOCUMENT_ERR = 44;
+ DOMException.INVALID_CHARACTER_ERR = 44;
+ DOMException.NO_DATA_ALLOWED_ERR = 44;
+ DOMException.NO_MODIFICATION_ALLOWED_ERR = 44;
+ DOMException.NOT_FOUND_ERR = 44;
+ DOMException.NOT_SUPPORTED_ERR = 44;
+ DOMException.INUSE_ATTRIBUTE_ERR = 44;
+ DOMException.INVALID_STATE_ERR = 44;
+ DOMException.SYNTAX_ERR = 44;
+ DOMException.INVALID_MODIFICATION_ERR = 44;
+ DOMException.NAMESPACE_ERR = 44;
+ DOMException.INVALID_ACCESS_ERR = 44;
+ DOMException.VALIDATION_ERR = 44;
+ DOMException.TYPE_MISMATCH_ERR = 44;
+
+ delete DOMException.INDEX_SIZE_ERR;
+ delete DOMException.DOMSTRING_SIZE_ERR;
+ delete DOMException.HIERARCHY_REQUEST_ERR;
+ delete DOMException.WRONG_DOCUMENT_ERR;
+ delete DOMException.INVALID_CHARACTER_ERR;
+ delete DOMException.NO_DATA_ALLOWED_ERR;
+ delete DOMException.NO_MODIFICATION_ALLOWED_ERR;
+ delete DOMException.NOT_FOUND_ERR;
+ delete DOMException.NOT_SUPPORTED_ERR;
+ delete DOMException.INUSE_ATTRIBUTE_ERR;
+ delete DOMException.INVALID_STATE_ERR;
+ delete DOMException.SYNTAX_ERR;
+ delete DOMException.INVALID_MODIFICATION_ERR;
+ delete DOMException.NAMESPACE_ERR;
+ delete DOMException.INVALID_ACCESS_ERR;
+ delete DOMException.VALIDATION_ERR;
+ delete DOMException.TYPE_MISMATCH_ERR;
+ }
+}
diff --git a/tests/auto/declarative/xmlhttprequest/data/instanceStateValues.qml b/tests/auto/declarative/xmlhttprequest/data/instanceStateValues.qml
new file mode 100644
index 0000000..ab3064f
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/instanceStateValues.qml
@@ -0,0 +1,33 @@
+import Qt 4.6
+
+Object {
+ property int unsent
+ property int opened
+ property int headers_received
+ property int loading
+ property int done
+
+ Component.onCompleted: {
+ // Attempt to overwrite and delete values
+ var x = new XMLHttpRequest();
+
+ x.UNSENT = 9;
+ x.OPENED = 9;
+ x.HEADERS_RECEIVED = 9;
+ x.LOADING = 9;
+ x.DONE = 9;
+
+ delete x.UNSENT;
+ delete x.OPENED;
+ delete x.HEADERS_RECEIVED;
+ delete x.LOADING;
+ delete x.DONE;
+
+ unsent = x.UNSENT
+ opened = x.OPENED
+ headers_received = x.HEADERS_RECEIVED
+ loading = x.LOADING
+ done = x.DONE
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/open.qml b/tests/auto/declarative/xmlhttprequest/data/open.qml
new file mode 100644
index 0000000..7729bab
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/open.qml
@@ -0,0 +1,53 @@
+import Qt 4.6
+
+Object {
+ property string url
+
+ property bool readyState: false
+ property bool openedState: false
+
+ property bool status: false
+ property bool statusText: false
+ property bool responseText: false
+ property bool responseXML: false
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ if (x.readyState == XMLHttpRequest.UNSENT)
+ readyState = true;
+
+ x.open("GET", url);
+
+ if (x.readyState == XMLHttpRequest.OPENED)
+ openedState = true;
+
+ try {
+ var a = x.status;
+ } catch (error) {
+ if (error.code == DOMException.INVALID_STATE_ERR)
+ status = true;
+ }
+ try {
+ var a = x.statusText;
+ } catch (error) {
+ if (error.code == DOMException.INVALID_STATE_ERR)
+ statusText = true;
+ }
+ responseText = (x.responseText == "");
+ responseXML = (x.responseXML == null);
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+
+ x.send()
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/open_arg_count.1.qml b/tests/auto/declarative/xmlhttprequest/data/open_arg_count.1.qml
new file mode 100644
index 0000000..74f13ba
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/open_arg_count.1.qml
@@ -0,0 +1,18 @@
+import Qt 4.6
+
+Object {
+ property bool exceptionThrown: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ try {
+ x.open("GET");
+ } catch (e) {
+ if (e.code == DOMException.SYNTAX_ERR)
+ exceptionThrown = true;
+ }
+ }
+}
+
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/open_arg_count.2.qml b/tests/auto/declarative/xmlhttprequest/data/open_arg_count.2.qml
new file mode 100644
index 0000000..35dce9f
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/open_arg_count.2.qml
@@ -0,0 +1,18 @@
+import Qt 4.6
+
+Object {
+ property bool exceptionThrown: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ try {
+ x.open("GET", "http://www.nokia.com", true, "user", "password", "extra");
+ } catch (e) {
+ if (e.code == DOMException.SYNTAX_ERR)
+ exceptionThrown = true;
+ }
+ }
+}
+
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/open_invalid_method.qml b/tests/auto/declarative/xmlhttprequest/data/open_invalid_method.qml
new file mode 100644
index 0000000..7fb1a4c
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/open_invalid_method.qml
@@ -0,0 +1,16 @@
+import Qt 4.6
+
+Object {
+ property bool exceptionThrown: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ try {
+ x.open("BLAH", "http://www.nokia.com");
+ } catch (e) {
+ if (e.code == DOMException.SYNTAX_ERR)
+ exceptionThrown = true;
+ }
+ }
+}
diff --git a/tests/auto/declarative/xmlhttprequest/data/open_network.expect b/tests/auto/declarative/xmlhttprequest/data/open_network.expect
new file mode 100644
index 0000000..40e648e
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/open_network.expect
@@ -0,0 +1,7 @@
+GET /testdocument.html HTTP/1.1
+Connection: Keep-Alive
+Accept-Encoding: gzip
+accept-language: en,*
+User-Agent: Mozilla/5.0
+Host: localhost:14445
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/open_network.reply b/tests/auto/declarative/xmlhttprequest/data/open_network.reply
new file mode 100644
index 0000000..35b11f4
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/open_network.reply
@@ -0,0 +1,2 @@
+HTTP/1.0 200 OK
+Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/xmlhttprequest/data/open_network.wait b/tests/auto/declarative/xmlhttprequest/data/open_network.wait
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/open_network.wait
diff --git a/tests/auto/declarative/xmlhttprequest/data/open_sync.qml b/tests/auto/declarative/xmlhttprequest/data/open_sync.qml
new file mode 100644
index 0000000..7133e81
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/open_sync.qml
@@ -0,0 +1,17 @@
+import Qt 4.6
+
+Object {
+ property bool exceptionThrown: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ try {
+ x.open("GET", "http://www.nokia.com", false);
+ } catch (e) {
+ if (e.code == DOMException.NOT_SUPPORTED_ERR)
+ exceptionThrown = true;
+ }
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/open_username.qml b/tests/auto/declarative/xmlhttprequest/data/open_username.qml
new file mode 100644
index 0000000..c38110c
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/open_username.qml
@@ -0,0 +1,54 @@
+import Qt 4.6
+
+Object {
+ property string url
+
+ property bool readyState: false
+ property bool openedState: false
+
+ property bool status: false
+ property bool statusText: false
+ property bool responseText: false
+ property bool responseXML: false
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ if (x.readyState == XMLHttpRequest.UNSENT)
+ readyState = true;
+
+ x.open("GET", url, true, "sampleusername", "password");
+
+ if (x.readyState == XMLHttpRequest.OPENED)
+ openedState = true;
+
+ try {
+ var a = x.status;
+ } catch (error) {
+ if (error.code == DOMException.INVALID_STATE_ERR)
+ status = true;
+ }
+ try {
+ var a = x.statusText;
+ } catch (error) {
+ if (error.code == DOMException.INVALID_STATE_ERR)
+ statusText = true;
+ }
+ responseText = (x.responseText == "");
+ responseXML = (x.responseXML == null);
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+
+ x.send()
+ }
+}
+
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/seconddocument.html b/tests/auto/declarative/xmlhttprequest/data/seconddocument.html
new file mode 100644
index 0000000..a33f44b
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/seconddocument.html
@@ -0,0 +1 @@
+This should not be read!
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_alreadySent.qml b/tests/auto/declarative/xmlhttprequest/data/send_alreadySent.qml
new file mode 100644
index 0000000..4598169
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_alreadySent.qml
@@ -0,0 +1,27 @@
+import Qt 4.6
+
+Object {
+ property bool dataOK: false
+ property bool test: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+ x.open("GET", "testdocument.html");
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+ x.send();
+
+ try {
+ x.send()
+ } catch (e) {
+ if (e.code == DOMException.INVALID_STATE_ERR)
+ test = true;
+ }
+ }
+}
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.1.expect b/tests/auto/declarative/xmlhttprequest/data/send_data.1.expect
new file mode 100644
index 0000000..1ef179b
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_data.1.expect
@@ -0,0 +1,10 @@
+POST /testdocument.html HTTP/1.1
+Content-Type: text/plain;charset=UTF-8
+Content-Length: 12
+Connection: Keep-Alive
+Accept-Encoding: gzip
+accept-language: en,*
+User-Agent: Mozilla/5.0
+Host: localhost:14445
+
+My Sent Data \ No newline at end of file
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.1.qml b/tests/auto/declarative/xmlhttprequest/data/send_data.1.qml
new file mode 100644
index 0000000..c0b5bf8
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_data.1.qml
@@ -0,0 +1,21 @@
+import Qt 4.6
+
+Object {
+ property string url
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+ x.open("POST", url);
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+ x.send("My Sent Data");
+ }
+}
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.2.qml b/tests/auto/declarative/xmlhttprequest/data/send_data.2.qml
new file mode 100644
index 0000000..8a8c375
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_data.2.qml
@@ -0,0 +1,23 @@
+import Qt 4.6
+
+Object {
+ property string url
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+ x.open("POST", url);
+ x.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+ x.send("My Sent Data");
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.3.qml b/tests/auto/declarative/xmlhttprequest/data/send_data.3.qml
new file mode 100644
index 0000000..ae5731f
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_data.3.qml
@@ -0,0 +1,23 @@
+import Qt 4.6
+
+Object {
+ property string url
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+ x.open("POST", url);
+ x.setRequestHeader("Content-Type", "text/plain;charset=latin1");
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+ x.send("My Sent Data");
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.4.expect b/tests/auto/declarative/xmlhttprequest/data/send_data.4.expect
new file mode 100644
index 0000000..6b10b4a
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_data.4.expect
@@ -0,0 +1,10 @@
+POST /testdocument.html HTTP/1.1
+Content-Type: charset=UTF-8;text/plain
+Content-Length: 12
+Connection: Keep-Alive
+Accept-Encoding: gzip
+accept-language: en,*
+User-Agent: Mozilla/5.0
+Host: localhost:14445
+
+My Sent Data \ No newline at end of file
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.4.qml b/tests/auto/declarative/xmlhttprequest/data/send_data.4.qml
new file mode 100644
index 0000000..375f2fa
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_data.4.qml
@@ -0,0 +1,24 @@
+import Qt 4.6
+
+Object {
+ property string url
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+ x.open("POST", url);
+ x.setRequestHeader("Content-Type", "charset=UTF-8;text/plain");
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+ x.send("My Sent Data");
+ }
+}
+
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.5.qml b/tests/auto/declarative/xmlhttprequest/data/send_data.5.qml
new file mode 100644
index 0000000..eca1676
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_data.5.qml
@@ -0,0 +1,23 @@
+import Qt 4.6
+
+Object {
+ property string url
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+ x.open("POST", url);
+ x.setRequestHeader("Content-Type", "charset=latin1;text/plain");
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+ x.send("My Sent Data");
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.6.expect b/tests/auto/declarative/xmlhttprequest/data/send_data.6.expect
new file mode 100644
index 0000000..dc0d6c2
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_data.6.expect
@@ -0,0 +1,10 @@
+PUT /testdocument.html HTTP/1.1
+Content-Type: text/plain;charset=UTF-8
+Content-Length: 12
+Connection: Keep-Alive
+Accept-Encoding: gzip
+accept-language: en,*
+User-Agent: Mozilla/5.0
+Host: localhost:14445
+
+My Sent Data \ No newline at end of file
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.6.qml b/tests/auto/declarative/xmlhttprequest/data/send_data.6.qml
new file mode 100644
index 0000000..0bc2e35
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_data.6.qml
@@ -0,0 +1,21 @@
+import Qt 4.6
+
+Object {
+ property string url
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+ x.open("PUT", url);
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+ x.send("My Sent Data");
+ }
+}
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_data.reply b/tests/auto/declarative/xmlhttprequest/data/send_data.reply
new file mode 100644
index 0000000..35b11f4
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_data.reply
@@ -0,0 +1,2 @@
+HTTP/1.0 200 OK
+Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_ignoreData.qml b/tests/auto/declarative/xmlhttprequest/data/send_ignoreData.qml
new file mode 100644
index 0000000..6f33eef
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_ignoreData.qml
@@ -0,0 +1,26 @@
+import Qt 4.6
+
+Object {
+ property string reqType
+ property string url
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+ x.open(reqType, url);
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ if (reqType == "HEAD")
+ dataOK = (x.responseText == "");
+ else
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+ x.send("Data To Ignore");
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_ignoreData.reply b/tests/auto/declarative/xmlhttprequest/data/send_ignoreData.reply
new file mode 100644
index 0000000..35b11f4
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_ignoreData.reply
@@ -0,0 +1,2 @@
+HTTP/1.0 200 OK
+Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_ignoreData_GET.expect b/tests/auto/declarative/xmlhttprequest/data/send_ignoreData_GET.expect
new file mode 100644
index 0000000..40e648e
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_ignoreData_GET.expect
@@ -0,0 +1,7 @@
+GET /testdocument.html HTTP/1.1
+Connection: Keep-Alive
+Accept-Encoding: gzip
+accept-language: en,*
+User-Agent: Mozilla/5.0
+Host: localhost:14445
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_ignoreData_PUT.expect b/tests/auto/declarative/xmlhttprequest/data/send_ignoreData_PUT.expect
new file mode 100644
index 0000000..381cc89
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_ignoreData_PUT.expect
@@ -0,0 +1,7 @@
+HEAD /testdocument.html HTTP/1.1
+Connection: Keep-Alive
+Accept-Encoding: gzip
+accept-language: en,*
+User-Agent: Mozilla/5.0
+Host: localhost:14445
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/send_unsent.qml b/tests/auto/declarative/xmlhttprequest/data/send_unsent.qml
new file mode 100644
index 0000000..76c26a3
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/send_unsent.qml
@@ -0,0 +1,16 @@
+import Qt 4.6
+
+Object {
+ property bool test: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ try {
+ x.send();
+ } catch (e) {
+ if (e.code == DOMException.INVALID_STATE_ERR)
+ test = true;
+ }
+ }
+}
diff --git a/tests/auto/declarative/xmlhttprequest/data/setRequestHeader.expect b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader.expect
new file mode 100644
index 0000000..031ddff
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader.expect
@@ -0,0 +1,9 @@
+GET /testdocument.html HTTP/1.1
+TEST-HEADER: value
+TEST-HEADER2: value,value2
+Connection: Keep-Alive
+Accept-Encoding: gzip
+accept-language: en,*
+User-Agent: Mozilla/5.0
+Host: localhost:14445
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/setRequestHeader.qml b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader.qml
new file mode 100644
index 0000000..8ea587a
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader.qml
@@ -0,0 +1,28 @@
+import Qt 4.6
+
+Object {
+ property string url
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ x.open("GET", url);
+
+ x.setRequestHeader("Test-header", "value");
+ x.setRequestHeader("Test-header2", "value");
+ x.setRequestHeader("Test-header2", "value2");
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+ x.send();
+ }
+}
+
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/setRequestHeader.reply b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader.reply
new file mode 100644
index 0000000..35b11f4
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader.reply
@@ -0,0 +1,2 @@
+HTTP/1.0 200 OK
+Content-type: text/html; charset=UTF-8
diff --git a/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_illegalName.qml b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_illegalName.qml
new file mode 100644
index 0000000..cf5ebcc
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_illegalName.qml
@@ -0,0 +1,55 @@
+import Qt 4.6
+
+Object {
+ property string url
+ property string header
+
+ property bool readyState: false
+ property bool openedState: false
+
+ property bool status: false
+ property bool statusText: false
+ property bool responseText: false
+ property bool responseXML: false
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ if (x.readyState == XMLHttpRequest.UNSENT)
+ readyState = true;
+
+ x.open("GET", url);
+
+ if (x.readyState == XMLHttpRequest.OPENED)
+ openedState = true;
+
+ try {
+ var a = x.status;
+ } catch (error) {
+ if (error.code == DOMException.INVALID_STATE_ERR)
+ status = true;
+ }
+ try {
+ var a = x.statusText;
+ } catch (error) {
+ if (error.code == DOMException.INVALID_STATE_ERR)
+ statusText = true;
+ }
+ responseText = (x.responseText == "");
+ responseXML = (x.responseXML == null);
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+
+ x.send()
+ }
+}
+
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_sent.qml b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_sent.qml
new file mode 100644
index 0000000..b637f17
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_sent.qml
@@ -0,0 +1,31 @@
+import Qt 4.6
+
+Object {
+ property string url
+ property bool test: false
+
+ property bool dataOK: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ x.open("GET", url);
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+ dataOK = (x.responseText == "QML Rocks!\n");
+ }
+ }
+
+ x.send();
+
+ try {
+ x.setRequestHeader("Test-header", "value");
+ } catch (e) {
+ if (e.code == DOMException.INVALID_STATE_ERR)
+ test = true;
+ }
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_unsent.qml b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_unsent.qml
new file mode 100644
index 0000000..4e89abf
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/setRequestHeader_unsent.qml
@@ -0,0 +1,17 @@
+import Qt 4.6
+
+Object {
+ property bool test: false
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ try {
+ x.setRequestHeader("Test-header", "value");
+ } catch (e) {
+ if (e.code == DOMException.INVALID_STATE_ERR)
+ test = true;
+ }
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/data/staticStateValues.qml b/tests/auto/declarative/xmlhttprequest/data/staticStateValues.qml
new file mode 100644
index 0000000..aaaadad
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/staticStateValues.qml
@@ -0,0 +1,24 @@
+import Qt 4.6
+
+Object {
+ property int unsent: XMLHttpRequest.UNSENT
+ property int opened: XMLHttpRequest.OPENED
+ property int headers_received: XMLHttpRequest.HEADERS_RECEIVED
+ property int loading: XMLHttpRequest.LOADING
+ property int done: XMLHttpRequest.DONE
+
+ Component.onCompleted: {
+ // Attempt to overwrite and delete values
+ XMLHttpRequest.UNSENT = 9;
+ XMLHttpRequest.OPENED = 9;
+ XMLHttpRequest.HEADERS_RECEIVED = 9;
+ XMLHttpRequest.LOADING = 9;
+ XMLHttpRequest.DONE = 9;
+
+ delete XMLHttpRequest.UNSENT;
+ delete XMLHttpRequest.OPENED;
+ delete XMLHttpRequest.HEADERS_RECEIVED;
+ delete XMLHttpRequest.LOADING;
+ delete XMLHttpRequest.DONE;
+ }
+}
diff --git a/tests/auto/declarative/xmlhttprequest/data/testdocument.html b/tests/auto/declarative/xmlhttprequest/data/testdocument.html
new file mode 100644
index 0000000..8fe0f4b
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/data/testdocument.html
@@ -0,0 +1 @@
+QML Rocks!
diff --git a/tests/auto/declarative/xmlhttprequest/testhttpserver.cpp b/tests/auto/declarative/xmlhttprequest/testhttpserver.cpp
new file mode 100644
index 0000000..b579944
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/testhttpserver.cpp
@@ -0,0 +1,153 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 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 "testhttpserver.h"
+#include <QTcpSocket>
+#include <QDebug>
+#include <QFile>
+
+TestHTTPServer::TestHTTPServer(quint16 port)
+: m_hasFailed(false)
+{
+ QObject::connect(&server, SIGNAL(newConnection()), this, SLOT(newConnection()));
+
+ server.listen(QHostAddress::Any, port);
+}
+
+bool TestHTTPServer::isValid() const
+{
+ return server.isListening();
+}
+
+bool TestHTTPServer::wait(const QUrl &expect, const QUrl &reply, const QUrl &body)
+{
+ m_hasFailed = false;
+
+ QFile expectFile(expect.toLocalFile());
+ if (!expectFile.open(QIODevice::ReadOnly)) return false;
+
+ QFile replyFile(reply.toLocalFile());
+ if (!replyFile.open(QIODevice::ReadOnly)) return false;
+
+ bodyData = QByteArray();
+ QFile bodyFile(body.toLocalFile());
+ if (bodyFile.open(QIODevice::ReadOnly)) {
+ bodyData = bodyFile.readAll();
+ }
+
+ waitData = expectFile.readAll();
+ /*
+ while (waitData.endsWith('\n'))
+ waitData = waitData.left(waitData.count() - 1);
+ */
+
+ replyData = replyFile.readAll();
+
+ if (!replyData.endsWith('\n'))
+ replyData.append("\n");
+ replyData.append("Content-length: " + QByteArray::number(bodyData.length()));
+ replyData .append("\n\n");
+
+ for (int ii = 0; ii < replyData.count(); ++ii) {
+ if (replyData.at(ii) == '\n' && (!ii || replyData.at(ii - 1) != '\r')) {
+ replyData.insert(ii, '\r');
+ ++ii;
+ }
+ }
+ replyData.append(bodyData);
+
+ return true;
+}
+
+bool TestHTTPServer::hasFailed() const
+{
+ return m_hasFailed;
+}
+
+void TestHTTPServer::newConnection()
+{
+ QTcpSocket *socket = server.nextPendingConnection();
+ if (!socket) return;
+
+ QObject::connect(socket, SIGNAL(disconnected()), this, SLOT(disconnected()));
+ QObject::connect(socket, SIGNAL(readyRead()), this, SLOT(readyRead()));
+}
+
+void TestHTTPServer::disconnected()
+{
+ sender()->deleteLater();
+}
+
+void TestHTTPServer::readyRead()
+{
+ QTcpSocket *socket = qobject_cast<QTcpSocket *>(sender());
+ if (!socket) return;
+
+ QByteArray ba = socket->readAll();
+
+ if (m_hasFailed || waitData.isEmpty()) {
+ qWarning() << "TestHTTPServer: Unexpected data" << ba;
+ return;
+ }
+
+ for (int ii = 0; ii < ba.count(); ++ii) {
+ const char c = ba.at(ii);
+ if (c == '\r' && waitData.isEmpty())
+ continue;
+ else if (!waitData.isEmpty() && c == waitData.at(0))
+ waitData = waitData.mid(1);
+ else if (c == '\r')
+ continue;
+ else {
+ QByteArray data = ba.mid(ii);
+ qWarning() << "TestHTTPServer: Unexpected data" << data;
+ m_hasFailed = true;
+ socket->disconnect();
+ return;
+ }
+ }
+
+ if (waitData.isEmpty()) {
+ socket->write(replyData);
+ socket->disconnect();
+ }
+}
+
diff --git a/tests/auto/declarative/xmlhttprequest/testhttpserver.h b/tests/auto/declarative/xmlhttprequest/testhttpserver.h
new file mode 100644
index 0000000..709532e
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/testhttpserver.h
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 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$
+**
+****************************************************************************/
+
+#ifndef TESTHTTPSERVER_H
+#define TESTHTTPSERVER_H
+
+#include <QObject>
+#include <QTcpServer>
+#include <QUrl>
+
+class TestHTTPServer : public QObject
+{
+ Q_OBJECT
+public:
+ TestHTTPServer(quint16 port);
+
+ bool isValid() const;
+
+ bool wait(const QUrl &expect, const QUrl &reply, const QUrl &body);
+ bool hasFailed() const;
+
+private slots:
+ void newConnection();
+ void disconnected();
+ void readyRead();
+
+private:
+ QByteArray waitData;
+ QByteArray replyData;
+ QByteArray bodyData;
+ bool m_hasFailed;
+
+ QTcpServer server;
+};
+
+#endif // TESTHTTPSERVER_H
+
diff --git a/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp b/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp
new file mode 100644
index 0000000..bedb620
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/tst_xmlhttprequest.cpp
@@ -0,0 +1,619 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 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 <QmlEngine>
+#include <QmlComponent>
+#include <QDebug>
+#include <QWebPage>
+#include <QWebFrame>
+#include "testhttpserver.h"
+
+#define SERVER_PORT 14445
+
+class tst_xmlhttprequest : public QObject
+{
+ Q_OBJECT
+public:
+ tst_xmlhttprequest() {}
+
+private slots:
+ void domExceptionCodes();
+ void staticStateValues();
+ void instanceStateValues();
+ void constructor();
+ void defaultState();
+ void open();
+ void open_invalid_method();
+ void open_sync();
+ void open_arg_count();
+ void setRequestHeader();
+ void setRequestHeader_unsent();
+ void setRequestHeader_illegalName_data();
+ void setRequestHeader_illegalName();
+ void setRequestHeader_sent();
+ void send_unsent();
+ void send_alreadySent();
+ void send_ignoreData();
+ void send_withdata();
+ void abort();
+
+ // Crashes
+ // void outstanding_request_at_shutdown();
+
+private:
+ QmlEngine engine;
+};
+
+class QWebPageWithJavaScriptConsoleMessages : public QWebPage {
+public:
+ void javaScriptConsoleMessage(const QString& message, int lineNumber, const QString& sourceID)
+ {
+ qWarning() << sourceID << ":" << lineNumber << ":" << message;
+ }
+};
+
+inline QUrl TEST_FILE(const QString &filename)
+{
+ return QUrl::fromLocalFile(QLatin1String(SRCDIR) + QLatin1String("/data/") + filename);
+}
+
+// Test that the dom exception codes are correct
+void tst_xmlhttprequest::domExceptionCodes()
+{
+ QmlComponent component(&engine, TEST_FILE("domExceptionCodes.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("index_size_err").toInt(), 1);
+ QCOMPARE(object->property("domstring_size_err").toInt(), 2);
+ QCOMPARE(object->property("hierarchy_request_err").toInt(), 3);
+ QCOMPARE(object->property("wrong_document_err").toInt(), 4);
+ QCOMPARE(object->property("invalid_character_err").toInt(), 5);
+ QCOMPARE(object->property("no_data_allowed_err").toInt(), 6);
+ QCOMPARE(object->property("no_modification_allowed_err").toInt(), 7);
+ QCOMPARE(object->property("not_found_err").toInt(), 8);
+ QCOMPARE(object->property("not_supported_err").toInt(), 9);
+ QCOMPARE(object->property("inuse_attribute_err").toInt(), 10);
+ QCOMPARE(object->property("invalid_state_err").toInt(), 11);
+ QCOMPARE(object->property("syntax_err").toInt(), 12);
+ QCOMPARE(object->property("invalid_modification_err").toInt(), 13);
+ QCOMPARE(object->property("namespace_err").toInt(), 14);
+ QCOMPARE(object->property("invalid_access_err").toInt(), 15);
+ QCOMPARE(object->property("validation_err").toInt(), 16);
+ QCOMPARE(object->property("type_mismatch_err").toInt(), 17);
+
+ delete object;
+}
+
+// Test that the state value properties on the XMLHttpRequest constructor have the correct values.
+// ### WebKit does not do this, but it seems to fit the standard and QML better
+void tst_xmlhttprequest::staticStateValues()
+{
+ QmlComponent component(&engine, TEST_FILE("staticStateValues.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("unsent").toInt(), 0);
+ QCOMPARE(object->property("opened").toInt(), 1);
+ QCOMPARE(object->property("headers_received").toInt(), 2);
+ QCOMPARE(object->property("loading").toInt(), 3);
+ QCOMPARE(object->property("done").toInt(), 4);
+
+ delete object;
+}
+
+// Test that the state value properties on instances have the correct values.
+void tst_xmlhttprequest::instanceStateValues()
+{
+ QmlComponent component(&engine, TEST_FILE("instanceStateValues.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("unsent").toInt(), 0);
+ QCOMPARE(object->property("opened").toInt(), 1);
+ QCOMPARE(object->property("headers_received").toInt(), 2);
+ QCOMPARE(object->property("loading").toInt(), 3);
+ QCOMPARE(object->property("done").toInt(), 4);
+
+ delete object;
+}
+
+// Test calling constructor
+void tst_xmlhttprequest::constructor()
+{
+ QmlComponent component(&engine, TEST_FILE("constructor.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("calledAsConstructor").toBool(), true);
+ QCOMPARE(object->property("calledAsFunction").toBool(), true);
+
+ delete object;
+}
+
+// Test that all the properties are set correctly before any request is sent
+void tst_xmlhttprequest::defaultState()
+{
+ QmlComponent component(&engine, TEST_FILE("defaultState.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("readState").toInt(), 0);
+ QCOMPARE(object->property("statusIsException").toBool(), true);
+ QCOMPARE(object->property("statusTextIsException").toBool(), true);
+ QCOMPARE(object->property("responseText").toString(), QString());
+ QCOMPARE(object->property("responseXMLIsNull").toBool(), true);
+
+ delete object;
+}
+
+#define TRY_WAIT(expr) \
+ do { \
+ for (int ii = 0; ii < 6; ++ii) { \
+ if ((expr)) break; \
+ QTest::qWait(50); \
+ } \
+ QVERIFY((expr)); \
+ } while (false)
+
+// Test valid XMLHttpRequest.open() calls
+void tst_xmlhttprequest::open()
+{
+ // Relative url
+ {
+ QmlComponent component(&engine, TEST_FILE("open.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "testdocument.html");
+ component.completeCreate();
+
+ QCOMPARE(object->property("readyState").toBool(), true);
+ QCOMPARE(object->property("openedState").toBool(), true);
+ QCOMPARE(object->property("status").toBool(), true);
+ QCOMPARE(object->property("statusText").toBool(), true);
+ QCOMPARE(object->property("responseText").toBool(), true);
+ QCOMPARE(object->property("responseXML").toBool(), true);
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+
+ // Absolute url
+ {
+ QmlComponent component(&engine, TEST_FILE("open.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", TEST_FILE("testdocument.html").toString());
+ component.completeCreate();
+
+ QCOMPARE(object->property("readyState").toBool(), true);
+ QCOMPARE(object->property("openedState").toBool(), true);
+ QCOMPARE(object->property("status").toBool(), true);
+ QCOMPARE(object->property("statusText").toBool(), true);
+ QCOMPARE(object->property("responseText").toBool(), true);
+ QCOMPARE(object->property("responseXML").toBool(), true);
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+
+ // Absolute network url
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("open_network.expect"),
+ TEST_FILE("open_network.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("open.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ QCOMPARE(object->property("readyState").toBool(), true);
+ QCOMPARE(object->property("openedState").toBool(), true);
+ QCOMPARE(object->property("status").toBool(), true);
+ QCOMPARE(object->property("statusText").toBool(), true);
+ QCOMPARE(object->property("responseText").toBool(), true);
+ QCOMPARE(object->property("responseXML").toBool(), true);
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+}
+
+// Test that calling XMLHttpRequest.open() with an invalid method raises an exception
+void tst_xmlhttprequest::open_invalid_method()
+{
+ QmlComponent component(&engine, TEST_FILE("open_invalid_method.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("exceptionThrown").toBool(), true);
+
+ delete object;
+}
+
+// Test that calling XMLHttpRequest.open() with sync raises an exception
+void tst_xmlhttprequest::open_sync()
+{
+ QmlComponent component(&engine, TEST_FILE("open_sync.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("exceptionThrown").toBool(), true);
+
+ delete object;
+}
+
+// Calling with incorrect arg count raises an exception
+void tst_xmlhttprequest::open_arg_count()
+{
+ {
+ QmlComponent component(&engine, TEST_FILE("open_arg_count.1.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("exceptionThrown").toBool(), true);
+
+ delete object;
+ }
+
+ {
+ QmlComponent component(&engine, TEST_FILE("open_arg_count.2.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("exceptionThrown").toBool(), true);
+
+ delete object;
+ }
+}
+
+// Test valid setRequestHeader() calls
+void tst_xmlhttprequest::setRequestHeader()
+{
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("setRequestHeader.expect"),
+ TEST_FILE("setRequestHeader.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("setRequestHeader.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+}
+
+// Test setting headers before open() throws exception
+void tst_xmlhttprequest::setRequestHeader_unsent()
+{
+ QmlComponent component(&engine, TEST_FILE("setRequestHeader_unsent.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), true);
+
+ delete object;
+}
+
+void tst_xmlhttprequest::setRequestHeader_illegalName_data()
+{
+ QTest::addColumn<QString>("name");
+
+ QTest::newRow("Accept-Charset") << "AccePT-CHArset";
+ QTest::newRow("Accept-Encoding") << "AccEpt-EnCOding";
+ QTest::newRow("Connection") << "ConnECtion";
+ QTest::newRow("Content-Length") << "ContEnt-LenGth";
+ QTest::newRow("Cookie") << "CookIe";
+ QTest::newRow("Cookie2") << "CoOkie2";
+ QTest::newRow("Content-Transfer-Encoding") << "ConteNT-tRANSFER-eNCOding";
+ QTest::newRow("Date") << "DaTE";
+ QTest::newRow("Expect") << "ExPect";
+ QTest::newRow("Host") << "HoST";
+ QTest::newRow("Keep-Alive") << "KEEP-aLive";
+ QTest::newRow("Referer") << "ReferEr";
+ QTest::newRow("TE") << "Te";
+ QTest::newRow("Trailer") << "TraILEr";
+ QTest::newRow("Transfer-Encoding") << "tRANsfer-Encoding";
+ QTest::newRow("Upgrade") << "UpgrADe";
+ QTest::newRow("User-Agent") << "uSEr-Agent";
+ QTest::newRow("Via") << "vIa";
+ QTest::newRow("Proxy-") << "ProXy-";
+ QTest::newRow("Sec-") << "SeC-";
+ QTest::newRow("Proxy-*") << "Proxy-BLAH";
+ QTest::newRow("Sec-*") << "Sec-F";
+}
+
+// Tests that using illegal header names has no effect
+void tst_xmlhttprequest::setRequestHeader_illegalName()
+{
+ QFETCH(QString, name);
+
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("open_network.expect"),
+ TEST_FILE("open_network.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("setRequestHeader_illegalName.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ object->setProperty("header", name);
+ component.completeCreate();
+
+ QCOMPARE(object->property("readyState").toBool(), true);
+ QCOMPARE(object->property("openedState").toBool(), true);
+ QCOMPARE(object->property("status").toBool(), true);
+ QCOMPARE(object->property("statusText").toBool(), true);
+ QCOMPARE(object->property("responseText").toBool(), true);
+ QCOMPARE(object->property("responseXML").toBool(), true);
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+}
+
+// Test that attempting to set a header after a request is sent throws an exception
+void tst_xmlhttprequest::setRequestHeader_sent()
+{
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("open_network.expect"),
+ TEST_FILE("open_network.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("setRequestHeader_sent.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ QCOMPARE(object->property("test").toBool(), true);
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+}
+
+// Test that calling send() in UNSENT state throws an exception
+void tst_xmlhttprequest::send_unsent()
+{
+ QmlComponent component(&engine, TEST_FILE("send_unsent.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), true);
+
+ delete object;
+}
+
+// Test attempting to resend a sent request throws an exception
+void tst_xmlhttprequest::send_alreadySent()
+{
+ QmlComponent component(&engine, TEST_FILE("send_alreadySent.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), true);
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+}
+
+// Test that send for a GET or HEAD ignores data
+void tst_xmlhttprequest::send_ignoreData()
+{
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("send_ignoreData_GET.expect"),
+ TEST_FILE("send_ignoreData.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("send_ignoreData.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("reqType", "GET");
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("send_ignoreData_PUT.expect"),
+ TEST_FILE("send_ignoreData.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("send_ignoreData.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("reqType", "HEAD");
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+}
+
+// Test that send()'ing data works
+void tst_xmlhttprequest::send_withdata()
+{
+ // No content-type
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("send_data.1.expect"),
+ TEST_FILE("send_data.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("send_data.1.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+
+ // Correct content-type
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("send_data.1.expect"),
+ TEST_FILE("send_data.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("send_data.2.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+
+ // Incorrect content-type
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("send_data.1.expect"),
+ TEST_FILE("send_data.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("send_data.3.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+
+ // Correct content-type - out of order
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("send_data.4.expect"),
+ TEST_FILE("send_data.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("send_data.4.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+
+ // Incorrect content-type - out of order
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("send_data.4.expect"),
+ TEST_FILE("send_data.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("send_data.5.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+
+ // PUT
+ {
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("send_data.6.expect"),
+ TEST_FILE("send_data.reply"),
+ TEST_FILE("testdocument.html")));
+
+ QmlComponent component(&engine, TEST_FILE("send_data.6.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://localhost:14445/testdocument.html");
+ component.completeCreate();
+
+ TRY_WAIT(object->property("dataOK").toBool() == true);
+
+ delete object;
+ }
+}
+
+void tst_xmlhttprequest::abort()
+{
+}
+
+QTEST_MAIN(tst_xmlhttprequest)
+
+#include "tst_xmlhttprequest.moc"
diff --git a/tests/auto/declarative/xmlhttprequest/xmlhttprequest.pro b/tests/auto/declarative/xmlhttprequest/xmlhttprequest.pro
new file mode 100644
index 0000000..5d35a89
--- /dev/null
+++ b/tests/auto/declarative/xmlhttprequest/xmlhttprequest.pro
@@ -0,0 +1,12 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative webkit network
+macx:CONFIG -= app_bundle
+
+HEADERS += testhttpserver.h
+
+SOURCES += tst_xmlhttprequest.cpp \
+ testhttpserver.cpp
+
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/gestures/tst_gestures.cpp b/tests/auto/gestures/tst_gestures.cpp
index 02c8232..20b53f2 100644
--- a/tests/auto/gestures/tst_gestures.cpp
+++ b/tests/auto/gestures/tst_gestures.cpp
@@ -111,12 +111,12 @@ public:
CustomEvent::EventType = QEvent::registerEventType();
}
- QGesture* createGesture(QObject *)
+ QGesture* create(QObject *)
{
return new CustomGesture;
}
- QGestureRecognizer::Result filterEvent(QGesture *state, QObject*, QEvent *event)
+ QGestureRecognizer::Result recognize(QGesture *state, QObject*, QEvent *event)
{
if (event->type() == CustomEvent::EventType) {
QGestureRecognizer::Result result = 0;
@@ -128,13 +128,13 @@ public:
if (e->hasHotSpot)
g->setHotSpot(e->hotSpot);
if (g->serial >= CustomGesture::SerialFinishedThreshold)
- result |= QGestureRecognizer::GestureFinished;
+ result |= QGestureRecognizer::FinishGesture;
else if (g->serial >= CustomGesture::SerialStartedThreshold)
- result |= QGestureRecognizer::GestureTriggered;
+ result |= QGestureRecognizer::TriggerGesture;
else if (g->serial >= CustomGesture::SerialMaybeThreshold)
- result |= QGestureRecognizer::MaybeGesture;
+ result |= QGestureRecognizer::MayBeGesture;
else
- result = QGestureRecognizer::NotGesture;
+ result = QGestureRecognizer::CancelGesture;
return result;
}
return QGestureRecognizer::Ignore;
@@ -142,7 +142,7 @@ public:
void reset(QGesture *state)
{
- CustomGesture *g = static_cast<CustomGesture*>(state);
+ CustomGesture *g = static_cast<CustomGesture *>(state);
g->serial = 0;
QGestureRecognizer::reset(state);
}
@@ -159,26 +159,26 @@ public:
CustomEvent::EventType = QEvent::registerEventType();
}
- QGesture* createGesture(QObject *)
+ QGesture* create(QObject *)
{
return new CustomGesture;
}
- QGestureRecognizer::Result filterEvent(QGesture *state, QObject*, QEvent *event)
+ QGestureRecognizer::Result recognize(QGesture *state, QObject*, QEvent *event)
{
if (event->type() == CustomEvent::EventType) {
QGestureRecognizer::Result result = QGestureRecognizer::ConsumeEventHint;
- CustomGesture *g = static_cast<CustomGesture*>(state);
- CustomEvent *e = static_cast<CustomEvent*>(event);
+ CustomGesture *g = static_cast<CustomGesture *>(state);
+ CustomEvent *e = static_cast<CustomEvent *>(event);
g->serial = e->serial;
if (e->hasHotSpot)
g->setHotSpot(e->hotSpot);
if (g->serial >= CustomGesture::SerialFinishedThreshold)
- result |= QGestureRecognizer::GestureFinished;
+ result |= QGestureRecognizer::FinishGesture;
else if (g->serial >= CustomGesture::SerialMaybeThreshold)
- result |= QGestureRecognizer::GestureTriggered;
+ result |= QGestureRecognizer::TriggerGesture;
else
- result = QGestureRecognizer::NotGesture;
+ result = QGestureRecognizer::CancelGesture;
return result;
}
return QGestureRecognizer::Ignore;
@@ -186,7 +186,7 @@ public:
void reset(QGesture *state)
{
- CustomGesture *g = static_cast<CustomGesture*>(state);
+ CustomGesture *g = static_cast<CustomGesture *>(state);
g->serial = 0;
QGestureRecognizer::reset(state);
}
@@ -256,7 +256,7 @@ protected:
}
if (eventsPtr) {
QGestureEvent *e = static_cast<QGestureEvent*>(event);
- QList<QGesture*> gestures = e->allGestures();
+ QList<QGesture*> gestures = e->gestures();
foreach(QGesture *g, gestures) {
eventsPtr->all << g->gestureType();
switch(g->state()) {
@@ -332,6 +332,7 @@ private slots:
void consumeEventHint();
void unregisterRecognizer();
void autoCancelGestures();
+ void autoCancelGestures2();
};
tst_Gestures::tst_Gestures()
@@ -344,14 +345,14 @@ tst_Gestures::~tst_Gestures()
void tst_Gestures::initTestCase()
{
- CustomGesture::GestureType = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+ CustomGesture::GestureType = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
QVERIFY(CustomGesture::GestureType != Qt::GestureType(0));
QVERIFY(CustomGesture::GestureType != Qt::CustomGesture);
}
void tst_Gestures::cleanupTestCase()
{
- QApplication::unregisterGestureRecognizer(CustomGesture::GestureType);
+ QGestureRecognizer::unregisterRecognizer(CustomGesture::GestureType);
}
void tst_Gestures::init()
@@ -365,7 +366,7 @@ void tst_Gestures::cleanup()
void tst_Gestures::customGesture()
{
GestureWidget widget;
- widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+ widget.grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
CustomEvent event;
sendCustomGesture(&event, &widget);
@@ -386,7 +387,7 @@ void tst_Gestures::customGesture()
void tst_Gestures::consumeEventHint()
{
GestureWidget widget;
- widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+ widget.grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
CustomGestureRecognizer::ConsumeEvents = true;
CustomEvent event;
@@ -399,7 +400,7 @@ void tst_Gestures::consumeEventHint()
void tst_Gestures::autoCancelingGestures()
{
GestureWidget widget;
- widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+ widget.grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
// send partial gesture. The gesture will be in the "maybe" state, but will
// never get enough events to fire, so Qt will have to kill it.
CustomEvent ev;
@@ -423,7 +424,7 @@ void tst_Gestures::gestureOverChild()
GestureWidget *child = new GestureWidget("child");
l->addWidget(child);
- widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+ widget.grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
CustomEvent event;
sendCustomGesture(&event, child);
@@ -439,7 +440,7 @@ void tst_Gestures::gestureOverChild()
QCOMPARE(widget.gestureOverrideEventsReceived, 0);
// enable gestures over the children
- widget.grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture);
+ widget.grabGesture(CustomGesture::GestureType);
widget.reset();
child->reset();
@@ -468,8 +469,8 @@ void tst_Gestures::multipleWidgetOnlyGestureInTree()
GestureWidget *child = new GestureWidget("child");
l->addWidget(child);
- parent.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
- child->grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+ parent.grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
+ child->grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
static const int TotalGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialStartedThreshold + 1;
static const int TotalCustomEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialMaybeThreshold + 1;
@@ -506,8 +507,8 @@ void tst_Gestures::conflictingGestures()
GestureWidget *child = new GestureWidget("child");
l->addWidget(child);
- parent.grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture);
- child->grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture);
+ parent.grabGesture(CustomGesture::GestureType);
+ child->grabGesture(CustomGesture::GestureType);
static const int TotalGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialStartedThreshold + 1;
@@ -542,7 +543,9 @@ void tst_Gestures::conflictingGestures()
parent.reset();
child->reset();
- // nobody accepts the override, we will send normal events to the closest context (to the child)
+ // nobody accepts the override, we will send normal events to the closest
+ // context (i.e. to the child widget) and it will be propagated and
+ // accepted by the parent widget
parent.acceptGestureOverride = false;
child->acceptGestureOverride = false;
child->ignoredGestures << CustomGesture::GestureType;
@@ -551,6 +554,41 @@ void tst_Gestures::conflictingGestures()
sendCustomGesture(&event, child);
QCOMPARE(child->gestureOverrideEventsReceived, 1);
+ QCOMPARE(child->gestureEventsReceived, 1);
+ QCOMPARE(parent.gestureOverrideEventsReceived, 1);
+ QCOMPARE(parent.gestureEventsReceived, TotalGestureEventsCount);
+
+ parent.reset();
+ child->reset();
+
+ // nobody accepts the override, and nobody accepts the gesture event
+ parent.acceptGestureOverride = false;
+ child->acceptGestureOverride = false;
+ parent.ignoredGestures << CustomGesture::GestureType;
+ child->ignoredGestures << CustomGesture::GestureType;
+
+ // sending events to the child and making sure there is no conflict
+ sendCustomGesture(&event, child);
+
+ QCOMPARE(child->gestureOverrideEventsReceived, 1);
+ QCOMPARE(child->gestureEventsReceived, TotalGestureEventsCount);
+ QCOMPARE(parent.gestureOverrideEventsReceived, 1);
+ QCOMPARE(parent.gestureEventsReceived, 1);
+
+ parent.reset();
+ child->reset();
+
+ // we set an attribute to make sure all gesture events are propagated
+ parent.grabGesture(CustomGesture::GestureType, Qt::ReceivePartialGestures);
+ parent.acceptGestureOverride = false;
+ child->acceptGestureOverride = false;
+ parent.ignoredGestures << CustomGesture::GestureType;
+ child->ignoredGestures << CustomGesture::GestureType;
+
+ // sending events to the child and making sure there is no conflict
+ sendCustomGesture(&event, child);
+
+ QCOMPARE(child->gestureOverrideEventsReceived, 1);
QCOMPARE(child->gestureEventsReceived, TotalGestureEventsCount);
QCOMPARE(parent.gestureOverrideEventsReceived, 1);
QCOMPARE(parent.gestureEventsReceived, TotalGestureEventsCount);
@@ -558,7 +596,7 @@ void tst_Gestures::conflictingGestures()
parent.reset();
child->reset();
- Qt::GestureType ContinuousGesture = QApplication::registerGestureRecognizer(new CustomContinuousGestureRecognizer);
+ Qt::GestureType ContinuousGesture = QGestureRecognizer::registerRecognizer(new CustomContinuousGestureRecognizer);
static const int ContinuousGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialMaybeThreshold + 1;
child->grabGesture(ContinuousGesture);
// child accepts override. And it also receives another custom gesture.
@@ -572,13 +610,13 @@ void tst_Gestures::conflictingGestures()
QCOMPARE(parent.gestureOverrideEventsReceived, 0);
QCOMPARE(parent.gestureEventsReceived, 0);
- QApplication::unregisterGestureRecognizer(ContinuousGesture);
+ QGestureRecognizer::unregisterRecognizer(ContinuousGesture);
}
void tst_Gestures::finishedWithoutStarted()
{
GestureWidget widget;
- widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+ widget.grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
// the gesture will claim it finished, but it was never started.
CustomEvent ev;
@@ -598,9 +636,9 @@ void tst_Gestures::finishedWithoutStarted()
void tst_Gestures::unknownGesture()
{
GestureWidget widget;
- widget.grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
- widget.grabGesture(Qt::CustomGesture, Qt::WidgetGesture);
- widget.grabGesture(Qt::GestureType(Qt::PanGesture+512), Qt::WidgetGesture);
+ widget.grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
+ widget.grabGesture(Qt::CustomGesture, Qt::DontStartGestureOnChildren);
+ widget.grabGesture(Qt::GestureType(Qt::PanGesture+512), Qt::DontStartGestureOnChildren);
CustomEvent event;
sendCustomGesture(&event, &widget);
@@ -702,7 +740,7 @@ protected:
}
if (eventsPtr) {
QGestureEvent *e = static_cast<QGestureEvent*>(event);
- QList<QGesture*> gestures = e->allGestures();
+ QList<QGesture*> gestures = e->gestures();
foreach(QGesture *g, gestures) {
eventsPtr->all << g->gestureType();
switch(g->state()) {
@@ -746,7 +784,7 @@ void tst_Gestures::graphicsItemGesture()
QTest::qWaitForWindowShown(&view);
view.ensureVisible(scene.sceneRect());
- view.viewport()->grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+ view.viewport()->grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
item->grabGesture(CustomGesture::GestureType);
static const int TotalGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialStartedThreshold + 1;
@@ -820,7 +858,7 @@ void tst_Gestures::graphicsItemTreeGesture()
QTest::qWaitForWindowShown(&view);
view.ensureVisible(scene.sceneRect());
- view.viewport()->grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+ view.viewport()->grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
item1->grabGesture(CustomGesture::GestureType);
static const int TotalGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialStartedThreshold + 1;
@@ -850,7 +888,7 @@ void tst_Gestures::graphicsItemTreeGesture()
QCOMPARE(item1_child2->gestureEventsReceived, 0);
QCOMPARE(item1_child2->gestureOverrideEventsReceived, 0);
QCOMPARE(item1->gestureOverrideEventsReceived, 1);
- QCOMPARE(item1->gestureEventsReceived, TotalGestureEventsCount);
+ QCOMPARE(item1->gestureEventsReceived, 1);
}
void tst_Gestures::explicitGraphicsObjectTarget()
@@ -878,10 +916,10 @@ void tst_Gestures::explicitGraphicsObjectTarget()
QTest::qWaitForWindowShown(&view);
view.ensureVisible(scene.sceneRect());
- view.viewport()->grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
- item1->grabGesture(CustomGesture::GestureType, Qt::ItemGesture);
- item2->grabGesture(CustomGesture::GestureType, Qt::ItemGesture);
- item2_child1->grabGesture(CustomGesture::GestureType, Qt::ItemGesture);
+ view.viewport()->grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
+ item1->grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
+ item2->grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
+ item2_child1->grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
static const int TotalGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialStartedThreshold + 1;
@@ -938,7 +976,7 @@ void tst_Gestures::gestureOverChildGraphicsItem()
QTest::qWaitForWindowShown(&view);
view.ensureVisible(scene.sceneRect());
- view.viewport()->grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
+ view.viewport()->grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
item1->grabGesture(CustomGesture::GestureType);
static const int TotalGestureEventsCount = CustomGesture::SerialFinishedThreshold - CustomGesture::SerialStartedThreshold + 1;
@@ -965,7 +1003,39 @@ void tst_Gestures::gestureOverChildGraphicsItem()
event.hasHotSpot = true;
sendCustomGesture(&event, item0, &scene);
- QCOMPARE(item0->customEventsReceived, TotalCustomEventsCount);
+ QCOMPARE(item2_child1->gestureEventsReceived, 0);
+ QCOMPARE(item2_child1->gestureOverrideEventsReceived, 0);
+ QCOMPARE(item2->gestureEventsReceived, 1);
+ QCOMPARE(item2->gestureOverrideEventsReceived, 1);
+ QCOMPARE(item1->gestureEventsReceived, TotalGestureEventsCount);
+ QCOMPARE(item1->gestureOverrideEventsReceived, 1);
+
+ item0->reset(); item1->reset(); item2->reset(); item2_child1->reset();
+ item2->grabGesture(CustomGesture::GestureType);
+ item2->ignoredGestures << CustomGesture::GestureType;
+ item1->ignoredGestures << CustomGesture::GestureType;
+
+ event.hotSpot = mapToGlobal(QPointF(10, 10), item2_child1, &view);
+ event.hasHotSpot = true;
+ sendCustomGesture(&event, item0, &scene);
+
+ QCOMPARE(item2_child1->gestureEventsReceived, 0);
+ QCOMPARE(item2_child1->gestureOverrideEventsReceived, 0);
+ QCOMPARE(item2->gestureEventsReceived, TotalGestureEventsCount);
+ QCOMPARE(item2->gestureOverrideEventsReceived, 1);
+ QCOMPARE(item1->gestureEventsReceived, 1);
+ QCOMPARE(item1->gestureOverrideEventsReceived, 1);
+
+ item0->reset(); item1->reset(); item2->reset(); item2_child1->reset();
+ item2->grabGesture(CustomGesture::GestureType);
+ item2->ignoredGestures << CustomGesture::GestureType;
+ item1->ignoredGestures << CustomGesture::GestureType;
+ item1->grabGesture(CustomGesture::GestureType, Qt::ReceivePartialGestures);
+
+ event.hotSpot = mapToGlobal(QPointF(10, 10), item2_child1, &view);
+ event.hasHotSpot = true;
+ sendCustomGesture(&event, item0, &scene);
+
QCOMPARE(item2_child1->gestureEventsReceived, 0);
QCOMPARE(item2_child1->gestureOverrideEventsReceived, 0);
QCOMPARE(item2->gestureEventsReceived, TotalGestureEventsCount);
@@ -981,10 +1051,10 @@ void tst_Gestures::twoGesturesOnDifferentLevel()
GestureWidget *child = new GestureWidget("child");
l->addWidget(child);
- Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType SecondGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
- parent.grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture);
- child->grabGesture(SecondGesture, Qt::WidgetWithChildrenGesture);
+ parent.grabGesture(CustomGesture::GestureType);
+ child->grabGesture(SecondGesture);
CustomEvent event;
// sending events that form a gesture to one widget, but they will be
@@ -1009,7 +1079,7 @@ void tst_Gestures::twoGesturesOnDifferentLevel()
for(int i = 0; i < child->events.all.size(); ++i)
QCOMPARE(parent.events.all.at(i), CustomGesture::GestureType);
- QApplication::unregisterGestureRecognizer(SecondGesture);
+ QGestureRecognizer::unregisterRecognizer(SecondGesture);
}
void tst_Gestures::multipleGesturesInTree()
@@ -1021,18 +1091,19 @@ void tst_Gestures::multipleGesturesInTree()
GestureWidget *D = new GestureWidget("D", C);
Qt::GestureType FirstGesture = CustomGesture::GestureType;
- Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType ThirdGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
-
- A->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture); // A [1 3]
- A->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // |
- B->grabGesture(SecondGesture, Qt::WidgetWithChildrenGesture); // B [ 2 3]
- B->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // |
- C->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture); // C [1 2 3]
- C->grabGesture(SecondGesture, Qt::WidgetWithChildrenGesture); // |
- C->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // D [1 3]
- D->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture);
- D->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture);
+ Qt::GestureType SecondGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType ThirdGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
+
+ Qt::GestureFlags flags = Qt::ReceivePartialGestures;
+ A->grabGesture(FirstGesture, flags); // A [1 3]
+ A->grabGesture(ThirdGesture, flags); // |
+ B->grabGesture(SecondGesture, flags); // B [ 2 3]
+ B->grabGesture(ThirdGesture, flags); // |
+ C->grabGesture(FirstGesture, flags); // C [1 2 3]
+ C->grabGesture(SecondGesture, flags); // |
+ C->grabGesture(ThirdGesture, flags); // D [1 3]
+ D->grabGesture(FirstGesture, flags);
+ D->grabGesture(ThirdGesture, flags);
// make sure all widgets ignore events, so they get propagated.
A->ignoredGestures << FirstGesture << ThirdGesture;
@@ -1079,8 +1150,8 @@ void tst_Gestures::multipleGesturesInTree()
QCOMPARE(A->events.all.count(SecondGesture), 0);
QCOMPARE(A->events.all.count(ThirdGesture), TotalGestureEventsCount);
- QApplication::unregisterGestureRecognizer(SecondGesture);
- QApplication::unregisterGestureRecognizer(ThirdGesture);
+ QGestureRecognizer::unregisterRecognizer(SecondGesture);
+ QGestureRecognizer::unregisterRecognizer(ThirdGesture);
}
void tst_Gestures::multipleGesturesInComplexTree()
@@ -1092,26 +1163,27 @@ void tst_Gestures::multipleGesturesInComplexTree()
GestureWidget *D = new GestureWidget("D", C);
Qt::GestureType FirstGesture = CustomGesture::GestureType;
- Qt::GestureType SecondGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType ThirdGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType FourthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType FifthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType SixthGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
- Qt::GestureType SeventhGesture = QApplication::registerGestureRecognizer(new CustomGestureRecognizer);
-
- A->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture); // A [1,3,4]
- A->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // |
- A->grabGesture(FourthGesture, Qt::WidgetWithChildrenGesture); // B [2,3,5]
- B->grabGesture(SecondGesture, Qt::WidgetWithChildrenGesture); // |
- B->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture); // C [1,2,3,6]
- B->grabGesture(FifthGesture, Qt::WidgetWithChildrenGesture); // |
- C->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture); // D [1,3,7]
- C->grabGesture(SecondGesture, Qt::WidgetWithChildrenGesture);
- C->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture);
- C->grabGesture(SixthGesture, Qt::WidgetWithChildrenGesture);
- D->grabGesture(FirstGesture, Qt::WidgetWithChildrenGesture);
- D->grabGesture(ThirdGesture, Qt::WidgetWithChildrenGesture);
- D->grabGesture(SeventhGesture, Qt::WidgetWithChildrenGesture);
+ Qt::GestureType SecondGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType ThirdGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType FourthGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType FifthGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType SixthGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
+ Qt::GestureType SeventhGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
+
+ Qt::GestureFlags flags = Qt::ReceivePartialGestures;
+ A->grabGesture(FirstGesture, flags); // A [1,3,4]
+ A->grabGesture(ThirdGesture, flags); // |
+ A->grabGesture(FourthGesture, flags); // B [2,3,5]
+ B->grabGesture(SecondGesture, flags); // |
+ B->grabGesture(ThirdGesture, flags); // C [1,2,3,6]
+ B->grabGesture(FifthGesture, flags); // |
+ C->grabGesture(FirstGesture, flags); // D [1,3,7]
+ C->grabGesture(SecondGesture, flags);
+ C->grabGesture(ThirdGesture, flags);
+ C->grabGesture(SixthGesture, flags);
+ D->grabGesture(FirstGesture, flags);
+ D->grabGesture(ThirdGesture, flags);
+ D->grabGesture(SeventhGesture, flags);
// make sure all widgets ignore events, so they get propagated.
QSet<Qt::GestureType> allGestureTypes;
@@ -1175,12 +1247,12 @@ void tst_Gestures::multipleGesturesInComplexTree()
QCOMPARE(A->events.all.count(SixthGesture), 0);
QCOMPARE(A->events.all.count(SeventhGesture), 0);
- QApplication::unregisterGestureRecognizer(SecondGesture);
- QApplication::unregisterGestureRecognizer(ThirdGesture);
- QApplication::unregisterGestureRecognizer(FourthGesture);
- QApplication::unregisterGestureRecognizer(FifthGesture);
- QApplication::unregisterGestureRecognizer(SixthGesture);
- QApplication::unregisterGestureRecognizer(SeventhGesture);
+ QGestureRecognizer::unregisterRecognizer(SecondGesture);
+ QGestureRecognizer::unregisterRecognizer(ThirdGesture);
+ QGestureRecognizer::unregisterRecognizer(FourthGesture);
+ QGestureRecognizer::unregisterRecognizer(FifthGesture);
+ QGestureRecognizer::unregisterRecognizer(SixthGesture);
+ QGestureRecognizer::unregisterRecognizer(SeventhGesture);
}
void tst_Gestures::testMapToScene()
@@ -1189,7 +1261,7 @@ void tst_Gestures::testMapToScene()
QList<QGesture*> list;
list << &gesture;
QGestureEvent event(list);
- QCOMPARE(event.mapToScene(gesture.hotSpot()), QPointF()); // not set, can't do much
+ QCOMPARE(event.mapToGraphicsScene(gesture.hotSpot()), QPointF()); // not set, can't do much
QGraphicsScene scene;
QGraphicsView view(&scene);
@@ -1206,7 +1278,7 @@ void tst_Gestures::testMapToScene()
QPoint origin = view.mapToGlobal(QPoint());
event.setWidget(view.viewport());
- QCOMPARE(event.mapToScene(origin + QPoint(100, 200)), view.mapToScene(QPoint(100, 200)));
+ QCOMPARE(event.mapToGraphicsScene(origin + QPoint(100, 200)), view.mapToScene(QPoint(100, 200)));
}
void tst_Gestures::ungrabGesture() // a method on QWidget
@@ -1224,7 +1296,7 @@ void tst_Gestures::ungrabGesture() // a method on QWidget
if (event->type() == QEvent::Gesture) {
QGestureEvent *gestureEvent = static_cast<QGestureEvent*>(event);
if (gestureEvent)
- foreach (QGesture *g, gestureEvent->allGestures())
+ foreach (QGesture *g, gestureEvent->gestures())
gestures.insert(g);
}
return GestureWidget::event(event);
@@ -1235,8 +1307,8 @@ void tst_Gestures::ungrabGesture() // a method on QWidget
MockGestureWidget *a = &parent;
MockGestureWidget *b = new MockGestureWidget("B", a);
- a->grabGesture(CustomGesture::GestureType, Qt::WidgetGesture);
- b->grabGesture(CustomGesture::GestureType, Qt::WidgetWithChildrenGesture);
+ a->grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
+ b->grabGesture(CustomGesture::GestureType);
b->ignoredGestures << CustomGesture::GestureType;
CustomEvent event;
@@ -1295,20 +1367,6 @@ void tst_Gestures::unregisterRecognizer() // a method on QApplication
void tst_Gestures::autoCancelGestures()
{
- class MockRecognizer : public QGestureRecognizer {
- public:
- QGestureRecognizer::Result filterEvent(QGesture *gesture, QObject *watched, QEvent *event)
- {
- Q_UNUSED(gesture);
- Q_UNUSED(watched);
- if (event->type() == QEvent::MouseButtonPress)
- return QGestureRecognizer::GestureTriggered;
- if (event->type() == QEvent::MouseButtonRelease)
- return QGestureRecognizer::GestureFinished;
- return QGestureRecognizer::Ignore;
- }
- };
-
class MockWidget : public GestureWidget {
public:
MockWidget(const char *name) : GestureWidget(name) { }
@@ -1317,21 +1375,25 @@ void tst_Gestures::autoCancelGestures()
{
if (event->type() == QEvent::Gesture) {
QGestureEvent *ge = static_cast<QGestureEvent*>(event);
- Q_ASSERT(ge->allGestures().count() == 1); // can't use QCOMPARE here...
- ge->allGestures().first()->setGestureCancelPolicy(QGesture::CancelAllInContext);
+ Q_ASSERT(ge->gestures().count() == 1); // can't use QCOMPARE here...
+ ge->gestures().first()->setGestureCancelPolicy(QGesture::CancelAllInContext);
}
return GestureWidget::event(event);
}
};
+ const Qt::GestureType secondGesture = QGestureRecognizer::registerRecognizer(new CustomGestureRecognizer);
+
MockWidget parent("parent"); // this one sets the cancel policy to CancelAllInContext
parent.resize(300, 100);
+ parent.setWindowFlags(Qt::X11BypassWindowManagerHint);
GestureWidget *child = new GestureWidget("child", &parent);
child->setGeometry(10, 10, 100, 80);
- Qt::GestureType type = QApplication::registerGestureRecognizer(new MockRecognizer());
- parent.grabGesture(type, Qt::WidgetWithChildrenGesture);
- child->grabGesture(type, Qt::WidgetWithChildrenGesture);
+ parent.grabGesture(CustomGesture::GestureType);
+ child->grabGesture(secondGesture);
+ parent.show();
+ QTest::qWaitForWindowShown(&parent);
/*
An event is send to both the child and the parent, when the child gets it a gesture is triggered
@@ -1340,18 +1402,73 @@ void tst_Gestures::autoCancelGestures()
parent gets it he accepts it and that causes the cancel policy to activate.
The cause of that is the gesture for the child is cancelled and send to the child as such.
*/
- QMouseEvent event(QEvent::MouseButtonPress, QPoint(20,20), Qt::LeftButton, Qt::LeftButton, Qt::NoModifier);
+ CustomEvent event;
+ event.serial = CustomGesture::SerialStartedThreshold;
QApplication::sendEvent(child, &event);
+ QCOMPARE(child->events.all.count(), 2);
QCOMPARE(child->events.started.count(), 1);
- QCOMPARE(child->events.all.count(), 1);
- QCOMPARE(parent.events.all.count(), 0);
- child->reset();
- QApplication::sendEvent(&parent, &event);
+ QCOMPARE(child->events.canceled.count(), 1);
QCOMPARE(parent.events.all.count(), 1);
- QCOMPARE(parent.events.started.count(), 1);
- QCOMPARE(child->events.started.count(), 0);
- QCOMPARE(child->events.all.count(), 1);
+
+ // clean up, make the parent gesture finish
+ event.serial = CustomGesture::SerialFinishedThreshold;
+ QApplication::sendEvent(child, &event);
+ QCOMPARE(parent.events.all.count(), 2);
+}
+
+void tst_Gestures::autoCancelGestures2()
+{
+ class MockItem : public GestureItem {
+ public:
+ MockItem(const char *name) : GestureItem(name) { }
+
+ bool event(QEvent *event) {
+ if (event->type() == QEvent::Gesture) {
+ QGestureEvent *ge = static_cast<QGestureEvent*>(event);
+ Q_ASSERT(ge->gestures().count() == 1); // can't use QCOMPARE here...
+ ge->gestures().first()->setGestureCancelPolicy(QGesture::CancelAllInContext);
+ }
+ return GestureItem::event(event);
+ }
+ };
+
+ const Qt::GestureType secondGesture = QGestureRecognizer ::registerRecognizer(new CustomGestureRecognizer);
+
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+ view.setWindowFlags(Qt::X11BypassWindowManagerHint);
+
+ MockItem *parent = new MockItem("parent");
+ GestureItem *child = new GestureItem("child");
+ child->setParentItem(parent);
+ parent->setPos(0, 0);
+ child->setPos(10, 10);
+ scene.addItem(parent);
+ view.viewport()->grabGesture(CustomGesture::GestureType, Qt::DontStartGestureOnChildren);
+ view.viewport()->grabGesture(secondGesture, Qt::DontStartGestureOnChildren);
+ parent->grabGesture(CustomGesture::GestureType);
+ child->grabGesture(secondGesture);
+
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+ view.ensureVisible(scene.sceneRect());
+
+ CustomEvent event;
+ event.serial = CustomGesture::SerialStartedThreshold;
+ event.hasHotSpot = true;
+ event.hotSpot = mapToGlobal(QPointF(5, 5), child, &view);
+ // qDebug() << event.hotSpot;
+ scene.sendEvent(child, &event);
+ //QEventLoop().exec();
+ QCOMPARE(parent->events.all.count(), 1);
+ QCOMPARE(child->events.started.count(), 1);
QCOMPARE(child->events.canceled.count(), 1);
+ QCOMPARE(child->events.all.count(), 2);
+
+ // clean up, make the parent gesture finish
+ event.serial = CustomGesture::SerialFinishedThreshold;
+ scene.sendEvent(child, &event);
+ QCOMPARE(parent->events.all.count(), 2);
}
QTEST_MAIN(tst_Gestures)
diff --git a/tests/auto/linguist/lrelease/tst_lrelease.cpp b/tests/auto/linguist/lrelease/tst_lrelease.cpp
index 39de8a1..93cb97c 100644
--- a/tests/auto/linguist/lrelease/tst_lrelease.cpp
+++ b/tests/auto/linguist/lrelease/tst_lrelease.cpp
@@ -60,6 +60,7 @@ private slots:
void mixedcodecs();
void compressed();
void idbased();
+ void markuntranslated();
void dupes();
private:
@@ -210,6 +211,18 @@ void tst_lrelease::idbased()
QCOMPARE(qtTrId("untranslated_id"), QString::fromAscii("This has no translation."));
}
+void tst_lrelease::markuntranslated()
+{
+ QVERIFY(!QProcess::execute(binDir + "/lrelease -markuntranslated # -idbased testdata/idbased.ts"));
+
+ QTranslator translator;
+ QVERIFY(translator.load("testdata/idbased.qm"));
+ qApp->installTranslator(&translator);
+
+ QCOMPARE(qtTrId("test_id"), QString::fromAscii("This is a test string."));
+ QCOMPARE(qtTrId("untranslated_id"), QString::fromAscii("#This has no translation."));
+}
+
void tst_lrelease::dupes()
{
QProcess proc;
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp
index eaa271a..7ddb68f 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.cpp
@@ -63,3 +63,52 @@ line c++ comment } (with brace)
#define This is another // comment in } define \
something } comment
} // complain here
+
+
+
+// Nested class in same file
+class TopLevel {
+ Q_OBJECT
+
+ class Nested;
+};
+
+class TopLevel::Nested {
+ void foo();
+};
+
+TopLevel::Nested::foo()
+{
+ TopLevel::tr("TopLevel");
+}
+
+// Nested class in other file
+#include "main.h"
+
+class TopLevel2::Nested {
+ void foo();
+};
+
+TopLevel2::Nested::foo()
+{
+ TopLevel2::tr("TopLevel2");
+}
+
+
+
+namespace NameSpace {
+class ToBeUsed;
+}
+
+// using statement before class definition
+using NameSpace::ToBeUsed;
+
+class NameSpace::ToBeUsed {
+ Q_OBJECT
+ void caller();
+};
+
+void ToBeUsed::caller()
+{
+ tr("NameSpace::ToBeUsed");
+}
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.h b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.h
new file mode 100644
index 0000000..54a76ab
--- /dev/null
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/main.h
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtCore module 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$
+**
+****************************************************************************/
+
+// IMPORTANT!!!! If you want to add testdata to this file,
+// always add it to the end in order to not change the linenumbers of translations!!!
+
+class TopLevel2 {
+ Q_OBJECT
+
+ class Nested;
+};
+
+
diff --git a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result
index 07a7469..6f48e27 100644
--- a/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result
+++ b/tests/auto/linguist/lupdate/testdata/good/parsecpp2/project.ts.result
@@ -1,4 +1,28 @@
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.0">
+<context>
+ <name>NameSpace::ToBeUsed</name>
+ <message>
+ <location filename="main.cpp" line="113"/>
+ <source>NameSpace::ToBeUsed</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TopLevel</name>
+ <message>
+ <location filename="main.cpp" line="82"/>
+ <source>TopLevel</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
+<context>
+ <name>TopLevel2</name>
+ <message>
+ <location filename="main.cpp" line="94"/>
+ <source>TopLevel2</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
</TS>
diff --git a/tests/auto/q3filedialog/tst_q3filedialog.cpp b/tests/auto/q3filedialog/tst_q3filedialog.cpp
index 2585f60..e2686eb 100644
--- a/tests/auto/q3filedialog/tst_q3filedialog.cpp
+++ b/tests/auto/q3filedialog/tst_q3filedialog.cpp
@@ -59,7 +59,9 @@ public:
virtual ~tst_Q3FileDialog();
private slots:
+#ifndef QT_MAC_USE_COCOA
void getSetCheck();
+#endif
};
tst_Q3FileDialog::tst_Q3FileDialog()
@@ -70,6 +72,7 @@ tst_Q3FileDialog::~tst_Q3FileDialog()
{
}
+#ifndef QT_MAC_USE_COCOA
class Preview : public QLabel, public Q3FilePreview
{
public:
@@ -125,6 +128,7 @@ void tst_Q3FileDialog::getSetCheck()
obj1.setPreviewMode(Q3FileDialog::PreviewMode(Q3FileDialog::Info));
QCOMPARE(obj1.previewMode(), Q3FileDialog::PreviewMode(Q3FileDialog::Info));
}
+#endif
QTEST_MAIN(tst_Q3FileDialog)
#include "tst_q3filedialog.moc"
diff --git a/tests/auto/qabstractvideosurface/tst_qabstractvideosurface.cpp b/tests/auto/qabstractvideosurface/tst_qabstractvideosurface.cpp
index 20ca759..b4d2ac8 100644
--- a/tests/auto/qabstractvideosurface/tst_qabstractvideosurface.cpp
+++ b/tests/auto/qabstractvideosurface/tst_qabstractvideosurface.cpp
@@ -61,6 +61,8 @@ private slots:
void setError();
void isFormatSupported_data();
void isFormatSupported();
+ void nearestFormat_data();
+ void nearestFormat();
void start_data();
void start();
};
@@ -232,6 +234,22 @@ void tst_QAbstractVideoSurface::isFormatSupported()
QCOMPARE(surface.isFormatSupported(format), supported);
}
+void tst_QAbstractVideoSurface::nearestFormat_data()
+{
+ isFormatSupported_data();
+}
+
+void tst_QAbstractVideoSurface::nearestFormat()
+{
+ QFETCH(SupportedFormatMap, supportedFormats);
+ QFETCH(QVideoSurfaceFormat, format);
+ QFETCH(bool, supported);
+
+ QtTestVideoSurface surface(supportedFormats);
+
+ QCOMPARE(surface.nearestFormat(format) == format, supported);
+}
+
void tst_QAbstractVideoSurface::start_data()
{
QTest::addColumn<QVideoSurfaceFormat>("format");
@@ -256,35 +274,35 @@ void tst_QAbstractVideoSurface::start()
surface.setError(QAbstractVideoSurface::ResourceError);
QSignalSpy formatSpy(&surface, SIGNAL(surfaceFormatChanged(QVideoSurfaceFormat)));
- QSignalSpy startedSpy(&surface, SIGNAL(startedChanged(bool)));
+ QSignalSpy activeSpy(&surface, SIGNAL(activeChanged(bool)));
- QVERIFY(!surface.isStarted());
+ QVERIFY(!surface.isActive());
QCOMPARE(surface.surfaceFormat(), QVideoSurfaceFormat());
QVERIFY(surface.start(format));
- QVERIFY(surface.isStarted());
+ QVERIFY(surface.isActive());
QCOMPARE(surface.surfaceFormat(), format);
QCOMPARE(formatSpy.count(), 1);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat>(formatSpy.at(0).at(0)), format);
+ QCOMPARE(qvariant_cast<QVideoSurfaceFormat>(formatSpy.last().at(0)), format);
- QCOMPARE(startedSpy.count(), 1);
- QCOMPARE(startedSpy.at(0).at(0).toBool(), true);
+ QCOMPARE(activeSpy.count(), 1);
+ QCOMPARE(activeSpy.last().at(0).toBool(), true);
// error() is reset on a successful start.
QCOMPARE(surface.error(), QAbstractVideoSurface::NoError);
surface.stop();
- QVERIFY(!surface.isStarted());
+ QVERIFY(!surface.isActive());
QCOMPARE(surface.surfaceFormat(), QVideoSurfaceFormat());
QCOMPARE(formatSpy.count(), 2);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat>(formatSpy.at(1).at(0)), QVideoSurfaceFormat());
+ QCOMPARE(qvariant_cast<QVideoSurfaceFormat>(formatSpy.last().at(0)), QVideoSurfaceFormat());
- QCOMPARE(startedSpy.count(), 2);
- QCOMPARE(startedSpy.at(1).at(0).toBool(), false);
+ QCOMPARE(activeSpy.count(), 2);
+ QCOMPARE(activeSpy.last().at(0).toBool(), false);
}
QTEST_MAIN(tst_QAbstractVideoSurface)
diff --git a/tests/auto/qaccessibility/tst_qaccessibility.cpp b/tests/auto/qaccessibility/tst_qaccessibility.cpp
index 9f2e4e7..25c2649 100644
--- a/tests/auto/qaccessibility/tst_qaccessibility.cpp
+++ b/tests/auto/qaccessibility/tst_qaccessibility.cpp
@@ -4034,6 +4034,27 @@ void tst_QAccessibility::labelTest()
delete acc_label;
delete label;
QTestAccessibility::clearEvents();
+
+ QPixmap testPixmap(50, 50);
+ testPixmap.fill();
+
+ QLabel imageLabel;
+ imageLabel.setPixmap(testPixmap);
+ imageLabel.setToolTip("Test Description");
+
+ acc_label = QAccessible::queryAccessibleInterface(&imageLabel);
+ QVERIFY(acc_label);
+
+ QAccessibleImageInterface *imageInterface = acc_label->imageInterface();
+ QVERIFY(imageInterface);
+
+ QCOMPARE(imageInterface->imageSize(), testPixmap.size());
+ QCOMPARE(imageInterface->imageDescription(), QString::fromLatin1("Test Description"));
+ QCOMPARE(imageInterface->imagePosition(QAccessible2::RelativeToParent), imageLabel.geometry());
+
+ delete acc_label;
+
+ QTestAccessibility::clearEvents();
#else
QSKIP("Test needs accessibility support.", SkipAll);
#endif
diff --git a/tests/auto/qanimationgroup/tst_qanimationgroup.cpp b/tests/auto/qanimationgroup/tst_qanimationgroup.cpp
index 81c51ed..b4e4a49 100644
--- a/tests/auto/qanimationgroup/tst_qanimationgroup.cpp
+++ b/tests/auto/qanimationgroup/tst_qanimationgroup.cpp
@@ -165,9 +165,9 @@ void tst_QAnimationGroup::emptyGroup()
QCOMPARE(groupStateChangedSpy.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(1).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(1).first()),
QAnimationGroup::Stopped);
QCOMPARE(group.state(), QAnimationGroup::Stopped);
@@ -180,9 +180,9 @@ void tst_QAnimationGroup::emptyGroup()
group.start();
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(2).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(2).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(3).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(3).first()),
QAnimationGroup::Stopped);
QCOMPARE(group.state(), QAnimationGroup::Stopped);
@@ -259,54 +259,54 @@ void tst_QAnimationGroup::setCurrentTime()
QCOMPARE(notTimeDriven->state(), QAnimationGroup::Stopped);
QCOMPARE(loopsForever->state(), QAnimationGroup::Stopped);
- QCOMPARE(group.currentTime(), 1);
- QCOMPARE(sequence->currentTime(), 1);
- QCOMPARE(a1_s_o1->currentTime(), 1);
- QCOMPARE(a2_s_o1->currentTime(), 0);
- QCOMPARE(a3_s_o1->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 1);
- QCOMPARE(a1_s_o3->currentTime(), 0);
- QCOMPARE(a1_p_o1->currentTime(), 1);
- QCOMPARE(a1_p_o2->currentTime(), 1);
- QCOMPARE(a1_p_o3->currentTime(), 1);
- QCOMPARE(notTimeDriven->currentTime(), 1);
- QCOMPARE(loopsForever->currentTime(), 1);
+ QCOMPARE(group.currentLoopTime(), 1);
+ QCOMPARE(sequence->currentLoopTime(), 1);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 1);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 1);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
+ QCOMPARE(a1_p_o1->currentLoopTime(), 1);
+ QCOMPARE(a1_p_o2->currentLoopTime(), 1);
+ QCOMPARE(a1_p_o3->currentLoopTime(), 1);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 1);
+ QCOMPARE(loopsForever->currentLoopTime(), 1);
// Current time = 250
group.setCurrentTime(250);
- QCOMPARE(group.currentTime(), 250);
- QCOMPARE(sequence->currentTime(), 250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 0);
- QCOMPARE(a3_s_o1->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(a1_s_o3->currentTime(), 0);
- QCOMPARE(a1_p_o1->currentTime(), 250);
- QCOMPARE(a1_p_o2->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 250);
+ QCOMPARE(sequence->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
+ QCOMPARE(a1_p_o1->currentLoopTime(), 250);
+ QCOMPARE(a1_p_o2->currentLoopTime(), 0);
QCOMPARE(a1_p_o2->currentLoop(), 1);
- QCOMPARE(a1_p_o3->currentTime(), 250);
- QCOMPARE(notTimeDriven->currentTime(), 250);
- QCOMPARE(loopsForever->currentTime(), 0);
+ QCOMPARE(a1_p_o3->currentLoopTime(), 250);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 250);
+ QCOMPARE(loopsForever->currentLoopTime(), 0);
QCOMPARE(loopsForever->currentLoop(), 1);
QCOMPARE(sequence->currentAnimation(), a2_s_o1);
// Current time = 251
group.setCurrentTime(251);
- QCOMPARE(group.currentTime(), 251);
- QCOMPARE(sequence->currentTime(), 251);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 1);
+ QCOMPARE(group.currentLoopTime(), 251);
+ QCOMPARE(sequence->currentLoopTime(), 251);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 1);
QCOMPARE(a2_s_o1->currentLoop(), 0);
- QCOMPARE(a3_s_o1->currentTime(), 0);
- QCOMPARE(sequence2->currentTime(), 251);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(a1_s_o3->currentTime(), 1);
- QCOMPARE(a1_p_o1->currentTime(), 250);
- QCOMPARE(a1_p_o2->currentTime(), 1);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
+ QCOMPARE(sequence2->currentLoopTime(), 251);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 1);
+ QCOMPARE(a1_p_o1->currentLoopTime(), 250);
+ QCOMPARE(a1_p_o2->currentLoopTime(), 1);
QCOMPARE(a1_p_o2->currentLoop(), 1);
- QCOMPARE(a1_p_o3->currentTime(), 250);
- QCOMPARE(notTimeDriven->currentTime(), 251);
- QCOMPARE(loopsForever->currentTime(), 1);
+ QCOMPARE(a1_p_o3->currentLoopTime(), 250);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 251);
+ QCOMPARE(loopsForever->currentLoopTime(), 1);
QCOMPARE(sequence->currentAnimation(), a2_s_o1);
}
@@ -356,7 +356,7 @@ void tst_QAnimationGroup::addChildTwice()
parent->addAnimation(subGroup);
QCOMPARE(parent->animationCount(), 1);
- parent->clearAnimations();
+ parent->clear();
QCOMPARE(parent->animationCount(), 0);
diff --git a/tests/auto/qclipboard/test/test.pro b/tests/auto/qclipboard/test/test.pro
index 508eba1..62a38af 100644
--- a/tests/auto/qclipboard/test/test.pro
+++ b/tests/auto/qclipboard/test/test.pro
@@ -13,7 +13,18 @@ win32 {
wince*|symbian*: {
copier.sources = ../copier/copier.exe
copier.path = copier
- paster.sources = ../paster/paster.exe
+ paster.sources = ../paster/paster.exe
paster.path = paster
- DEPLOYMENT = copier paster
+
+ symbian*: {
+ load(data_caging_paths)
+ rsc.sources = $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/copier.rsc
+ rsc.sources += $${EPOCROOT}$$HW_ZDIR$$APP_RESOURCE_DIR/paster.rsc
+ rsc.path = $$APP_RESOURCE_DIR
+ reg_resource.sources = $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/copier_reg.rsc
+ reg_resource.sources += $${EPOCROOT}$$HW_ZDIR$$REG_RESOURCE_IMPORT_DIR/paster_reg.rsc
+ reg_resource.path = $$REG_RESOURCE_IMPORT_DIR
+ }
+
+ DEPLOYMENT = copier paster rsc reg_resource
} \ No newline at end of file
diff --git a/tests/auto/qcombobox/tst_qcombobox.cpp b/tests/auto/qcombobox/tst_qcombobox.cpp
index 51a7ff8..18ebddc 100644
--- a/tests/auto/qcombobox/tst_qcombobox.cpp
+++ b/tests/auto/qcombobox/tst_qcombobox.cpp
@@ -57,6 +57,7 @@
#include <qtreewidget.h>
#include <qtablewidget.h>
#include <qscrollbar.h>
+#include <qboxlayout.h>
#ifdef Q_WS_MAC
#include <qmacstyle_mac.h>
#elif defined Q_WS_X11
@@ -154,6 +155,7 @@ private slots:
void removeItem();
void resetModel();
void keyBoardNavigationWithMouse();
+ void task_QTBUG_1071_changingFocusEmitsActivated();
protected slots:
void onEditTextChanged( const QString &newString );
@@ -813,21 +815,25 @@ void tst_QComboBox::autoCompletionCaseSensitivity()
// case insensitive
testWidget->clearEditText();
+ QSignalSpy spyReturn(testWidget, SIGNAL(activated(int)));
testWidget->setAutoCompletionCaseSensitivity(Qt::CaseInsensitive);
QVERIFY(testWidget->autoCompletionCaseSensitivity() == Qt::CaseInsensitive);
QTest::keyClick(testWidget->lineEdit(), Qt::Key_A);
qApp->processEvents();
QCOMPARE(testWidget->currentText(), QString("aww"));
+ QCOMPARE(spyReturn.count(), 0);
QTest::keyClick(testWidget->lineEdit(), Qt::Key_B);
qApp->processEvents();
// autocompletions preserve userkey-case from 4.2
QCOMPARE(testWidget->currentText(), QString("abCDEF"));
+ QCOMPARE(spyReturn.count(), 0);
QTest::keyClick(testWidget->lineEdit(), Qt::Key_Enter);
qApp->processEvents();
QCOMPARE(testWidget->currentText(), QString("aBCDEF")); // case restored to item's case
+ QCOMPARE(spyReturn.count(), 1);
testWidget->clearEditText();
QTest::keyClick(testWidget->lineEdit(), 'c');
@@ -2500,6 +2506,31 @@ void tst_QComboBox::keyBoardNavigationWithMouse()
QTRY_COMPARE(combo.currentText(), QString::number(final));
}
+void tst_QComboBox::task_QTBUG_1071_changingFocusEmitsActivated()
+{
+ QWidget w;
+ QVBoxLayout layout(&w);
+ QComboBox cb;
+ cb.setEditable(true);
+ QSignalSpy spy(&cb, SIGNAL(activated(int)));
+ cb.addItem("0");
+ cb.addItem("1");
+ cb.addItem("2");
+ QLineEdit edit;
+ layout.add(&cb);
+ layout.add(&edit);
+
+ w.show();
+ QTest::qWaitForWindowShown(&w);
+ cb.clearEditText();
+ cb.setFocus();
+ QApplication::processEvents();
+ QTest::keyClick(0, '1');
+ QCOMPARE(spy.count(), 0);
+ edit.setFocus();
+ QTRY_VERIFY(edit.hasFocus());
+ QTRY_COMPARE(spy.count(), 1);
+}
QTEST_MAIN(tst_QComboBox)
#include "tst_qcombobox.moc"
diff --git a/tests/auto/qcssparser/tst_qcssparser.cpp b/tests/auto/qcssparser/tst_qcssparser.cpp
index 150f131..3580252 100644
--- a/tests/auto/qcssparser/tst_qcssparser.cpp
+++ b/tests/auto/qcssparser/tst_qcssparser.cpp
@@ -1556,8 +1556,11 @@ void tst_QCssParser::extractFontFamily_data()
QTest::newRow("shorthand") << "font: 12pt Times New Roman" << QString("Times New Roman");
QTest::newRow("shorthand multiple quote") << "font: 12pt invalid, \"Times New Roman\" " << QString("Times New Roman");
QTest::newRow("shorthand multiple") << "font: 12pt invalid, Times New Roman " << QString("Times New Roman");
+ QTest::newRow("invalid spaces") << "font-family: invalid spaces, Times New Roman " << QString("Times New Roman");
+ QTest::newRow("invalid spaces quotes") << "font-family: 'invalid spaces', 'Times New Roman' " << QString("Times New Roman");
}
+
void tst_QCssParser::extractFontFamily()
{
QFETCH(QString, css);
diff --git a/tests/auto/qdatetime/tst_qdatetime.cpp b/tests/auto/qdatetime/tst_qdatetime.cpp
index c53780e..1140402 100644
--- a/tests/auto/qdatetime/tst_qdatetime.cpp
+++ b/tests/auto/qdatetime/tst_qdatetime.cpp
@@ -450,11 +450,12 @@ void tst_QDateTime::toString_enumformat()
qDebug() << str3;
QVERIFY(!str3.isEmpty());
//check for date/time components in any order
- QVERIFY(str3.contains("1995"));
+ //year may be 2 or 4 digits
+ QVERIFY(str3.contains("95"));
//day and month may be in numeric or word form
QVERIFY(str3.contains("12"));
QVERIFY(str3.contains("34"));
- QVERIFY(str3.contains("56"));
+ //seconds may be absent
}
void tst_QDateTime::addDays()
diff --git a/tests/auto/qfile/largefile/largefile.pro b/tests/auto/qfile/largefile/largefile.pro
new file mode 100644
index 0000000..0f96865
--- /dev/null
+++ b/tests/auto/qfile/largefile/largefile.pro
@@ -0,0 +1,4 @@
+load(qttest_p4)
+
+QT = core
+SOURCES += tst_largefile.cpp
diff --git a/tests/auto/qfile/largefile/tst_largefile.cpp b/tests/auto/qfile/largefile/tst_largefile.cpp
new file mode 100644
index 0000000..9105063
--- /dev/null
+++ b/tests/auto/qfile/largefile/tst_largefile.cpp
@@ -0,0 +1,537 @@
+/****************************************************************************
+**
+** Copyright (C) 2009 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>
+
+#include <QtAlgorithms>
+#include <QFile>
+#include <QFileInfo>
+#include <qplatformdefs.h>
+
+#include <QDebug>
+
+#include <cstdlib>
+#include <cstdio>
+
+#ifdef Q_OS_WIN
+
+#include <windows.h>
+#include <io.h>
+
+#ifndef FSCTL_SET_SPARSE
+// MinGW doesn't define this.
+#define FSCTL_SET_SPARSE (0x900C4)
+#endif
+
+#endif // Q_OS_WIN
+
+class tst_LargeFile
+ : public QObject
+{
+ Q_OBJECT
+
+public:
+ tst_LargeFile()
+ : blockSize(1 << 12)
+ , maxSizeBits()
+ , fd_(-1)
+ , stream_(0)
+ {
+ #if defined(QT_LARGEFILE_SUPPORT) && !defined(Q_OS_MAC)
+ maxSizeBits = 36; // 64 GiB
+ #elif defined(Q_OS_MAC)
+ // HFS+ does not support sparse files, so we limit file size for the test
+ // on Mac OS.
+ maxSizeBits = 32; // 4 GiB
+ #else
+ maxSizeBits = 24; // 16 MiB
+ #endif
+ }
+
+private:
+ void sparseFileData();
+ QByteArray const &getDataBlock(int index, qint64 position);
+
+private slots:
+ // The LargeFile test case was designed to be run in order as a single unit
+
+ void initTestCase();
+ void cleanupTestCase();
+
+ void init();
+ void cleanup();
+
+ // Create and fill large file
+ void createSparseFile();
+ void fillFileSparsely();
+ void closeSparseFile();
+
+ // Verify file was created
+ void fileCreated();
+
+ // Positioning in large files
+ void filePositioning();
+ void fdPositioning();
+ void streamPositioning();
+
+ // Read data from file
+ void openFileForReading();
+ void readFile();
+
+ // Map/unmap large file
+ void mapFile();
+ void mapOffsetOverflow();
+
+ void closeFile() { largeFile.close(); }
+
+ // Test data
+ void fillFileSparsely_data() { sparseFileData(); }
+ void filePositioning_data() { sparseFileData(); }
+ void fdPositioning_data() { sparseFileData(); }
+ void streamPositioning_data() { sparseFileData(); }
+ void readFile_data() { sparseFileData(); }
+ void mapFile_data() { sparseFileData(); }
+
+private:
+ const int blockSize;
+ int maxSizeBits;
+
+ QFile largeFile;
+
+ QVector<QByteArray> generatedBlocks;
+
+ int fd_;
+ FILE *stream_;
+};
+
+/*
+ Convenience function to hide reinterpret_cast when copying a POD directly
+ into a QByteArray.
+ */
+template <class T>
+static inline void appendRaw(QByteArray &array, T data)
+{
+ array.append(reinterpret_cast<char *>(&data), sizeof(T));
+}
+
+/*
+ Pad array with filler up to size. On return, array.size() returns size.
+ */
+static inline void topUpWith(QByteArray &array, QByteArray filler, int size)
+{
+ Q_ASSERT(filler.size() > 0);
+
+ for (int i = (size - array.size()) / filler.size(); i > 0; --i)
+ array.append(filler);
+
+ if (array.size() < size) {
+ Q_ASSERT(size - array.size() < filler.size());
+ array.append(filler.left(size - array.size()));
+ }
+}
+
+/*
+ Generate a unique data block containing identifiable data. Unaligned,
+ overlapping and partial blocks should not compare equal.
+ */
+static inline QByteArray generateDataBlock(int blockSize, QString text, qint64 userBits = -1)
+{
+ QByteArray block;
+ block.reserve(blockSize);
+
+ // Use of counter and randomBits means content of block will be dependent
+ // on the generation order. For (file-)systems that do not support sparse
+ // files, these can be removed so the test file can be reused and doesn't
+ // have to be generated for every run.
+
+ static qint64 counter = 0;
+
+ qint64 randomBits = ((qint64)qrand() << 32)
+ | ((qint64)qrand() & 0x00000000ffffffff);
+
+ appendRaw(block, randomBits);
+ appendRaw(block, userBits);
+ appendRaw(block, counter);
+ appendRaw(block, (qint32)0xdeadbeef);
+ appendRaw(block, blockSize);
+
+ QByteArray userContent = text.toUtf8();
+ appendRaw(block, userContent.size());
+ block.append(userContent);
+ appendRaw(block, (qint64)0);
+
+ // size, so far
+ appendRaw(block, block.size());
+
+ QByteArray filler("0123456789");
+ block.append(filler.right(10 - block.size() % 10));
+ topUpWith(block, filler, blockSize - 2 * sizeof(qint64));
+
+ appendRaw(block, counter);
+ appendRaw(block, userBits);
+ appendRaw(block, randomBits);
+
+ Q_ASSERT( block.size() >= blockSize );
+ block.resize(blockSize);
+
+ ++counter;
+ return block;
+}
+
+/*
+ Generates data blocks the first time they are requested. Keeps copies for reuse.
+ */
+QByteArray const &tst_LargeFile::getDataBlock(int index, qint64 position)
+{
+ if (index >= generatedBlocks.size())
+ generatedBlocks.resize(index + 1);
+
+ if (generatedBlocks[index].isNull()) {
+ QString text = QString("Current %1-byte block (index = %2) "
+ "starts %3 bytes into the file '%4'.")
+ .arg(blockSize)
+ .arg(index)
+ .arg(position)
+ .arg("qt_largefile.tmp");
+
+ generatedBlocks[index] = generateDataBlock(blockSize, text, (qint64)1 << index);
+ }
+
+ return generatedBlocks[index];
+}
+
+void tst_LargeFile::initTestCase()
+{
+ QFile file("qt_largefile.tmp");
+ QVERIFY( !file.exists() || file.remove() );
+}
+
+void tst_LargeFile::cleanupTestCase()
+{
+ if (largeFile.isOpen())
+ largeFile.close();
+
+ QFile file("qt_largefile.tmp");
+ QVERIFY( !file.exists() || file.remove() );
+}
+
+void tst_LargeFile::init()
+{
+ fd_ = -1;
+ stream_ = 0;
+}
+
+void tst_LargeFile::cleanup()
+{
+ if (-1 != fd_)
+ QT_CLOSE(fd_);
+ if (stream_)
+ ::fclose(stream_);
+}
+
+void tst_LargeFile::sparseFileData()
+{
+ QTest::addColumn<int>("index");
+ QTest::addColumn<qint64>("position");
+ QTest::addColumn<QByteArray>("block");
+
+ QTest::newRow(QString("block[%1] @%2)")
+ .arg(0).arg(0)
+ .toLocal8Bit().constData())
+ << 0 << (qint64)0 << getDataBlock(0, 0);
+
+ // While on Linux sparse files scale well, on Windows, testing at every
+ // power of 2 leads to very large files. i += 4 gives us a good coverage
+ // without taxing too much on resources.
+ for (int index = 12; index <= maxSizeBits; index += 4) {
+ qint64 position = (qint64)1 << index;
+ QByteArray block = getDataBlock(index, position);
+
+ QTest::newRow(
+ QString("block[%1] @%2)")
+ .arg(index).arg(position)
+ .toLocal8Bit().constData())
+ << index << position << block;
+ }
+}
+
+void tst_LargeFile::createSparseFile()
+{
+#if defined(Q_OS_WIN)
+ // On Windows platforms, we must explicitly set the file to be sparse,
+ // so disk space is not allocated for the full file when writing to it.
+ HANDLE handle = ::CreateFileA("qt_largefile.tmp",
+ GENERIC_WRITE, 0, 0, CREATE_ALWAYS, 0, 0);
+ QVERIFY( INVALID_HANDLE_VALUE != handle );
+
+ DWORD bytes;
+ if (!::DeviceIoControl(handle, FSCTL_SET_SPARSE, NULL, 0, NULL, 0,
+ &bytes, NULL)) {
+ QWARN("Unable to set test file as sparse. "
+ "Limiting test file to 16MiB.");
+ maxSizeBits = 24;
+ }
+
+ int fd = ::_open_osfhandle((intptr_t)handle, 0);
+ QVERIFY( -1 != fd );
+ QVERIFY( largeFile.open(fd, QIODevice::WriteOnly | QIODevice::Unbuffered) );
+#else // !Q_OS_WIN
+ largeFile.setFileName("qt_largefile.tmp");
+ QVERIFY( largeFile.open(QIODevice::WriteOnly | QIODevice::Unbuffered) );
+#endif
+}
+
+void tst_LargeFile::closeSparseFile()
+{
+#if defined(Q_OS_WIN)
+ int fd = largeFile.handle();
+#endif
+
+ largeFile.close();
+
+#if defined(Q_OS_WIN)
+ if (-1 != fd)
+ ::_close(fd);
+#endif
+}
+
+void tst_LargeFile::fillFileSparsely()
+{
+ QFETCH( qint64, position );
+ QFETCH( QByteArray, block );
+ QCOMPARE( block.size(), blockSize );
+
+ static int lastKnownGoodIndex = 0;
+ struct ScopeGuard {
+ ScopeGuard(tst_LargeFile* test)
+ : this_(test)
+ , failed(true)
+ {
+ QFETCH( int, index );
+ index_ = index;
+ }
+
+ ~ScopeGuard()
+ {
+ if (failed) {
+ this_->maxSizeBits = lastKnownGoodIndex;
+ QWARN( qPrintable(
+ QString("QFile::error %1: '%2'. Maximum size bits reset to %3.")
+ .arg(this_->largeFile.error())
+ .arg(this_->largeFile.errorString())
+ .arg(this_->maxSizeBits)) );
+ } else
+ lastKnownGoodIndex = qMax<int>(index_, lastKnownGoodIndex);
+ }
+
+ private:
+ tst_LargeFile * const this_;
+ int index_;
+
+ public:
+ bool failed;
+ };
+
+ ScopeGuard resetMaxSizeBitsOnFailure(this);
+
+ QVERIFY( largeFile.seek(position) );
+ QCOMPARE( largeFile.pos(), position );
+
+ QCOMPARE( largeFile.write(block), (qint64)blockSize );
+ QCOMPARE( largeFile.pos(), position + blockSize );
+ QVERIFY( largeFile.flush() );
+
+ resetMaxSizeBitsOnFailure.failed = false;
+}
+
+void tst_LargeFile::fileCreated()
+{
+ QFileInfo info("qt_largefile.tmp");
+
+ QVERIFY( info.exists() );
+ QVERIFY( info.isFile() );
+ QVERIFY( info.size() >= ((qint64)1 << maxSizeBits) + blockSize );
+}
+
+void tst_LargeFile::filePositioning()
+{
+ QFETCH( qint64, position );
+
+ QFile file("qt_largefile.tmp");
+ QVERIFY( file.open(QIODevice::ReadOnly) );
+
+ QVERIFY( file.seek(position) );
+ QCOMPARE( file.pos(), position );
+}
+
+void tst_LargeFile::fdPositioning()
+{
+ QFETCH( qint64, position );
+
+ fd_ = QT_OPEN("qt_largefile.tmp",
+ QT_OPEN_RDONLY | QT_OPEN_LARGEFILE);
+ QVERIFY( -1 != fd_ );
+
+ QFile file;
+ QVERIFY( file.open(fd_, QIODevice::ReadOnly) );
+ QCOMPARE( file.pos(), (qint64)0 );
+ QVERIFY( file.seek(position) );
+ QCOMPARE( file.pos(), position );
+
+ file.close();
+
+ QCOMPARE( QT_LSEEK(fd_, QT_OFF_T(0), SEEK_SET), QT_OFF_T(0) );
+ QCOMPARE( QT_LSEEK(fd_, QT_OFF_T(position), SEEK_SET), QT_OFF_T(position) );
+
+ QVERIFY( file.open(fd_, QIODevice::ReadOnly) );
+ QCOMPARE( QT_LSEEK(fd_, QT_OFF_T(0), SEEK_CUR), QT_OFF_T(position) );
+ QCOMPARE( file.pos(), position );
+ QVERIFY( file.seek(0) );
+ QCOMPARE( file.pos(), (qint64)0 );
+
+ file.close();
+
+ QVERIFY( !QT_CLOSE(fd_) );
+ fd_ = -1;
+}
+
+void tst_LargeFile::streamPositioning()
+{
+ QFETCH( qint64, position );
+
+#if defined(QT_LARGEFILE_SUPPORT) && defined(Q_CC_MSVC) && _MSC_VER < 1400
+ if (position >= (qint64)1 << 31)
+ QSKIP("MSVC 2003 doesn't have 64 bit versions of fseek/ftell.", SkipSingle);
+#endif
+
+ stream_ = QT_FOPEN("qt_largefile.tmp", "rb");
+ QVERIFY( 0 != stream_ );
+
+ QFile file;
+ QVERIFY( file.open(stream_, QIODevice::ReadOnly) );
+ QCOMPARE( file.pos(), (qint64)0 );
+ QVERIFY( file.seek(position) );
+ QCOMPARE( file.pos(), position );
+
+ file.close();
+
+ QVERIFY( !QT_FSEEK(stream_, QT_OFF_T(0), SEEK_SET) );
+ QCOMPARE( QT_FTELL(stream_), QT_OFF_T(0) );
+ QVERIFY( !QT_FSEEK(stream_, QT_OFF_T(position), SEEK_SET) );
+ QCOMPARE( QT_FTELL(stream_), QT_OFF_T(position) );
+
+ QVERIFY( file.open(stream_, QIODevice::ReadOnly) );
+ QCOMPARE( QT_FTELL(stream_), QT_OFF_T(position) );
+ QCOMPARE( file.pos(), position );
+ QVERIFY( file.seek(0) );
+ QCOMPARE( file.pos(), (qint64)0 );
+
+ file.close();
+
+ QVERIFY( !::fclose(stream_) );
+ stream_ = 0;
+}
+
+void tst_LargeFile::openFileForReading()
+{
+ largeFile.setFileName("qt_largefile.tmp");
+ QVERIFY( largeFile.open(QIODevice::ReadOnly) );
+}
+
+void tst_LargeFile::readFile()
+{
+ QFETCH( qint64, position );
+ QFETCH( QByteArray, block );
+ QCOMPARE( block.size(), blockSize );
+
+ QVERIFY( largeFile.size() >= position + blockSize );
+
+ QVERIFY( largeFile.seek(position) );
+ QCOMPARE( largeFile.pos(), position );
+
+ QCOMPARE( largeFile.read(blockSize), block );
+ QCOMPARE( largeFile.pos(), position + blockSize );
+}
+
+void tst_LargeFile::mapFile()
+{
+ QFETCH( qint64, position );
+ QFETCH( QByteArray, block );
+ QCOMPARE( block.size(), blockSize );
+
+ // Keep full block mapped to facilitate OS and/or internal reuse by Qt.
+ uchar *baseAddress = largeFile.map(position, blockSize);
+ QVERIFY( baseAddress );
+ QVERIFY( qEqual(block.begin(), block.end(), reinterpret_cast<char*>(baseAddress)) );
+
+ for (int offset = 1; offset < blockSize; ++offset) {
+ uchar *address = largeFile.map(position + offset, blockSize - offset);
+
+ QVERIFY( address );
+ if ( !qEqual(block.begin() + offset, block.end(), reinterpret_cast<char*>(address)) ) {
+ qDebug() << "Expected:" << block.toHex();
+ qDebug() << "Actual :" << QByteArray(reinterpret_cast<char*>(address), blockSize).toHex();
+ QVERIFY(false);
+ }
+
+ QVERIFY( largeFile.unmap( address ) );
+ }
+
+ QVERIFY( largeFile.unmap( baseAddress ) );
+}
+
+void tst_LargeFile::mapOffsetOverflow()
+{
+ // Out-of-range mappings should fail, and not silently clip the offset
+ for (int i = 50; i < 63; ++i) {
+ uchar *address = 0;
+
+ address = largeFile.map(((qint64)1 << i), blockSize);
+ QVERIFY( !address );
+
+ address = largeFile.map(((qint64)1 << i) + blockSize, blockSize);
+ QVERIFY( !address );
+ }
+}
+
+QTEST_APPLESS_MAIN(tst_LargeFile)
+#include "tst_largefile.moc"
+
diff --git a/tests/auto/qfile/qfile.pro b/tests/auto/qfile/qfile.pro
index eebfcda..f70f750 100644
--- a/tests/auto/qfile/qfile.pro
+++ b/tests/auto/qfile/qfile.pro
@@ -5,5 +5,5 @@ wince*:{
SUBDIRS = test stdinprocess
}
-
+SUBDIRS += largefile
diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp
index 19fbecd..55cc286 100644
--- a/tests/auto/qfile/tst_qfile.cpp
+++ b/tests/auto/qfile/tst_qfile.cpp
@@ -79,6 +79,18 @@
# define SRCDIR ""
#endif
+#ifndef STDIN_FILENO
+#define STDIN_FILENO 0
+#endif
+
+#ifndef STDOUT_FILENO
+#define STDOUT_FILENO 1
+#endif
+
+#ifndef STDERR_FILENO
+#define STDERR_FILENO 2
+#endif
+
Q_DECLARE_METATYPE(QFile::FileError)
//TESTED_CLASS=
@@ -105,6 +117,7 @@ private slots:
void openUnbuffered();
void size_data();
void size();
+ void sizeNoExist();
void seek();
void setSize();
void setSizeSeek();
@@ -187,6 +200,8 @@ private slots:
void mapOpenMode_data();
void mapOpenMode();
+ void openStandardStreams();
+
// --- Task related tests below this line
void task167217();
@@ -438,23 +453,57 @@ void tst_QFile::openUnbuffered()
void tst_QFile::size_data()
{
QTest::addColumn<QString>("filename");
- QTest::addColumn<int>("size");
+ QTest::addColumn<qint64>("size");
- QTest::newRow( "exist01" ) << QString(SRCDIR "testfile.txt") << 245;
- QTest::newRow( "nonexist01" ) << QString("foo.txt") << 0;
+ QTest::newRow( "exist01" ) << QString(SRCDIR "testfile.txt") << (qint64)245;
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
// Only test UNC on Windows./
- QTest::newRow("unc") << "//" + QString(QtNetworkSettings::winServerName() + "/testsharewritable/test.pri") << 34;
+ QTest::newRow("unc") << "//" + QString(QtNetworkSettings::winServerName() + "/testsharewritable/test.pri") << (qint64)34;
#endif
}
void tst_QFile::size()
{
QFETCH( QString, filename );
- QFile f( filename );
- QTEST( (int)f.size(), "size" );
- if (f.open(QFile::ReadOnly))
- QTEST( (int)f.size(), "size" );
+ QFETCH( qint64, size );
+
+ {
+ QFile f( filename );
+ QCOMPARE( f.size(), size );
+
+ QVERIFY( f.open(QIODevice::ReadOnly) );
+ QCOMPARE( f.size(), size );
+ }
+
+ {
+ QFile f;
+ int fd = QT_OPEN(filename.toLocal8Bit().constData(), QT_OPEN_RDONLY);
+ QVERIFY( fd != -1 );
+ QVERIFY( f.open(fd, QIODevice::ReadOnly) );
+ QCOMPARE( f.size(), size );
+
+ f.close();
+ QT_CLOSE(fd);
+ }
+
+ {
+ QFile f;
+ FILE* stream = QT_FOPEN(filename.toLocal8Bit().constData(), "rb");
+ QVERIFY( stream );
+ QVERIFY( f.open(stream, QIODevice::ReadOnly) );
+ QCOMPARE( f.size(), size );
+
+ f.close();
+ fclose(stream);
+ }
+}
+
+void tst_QFile::sizeNoExist()
+{
+ QFile file("nonexist01");
+ QVERIFY( !file.exists() );
+ QCOMPARE( file.size(), (qint64)0 );
+ QVERIFY( !file.open(QIODevice::ReadOnly) );
}
void tst_QFile::seek()
@@ -2634,5 +2683,58 @@ void tst_QFile::openDirectory()
QVERIFY(!f1.open(QIODevice::ReadOnly|QIODevice::Unbuffered));
}
+void tst_QFile::openStandardStreams()
+{
+ // Using file descriptors
+ {
+ QFile in;
+ in.open(STDIN_FILENO, QIODevice::ReadOnly);
+ QCOMPARE( in.pos(), (qint64)0 );
+ QCOMPARE( in.size(), (qint64)0 );
+ QVERIFY( in.isSequential() );
+ }
+
+ {
+ QFile out;
+ out.open(STDOUT_FILENO, QIODevice::WriteOnly);
+ QCOMPARE( out.pos(), (qint64)0 );
+ QCOMPARE( out.size(), (qint64)0 );
+ QVERIFY( out.isSequential() );
+ }
+
+ {
+ QFile err;
+ err.open(STDERR_FILENO, QIODevice::WriteOnly);
+ QCOMPARE( err.pos(), (qint64)0 );
+ QCOMPARE( err.size(), (qint64)0 );
+ QVERIFY( err.isSequential() );
+ }
+
+ // Using streams
+ {
+ QFile in;
+ in.open(stdin, QIODevice::ReadOnly);
+ QCOMPARE( in.pos(), (qint64)0 );
+ QCOMPARE( in.size(), (qint64)0 );
+ QVERIFY( in.isSequential() );
+ }
+
+ {
+ QFile out;
+ out.open(stdout, QIODevice::WriteOnly);
+ QCOMPARE( out.pos(), (qint64)0 );
+ QCOMPARE( out.size(), (qint64)0 );
+ QVERIFY( out.isSequential() );
+ }
+
+ {
+ QFile err;
+ err.open(stderr, QIODevice::WriteOnly);
+ QCOMPARE( err.pos(), (qint64)0 );
+ QCOMPARE( err.size(), (qint64)0 );
+ QVERIFY( err.isSequential() );
+ }
+}
+
QTEST_MAIN(tst_QFile)
#include "tst_qfile.moc"
diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp
index e036e4b..c680dec 100644
--- a/tests/auto/qgl/tst_qgl.cpp
+++ b/tests/auto/qgl/tst_qgl.cpp
@@ -82,7 +82,6 @@ private slots:
void glPBufferRendering();
void glWidgetReparent();
void glWidgetRenderPixmap();
- void stackedFBOs();
void colormap();
void fboFormat();
void testDontCrashOnDanglingResources();
@@ -118,6 +117,16 @@ public:
void setAutoBufferSwap(bool on) { QGLWidget::setAutoBufferSwap(on); }
};
+static int appDefaultDepth()
+{
+ static int depth = 0;
+ if (depth == 0) {
+ QPixmap pm(1, 1);
+ depth = pm.depth();
+ }
+ return depth;
+}
+
// Using INT_MIN and INT_MAX will cause failures on systems
// where "int" is 64-bit, so use the explicit values instead.
#define TEST_INT_MIN (-2147483647 - 1)
@@ -714,6 +723,8 @@ public:
void tst_QGL::graphicsViewClipping()
{
+ if (appDefaultDepth() < 24)
+ QSKIP("This test won't work for bit depths < 24", SkipAll);
const int size = 64;
UnclippedWidget *widget = new UnclippedWidget;
widget->setFixedSize(size, size);
@@ -866,6 +877,8 @@ public:
void tst_QGL::glWidgetRendering()
{
+ if (appDefaultDepth() < 24)
+ QSKIP("This test won't work for bit depths < 24", SkipAll);
GLWidget w;
w.show();
@@ -1089,6 +1102,8 @@ protected:
void tst_QGL::glFBOUseInGLWidget()
{
+ if (appDefaultDepth() < 24)
+ QSKIP("This test won't work for bit depths < 24", SkipAll);
if (!QGLFramebufferObject::hasOpenGLFramebufferObjects())
QSKIP("QGLFramebufferObject not supported on this platform", SkipSingle);
@@ -1116,6 +1131,8 @@ void tst_QGL::glFBOUseInGLWidget()
void tst_QGL::glWidgetReparent()
{
+ if (appDefaultDepth() < 24)
+ QSKIP("This test won't work for bit depths < 24", SkipAll);
// Try it as a top-level first:
GLWidget *widget = new GLWidget;
widget->setGeometry(0, 0, 200, 30);
@@ -1208,110 +1225,6 @@ void tst_QGL::glWidgetRenderPixmap()
QCOMPARE(fb, reference);
}
-
-// When using multiple FBOs at the same time, unbinding one FBO should re-bind the
-// previous. I.e. It should be possible to have a stack of FBOs where pop'ing there
-// top re-binds the one underneeth.
-void tst_QGL::stackedFBOs()
-{
- if (!QGLFramebufferObject::hasOpenGLFramebufferObjects())
- QSKIP("QGLFramebufferObject not supported on this platform", SkipSingle);
-
- QGLWidget glw;
- glw.show();
-
-#ifdef Q_WS_X11
- qt_x11_wait_for_window_manager(&glw);
-#endif
- QTest::qWait(200);
-
- glw.makeCurrent();
-
- // No multisample with combined depth/stencil attachment:
- QGLFramebufferObjectFormat fboFormat;
- fboFormat.setAttachment(QGLFramebufferObject::CombinedDepthStencil);
-
- // Don't complicate things by using NPOT:
- QGLFramebufferObject *fbo1 = new QGLFramebufferObject(128, 128, fboFormat);
- QGLFramebufferObject *fbo2 = new QGLFramebufferObject(128, 128, fboFormat);
- QGLFramebufferObject *fbo3 = new QGLFramebufferObject(128, 128, fboFormat);
-
- glClearColor(1.0, 0.0, 1.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- fbo1->bind();
- glClearColor(1.0, 0.0, 0.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- fbo2->bind();
- glClearColor(0.0, 1.0, 0.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- fbo3->bind();
- glClearColor(0.0, 0.0, 1.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
- glScissor(32, 32, 64, 64);
- glEnable(GL_SCISSOR_TEST);
- glClearColor(0.0, 1.0, 1.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
- fbo3->release();
-
- // Scissor rect & test should be left untouched by the fbo release...
- glClearColor(0.0, 0.0, 0.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
- fbo2->release();
-
- glClearColor(1.0, 1.0, 1.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
- fbo1->release();
-
- glClearColor(1.0, 1.0, 0.0, 1.0);
- glClear(GL_COLOR_BUFFER_BIT);
-
- glw.swapBuffers();
-
- QImage widgetFB = glw.grabFrameBuffer(false).convertToFormat(QImage::Format_RGB32);
- QImage fb1 = fbo1->toImage().convertToFormat(QImage::Format_RGB32);
- QImage fb2 = fbo2->toImage().convertToFormat(QImage::Format_RGB32);
- QImage fb3 = fbo3->toImage().convertToFormat(QImage::Format_RGB32);
-
- delete fbo1;
- delete fbo2;
- delete fbo3;
-
- QImage widgetReference(widgetFB.size(), widgetFB.format());
- QImage fb1Reference(fb1.size(), fb1.format());
- QImage fb2Reference(fb2.size(), fb2.format());
- QImage fb3Reference(fb3.size(), fb3.format());
-
- QPainter widgetReferencePainter(&widgetReference);
- QPainter fb1ReferencePainter(&fb1Reference);
- QPainter fb2ReferencePainter(&fb2Reference);
- QPainter fb3ReferencePainter(&fb3Reference);
-
- widgetReferencePainter.fillRect(0, 0, widgetReference.width(), widgetReference.height(), Qt::magenta);
- fb1ReferencePainter.fillRect(0, 0, fb1Reference.width(), fb1Reference.height(), Qt::red);
- fb2ReferencePainter.fillRect(0, 0, fb2Reference.width(), fb2Reference.height(), Qt::green);
- fb3ReferencePainter.fillRect(0, 0, fb3Reference.width(), fb3Reference.height(), Qt::blue);
-
- // Flip y-coords to match GL for the widget (which can be any size)
- widgetReferencePainter.fillRect(32, glw.height() - 96, 64, 64, Qt::yellow);
- fb1ReferencePainter.fillRect(32, 32, 64, 64, Qt::white);
- fb2ReferencePainter.fillRect(32, 32, 64, 64, Qt::black);
- fb3ReferencePainter.fillRect(32, 32, 64, 64, Qt::cyan);
-
- widgetReferencePainter.end();
- fb1ReferencePainter.end();
- fb2ReferencePainter.end();
- fb3ReferencePainter.end();
-
- QCOMPARE(widgetFB, widgetReference);
- QCOMPARE(fb1, fb1Reference);
- QCOMPARE(fb2, fb2Reference);
- QCOMPARE(fb3, fb3Reference);
-}
-
-
class ColormapExtended : public QGLColormap
{
public:
@@ -1582,6 +1495,8 @@ protected:
void tst_QGL::replaceClipping()
{
+ if (appDefaultDepth() < 24)
+ QSKIP("This test won't work for bit depths < 24", SkipAll);
ReplaceClippingGLWidget glw;
glw.resize(300, 300);
glw.show();
@@ -1707,6 +1622,8 @@ protected:
void tst_QGL::clipTest()
{
+ if (appDefaultDepth() < 24)
+ QSKIP("This test won't work for bit depths < 24", SkipAll);
ClipTestGLWidget glw;
glw.resize(220, 220);
glw.show();
diff --git a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
index c8a9fac..c7ed309 100644
--- a/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
+++ b/tests/auto/qgraphicsanchorlayout/tst_qgraphicsanchorlayout.cpp
@@ -79,13 +79,12 @@ private slots:
void delete_anchor();
void conflicts();
void sizePolicy();
- void expandingSequence();
- void expandingSequenceFairDistribution();
- void expandingParallel();
void floatConflict();
void infiniteMaxSizes();
void simplifiableUnfeasible();
void simplificationVsOrder();
+ void parallelSimplificationOfCenter();
+ void simplificationVsRedundance();
};
class RectWidget : public QGraphicsWidget
@@ -342,8 +341,10 @@ void tst_QGraphicsAnchorLayout::layoutDirection()
QCOMPARE(checkReverseDirection(p), true);
- QVERIFY(usedSimplex(l, Qt::Horizontal));
- QVERIFY(!usedSimplex(l, Qt::Vertical));
+ if (hasSimplification) {
+ QVERIFY(usedSimplex(l, Qt::Horizontal));
+ QVERIFY(!usedSimplex(l, Qt::Vertical));
+ }
delete p;
delete view;
@@ -1609,217 +1610,6 @@ void tst_QGraphicsAnchorLayout::conflicts()
delete p;
}
-void tst_QGraphicsAnchorLayout::expandingSequence()
-{
- QSizeF min(10, 10);
- QSizeF pref(50, 10);
- QSizeF max(100, 10);
-
- QGraphicsWidget *a = createItem(min, pref, max, "a");
- QGraphicsWidget *b = createItem(min, pref, max, "b");
-
- b->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-
- QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout;
- l->setContentsMargins(0, 0, 0, 0);
-
- // horizontal
- setAnchor(l, l, Qt::AnchorLeft, a, Qt::AnchorLeft, 0);
- setAnchor(l, a, Qt::AnchorRight, b, Qt::AnchorLeft, 0);
- setAnchor(l, b, Qt::AnchorRight, l, Qt::AnchorRight, 0);
-
- // vertical
- l->addAnchors(l, a, Qt::Vertical);
- l->addAnchors(l, b, Qt::Vertical);
-
- QCOMPARE(l->count(), 2);
-
- QGraphicsWidget p;
- p.setLayout(l);
-
- QSizeF layoutMinimumSize = l->effectiveSizeHint(Qt::MinimumSize);
- QCOMPARE(layoutMinimumSize.width(), qreal(20));
-
- QSizeF layoutExpandedSize(pref.width() + max.width(), layoutMinimumSize.height());
- p.resize(layoutExpandedSize);
-
- QCOMPARE(a->geometry().size(), pref);
- QCOMPARE(b->geometry().size(), max);
-
- QSizeF layoutMaximumSize = l->effectiveSizeHint(Qt::MaximumSize);
- QCOMPARE(layoutMaximumSize.width(), qreal(200));
-
- if (hasSimplification) {
- QVERIFY(!usedSimplex(l, Qt::Horizontal));
- QVERIFY(!usedSimplex(l, Qt::Vertical));
- }
-}
-
-void tst_QGraphicsAnchorLayout::expandingSequenceFairDistribution()
-{
- QSizeF min(10, 10);
- QSizeF pref(50, 10);
- QSizeF max(100, 10);
-
- QGraphicsWidget *a = createItem(min, pref, max, "a");
- QGraphicsWidget *b = createItem(min, pref, max, "b");
- QGraphicsWidget *c = createItem(min, pref, max, "c");
- QGraphicsWidget *d = createItem(min, pref, max, "d");
-
- b->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
- d->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-
- QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout;
- l->setContentsMargins(0, 0, 0, 0);
-
- // horizontal
- setAnchor(l, l, Qt::AnchorLeft, a, Qt::AnchorLeft, 0);
- setAnchor(l, a, Qt::AnchorRight, b, Qt::AnchorLeft, 0);
- setAnchor(l, b, Qt::AnchorRight, c, Qt::AnchorLeft, 0);
- setAnchor(l, c, Qt::AnchorRight, d, Qt::AnchorLeft, 0);
- setAnchor(l, d, Qt::AnchorRight, l, Qt::AnchorRight, 0);
-
- // vertical
- l->addAnchors(l, a, Qt::Vertical);
- l->addAnchors(l, b, Qt::Vertical);
- l->addAnchors(l, c, Qt::Vertical);
- l->addAnchors(l, d, Qt::Vertical);
-
- QCOMPARE(l->count(), 4);
-
- QGraphicsWidget p;
- p.setLayout(l);
-
- QSizeF layoutMinimumSize = l->effectiveSizeHint(Qt::MinimumSize);
- QCOMPARE(layoutMinimumSize.width(), qreal(40));
-
- QSizeF layoutPartialExpandedSize((2 * pref.width()) + (2 * (pref.width() + 10)),
- layoutMinimumSize.height());
- p.resize(layoutPartialExpandedSize);
-
- QCOMPARE(a->geometry().size(), pref);
- QCOMPARE(b->geometry().size(), pref + QSizeF(10, 0));
- QCOMPARE(c->geometry().size(), pref);
- QCOMPARE(d->geometry().size(), pref + QSizeF(10, 0));
-
- QSizeF layoutExpandedSize((2 * pref.width()) + (2 * max.width()),
- layoutMinimumSize.height());
- p.resize(layoutExpandedSize);
-
- QCOMPARE(a->geometry().size(), pref);
- QCOMPARE(b->geometry().size(), max);
- QCOMPARE(c->geometry().size(), pref);
- QCOMPARE(d->geometry().size(), max);
-
- QSizeF layoutMaximumSize = l->effectiveSizeHint(Qt::MaximumSize);
- QCOMPARE(layoutMaximumSize.width(), qreal(400));
-
- if (hasSimplification) {
- QVERIFY(!usedSimplex(l, Qt::Horizontal));
- QVERIFY(!usedSimplex(l, Qt::Vertical));
- }
-
- // Now we change D to have more "room for growth" from its preferred size
- // to its maximum size. We expect a proportional fair distribution. Note that
- // this seems to not conform with what QGraphicsLinearLayout does.
- d->setMaximumSize(QSizeF(150, 10));
-
- QSizeF newLayoutExpandedSize((2 * pref.width()) + (max.width() + 150),
- layoutMinimumSize.height());
- p.resize(newLayoutExpandedSize);
-
- QCOMPARE(a->geometry().size(), pref);
- QCOMPARE(b->geometry().size(), max);
- QCOMPARE(c->geometry().size(), pref);
- QCOMPARE(d->geometry().size(), QSizeF(150, 10));
-
- QSizeF newLayoutPartialExpandedSize((4 * pref.width()) + 75,
- layoutMinimumSize.height());
- p.resize(newLayoutPartialExpandedSize);
-
- QCOMPARE(a->geometry().size(), pref);
- QCOMPARE(b->geometry().size(), pref + QSizeF(25, 0));
- QCOMPARE(c->geometry().size(), pref);
- QCOMPARE(d->geometry().size(), pref + QSizeF(50, 0));
-
- if (hasSimplification) {
- QVERIFY(!usedSimplex(l, Qt::Horizontal));
- QVERIFY(!usedSimplex(l, Qt::Vertical));
- }
-}
-
-void tst_QGraphicsAnchorLayout::expandingParallel()
-{
- QSizeF min(10, 10);
- QSizeF pref(50, 10);
- QSizeF max(100, 10);
- QSizeF max2(100, 50);
-
- QGraphicsWidget *a = createItem(min, pref, max, "a");
- QGraphicsWidget *b = createItem(min, pref, max, "b");
- QGraphicsWidget *c = createItem(min, pref, max2, "c");
-
- b->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
-
- QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout;
- l->setContentsMargins(0, 0, 0, 0);
-
- // horizontal
- setAnchor(l, l, Qt::AnchorLeft, a, Qt::AnchorLeft, 0);
- setAnchor(l, l, Qt::AnchorLeft, b, Qt::AnchorLeft, 0);
-
- setAnchor(l, a, Qt::AnchorRight, c, Qt::AnchorLeft, 0);
- setAnchor(l, b, Qt::AnchorRight, c, Qt::AnchorLeft, 0);
-
- setAnchor(l, c, Qt::AnchorRight, l, Qt::AnchorRight, 0);
-
- // vertical
- l->addAnchors(l, c, Qt::Vertical);
- setAnchor(l, l, Qt::AnchorTop, a, Qt::AnchorTop, 0);
- setAnchor(l, a, Qt::AnchorBottom, c, Qt::AnchorVerticalCenter, 0);
- setAnchor(l, b, Qt::AnchorTop, c, Qt::AnchorVerticalCenter, 0);
- setAnchor(l, b, Qt::AnchorBottom, l, Qt::AnchorBottom, 0);
-
- QCOMPARE(l->count(), 3);
-
- QGraphicsWidget p;
- p.setLayout(l);
-
- QSizeF layoutMinimumSize = l->effectiveSizeHint(Qt::MinimumSize);
- QCOMPARE(layoutMinimumSize.width(), qreal(20));
-
- QSizeF layoutExpandedSize(pref.width() + max.width(), layoutMinimumSize.height());
- p.resize(layoutExpandedSize);
-
- QCOMPARE(a->geometry().size(), max);
- QCOMPARE(b->geometry().size(), max);
- QCOMPARE(c->geometry().size(), QSizeF(pref.width(), 20));
-
- QSizeF layoutMaximumSize = l->effectiveSizeHint(Qt::MaximumSize);
- QCOMPARE(layoutMaximumSize.width(), qreal(200));
-
- //
- // Change the parallel connection to a paralell connection of b with a center...
- //
- QGraphicsAnchor *anchor = l->anchor(b, Qt::AnchorRight, c, Qt::AnchorLeft);
- delete anchor;
- setAnchor(l, b, Qt::AnchorRight, a, Qt::AnchorHorizontalCenter, 0);
- a->setMaximumSize(max + QSizeF(100, 0));
-
- QSizeF newLayoutMinimumSize = l->effectiveSizeHint(Qt::MinimumSize);
- QCOMPARE(newLayoutMinimumSize.width(), qreal(30));
-
- QSizeF newLayoutExpandedSize = layoutExpandedSize + QSizeF(100, 0);
- p.resize(newLayoutExpandedSize);
-
- QCOMPARE(a->geometry().size(), max + QSizeF(100, 0));
- QCOMPARE(b->geometry().size(), max);
- QCOMPARE(c->geometry().size(), QSizeF(pref.width(), 20));
-
- QSizeF newLayoutMaximumSize = l->effectiveSizeHint(Qt::MaximumSize);
- QCOMPARE(newLayoutMaximumSize.width(), qreal(300));
-}
-
void tst_QGraphicsAnchorLayout::floatConflict()
{
QGraphicsWidget *a = createItem(QSizeF(80,10), QSizeF(90,10), QSizeF(100,10), "a");
@@ -1882,6 +1672,7 @@ void tst_QGraphicsAnchorLayout::infiniteMaxSizes()
QGraphicsWidget *b = createItem(min, pref, max, "b");
QGraphicsWidget *c = createItem(min, pref, max, "c");
QGraphicsWidget *d = createItem(min, pref, max, "d");
+ QGraphicsWidget *e = createItem(min, pref, max, "e");
//<!-- Trunk -->
setAnchor(l, l, Qt::AnchorLeft, a, Qt::AnchorLeft, 0);
@@ -1889,34 +1680,32 @@ void tst_QGraphicsAnchorLayout::infiniteMaxSizes()
setAnchor(l, b, Qt::AnchorRight, c, Qt::AnchorLeft, 0);
setAnchor(l, c, Qt::AnchorRight, d, Qt::AnchorLeft, 0);
setAnchor(l, d, Qt::AnchorRight, l, Qt::AnchorRight, 0);
-
- a->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
- c->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Preferred);
+ setAnchor(l, b, Qt::AnchorHorizontalCenter, e, Qt::AnchorLeft, 0);
+ setAnchor(l, e, Qt::AnchorRight, c, Qt::AnchorHorizontalCenter, 0);
QGraphicsWidget p;
p.setLayout(l);
+ QCOMPARE(int(p.effectiveSizeHint(Qt::MaximumSize).width()),
+ QWIDGETSIZE_MAX);
+
p.resize(200, 10);
QCOMPARE(a->geometry(), QRectF(0, 0, 50, 10));
QCOMPARE(b->geometry(), QRectF(50, 0, 50, 10));
QCOMPARE(c->geometry(), QRectF(100, 0, 50, 10));
QCOMPARE(d->geometry(), QRectF(150, 0, 50, 10));
- if (!hasSimplification)
- QEXPECT_FAIL("", "Without simplification there is no fair distribution.", Abort);
-
p.resize(1000, 10);
- QCOMPARE(a->geometry(), QRectF(0, 0, 450, 10));
- QCOMPARE(b->geometry(), QRectF(450, 0, 50, 10));
- QCOMPARE(c->geometry(), QRectF(500, 0, 450, 10));
- QCOMPARE(d->geometry(), QRectF(950, 0, 50, 10));
-
- qreal expMaxSize = (QWIDGETSIZE_MAX - 100.0) / 2;
- p.resize(QWIDGETSIZE_MAX, 10);
- QCOMPARE(a->geometry(), QRectF(0, 0, expMaxSize, 10));
- QCOMPARE(b->geometry(), QRectF(expMaxSize, 0, 50, 10));
- QCOMPARE(c->geometry(), QRectF(expMaxSize + 50, 0, expMaxSize, 10));
- QCOMPARE(d->geometry(), QRectF(QWIDGETSIZE_MAX - 50, 0, 50, 10));
+ QCOMPARE(a->geometry(), QRectF(0, 0, 250, 10));
+ QCOMPARE(b->geometry(), QRectF(250, 0, 250, 10));
+ QCOMPARE(c->geometry(), QRectF(500, 0, 250, 10));
+ QCOMPARE(d->geometry(), QRectF(750, 0, 250, 10));
+
+ p.resize(40000, 10);
+ QCOMPARE(a->geometry(), QRectF(0, 0, 10000, 10));
+ QCOMPARE(b->geometry(), QRectF(10000, 0, 10000, 10));
+ QCOMPARE(c->geometry(), QRectF(20000, 0, 10000, 10));
+ QCOMPARE(d->geometry(), QRectF(30000, 0, 10000, 10));
}
void tst_QGraphicsAnchorLayout::simplifiableUnfeasible()
@@ -1951,7 +1740,7 @@ void tst_QGraphicsAnchorLayout::simplifiableUnfeasible()
if (hasSimplification)
QVERIFY(!usedSimplex(l, Qt::Horizontal));
- // Now we make it valid again
+ // Now we make it valid
b->setMinimumWidth(100);
l->invalidate();
@@ -1979,9 +1768,9 @@ void tst_QGraphicsAnchorLayout::simplificationVsOrder()
QSizeF pref(20, 10);
QSizeF max(50, 10);
- QGraphicsWidget *a = createItem(min, pref, max);
- QGraphicsWidget *b = createItem(min, pref, max);
- QGraphicsWidget *c = createItem(min, pref, max);
+ QGraphicsWidget *a = createItem(min, pref, max, "A");
+ QGraphicsWidget *b = createItem(min, pref, max, "B");
+ QGraphicsWidget *c = createItem(min, pref, max, "C");
QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout;
@@ -2014,5 +1803,68 @@ void tst_QGraphicsAnchorLayout::simplificationVsOrder()
}
}
+void tst_QGraphicsAnchorLayout::parallelSimplificationOfCenter()
+{
+ QSizeF min(10, 10);
+ QSizeF pref(20, 10);
+ QSizeF max(50, 10);
+
+ QGraphicsWidget *a = createItem(min, pref, max, "A");
+ QGraphicsWidget *b = createItem(min, pref, max, "B");
+
+ QGraphicsWidget parent;
+ QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout(&parent);
+ l->setContentsMargins(0, 0, 0, 0);
+
+ l->addAnchor(l, Qt::AnchorLeft, a, Qt::AnchorLeft);
+ l->addAnchor(l, Qt::AnchorRight, a, Qt::AnchorRight);
+
+ l->addAnchor(a, Qt::AnchorHorizontalCenter, b, Qt::AnchorLeft);
+ l->addAnchor(b, Qt::AnchorRight, a, Qt::AnchorRight);
+
+ parent.resize(l->effectiveSizeHint(Qt::PreferredSize));
+
+ QCOMPARE(a->geometry(), QRectF(0, 0, 40, 10));
+ QCOMPARE(b->geometry(), QRectF(20, 0, 20, 10));
+}
+
+/*
+ Test whether redundance of anchors (in this case by using addCornerAnchors), will
+ prevent simplification to take place when it should.
+*/
+void tst_QGraphicsAnchorLayout::simplificationVsRedundance()
+{
+ QSizeF min(10, 10);
+ QSizeF pref(20, 10);
+ QSizeF max(50, 30);
+
+ QGraphicsWidget *a = createItem(min, pref, max, "A");
+ QGraphicsWidget *b = createItem(min, pref, max, "B");
+ QGraphicsWidget *c = createItem(min, pref, max, "C");
+
+ QGraphicsAnchorLayout *l = new QGraphicsAnchorLayout;
+
+ l->addCornerAnchors(a, Qt::TopLeftCorner, l, Qt::TopLeftCorner);
+ l->addCornerAnchors(a, Qt::BottomLeftCorner, l, Qt::BottomLeftCorner);
+
+ l->addCornerAnchors(b, Qt::TopLeftCorner, a, Qt::TopRightCorner);
+ l->addCornerAnchors(b, Qt::TopRightCorner, l, Qt::TopRightCorner);
+
+ l->addCornerAnchors(c, Qt::TopLeftCorner, b, Qt::BottomLeftCorner);
+ l->addCornerAnchors(c, Qt::BottomLeftCorner, a, Qt::BottomRightCorner);
+ l->addCornerAnchors(c, Qt::TopRightCorner, b, Qt::BottomRightCorner);
+ l->addCornerAnchors(c, Qt::BottomRightCorner, l, Qt::BottomRightCorner);
+
+ l->effectiveSizeHint(Qt::MinimumSize);
+
+ QCOMPARE(layoutHasConflict(l), false);
+
+ if (!hasSimplification)
+ QEXPECT_FAIL("", "Test depends on simplification.", Abort);
+
+ QCOMPARE(usedSimplex(l, Qt::Horizontal), false);
+ QCOMPARE(usedSimplex(l, Qt::Vertical), false);
+}
+
QTEST_MAIN(tst_QGraphicsAnchorLayout)
#include "tst_qgraphicsanchorlayout.moc"
diff --git a/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp b/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp
index 1c7a159..0fbd069 100644
--- a/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp
+++ b/tests/auto/qgraphicsanchorlayout1/tst_qgraphicsanchorlayout1.cpp
@@ -162,10 +162,14 @@ Q_DECLARE_METATYPE(AnchorItemSizeHintList)
class TestWidget : public QGraphicsWidget
{
public:
- inline TestWidget(QGraphicsItem *parent = 0)
+ inline TestWidget(QGraphicsItem *parent = 0, const QString &name = QString())
: QGraphicsWidget(parent)
{
setContentsMargins( 0,0,0,0 );
+ if (name.isEmpty())
+ setData(0, QString::fromAscii("w%1").arg(int(this)));
+ else
+ setData(0, name);
}
~TestWidget()
{
@@ -419,7 +423,6 @@ void tst_QGraphicsAnchorLayout1::testAddAndRemoveAnchor()
layout->setAnchor(layout, Qt::AnchorLeft, widget5, Qt::AnchorTop, 10);
QCOMPARE( layout->count(), 4 );
- // ###: NOT SUPPORTED
// anchor two edges of a widget (to define width / height)
QTest::ignoreMessage(QtWarningMsg, "QGraphicsAnchorLayout::addAnchor(): Cannot anchor the item to itself");
layout->setAnchor(widget5, Qt::AnchorLeft, widget5, Qt::AnchorRight, 10);
@@ -516,8 +519,6 @@ void tst_QGraphicsAnchorLayout1::testIsValid()
widget->setLayout(layout);
widget->setGeometry(QRectF(0,0,100,100));
- // ###: this shall change once isValid() is ready
- // QCOMPARE(layout->isValid(), false);
QCOMPARE(layout->isValid(), true);
delete widget;
}
@@ -694,9 +695,8 @@ void tst_QGraphicsAnchorLayout1::testSpecialCases()
layout2->setAnchor(widget1, Qt::AnchorRight, layout2, Qt::AnchorRight, 1);
layout2->setAnchor(widget1, Qt::AnchorBottom, layout2, Qt::AnchorBottom, 1);
- // ###: uncomment when simplification bug is solved
- //widget->setGeometry(QRectF(0,0,100,100));
- //QCOMPARE(widget1->geometry(), QRectF(51,2,47,96));
+ widget->setGeometry(QRectF(0,0,100,100));
+ QCOMPARE(widget1->geometry(), QRectF(51,2,47,96));
delete widget;
}
@@ -896,9 +896,6 @@ void tst_QGraphicsAnchorLayout1::testBasicLayout_data()
<< BasicData(-1, Qt::AnchorLeft, 1, Qt::AnchorRight, 20)
;
- // ### SIMPLIFICATION BUG FOR ITEM 1
- // ### remove this when bug is solved
-
theResult
<< BasicResult(0, QRectF(10, 10, 180, 80) )
<< BasicResult(1, QRectF(10, 80, 10, 10) )
@@ -1664,6 +1661,18 @@ inline QGraphicsLayoutItem *getItem(
return widgets[index];
}
+static QRectF truncate(QRectF original)
+{
+ QRectF result;
+
+ result.setX(qRound(original.x() * 1000000) / 1000000.0);
+ result.setY(qRound(original.y() * 1000000) / 1000000.0);
+ result.setWidth(qRound(original.width() * 1000000) / 1000000.0);
+ result.setHeight(qRound(original.height() * 1000000) / 1000000.0);
+
+ return result;
+}
+
void tst_QGraphicsAnchorLayout1::testBasicLayout()
{
QFETCH(QSizeF, size);
@@ -1684,7 +1693,7 @@ void tst_QGraphicsAnchorLayout1::testBasicLayout()
// Create dummy widgets
QList<QGraphicsWidget *> widgets;
for (int i = 0; i < widgetCount; ++i) {
- TestWidget *w = new TestWidget;
+ TestWidget *w = new TestWidget(0, QString::fromAscii("W%1").arg(i));
widgets << w;
}
@@ -1704,19 +1713,18 @@ void tst_QGraphicsAnchorLayout1::testBasicLayout()
widget->setLayout(layout);
widget->setContentsMargins(0,0,0,0);
- widget->setMinimumSize(size);
- widget->setMaximumSize(size);
-
-// QTest::qWait(500); // layouting is asynchronous..
+ widget->resize(size);
+ QCOMPARE(widget->size(), size);
// Validate
for (int i = 0; i < result.count(); ++i) {
const BasicLayoutTestResult item = result[i];
- QCOMPARE(widgets[item.index]->geometry(), item.rect);
+ QRectF expected = truncate(item.rect);
+ QRectF actual = truncate(widgets[item.index]->geometry());
+
+ QCOMPARE(expected, actual);
}
- // ###: not supported yet
-/*
// Test mirrored mode
widget->setLayoutDirection(Qt::RightToLeft);
layout->activate();
@@ -1728,10 +1736,13 @@ void tst_QGraphicsAnchorLayout1::testBasicLayout()
if (mirroredRect.isValid()){
mirroredRect.moveLeft(size.width()-item.rect.width()-item.rect.left());
}
- QCOMPARE(widgets[item.index]->geometry(), mirroredRect);
+ QRectF expected = truncate(mirroredRect);
+ QRectF actual = truncate(widgets[item.index]->geometry());
+
+ QCOMPARE(expected, actual);
delete widgets[item.index];
}
-*/
+
delete widget;
}
@@ -2212,8 +2223,8 @@ void tst_QGraphicsAnchorLayout1::testRemoveCenterAnchor()
widget->setLayout(layout);
widget->setContentsMargins(0,0,0,0);
- widget->setMinimumSize(size);
- widget->setMaximumSize(size);
+ widget->resize(size);
+ QCOMPARE(widget->size(), size);
// Validate
for (int i = 0; i < result.count(); ++i) {
@@ -2430,6 +2441,8 @@ void tst_QGraphicsAnchorLayout1::testDoubleSizePolicy_data()
QTest::newRow("double size policy: expanding-preferred") << sizePolicy1 << sizePolicy2 << width1 << width2;
}
+ // QGAL handling of ignored flag is different
+ if (0)
{
QSizePolicy sizePolicy1( QSizePolicy::Ignored, QSizePolicy::Ignored );
QSizePolicy sizePolicy2( QSizePolicy::Preferred, QSizePolicy::Preferred );
@@ -2497,9 +2510,6 @@ void tst_QGraphicsAnchorLayout1::testDoubleSizePolicy_data()
void tst_QGraphicsAnchorLayout1::testDoubleSizePolicy()
{
- // ### Size policy is not yet supported
- return;
-
QFETCH(QSizePolicy, policy1);
QFETCH(QSizePolicy, policy2);
QFETCH(qreal, width1);
@@ -3053,8 +3063,8 @@ void tst_QGraphicsAnchorLayout1::testComplexCases()
widget->setLayout(layout);
widget->setContentsMargins(0,0,0,0);
- widget->setMinimumSize(size);
- widget->setMaximumSize(size);
+ widget->resize(size);
+ QCOMPARE(widget->size(), size);
// QTest::qWait(500); // layouting is asynchronous..
diff --git a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp
index fbeb425..55294d5 100644
--- a/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp
+++ b/tests/auto/qgraphicseffectsource/tst_qgraphicseffectsource.cpp
@@ -357,7 +357,7 @@ void tst_QGraphicsEffectSource::pixmapPadding_data()
QTest::newRow("log,transparent") << int(Qt::LogicalCoordinates)
<< int(QGraphicsEffectSource::ExpandToTransparentBorderPadMode)
- << QSize(12, 12) << QPoint(-1, -1)
+ << QSize(14, 14) << QPoint(-2, -2)
<< 0x00000000u;
QTest::newRow("log,effectrect") << int(Qt::LogicalCoordinates)
@@ -372,7 +372,7 @@ void tst_QGraphicsEffectSource::pixmapPadding_data()
QTest::newRow("dev,transparent") << int(Qt::DeviceCoordinates)
<< int(QGraphicsEffectSource::ExpandToTransparentBorderPadMode)
- << QSize(22, 22) << QPoint(39, 39)
+ << QSize(24, 24) << QPoint(38, 38)
<< 0x00000000u;
QTest::newRow("dev,effectrect") << int(Qt::DeviceCoordinates)
diff --git a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
index 684ad4f..d65c6ec 100644
--- a/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
+++ b/tests/auto/qgraphicsitem/tst_qgraphicsitem.cpp
@@ -401,6 +401,7 @@ private slots:
void modality_clickFocus();
void modality_keyEvents();
void itemIsInFront();
+ void scenePosChange();
// task specific tests below me
void task141694_textItemEnsureVisible();
@@ -4229,6 +4230,8 @@ protected:
break;
case QGraphicsItem::ItemOpacityHasChanged:
break;
+ case QGraphicsItem::ItemScenePositionHasChanged:
+ break;
}
return itemChangeReturnValue.isValid() ? itemChangeReturnValue : value;
}
@@ -7676,20 +7679,6 @@ void tst_QGraphicsItem::hitTestGraphicsEffectItem()
QCOMPARE(items.size(), 1);
QCOMPARE(items.at(0), static_cast<QGraphicsItem *>(item3));
- item1->repaints = 0;
- item2->repaints = 0;
- item3->repaints = 0;
-
- view.viewport()->update(75, 75, 20, 20);
- QTest::qWait(50);
-
- // item1 is the effect source and must therefore be repainted.
- // item2 intersects with the exposed region
- // item3 is just another child outside the exposed region
- QCOMPARE(item1->repaints, 1);
- QCOMPARE(item2->repaints, 1);
- QCOMPARE(item3->repaints, 0);
-
scene.setItemIndexMethod(QGraphicsScene::NoIndex);
QTest::qWait(100);
@@ -9691,5 +9680,76 @@ void tst_QGraphicsItem::itemIsInFront()
QCOMPARE(qt_closestItemFirst(rect1child1_2, rect2child1), false);
}
+class ScenePosChangeTester : public ItemChangeTester
+{
+public:
+ ScenePosChangeTester()
+ { }
+ ScenePosChangeTester(QGraphicsItem *parent) : ItemChangeTester(parent)
+ { }
+};
+
+void tst_QGraphicsItem::scenePosChange()
+{
+ ScenePosChangeTester* root = new ScenePosChangeTester;
+ ScenePosChangeTester* child1 = new ScenePosChangeTester(root);
+ ScenePosChangeTester* grandChild1 = new ScenePosChangeTester(child1);
+ ScenePosChangeTester* child2 = new ScenePosChangeTester(root);
+ ScenePosChangeTester* grandChild2 = new ScenePosChangeTester(child2);
+
+ child1->setFlag(QGraphicsItem::ItemSendsScenePositionChanges, true);
+ grandChild2->setFlag(QGraphicsItem::ItemSendsScenePositionChanges, true);
+
+ QGraphicsScene scene;
+ scene.addItem(root);
+
+ // ignore uninteresting changes
+ child1->clear();
+ child2->clear();
+ grandChild1->clear();
+ grandChild2->clear();
+
+ // move whole tree
+ root->moveBy(1.0, 1.0);
+ QCOMPARE(child1->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 1);
+ QCOMPARE(grandChild1->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 0);
+ QCOMPARE(child2->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 0);
+ QCOMPARE(grandChild2->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 1);
+
+ // move subtree
+ child2->moveBy(1.0, 1.0);
+ QCOMPARE(child1->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 1);
+ QCOMPARE(grandChild1->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 0);
+ QCOMPARE(child2->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 0);
+ QCOMPARE(grandChild2->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 2);
+
+ // reparent
+ grandChild2->setParentItem(child1);
+ child1->moveBy(1.0, 1.0);
+ QCOMPARE(child1->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 2);
+ QCOMPARE(grandChild1->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 0);
+ QCOMPARE(child2->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 0);
+ QCOMPARE(grandChild2->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 3);
+
+ // change flags
+ grandChild1->setFlag(QGraphicsItem::ItemSendsScenePositionChanges, true);
+ grandChild2->setFlag(QGraphicsItem::ItemSendsScenePositionChanges, false);
+ QCoreApplication::processEvents(); // QGraphicsScenePrivate::_q_updateScenePosDescendants()
+ child1->moveBy(1.0, 1.0);
+ QCOMPARE(child1->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 3);
+ QCOMPARE(grandChild1->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 1);
+ QCOMPARE(child2->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 0);
+ QCOMPARE(grandChild2->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 3);
+
+ // remove
+ scene.removeItem(grandChild1);
+ delete grandChild2; grandChild2 = 0;
+ QCoreApplication::processEvents(); // QGraphicsScenePrivate::_q_updateScenePosDescendants()
+ root->moveBy(1.0, 1.0);
+ QCOMPARE(child1->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 4);
+ QCOMPARE(grandChild1->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 1);
+ QCOMPARE(child2->changes.count(QGraphicsItem::ItemScenePositionHasChanged), 0);
+}
+
QTEST_MAIN(tst_QGraphicsItem)
#include "tst_qgraphicsitem.moc"
diff --git a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
index 0589994..9a561eb 100644
--- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
+++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
@@ -225,6 +225,7 @@ private slots:
void focusItem();
void focusItemLostFocus();
void setFocusItem();
+ void setFocusItem_inactive();
void mouseGrabberItem();
void hoverEvents_siblings();
void hoverEvents_parentChild();
@@ -267,6 +268,7 @@ private slots:
void initialFocus_data();
void initialFocus();
void polishItems();
+ void isActive();
// task specific tests below me
void task139710_bspTreeCrash();
@@ -1453,6 +1455,13 @@ void tst_QGraphicsScene::focusItemLostFocus()
item->clearFocus();
}
+class ClearTestItem : public QGraphicsRectItem
+{
+public:
+ ~ClearTestItem() { qDeleteAll(items); }
+ QList<QGraphicsItem *> items;
+};
+
void tst_QGraphicsScene::clear()
{
QGraphicsScene scene;
@@ -1463,6 +1472,19 @@ void tst_QGraphicsScene::clear()
scene.clear();
QVERIFY(scene.items().isEmpty());
QCOMPARE(scene.sceneRect(), QRectF(0, 0, 100, 100));
+
+ ClearTestItem *firstItem = new ClearTestItem;
+ QGraphicsItem *secondItem = new QGraphicsRectItem;
+ firstItem->items += secondItem;
+
+ scene.setItemIndexMethod(QGraphicsScene::NoIndex);
+ scene.addItem(firstItem);
+ scene.addItem(secondItem);
+ QCOMPARE(scene.items().at(0), firstItem);
+ QCOMPARE(scene.items().at(1), secondItem);
+ // must not crash even if firstItem deletes secondItem
+ scene.clear();
+ QVERIFY(scene.items().isEmpty());
}
void tst_QGraphicsScene::setFocusItem()
@@ -1514,6 +1536,26 @@ void tst_QGraphicsScene::setFocusItem()
QVERIFY(!item2->hasFocus());
}
+void tst_QGraphicsScene::setFocusItem_inactive()
+{
+ QGraphicsScene scene;
+ QGraphicsItem *item = scene.addText("Qt");
+ QVERIFY(!scene.focusItem());
+ QVERIFY(!scene.hasFocus());
+ scene.setFocusItem(item);
+ QVERIFY(!scene.hasFocus());
+ QVERIFY(!scene.focusItem());
+ item->setFlag(QGraphicsItem::ItemIsFocusable);
+
+ for (int i = 0; i < 3; ++i) {
+ scene.setFocusItem(item);
+ QCOMPARE(scene.focusItem(), item);
+ QVERIFY(!item->hasFocus());
+ }
+
+}
+
+
void tst_QGraphicsScene::mouseGrabberItem()
{
QGraphicsScene scene;
@@ -3110,6 +3152,7 @@ void tst_QGraphicsScene::tabFocus_sceneWithFocusableItems()
QVERIFY(!view->viewport()->hasFocus());
QVERIFY(!scene.hasFocus());
QVERIFY(!item->hasFocus());
+ QCOMPARE(scene.focusItem(), static_cast<QGraphicsItem *>(item));
// Check that the correct item regains focus.
widget.show();
@@ -3117,8 +3160,10 @@ void tst_QGraphicsScene::tabFocus_sceneWithFocusableItems()
widget.activateWindow();
QTest::qWaitForWindowShown(&widget);
QTRY_VERIFY(view->hasFocus());
+ QTRY_VERIFY(scene.isActive());
QVERIFY(view->viewport()->hasFocus());
QVERIFY(scene.hasFocus());
+ QCOMPARE(scene.focusItem(), static_cast<QGraphicsItem *>(item));
QVERIFY(item->hasFocus());
}
@@ -3910,5 +3955,180 @@ void tst_QGraphicsScene::polishItems()
QMetaObject::invokeMethod(&scene,"_q_polishItems");
}
+void tst_QGraphicsScene::isActive()
+{
+ QGraphicsScene scene1;
+ QVERIFY(!scene1.isActive());
+ QGraphicsScene scene2;
+ QVERIFY(!scene2.isActive());
+
+ {
+ QWidget toplevel1;
+ QHBoxLayout *layout = new QHBoxLayout;
+ toplevel1.setLayout(layout);
+ QGraphicsView *view1 = new QGraphicsView(&scene1);
+ QGraphicsView *view2 = new QGraphicsView(&scene2);
+ layout->addWidget(view1);
+ layout->addWidget(view2);
+
+ QVERIFY(!scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ view1->setVisible(false);
+
+ toplevel1.show();
+ QApplication::setActiveWindow(&toplevel1);
+ QTest::qWaitForWindowShown(&toplevel1);
+ QTRY_COMPARE(QApplication::activeWindow(), &toplevel1);
+
+ QVERIFY(!scene1.isActive()); //it is hidden;
+ QVERIFY(scene2.isActive());
+
+ view1->show();
+ QVERIFY(scene1.isActive());
+ QVERIFY(scene2.isActive());
+
+ view2->hide();
+
+ QVERIFY(scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ toplevel1.hide();
+ QTest::qWait(12);
+ QTRY_VERIFY(!scene1.isActive());
+ QTRY_VERIFY(!scene2.isActive());
+
+ toplevel1.show();
+ QApplication::setActiveWindow(&toplevel1);
+ QApplication::processEvents();
+ QTRY_COMPARE(QApplication::activeWindow(), &toplevel1);
+
+ QTRY_VERIFY(scene1.isActive());
+ QTRY_VERIFY(!scene2.isActive());
+
+ view2->show();
+ QVERIFY(scene1.isActive());
+ QVERIFY(scene2.isActive());
+ }
+
+ QVERIFY(!scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ {
+ QWidget toplevel2;
+ QHBoxLayout *layout = new QHBoxLayout;
+ toplevel2.setLayout(layout);
+ QGraphicsView *view1 = new QGraphicsView(&scene1);
+ QGraphicsView *view2 = new QGraphicsView();
+ layout->addWidget(view1);
+ layout->addWidget(view2);
+
+ QVERIFY(!scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ toplevel2.show();
+ QApplication::setActiveWindow(&toplevel2);
+ QTest::qWaitForWindowShown(&toplevel2);
+ QTRY_COMPARE(QApplication::activeWindow(), &toplevel2);
+
+ QVERIFY(scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ view2->setScene(&scene2);
+
+ QVERIFY(scene1.isActive());
+ QVERIFY(scene2.isActive());
+
+ view1->setScene(&scene2);
+ QVERIFY(!scene1.isActive());
+ QVERIFY(scene2.isActive());
+
+ view1->hide();
+ QVERIFY(!scene1.isActive());
+ QVERIFY(scene2.isActive());
+
+ view1->setScene(&scene1);
+ QVERIFY(!scene1.isActive());
+ QVERIFY(scene2.isActive());
+
+ view1->show();
+
+ view1->show();
+ QVERIFY(scene1.isActive());
+ QVERIFY(scene2.isActive());
+
+ view2->hide();
+ QVERIFY(scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ QGraphicsView topLevelView;
+ topLevelView.show();
+ QApplication::setActiveWindow(&topLevelView);
+ QTest::qWaitForWindowShown(&topLevelView);
+ QTRY_COMPARE(QApplication::activeWindow(), static_cast<QWidget *>(&topLevelView));
+
+ QVERIFY(!scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ topLevelView.setScene(&scene1);
+ QVERIFY(scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ view2->show();
+ QVERIFY(scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ view1->hide();
+ QVERIFY(scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ QApplication::setActiveWindow(&toplevel2);
+ QTRY_COMPARE(QApplication::activeWindow(), &toplevel2);
+
+ QVERIFY(!scene1.isActive());
+ QVERIFY(scene2.isActive());
+
+
+ }
+
+ QVERIFY(!scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ {
+ QWidget toplevel3;
+ QHBoxLayout *layout = new QHBoxLayout;
+ toplevel3.setLayout(layout);
+ QGraphicsView *view1 = new QGraphicsView(&scene1);
+ QGraphicsView *view2 = new QGraphicsView(&scene2);
+ layout->addWidget(view1);
+
+ QVERIFY(!scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ toplevel3.show();
+ QApplication::setActiveWindow(&toplevel3);
+ QTest::qWaitForWindowShown(&toplevel3);
+ QTRY_COMPARE(QApplication::activeWindow(), &toplevel3);
+
+ QVERIFY(scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+ layout->addWidget(view2);
+ QApplication::processEvents();
+ QVERIFY(scene1.isActive());
+ QVERIFY(scene2.isActive());
+
+ view1->setParent(0);
+ QVERIFY(!scene1.isActive());
+ QVERIFY(scene2.isActive());
+ delete view1;
+ }
+
+ QVERIFY(!scene1.isActive());
+ QVERIFY(!scene2.isActive());
+
+}
+
+
QTEST_MAIN(tst_QGraphicsScene)
#include "tst_qgraphicsscene.moc"
diff --git a/tests/auto/qgraphicstransform/tst_qgraphicstransform.cpp b/tests/auto/qgraphicstransform/tst_qgraphicstransform.cpp
index d8ab06e..9b15ab1 100644
--- a/tests/auto/qgraphicstransform/tst_qgraphicstransform.cpp
+++ b/tests/auto/qgraphicstransform/tst_qgraphicstransform.cpp
@@ -259,7 +259,7 @@ void tst_QGraphicsTransform::rotation3d()
// Check that "rotation" produces the 4x4 form of the 3x3 matrix.
// i.e. third row and column are 0 0 1 0.
- t.setIdentity();
+ t.setToIdentity();
rotation.applyTo(&t);
QMatrix4x4 r(expected);
if (sizeof(qreal) == sizeof(float) && angle == 268) {
@@ -274,7 +274,7 @@ void tst_QGraphicsTransform::rotation3d()
rotation.setAxis(QVector3D(0, 0, 0));
rotation.setOrigin(QVector3D(10, 10, 0));
- t.setIdentity();
+ t.setToIdentity();
rotation.applyTo(&t);
QVERIFY(t.isIdentity());
@@ -337,7 +337,7 @@ void tst_QGraphicsTransform::rotation3dArbitraryAxis()
// Check that "rotation" produces the 4x4 form of the 3x3 matrix.
// i.e. third row and column are 0 0 1 0.
- t.setIdentity();
+ t.setToIdentity();
rotation.applyTo(&t);
QMatrix4x4 r(expected);
QVERIFY(qFuzzyCompare(t, r));
diff --git a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
index f07453c..9c6aa39 100644
--- a/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
+++ b/tests/auto/qgraphicsview/tst_qgraphicsview.cpp
@@ -217,6 +217,7 @@ private slots:
void update();
void inputMethodSensitivity();
void inputContextReset();
+ void defaultClipIntersectToView();
// task specific tests below me
void task172231_untransformableItems();
@@ -3692,6 +3693,77 @@ void tst_QGraphicsView::inputContextReset()
QCOMPARE(inputContext.resets, 0);
}
+class ViewClipTester : public QGraphicsView
+{
+public:
+ ViewClipTester(QGraphicsScene *scene = 0)
+ : QGraphicsView(scene)
+ { }
+ QRegion clipRegion;
+
+protected:
+ void drawBackground(QPainter *painter, const QRectF &rect)
+ {
+ clipRegion = painter->clipRegion();
+ }
+};
+
+class ItemClipTester : public QGraphicsRectItem
+{
+public:
+ ItemClipTester() : QGraphicsRectItem(0, 0, 20, 20)
+ {
+ setBrush(Qt::blue);
+ }
+ QRegion clipRegion;
+
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget = 0)
+ {
+ clipRegion = painter->clipRegion();
+ QGraphicsRectItem::paint(painter, option, widget);
+ }
+};
+
+void tst_QGraphicsView::defaultClipIntersectToView()
+{
+ QGraphicsScene scene;
+ ItemClipTester *tester = new ItemClipTester;
+ scene.addItem(tester);
+
+ ViewClipTester view(&scene);
+ view.setAlignment(Qt::AlignTop | Qt::AlignLeft);
+ view.setFrameStyle(0);
+ view.resize(200, 200);
+ view.show();
+ QTRY_COMPARE(QApplication::activeWindow(), (QWidget *)&view);
+
+ QRect viewRect(0, 0, 200, 200);
+ QCOMPARE(view.clipRegion, QRegion(viewRect));
+ QCOMPARE(tester->clipRegion, QRegion(viewRect));
+
+ view.viewport()->update(0, 0, 5, 5);
+ view.viewport()->update(10, 10, 5, 5);
+ qApp->processEvents();
+ viewRect = QRect(0, 0, 15, 15);
+ QCOMPARE(view.clipRegion, QRegion(viewRect));
+ QCOMPARE(tester->clipRegion, QRegion(viewRect));
+
+ view.scale(2, 2);
+ qApp->processEvents();
+
+ viewRect.moveTop(-viewRect.height());
+ viewRect = QRect(0, 0, 100, 100);
+ QCOMPARE(view.clipRegion, QRegion(viewRect));
+ QCOMPARE(tester->clipRegion, QRegion(viewRect));
+
+ view.viewport()->update(0, 0, 5, 5);
+ view.viewport()->update(10, 10, 5, 5);
+ qApp->processEvents();
+ viewRect = QRect(0, 0, 8, 8);
+ QCOMPARE(view.clipRegion, QRegion(viewRect));
+ QCOMPARE(tester->clipRegion, QRegion(viewRect));
+}
+
void tst_QGraphicsView::task253415_reconnectUpdateSceneOnSceneChanged()
{
QGraphicsView view;
diff --git a/tests/auto/qgridlayout/tst_qgridlayout.cpp b/tests/auto/qgridlayout/tst_qgridlayout.cpp
index 7c320be..46e2a03 100644
--- a/tests/auto/qgridlayout/tst_qgridlayout.cpp
+++ b/tests/auto/qgridlayout/tst_qgridlayout.cpp
@@ -920,9 +920,9 @@ void tst_QGridLayout::minMaxSize()
#if defined(Q_WS_X11)
qt_x11_wait_for_window_manager(m_toplevel); // wait for the show
#endif
- QTest::qWait(20);
+ QTest::qWait(40);
m_toplevel->adjustSize();
- QTest::qWait(120); // wait for the implicit adjustSize
+ QTest::qWait(240); // wait for the implicit adjustSize
// If the following fails we might have to wait longer.
// If that does not help there is likely a problem with the implicit adjustSize in show()
if (!fixedSize.isValid()) {
diff --git a/tests/auto/qlabel/tst_qlabel.cpp b/tests/auto/qlabel/tst_qlabel.cpp
index 9eae9c9..9d957a5 100644
--- a/tests/auto/qlabel/tst_qlabel.cpp
+++ b/tests/auto/qlabel/tst_qlabel.cpp
@@ -328,14 +328,14 @@ void tst_QLabel::eventPropagation_data()
QTest::addColumn<bool>("propagation");
QTest::newRow("plain text1") << QString("plain text") << int(Qt::LinksAccessibleByMouse) << int(Qt::NoFocus) << true;
- QTest::newRow("plain text2") << QString("plain text") << (int)Qt::TextSelectableByKeyboard << (int)Qt::ClickFocus << false;
+ QTest::newRow("plain text2") << QString("plain text") << (int)Qt::TextSelectableByKeyboard << (int)Qt::ClickFocus << true;
QTest::newRow("plain text3") << QString("plain text") << (int)Qt::TextSelectableByMouse << (int)Qt::ClickFocus << false;
QTest::newRow("plain text4") << QString("plain text") << (int)Qt::NoTextInteraction << (int)Qt::NoFocus << true;
- QTest::newRow("rich text1") << QString("<b>rich text</b>") << (int)Qt::LinksAccessibleByMouse << (int)Qt::NoFocus << false;
- QTest::newRow("rich text2") << QString("<b>rich text</b>") << (int)Qt::TextSelectableByKeyboard << (int)Qt::ClickFocus << false;
+ QTest::newRow("rich text1") << QString("<b>rich text</b>") << (int)Qt::LinksAccessibleByMouse << (int)Qt::NoFocus << true;
+ QTest::newRow("rich text2") << QString("<b>rich text</b>") << (int)Qt::TextSelectableByKeyboard << (int)Qt::ClickFocus << true;
QTest::newRow("rich text3") << QString("<b>rich text</b>") << (int)Qt::TextSelectableByMouse << (int)Qt::ClickFocus << false;
QTest::newRow("rich text4") << QString("<b>rich text</b>") << (int)Qt::NoTextInteraction << (int)Qt::NoFocus << true;
- QTest::newRow("rich text4") << QString("<b>rich text</b>") << (int)Qt::LinksAccessibleByKeyboard << (int)Qt::StrongFocus << false;
+ QTest::newRow("rich text4") << QString("<b>rich text</b>") << (int)Qt::LinksAccessibleByKeyboard << (int)Qt::StrongFocus << true;
if (!test_box)
test_box = new Widget;
diff --git a/tests/auto/qlineedit/tst_qlineedit.cpp b/tests/auto/qlineedit/tst_qlineedit.cpp
index c676959..b4dfbba 100644
--- a/tests/auto/qlineedit/tst_qlineedit.cpp
+++ b/tests/auto/qlineedit/tst_qlineedit.cpp
@@ -260,6 +260,7 @@ private slots:
void task233101_cursorPosAfterInputMethod();
void task241436_passwordEchoOnEditRestoreEchoMode();
void task248948_redoRemovedSelection();
+ void taskQTBUG_4401_enterKeyClearsPassword();
protected slots:
#ifdef QT3_SUPPORT
@@ -3532,5 +3533,20 @@ void tst_QLineEdit::task248948_redoRemovedSelection()
QCOMPARE(testWidget->text(), QLatin1String("ab"));
}
+void tst_QLineEdit::taskQTBUG_4401_enterKeyClearsPassword()
+{
+ QString password("Wanna guess?");
+
+ testWidget->setText(password);
+ testWidget->setEchoMode(QLineEdit::PasswordEchoOnEdit);
+ testWidget->setFocus();
+ testWidget->selectAll();
+ QApplication::setActiveWindow(testWidget);
+ QTRY_VERIFY(testWidget->hasFocus());
+
+ QTest::keyPress(testWidget, Qt::Key_Enter);
+ QTRY_COMPARE(testWidget->text(), password);
+}
+
QTEST_MAIN(tst_QLineEdit)
#include "tst_qlineedit.moc"
diff --git a/tests/auto/qlistview/tst_qlistview.cpp b/tests/auto/qlistview/tst_qlistview.cpp
index a5ff153..1c8fecf 100644
--- a/tests/auto/qlistview/tst_qlistview.cpp
+++ b/tests/auto/qlistview/tst_qlistview.cpp
@@ -121,6 +121,7 @@ private slots:
void taskQTBUG_2233_scrollHiddenItems();
void taskQTBUG_633_changeModelData();
void taskQTBUG_435_deselectOnViewportClick();
+ void taskQTBUG_2678_spacingAndWrappedText();
};
// Testing get/set functions
@@ -1787,13 +1788,13 @@ void tst_QListView::task262152_setModelColumnNavigate()
view.show();
QTest::qWaitForWindowShown(&view);
- QTest::qWait(100);
+ QTest::qWait(120);
QTest::keyClick(&view, Qt::Key_Down);
- QTest::qWait(100);
- QCOMPARE(view.currentIndex(), model.index(1,1));
+ QTest::qWait(30);
+ QTRY_COMPARE(view.currentIndex(), model.index(1,1));
QTest::keyClick(&view, Qt::Key_Down);
- QTest::qWait(100);
- QCOMPARE(view.currentIndex(), model.index(2,1));
+ QTest::qWait(30);
+ QTRY_COMPARE(view.currentIndex(), model.index(2,1));
}
@@ -1861,7 +1862,7 @@ void tst_QListView::taskQTBUG_435_deselectOnViewportClick()
view.setSelectionMode(QAbstractItemView::ExtendedSelection);
view.selectAll();
QCOMPARE(view.selectionModel()->selectedIndexes().count(), model.rowCount());
-
+
QPoint p = view.visualRect(model.index(model.rowCount() - 1)).center() + QPoint(0, 20);
//first the left button
@@ -1876,5 +1877,19 @@ void tst_QListView::taskQTBUG_435_deselectOnViewportClick()
QVERIFY(!view.selectionModel()->hasSelection());
}
+void tst_QListView::taskQTBUG_2678_spacingAndWrappedText()
+{
+ static const QString lorem("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.");
+ QStringListModel model(QStringList() << lorem << lorem << "foo" << lorem << "bar" << lorem << lorem);
+ QListView w;
+ w.setModel(&model);
+ w.setViewMode(QListView::ListMode);
+ w.setWordWrap(true);
+ w.setSpacing(10);
+ w.show();
+ QTest::qWaitForWindowShown(&w);
+ QCOMPARE(w.horizontalScrollBar()->minimum(), w.horizontalScrollBar()->maximum());
+}
+
QTEST_MAIN(tst_QListView)
#include "tst_qlistview.moc"
diff --git a/tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp b/tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp
index ff5e00f..d6d217f2 100644
--- a/tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp
+++ b/tests/auto/qmatrixnxn/tst_qmatrixnxn.cpp
@@ -151,14 +151,8 @@ private slots:
void convertGeneric();
- void extractAxisRotation_data();
- void extractAxisRotation();
-
- void extractTranslation_data();
- void extractTranslation();
-
- void inferSpecialType_data();
- void inferSpecialType();
+ void optimize_data();
+ void optimize();
void columnsAndRows();
@@ -515,13 +509,13 @@ void tst_QMatrixNxN::create2x2()
m5 = m3;
QVERIFY(isSame(m5, uniqueValues2));
- m5.setIdentity();
+ m5.setToIdentity();
QVERIFY(isIdentity(m5));
QMatrix2x2 m6(uniqueValues2);
QVERIFY(isSame(m6, uniqueValues2));
qreal vals[4];
- m6.toValueArray(vals);
+ m6.copyDataTo(vals);
for (int index = 0; index < 4; ++index)
QCOMPARE(vals[index], uniqueValues2[index]);
}
@@ -550,13 +544,13 @@ void tst_QMatrixNxN::create3x3()
m5 = m3;
QVERIFY(isSame(m5, uniqueValues3));
- m5.setIdentity();
+ m5.setToIdentity();
QVERIFY(isIdentity(m5));
QMatrix3x3 m6(uniqueValues3);
QVERIFY(isSame(m6, uniqueValues3));
qreal vals[9];
- m6.toValueArray(vals);
+ m6.copyDataTo(vals);
for (int index = 0; index < 9; ++index)
QCOMPARE(vals[index], uniqueValues3[index]);
}
@@ -585,13 +579,13 @@ void tst_QMatrixNxN::create4x4()
m5 = m3;
QVERIFY(isSame(m5, uniqueValues4));
- m5.setIdentity();
+ m5.setToIdentity();
QVERIFY(isIdentity(m5));
QMatrix4x4 m6(uniqueValues4);
QVERIFY(isSame(m6, uniqueValues4));
qreal vals[16];
- m6.toValueArray(vals);
+ m6.copyDataTo(vals);
for (int index = 0; index < 16; ++index)
QCOMPARE(vals[index], uniqueValues4[index]);
@@ -627,13 +621,13 @@ void tst_QMatrixNxN::create4x3()
m5 = m3;
QVERIFY(isSame(m5, uniqueValues4x3));
- m5.setIdentity();
+ m5.setToIdentity();
QVERIFY(isIdentity(m5));
QMatrix4x3 m6(uniqueValues4x3);
QVERIFY(isSame(m6, uniqueValues4x3));
qreal vals[12];
- m6.toValueArray(vals);
+ m6.copyDataTo(vals);
for (int index = 0; index < 12; ++index)
QCOMPARE(vals[index], uniqueValues4x3[index]);
}
@@ -802,7 +796,7 @@ void tst_QMatrixNxN::transposed4x3()
QMatrix4x3 m3(uniqueValues4x3);
QMatrix3x4 m4 = m3.transposed();
qreal values[12];
- m4.toValueArray(values);
+ m4.copyDataTo(values);
for (int index = 0; index < 12; ++index)
QCOMPARE(values[index], transposedValues3x4[index]);
}
@@ -1296,7 +1290,7 @@ void tst_QMatrixNxN::multiply4x3()
QGenericMatrix<3, 3, qreal> m4;
m4 = m1 * m2;
qreal values[9];
- m4.toValueArray(values);
+ m4.copyDataTo(values);
for (int index = 0; index < 9; ++index)
QCOMPARE(values[index], ((const qreal *)m3Values)[index]);
}
@@ -1898,7 +1892,7 @@ void tst_QMatrixNxN::inverted4x4()
}
// Test again, after inferring the special matrix type.
- m1.inferSpecialType();
+ m1.optimize();
m2 = m1.inverted(&inv);
QVERIFY(isSame(m2, (const qreal *)m2Values));
QCOMPARE(inv, invertible);
@@ -1913,12 +1907,12 @@ void tst_QMatrixNxN::orthonormalInverse4x4()
m2.rotate(45.0, 1.0, 0.0, 0.0);
m2.translate(10.0, 0.0, 0.0);
- // Use inferSpecialType() to drop the internal flags that
+ // Use optimize() to drop the internal flags that
// mark the matrix as orthonormal. This will force inverted()
// to compute m3.inverted() the long way. We can then compare
// the result to what the faster algorithm produces on m2.
QMatrix4x4 m3 = m2;
- m3.inferSpecialType();
+ m3.optimize();
bool invertible;
QVERIFY(qFuzzyCompare(m2.inverted(&invertible), m3.inverted()));
QVERIFY(invertible);
@@ -1926,7 +1920,7 @@ void tst_QMatrixNxN::orthonormalInverse4x4()
QMatrix4x4 m4;
m4.rotate(45.0, 0.0, 1.0, 0.0);
QMatrix4x4 m5 = m4;
- m5.inferSpecialType();
+ m5.optimize();
QVERIFY(qFuzzyCompare(m4.inverted(), m5.inverted()));
QMatrix4x4 m6;
@@ -1934,7 +1928,7 @@ void tst_QMatrixNxN::orthonormalInverse4x4()
m1.translate(-20.0, 20.0, 15.0);
m1.rotate(25, 1.0, 0.0, 0.0);
QMatrix4x4 m7 = m6;
- m7.inferSpecialType();
+ m7.optimize();
QVERIFY(qFuzzyCompare(m6.inverted(), m7.inverted()));
}
@@ -2081,7 +2075,7 @@ void tst_QMatrixNxN::scale4x4()
m8.scale(x);
QVERIFY(isSame(m8, (const qreal *)resultValues));
- m8.inferSpecialType();
+ m8.optimize();
m8.scale(1.0f);
QVERIFY(isSame(m8, (const qreal *)resultValues));
@@ -2412,7 +2406,7 @@ void tst_QMatrixNxN::rotate4x4()
if (x != 0 || y != 0 || z != 0) {
QQuaternion q = QQuaternion::fromAxisAndAngle(QVector3D(x, y, z), angle);
- QVector3D vq = q.rotateVector(v1);
+ QVector3D vq = q.rotatedVector(v1);
QVERIFY(fuzzyCompare(vq.x(), v1x));
QVERIFY(fuzzyCompare(vq.y(), v1y));
QVERIFY(fuzzyCompare(vq.z(), v1z));
@@ -2509,7 +2503,7 @@ void tst_QMatrixNxN::normalMatrix()
// Perform the test again, after inferring special matrix types.
// This tests the optimized paths in the normalMatrix() function.
- m1.inferSpecialType();
+ m1.optimize();
n1 = m1.normalMatrix();
if (invertible)
@@ -2850,120 +2844,6 @@ void tst_QMatrixNxN::convertGeneric()
QVERIFY(isSame(m11, conv4x4));
}
-void tst_QMatrixNxN::extractAxisRotation_data()
-{
- QTest::addColumn<float>("x");
- QTest::addColumn<float>("y");
- QTest::addColumn<float>("z");
- QTest::addColumn<float>("angle");
-
- QTest::newRow("1, 0, 0, 0 deg") << 1.0f << 0.0f << 0.0f << 0.0f;
- QTest::newRow("1, 0, 0, 90 deg") << 1.0f << 0.0f << 0.0f << 90.0f;
- QTest::newRow("1, 0, 0, 270 deg") << 1.0f << 0.0f << 0.0f << 270.0f;
- QTest::newRow("1, 0, 0, 45 deg") << 1.0f << 0.0f << 0.0f << 45.0f;
- QTest::newRow("1, 0, 0, 120 deg") << 1.0f << 0.0f << 0.0f << 120.0f;
- QTest::newRow("1, 0, 0, 300 deg") << 1.0f << 0.0f << 0.0f << 300.0f;
-
- QTest::newRow("0, 1, 0, 90 deg") << 0.0f << 1.0f << 0.0f << 90.0f;
- QTest::newRow("0, 1, 0, 270 deg") << 0.0f << 1.0f << 0.0f << 270.0f;
- QTest::newRow("0, 1, 0, 45 deg") << 0.0f << 1.0f << 0.0f << 45.0f;
- QTest::newRow("0, 1, 0, 120 deg") << 0.0f << 1.0f << 0.0f << 120.0f;
- QTest::newRow("0, 1, 0, 300 deg") << 0.0f << 1.0f << 0.0f << 300.0f;
-
- QTest::newRow("0, 0, 1, 90 deg") << 0.0f << 0.0f << 1.0f << 90.0f;
- QTest::newRow("0, 0, 1, 270 deg") << 0.0f << 0.0f << 1.0f << 270.0f;
- QTest::newRow("0, 0, 1, 45 deg") << 0.0f << 0.0f << 1.0f << 45.0f;
- QTest::newRow("0, 0, 1, 120 deg") << 0.0f << 0.0f << 1.0f << 120.0f;
- QTest::newRow("0, 0, 1, 300 deg") << 0.0f << 0.0f << 1.0f << 300.0f;
-
- QTest::newRow("1, 1, 1, 90 deg") << 1.0f << 1.0f << 1.0f << 90.0f;
- QTest::newRow("1, 1, 1, 270 deg") << 1.0f << 1.0f << 1.0f << 270.0f;
- QTest::newRow("1, 1, 1, 45 deg") << 1.0f << 1.0f << 1.0f << 45.0f;
- QTest::newRow("1, 1, 1, 120 deg") << 1.0f << 1.0f << 1.0f << 120.0f;
- QTest::newRow("1, 1, 1, 300 deg") << 1.0f << 1.0f << 1.0f << 300.0f;
-}
-
-void tst_QMatrixNxN::extractAxisRotation()
-{
- QFETCH(float, x);
- QFETCH(float, y);
- QFETCH(float, z);
- QFETCH(float, angle);
-
- QMatrix4x4 m;
- QVector3D origAxis(x, y, z);
-
- m.rotate(angle, x, y, z);
-
- origAxis.normalize();
- QVector3D extractedAxis;
- qreal extractedAngle;
-
- m.extractAxisRotation(extractedAngle, extractedAxis);
-
- if (angle > 180) {
- QVERIFY(fuzzyCompare(360.0f - angle, extractedAngle));
- QVERIFY(fuzzyCompare(extractedAxis, -origAxis));
- } else {
- QVERIFY(fuzzyCompare(angle, extractedAngle));
- QVERIFY(fuzzyCompare(extractedAxis, origAxis));
- }
-}
-
-void tst_QMatrixNxN::extractTranslation_data()
-{
- QTest::addColumn<QMatrix4x4>("rotation");
- QTest::addColumn<float>("x");
- QTest::addColumn<float>("y");
- QTest::addColumn<float>("z");
-
- static QMatrix4x4 m1;
-
- QTest::newRow("identity, 100, 50, 25")
- << m1 << 100.0f << 50.0f << 250.0f;
-
- m1.rotate(45.0, 1.0, 0.0, 0.0);
- QTest::newRow("rotX 45 + 100, 50, 25") << m1 << 100.0f << 50.0f << 25.0f;
-
- m1.setIdentity();
- m1.rotate(45.0, 0.0, 1.0, 0.0);
- QTest::newRow("rotY 45 + 100, 50, 25") << m1 << 100.0f << 50.0f << 25.0f;
-
- m1.setIdentity();
- m1.rotate(75, 0.0, 0.0, 1.0);
- m1.rotate(25, 1.0, 0.0, 0.0);
- m1.rotate(45, 0.0, 1.0, 0.0);
- QTest::newRow("rotZ 75, rotX 25, rotY 45, 100, 50, 25") << m1 << 100.0f << 50.0f << 25.0f;
-}
-
-void tst_QMatrixNxN::extractTranslation()
-{
- QFETCH(QMatrix4x4, rotation);
- QFETCH(float, x);
- QFETCH(float, y);
- QFETCH(float, z);
-
- rotation.translate(x, y, z);
-
- QVector3D vec = rotation.extractTranslation();
-
- QVERIFY(fuzzyCompare(vec.x(), x));
- QVERIFY(fuzzyCompare(vec.y(), y));
- QVERIFY(fuzzyCompare(vec.z(), z));
-
- QMatrix4x4 lookAt;
- QVector3D eye(1.5f, -2.5f, 2.5f);
- lookAt.lookAt(eye,
- QVector3D(10.0f, 10.0f, 10.0f),
- QVector3D(0.0f, 1.0f, 0.0f));
-
- QVector3D extEye = lookAt.extractTranslation();
-
- QVERIFY(fuzzyCompare(eye.x(), -extEye.x()));
- QVERIFY(fuzzyCompare(eye.y(), -extEye.y()));
- QVERIFY(fuzzyCompare(eye.z(), -extEye.z()));
-}
-
// Copy of "flagBits" in qmatrix4x4.h.
enum {
Identity = 0x0001, // Identity matrix
@@ -2981,7 +2861,7 @@ struct Matrix4x4
};
// Test the inferring of special matrix types.
-void tst_QMatrixNxN::inferSpecialType_data()
+void tst_QMatrixNxN::optimize_data()
{
QTest::addColumn<void *>("mValues");
QTest::addColumn<int>("flagBits");
@@ -3029,13 +2909,13 @@ void tst_QMatrixNxN::inferSpecialType_data()
QTest::newRow("below")
<< (void *)belowValues << (int)General;
}
-void tst_QMatrixNxN::inferSpecialType()
+void tst_QMatrixNxN::optimize()
{
QFETCH(void *, mValues);
QFETCH(int, flagBits);
QMatrix4x4 m((const qreal *)mValues);
- m.inferSpecialType();
+ m.optimize();
QCOMPARE(reinterpret_cast<Matrix4x4 *>(&m)->flagBits, flagBits);
}
@@ -3362,7 +3242,7 @@ void tst_QMatrixNxN::mapVector()
QFETCH(void *, mValues);
QMatrix4x4 m1((const qreal *)mValues);
- m1.inferSpecialType();
+ m1.optimize();
QVector3D v(3.5f, -1.0f, 2.5f);
diff --git a/tests/auto/qpainter/tst_qpainter.cpp b/tests/auto/qpainter/tst_qpainter.cpp
index 8ed83cb..4d2c626 100644
--- a/tests/auto/qpainter/tst_qpainter.cpp
+++ b/tests/auto/qpainter/tst_qpainter.cpp
@@ -239,9 +239,12 @@ private slots:
void taskQT4444_dontOverflowDashOffset();
void painterBegin();
+ void setPenColorOnImage();
+ void setPenColorOnPixmap();
private:
void fillData();
+ void setPenColor(QPainter& p);
QColor baseColor( int k, int intensity=255 );
QImage getResImage( const QString &dir, const QString &addition, const QString &extension );
QBitmap getBitmap( const QString &dir, const QString &filename, bool mask );
@@ -4193,9 +4196,9 @@ void tst_QPainter::extendedBlendModes()
QVERIFY(testCompositionMode(255, 255, 255, QPainter::CompositionMode_SoftLight));
QVERIFY(testCompositionMode( 0, 0, 0, QPainter::CompositionMode_SoftLight));
- QVERIFY(testCompositionMode(127, 127, 127, QPainter::CompositionMode_SoftLight));
- QVERIFY(testCompositionMode( 63, 63, 86, QPainter::CompositionMode_SoftLight));
- QVERIFY(testCompositionMode(127, 63, 63, QPainter::CompositionMode_SoftLight));
+ QVERIFY(testCompositionMode(127, 127, 126, QPainter::CompositionMode_SoftLight));
+ QVERIFY(testCompositionMode( 63, 63, 39, QPainter::CompositionMode_SoftLight));
+ QVERIFY(testCompositionMode(127, 63, 62, QPainter::CompositionMode_SoftLight));
QVERIFY(testCompositionMode(255, 255, 0, QPainter::CompositionMode_Difference));
QVERIFY(testCompositionMode( 0, 0, 0, QPainter::CompositionMode_Difference));
@@ -4352,5 +4355,41 @@ void tst_QPainter::painterBegin()
QVERIFY(!p.end());
}
+void tst_QPainter::setPenColor(QPainter& p)
+{
+ p.setPen(Qt::NoPen);
+
+ // Setting color, then style
+ // Should work even though the pen is "NoPen with color", temporarily.
+ QPen newPen(p.pen());
+ newPen.setColor(Qt::red);
+ QCOMPARE(p.pen().style(), newPen.style());
+ QCOMPARE(p.pen().style(), Qt::NoPen);
+ p.setPen(newPen);
+
+ QCOMPARE(p.pen().color().name(), QString("#ff0000"));
+
+ QPen newPen2(p.pen());
+ newPen2.setStyle(Qt::SolidLine);
+ p.setPen(newPen2);
+
+ QCOMPARE(p.pen().color().name(), QString("#ff0000"));
+}
+
+void tst_QPainter::setPenColorOnImage()
+{
+ QImage img(QSize(10, 10), QImage::Format_ARGB32_Premultiplied);
+ QPainter p(&img);
+ setPenColor(p);
+}
+
+void tst_QPainter::setPenColorOnPixmap()
+{
+ QPixmap pix(10, 10);
+ QPainter p(&pix);
+ setPenColor(p);
+}
+
QTEST_MAIN(tst_QPainter)
+
#include "tst_qpainter.moc"
diff --git a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp
index 8d937e9..a26e0eb 100644
--- a/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp
+++ b/tests/auto/qparallelanimationgroup/tst_qparallelanimationgroup.cpp
@@ -119,8 +119,8 @@ class TestAnimation : public QVariantAnimation
Q_OBJECT
public:
virtual void updateCurrentValue(const QVariant &value) { Q_UNUSED(value)};
- virtual void updateState(QAbstractAnimation::State oldState,
- QAbstractAnimation::State newState)
+ virtual void updateState(QAbstractAnimation::State newState,
+ QAbstractAnimation::State oldState)
{
Q_UNUSED(oldState)
Q_UNUSED(newState)
@@ -135,8 +135,8 @@ public:
TestAnimation2(int duration, QAbstractAnimation *animation) : QVariantAnimation(animation), m_duration(duration) {}
virtual void updateCurrentValue(const QVariant &value) { Q_UNUSED(value)};
- virtual void updateState(QAbstractAnimation::State oldState,
- QAbstractAnimation::State newState)
+ virtual void updateState(QAbstractAnimation::State newState,
+ QAbstractAnimation::State oldState)
{
Q_UNUSED(oldState)
Q_UNUSED(newState)
@@ -223,33 +223,33 @@ void tst_QParallelAnimationGroup::setCurrentTime()
QCOMPARE(notTimeDriven->state(), QAnimationGroup::Stopped);
QCOMPARE(loopsForever->state(), QAnimationGroup::Stopped);
- QCOMPARE(group.currentTime(), 1);
- QCOMPARE(a1_p_o1->currentTime(), 1);
- QCOMPARE(a1_p_o2->currentTime(), 1);
- QCOMPARE(a1_p_o3->currentTime(), 1);
- QCOMPARE(notTimeDriven->currentTime(), 1);
- QCOMPARE(loopsForever->currentTime(), 1);
+ QCOMPARE(group.currentLoopTime(), 1);
+ QCOMPARE(a1_p_o1->currentLoopTime(), 1);
+ QCOMPARE(a1_p_o2->currentLoopTime(), 1);
+ QCOMPARE(a1_p_o3->currentLoopTime(), 1);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 1);
+ QCOMPARE(loopsForever->currentLoopTime(), 1);
// Current time = 250
group.setCurrentTime(250);
- QCOMPARE(group.currentTime(), 250);
- QCOMPARE(a1_p_o1->currentTime(), 250);
- QCOMPARE(a1_p_o2->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 250);
+ QCOMPARE(a1_p_o1->currentLoopTime(), 250);
+ QCOMPARE(a1_p_o2->currentLoopTime(), 0);
QCOMPARE(a1_p_o2->currentLoop(), 1);
- QCOMPARE(a1_p_o3->currentTime(), 250);
- QCOMPARE(notTimeDriven->currentTime(), 250);
- QCOMPARE(loopsForever->currentTime(), 0);
+ QCOMPARE(a1_p_o3->currentLoopTime(), 250);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 250);
+ QCOMPARE(loopsForever->currentLoopTime(), 0);
QCOMPARE(loopsForever->currentLoop(), 1);
// Current time = 251
group.setCurrentTime(251);
- QCOMPARE(group.currentTime(), 251);
- QCOMPARE(a1_p_o1->currentTime(), 250);
- QCOMPARE(a1_p_o2->currentTime(), 1);
+ QCOMPARE(group.currentLoopTime(), 251);
+ QCOMPARE(a1_p_o1->currentLoopTime(), 250);
+ QCOMPARE(a1_p_o2->currentLoopTime(), 1);
QCOMPARE(a1_p_o2->currentLoop(), 1);
- QCOMPARE(a1_p_o3->currentTime(), 250);
- QCOMPARE(notTimeDriven->currentTime(), 251);
- QCOMPARE(loopsForever->currentTime(), 1);
+ QCOMPARE(a1_p_o3->currentLoopTime(), 250);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 251);
+ QCOMPARE(loopsForever->currentLoopTime(), 1);
}
void tst_QParallelAnimationGroup::stateChanged()
@@ -278,18 +278,18 @@ void tst_QParallelAnimationGroup::stateChanged()
group.start();
//all the animations should be started
QCOMPARE(spy1.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy1.last().at(1)), TestAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy1.last().first()), TestAnimation::Running);
QCOMPARE(spy2.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy2.last().at(1)), TestAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy2.last().first()), TestAnimation::Running);
QCOMPARE(spy3.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy3.last().at(1)), TestAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy3.last().first()), TestAnimation::Running);
QCOMPARE(spy4.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy4.last().at(1)), TestAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy4.last().first()), TestAnimation::Running);
group.setCurrentTime(1500); //anim1 should be finished
QCOMPARE(group.state(), QAnimationGroup::Running);
QCOMPARE(spy1.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy1.last().at(1)), TestAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy1.last().first()), TestAnimation::Stopped);
QCOMPARE(spy2.count(), 1); //no change
QCOMPARE(spy3.count(), 1); //no change
QCOMPARE(spy4.count(), 1); //no change
@@ -298,7 +298,7 @@ void tst_QParallelAnimationGroup::stateChanged()
QCOMPARE(group.state(), QAnimationGroup::Running);
QCOMPARE(spy1.count(), 2); //no change
QCOMPARE(spy2.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy2.last().at(1)), TestAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy2.last().first()), TestAnimation::Stopped);
QCOMPARE(spy3.count(), 1); //no change
QCOMPARE(spy4.count(), 1); //no change
@@ -307,9 +307,9 @@ void tst_QParallelAnimationGroup::stateChanged()
QCOMPARE(spy1.count(), 2); //no change
QCOMPARE(spy2.count(), 2); //no change
QCOMPARE(spy3.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy3.last().at(1)), TestAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy3.last().first()), TestAnimation::Stopped);
QCOMPARE(spy4.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy4.last().at(1)), TestAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy4.last().first()), TestAnimation::Stopped);
//cleanup
spy1.clear();
@@ -326,22 +326,22 @@ void tst_QParallelAnimationGroup::stateChanged()
QCOMPARE(spy1.count(), 0);
QCOMPARE(spy2.count(), 0);
QCOMPARE(spy3.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy3.last().at(1)), TestAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy3.last().first()), TestAnimation::Running);
QCOMPARE(spy4.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy4.last().at(1)), TestAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy4.last().first()), TestAnimation::Running);
group.setCurrentTime(1500); //anim2 should be started
QCOMPARE(group.state(), QAnimationGroup::Running);
QCOMPARE(spy1.count(), 0); //no change
QCOMPARE(spy2.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy2.last().at(1)), TestAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy2.last().first()), TestAnimation::Running);
QCOMPARE(spy3.count(), 1); //no change
QCOMPARE(spy4.count(), 1); //no change
group.setCurrentTime(500); //anim1 is finally also started
QCOMPARE(group.state(), QAnimationGroup::Running);
QCOMPARE(spy1.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy1.last().at(1)), TestAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy1.last().first()), TestAnimation::Running);
QCOMPARE(spy2.count(), 1); //no change
QCOMPARE(spy3.count(), 1); //no change
QCOMPARE(spy4.count(), 1); //no change
@@ -349,13 +349,13 @@ void tst_QParallelAnimationGroup::stateChanged()
group.setCurrentTime(0); //everything should be stopped
QCOMPARE(group.state(), QAnimationGroup::Stopped);
QCOMPARE(spy1.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy1.last().at(1)), TestAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy1.last().first()), TestAnimation::Stopped);
QCOMPARE(spy2.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy2.last().at(1)), TestAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy2.last().first()), TestAnimation::Stopped);
QCOMPARE(spy3.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy3.last().at(1)), TestAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy3.last().first()), TestAnimation::Stopped);
QCOMPARE(spy4.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy4.last().at(1)), TestAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy4.last().first()), TestAnimation::Stopped);
}
void tst_QParallelAnimationGroup::clearGroup()
@@ -375,9 +375,9 @@ void tst_QParallelAnimationGroup::clearGroup()
children[i] = group.animationAt(i);
}
- group.clearAnimations();
+ group.clear();
QCOMPARE(group.animationCount(), 0);
- QCOMPARE(group.currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 0);
for (int i = 0; i < animationCount; ++i)
QVERIFY(children[i].isNull());
}
@@ -460,9 +460,9 @@ void tst_QParallelAnimationGroup::updateChildrenWithRunningGroup()
QCOMPARE(groupStateChangedSpy.count(), 1);
QCOMPARE(childStateChangedSpy.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(childStateChangedSpy.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(childStateChangedSpy.at(0).first()),
QAnimationGroup::Running);
// starting directly a running child will not have any effect
@@ -501,13 +501,13 @@ void tst_QParallelAnimationGroup::deleteChildrenWithRunningGroup()
QCOMPARE(anim1->state(), QAnimationGroup::Running);
QTest::qWait(80);
- QVERIFY(group.currentTime() > 0);
+ QVERIFY(group.currentLoopTime() > 0);
delete anim1;
QVERIFY(group.animationCount() == 0);
QCOMPARE(group.duration(), 0);
QCOMPARE(group.state(), QAnimationGroup::Stopped);
- QCOMPARE(group.currentTime(), 0); //that's the invariant
+ QCOMPARE(group.currentLoopTime(), 0); //that's the invariant
}
void tst_QParallelAnimationGroup::startChildrenWithStoppedGroup()
@@ -622,11 +622,11 @@ void tst_QParallelAnimationGroup::startGroupWithRunningChild()
anim2.start();
anim2.pause();
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(1).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(1).first()),
QAnimationGroup::Paused);
QCOMPARE(group.state(), QAnimationGroup::Stopped);
@@ -636,15 +636,15 @@ void tst_QParallelAnimationGroup::startGroupWithRunningChild()
group.start();
QCOMPARE(stateChangedSpy1.count(), 3);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(1).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(1).first()),
QAnimationGroup::Stopped);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(2).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(2).first()),
QAnimationGroup::Running);
QCOMPARE(stateChangedSpy2.count(), 4);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(2).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(2).first()),
QAnimationGroup::Stopped);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(3).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(3).first()),
QAnimationGroup::Running);
QCOMPARE(group.state(), QAnimationGroup::Running);
@@ -687,19 +687,19 @@ void tst_QParallelAnimationGroup::zeroDurationAnimation()
group.start();
QCOMPARE(stateChangedSpy1.count(), 2);
QCOMPARE(finishedSpy1.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(1).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(1).first()),
QAnimationGroup::Stopped);
QCOMPARE(stateChangedSpy2.count(), 1);
QCOMPARE(finishedSpy2.count(), 0);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy1.at(0).first()),
QAnimationGroup::Running);
QCOMPARE(stateChangedSpy3.count(), 1);
QCOMPARE(finishedSpy3.count(), 0);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy3.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy3.at(0).first()),
QAnimationGroup::Running);
@@ -762,9 +762,9 @@ void tst_QParallelAnimationGroup::stopUncontrolledAnimations()
group.start();
QCOMPARE(stateChangedSpy.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(1).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(1).first()),
QAnimationGroup::Stopped);
QCOMPARE(group.state(), QAnimationGroup::Running);
@@ -915,9 +915,9 @@ void tst_QParallelAnimationGroup::loopCount()
group.setCurrentTime(currentGroupTime);
- QCOMPARE(anim1.currentTime(), expected1.time);
- QCOMPARE(anim2.currentTime(), expected2.time);
- QCOMPARE(anim3.currentTime(), expected3.time);
+ QCOMPARE(anim1.currentLoopTime(), expected1.time);
+ QCOMPARE(anim2.currentLoopTime(), expected2.time);
+ QCOMPARE(anim3.currentLoopTime(), expected3.time);
if (expected1.state >=0)
QCOMPARE(int(anim1.state()), expected1.state);
@@ -968,22 +968,22 @@ void tst_QParallelAnimationGroup::pauseResume()
QCOMPARE(anim->state(), QAnimationGroup::Running);
QCOMPARE(spy.count(), 1);
spy.clear();
- const int currentTime = group.currentTime();
- QCOMPARE(anim->currentTime(), currentTime);
+ const int currentTime = group.currentLoopTime();
+ QCOMPARE(anim->currentLoopTime(), currentTime);
group.pause();
QCOMPARE(group.state(), QAnimationGroup::Paused);
- QCOMPARE(group.currentTime(), currentTime);
+ QCOMPARE(group.currentLoopTime(), currentTime);
QCOMPARE(anim->state(), QAnimationGroup::Paused);
- QCOMPARE(anim->currentTime(), currentTime);
+ QCOMPARE(anim->currentLoopTime(), currentTime);
QCOMPARE(spy.count(), 1);
spy.clear();
group.resume();
QCOMPARE(group.state(), QAnimationGroup::Running);
- QCOMPARE(group.currentTime(), currentTime);
+ QCOMPARE(group.currentLoopTime(), currentTime);
QCOMPARE(anim->state(), QAnimationGroup::Running);
- QCOMPARE(anim->currentTime(), currentTime);
+ QCOMPARE(anim->currentLoopTime(), currentTime);
QCOMPARE(spy.count(), 1);
group.stop();
@@ -991,10 +991,10 @@ void tst_QParallelAnimationGroup::pauseResume()
new TestAnimation2(500, &group);
group.start();
QCOMPARE(spy.count(), 1); //the animation should have been started
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy.last().at(1)), TestAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy.last().first()), TestAnimation::Running);
group.setCurrentTime(250); //end of first animation
QCOMPARE(spy.count(), 2); //the animation should have been stopped
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy.last().at(1)), TestAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(spy.last().first()), TestAnimation::Stopped);
group.pause();
QCOMPARE(spy.count(), 2); //this shouldn't have changed
group.resume();
diff --git a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp
index 56c1ced..f41fff1 100644
--- a/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp
+++ b/tests/auto/qpropertyanimation/tst_qpropertyanimation.cpp
@@ -225,7 +225,7 @@ void tst_QPropertyAnimation::setCurrentTime()
animation.setLoopCount(loopCount);
animation.setCurrentTime(currentTime);
- QCOMPARE(animation.currentTime(), testCurrentTime);
+ QCOMPARE(animation.currentLoopTime(), testCurrentTime);
QCOMPARE(animation.currentLoop(), testCurrentLoop);
}
@@ -280,7 +280,7 @@ void tst_QPropertyAnimation::statesAndSignals()
QCOMPARE(anim->state(), QAnimationGroup::Stopped);
QCOMPARE(runningSpy.count(), 1); //anim must have stopped
QCOMPARE(finishedSpy.count(), 0);
- QCOMPARE(anim->currentTime(), 0);
+ QCOMPARE(anim->currentLoopTime(), 0);
QCOMPARE(anim->currentLoop(), 0);
QCOMPARE(currentLoopSpy.count(), 2);
runningSpy.clear();
@@ -291,7 +291,7 @@ void tst_QPropertyAnimation::statesAndSignals()
QCOMPARE(runningSpy.count(), 2); //started and stopped again
runningSpy.clear();
QCOMPARE(finishedSpy.count(), 1);
- QCOMPARE(anim->currentTime(), 100);
+ QCOMPARE(anim->currentLoopTime(), 100);
QCOMPARE(anim->currentLoop(), 2);
QCOMPARE(currentLoopSpy.count(), 4);
@@ -312,7 +312,7 @@ void tst_QPropertyAnimation::statesAndSignals()
QCOMPARE(anim->currentLoop(), 2);
QCOMPARE(runningSpy.count(), 1); // anim has stopped
QCOMPARE(finishedSpy.count(), 2);
- QCOMPARE(anim->currentTime(), 100);
+ QCOMPARE(anim->currentLoopTime(), 100);
delete anim;
}
@@ -864,16 +864,16 @@ void tst_QPropertyAnimation::zeroDurationStart()
//let's check the first state change
const QVariantList firstChange = spy.first();
//old state
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(firstChange.first()), QAbstractAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(firstChange.last()), QAbstractAnimation::Stopped);
//new state
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(firstChange.last()), QAbstractAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(firstChange.first()), QAbstractAnimation::Running);
//let's check the first state change
const QVariantList secondChange = spy.last();
//old state
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(secondChange.first()), QAbstractAnimation::Running);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(secondChange.last()), QAbstractAnimation::Running);
//new state
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(secondChange.last()), QAbstractAnimation::Stopped);
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(secondChange.first()), QAbstractAnimation::Stopped);
}
#define Pause 1
@@ -1171,9 +1171,9 @@ public:
innerAnim->start();
}
- void updateState(QAbstractAnimation::State oldState, QAbstractAnimation::State newState)
+ void updateState(QAbstractAnimation::State newState, QAbstractAnimation::State oldState)
{
- QPropertyAnimation::updateState(oldState, newState);
+ QPropertyAnimation::updateState(newState, oldState);
if (newState == QAbstractAnimation::Stopped)
delete innerAnim;
}
diff --git a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp
index f6afc5b..28fccac 100644
--- a/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp
+++ b/tests/auto/qsequentialanimationgroup/tst_qsequentialanimationgroup.cpp
@@ -87,7 +87,7 @@ private slots:
void currentAnimation();
void currentAnimationWithZeroDuration();
void insertAnimation();
- void clearAnimations();
+ void clear();
void pauseResume();
};
@@ -134,8 +134,8 @@ class TestAnimation : public QVariantAnimation
Q_OBJECT
public:
virtual void updateCurrentValue(const QVariant &value) { Q_UNUSED(value)};
- virtual void updateState(QAbstractAnimation::State oldState,
- QAbstractAnimation::State newState)
+ virtual void updateState(QAbstractAnimation::State newState,
+ QAbstractAnimation::State oldState)
{
Q_UNUSED(oldState)
Q_UNUSED(newState)
@@ -208,119 +208,119 @@ void tst_QSequentialAnimationGroup::setCurrentTime()
QCOMPARE(sequence2->state(), QAnimationGroup::Stopped);
QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped);
- QCOMPARE(group.currentTime(), 1);
- QCOMPARE(sequence->currentTime(), 1);
- QCOMPARE(a1_s_o1->currentTime(), 1);
- QCOMPARE(a2_s_o1->currentTime(), 0);
- QCOMPARE(a3_s_o1->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 1);
+ QCOMPARE(sequence->currentLoopTime(), 1);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 1);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
// Current time = 250
group.setCurrentTime(250);
- QCOMPARE(group.currentTime(), 250);
- QCOMPARE(sequence->currentTime(), 250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 0);
- QCOMPARE(a3_s_o1->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 250);
+ QCOMPARE(sequence->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
// Current time = 251
group.setCurrentTime(251);
- QCOMPARE(group.currentTime(), 251);
- QCOMPARE(sequence->currentTime(), 251);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 1);
+ QCOMPARE(group.currentLoopTime(), 251);
+ QCOMPARE(sequence->currentLoopTime(), 251);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 1);
QCOMPARE(a2_s_o1->currentLoop(), 0);
- QCOMPARE(a3_s_o1->currentTime(), 0);
- QCOMPARE(sequence2->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
+ QCOMPARE(sequence2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
// Current time = 750
group.setCurrentTime(750);
- QCOMPARE(group.currentTime(), 750);
- QCOMPARE(sequence->currentTime(), 750);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 750);
+ QCOMPARE(sequence->currentLoopTime(), 750);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 0);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 0);
- QCOMPARE(sequence2->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
+ QCOMPARE(sequence2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
// Current time = 1000
group.setCurrentTime(1000);
- QCOMPARE(group.currentTime(), 1000);
- QCOMPARE(sequence->currentTime(), 1000);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 1000);
+ QCOMPARE(sequence->currentLoopTime(), 1000);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 0);
- QCOMPARE(sequence2->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
+ QCOMPARE(sequence2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
// Current time = 1010
group.setCurrentTime(1010);
- QCOMPARE(group.currentTime(), 1010);
- QCOMPARE(sequence->currentTime(), 1010);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 1010);
+ QCOMPARE(sequence->currentLoopTime(), 1010);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 10);
- QCOMPARE(sequence2->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 10);
+ QCOMPARE(sequence2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
// Current time = 1250
group.setCurrentTime(1250);
- QCOMPARE(group.currentTime(), 1250);
- QCOMPARE(sequence->currentTime(), 1250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 1250);
+ QCOMPARE(sequence->currentLoopTime(), 1250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 250);
- QCOMPARE(sequence2->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 250);
+ QCOMPARE(sequence2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
// Current time = 1500
group.setCurrentTime(1500);
- QCOMPARE(group.currentTime(), 1500);
- QCOMPARE(sequence->currentTime(), 1250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 1500);
+ QCOMPARE(sequence->currentLoopTime(), 1250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 250);
- QCOMPARE(sequence2->currentTime(), 250);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 250);
+ QCOMPARE(sequence2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
// Current time = 1750
group.setCurrentTime(1750);
- QCOMPARE(group.currentTime(), 1750);
- QCOMPARE(sequence->currentTime(), 1250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 1750);
+ QCOMPARE(sequence->currentLoopTime(), 1250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 250);
- QCOMPARE(sequence2->currentTime(), 500);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(a1_s_o3->currentTime(), 250);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 250);
+ QCOMPARE(sequence2->currentLoopTime(), 500);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 250);
// Current time = 2000
group.setCurrentTime(2000);
- QCOMPARE(group.currentTime(), 1750);
- QCOMPARE(sequence->currentTime(), 1250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 1750);
+ QCOMPARE(sequence->currentLoopTime(), 1250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 250);
- QCOMPARE(sequence2->currentTime(), 500);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(a1_s_o3->currentTime(), 250);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 250);
+ QCOMPARE(sequence2->currentLoopTime(), 500);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 250);
}
void tst_QSequentialAnimationGroup::setCurrentTimeWithUncontrolledAnimation()
@@ -357,40 +357,40 @@ void tst_QSequentialAnimationGroup::setCurrentTimeWithUncontrolledAnimation()
QCOMPARE(notTimeDriven->state(), QAnimationGroup::Stopped);
QCOMPARE(loopsForever->state(), QAnimationGroup::Stopped);
- QCOMPARE(group.currentTime(), 1);
- QCOMPARE(sequence->currentTime(), 1);
- QCOMPARE(a1_s_o1->currentTime(), 1);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(notTimeDriven->currentTime(), 0);
- QCOMPARE(loopsForever->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 1);
+ QCOMPARE(sequence->currentLoopTime(), 1);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 1);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 0);
+ QCOMPARE(loopsForever->currentLoopTime(), 0);
// Current time = 250
group.setCurrentTime(250);
- QCOMPARE(group.currentTime(), 250);
- QCOMPARE(sequence->currentTime(), 250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(notTimeDriven->currentTime(), 0);
- QCOMPARE(loopsForever->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 250);
+ QCOMPARE(sequence->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 0);
+ QCOMPARE(loopsForever->currentLoopTime(), 0);
// Current time = 500
group.setCurrentTime(500);
- QCOMPARE(group.currentTime(), 500);
- QCOMPARE(sequence->currentTime(), 500);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(notTimeDriven->currentTime(), 0);
- QCOMPARE(loopsForever->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 500);
+ QCOMPARE(sequence->currentLoopTime(), 500);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 0);
+ QCOMPARE(loopsForever->currentLoopTime(), 0);
QCOMPARE(group.currentAnimation(), notTimeDriven);
// Current time = 505
group.setCurrentTime(505);
- QCOMPARE(group.currentTime(), 505);
- QCOMPARE(sequence->currentTime(), 500);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(notTimeDriven->currentTime(), 5);
- QCOMPARE(loopsForever->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 505);
+ QCOMPARE(sequence->currentLoopTime(), 500);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 5);
+ QCOMPARE(loopsForever->currentLoopTime(), 0);
QCOMPARE(group.currentAnimation(), notTimeDriven);
QCOMPARE(sequence->state(), QAnimationGroup::Stopped);
QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped);
@@ -400,12 +400,12 @@ void tst_QSequentialAnimationGroup::setCurrentTimeWithUncontrolledAnimation()
// Current time = 750 (end of notTimeDriven animation)
group.setCurrentTime(750);
- QCOMPARE(group.currentTime(), 750);
- QCOMPARE(sequence->currentTime(), 500);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(notTimeDriven->currentTime(), 250);
- QCOMPARE(loopsForever->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 750);
+ QCOMPARE(sequence->currentLoopTime(), 500);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 250);
+ QCOMPARE(loopsForever->currentLoopTime(), 0);
QCOMPARE(group.currentAnimation(), loopsForever);
QCOMPARE(sequence->state(), QAnimationGroup::Stopped);
QCOMPARE(a1_s_o1->state(), QAnimationGroup::Stopped);
@@ -415,13 +415,13 @@ void tst_QSequentialAnimationGroup::setCurrentTimeWithUncontrolledAnimation()
// Current time = 800 (as notTimeDriven was finished at 750, loopsforever should still run)
group.setCurrentTime(800);
- QCOMPARE(group.currentTime(), 800);
+ QCOMPARE(group.currentLoopTime(), 800);
QCOMPARE(group.currentAnimation(), loopsForever);
- QCOMPARE(sequence->currentTime(), 500);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(notTimeDriven->currentTime(), 250);
- QCOMPARE(loopsForever->currentTime(), 50);
+ QCOMPARE(sequence->currentLoopTime(), 500);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(notTimeDriven->currentLoopTime(), 250);
+ QCOMPARE(loopsForever->currentLoopTime(), 50);
loopsForever->stop(); // this should stop the group
@@ -466,26 +466,26 @@ void tst_QSequentialAnimationGroup::seekingForwards()
QCOMPARE(a1_s_o2->state(), QAnimationGroup::Stopped);
QCOMPARE(a1_s_o3->state(), QAnimationGroup::Stopped);
- QCOMPARE(group.currentTime(), 1);
- QCOMPARE(sequence->currentTime(), 1);
- QCOMPARE(a1_s_o1->currentTime(), 1);
- QCOMPARE(a2_s_o1->currentTime(), 0);
- QCOMPARE(a3_s_o1->currentTime(), 0);
- QCOMPARE(sequence2->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 1);
+ QCOMPARE(sequence->currentLoopTime(), 1);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 1);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
+ QCOMPARE(sequence2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
// Current time = 1500
group.setCurrentTime(1500);
- QCOMPARE(group.currentTime(), 1500);
- QCOMPARE(sequence->currentTime(), 1250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 1500);
+ QCOMPARE(sequence->currentLoopTime(), 1250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 250);
- QCOMPARE(sequence2->currentTime(), 250);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 250);
+ QCOMPARE(sequence2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
// this will restart the group
group.start();
@@ -499,15 +499,15 @@ void tst_QSequentialAnimationGroup::seekingForwards()
// Current time = 1750
group.setCurrentTime(1750);
- QCOMPARE(group.currentTime(), 1750);
- QCOMPARE(sequence->currentTime(), 1250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 1750);
+ QCOMPARE(sequence->currentLoopTime(), 1250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 250);
- QCOMPARE(sequence2->currentTime(), 500);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(a1_s_o3->currentTime(), 250);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 250);
+ QCOMPARE(sequence2->currentLoopTime(), 500);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 250);
}
void tst_QSequentialAnimationGroup::seekingBackwards()
@@ -537,15 +537,15 @@ void tst_QSequentialAnimationGroup::seekingBackwards()
// Current time = 1600
group.setCurrentTime(1600);
- QCOMPARE(group.currentTime(), 1600);
- QCOMPARE(sequence->currentTime(), 1250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 1600);
+ QCOMPARE(sequence->currentLoopTime(), 1250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 250);
- QCOMPARE(sequence2->currentTime(), 350);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(a1_s_o3->currentTime(), 100);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 250);
+ QCOMPARE(sequence2->currentLoopTime(), 350);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 100);
QCOMPARE(group.state(), QAnimationGroup::Running);
QCOMPARE(sequence->state(), QAnimationGroup::Stopped);
@@ -556,22 +556,22 @@ void tst_QSequentialAnimationGroup::seekingBackwards()
// Seeking backwards, current time = 1
group.setCurrentTime(1);
- QCOMPARE(group.currentTime(), 1);
- QCOMPARE(sequence->currentTime(), 1);
- QCOMPARE(a1_s_o1->currentTime(), 1);
+ QCOMPARE(group.currentLoopTime(), 1);
+ QCOMPARE(sequence->currentLoopTime(), 1);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 1);
QEXPECT_FAIL("", "rewinding in nested groups is considered as a restart from the children,"
"hence they don't reset from their current animation", Continue);
- QCOMPARE(a2_s_o1->currentTime(), 0);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 0);
QEXPECT_FAIL("", "rewinding in nested groups is considered as a restart from the children,"
"hence they don't reset from their current animation", Continue);
QCOMPARE(a2_s_o1->currentLoop(), 0);
QEXPECT_FAIL("", "rewinding in nested groups is considered as a restart from the children,"
"hence they don't reset from their current animation", Continue);
- QCOMPARE(a3_s_o1->currentTime(), 0);
- QCOMPARE(sequence2->currentTime(), 0);
- QCOMPARE(a1_s_o2->currentTime(), 0);
- QCOMPARE(a1_s_o3->currentTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
+ QCOMPARE(sequence2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 0);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 0);
QCOMPARE(group.state(), QAnimationGroup::Running);
QCOMPARE(sequence->state(), QAnimationGroup::Running);
@@ -582,15 +582,15 @@ void tst_QSequentialAnimationGroup::seekingBackwards()
// Current time = 2000
group.setCurrentTime(2000);
- QCOMPARE(group.currentTime(), 1750);
- QCOMPARE(sequence->currentTime(), 1250);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 1750);
+ QCOMPARE(sequence->currentLoopTime(), 1250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 2);
- QCOMPARE(a3_s_o1->currentTime(), 250);
- QCOMPARE(sequence2->currentTime(), 500);
- QCOMPARE(a1_s_o2->currentTime(), 250);
- QCOMPARE(a1_s_o3->currentTime(), 250);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 250);
+ QCOMPARE(sequence2->currentLoopTime(), 500);
+ QCOMPARE(a1_s_o2->currentLoopTime(), 250);
+ QCOMPARE(a1_s_o3->currentLoopTime(), 250);
QCOMPARE(group.state(), QAnimationGroup::Stopped);
QCOMPARE(sequence->state(), QAnimationGroup::Stopped);
@@ -612,7 +612,7 @@ static bool compareStates(const QSignalSpy& spy, const StateList &expectedStates
}
QList<QVariant> args = spy.at(i);
QAbstractAnimation::State st = expectedStates.at(i);
- QAbstractAnimation::State actual = qVariantValue<QAbstractAnimation::State>(args.value(1));
+ QAbstractAnimation::State actual = qVariantValue<QAbstractAnimation::State>(args.first());
if (equals && actual != st) {
equals = false;
break;
@@ -672,14 +672,14 @@ void tst_QSequentialAnimationGroup::pauseAndResume()
// Current time = 1751
group.setCurrentTime(1751);
- QCOMPARE(group.currentTime(), 1751);
- QCOMPARE(sequence->currentTime(), 751);
+ QCOMPARE(group.currentLoopTime(), 1751);
+ QCOMPARE(sequence->currentLoopTime(), 751);
QCOMPARE(sequence->currentLoop(), 1);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 1);
QCOMPARE(a3_s_o1->currentLoop(), 0);
- QCOMPARE(a3_s_o1->currentTime(), 1);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 1);
QCOMPARE(group.state(), QAnimationGroup::Paused);
QCOMPARE(sequence->state(), QAnimationGroup::Paused);
@@ -696,20 +696,20 @@ void tst_QSequentialAnimationGroup::pauseAndResume()
<< QAbstractAnimation::Running
<< QAbstractAnimation::Stopped)));
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(1).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(1).first()),
QAnimationGroup::Paused);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(2).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(2).first()),
QAnimationGroup::Stopped);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(3).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(3).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(4).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(a1StateChangedSpy.at(4).first()),
QAnimationGroup::Stopped);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(1).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(1).first()),
QAnimationGroup::Paused);
group.resume();
@@ -720,17 +720,17 @@ void tst_QSequentialAnimationGroup::pauseAndResume()
QCOMPARE(a2_s_o1->state(), QAnimationGroup::Stopped);
QCOMPARE(a3_s_o1->state(), QAnimationGroup::Running);
- QVERIFY(group.currentTime() >= 1751);
- QVERIFY(sequence->currentTime() >= 751);
+ QVERIFY(group.currentLoopTime() >= 1751);
+ QVERIFY(sequence->currentLoopTime() >= 751);
QCOMPARE(sequence->currentLoop(), 1);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 1);
QCOMPARE(a3_s_o1->currentLoop(), 0);
- QVERIFY(a3_s_o1->currentTime() >= 1);
+ QVERIFY(a3_s_o1->currentLoopTime() >= 1);
QCOMPARE(seqStateChangedSpy.count(), 3); // Running,Paused,Running
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(2).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(2).first()),
QAnimationGroup::Running);
group.pause();
@@ -741,23 +741,23 @@ void tst_QSequentialAnimationGroup::pauseAndResume()
QCOMPARE(a2_s_o1->state(), QAnimationGroup::Stopped);
QCOMPARE(a3_s_o1->state(), QAnimationGroup::Paused);
- QVERIFY(group.currentTime() >= 1751);
- QVERIFY(sequence->currentTime() >= 751);
+ QVERIFY(group.currentLoopTime() >= 1751);
+ QVERIFY(sequence->currentLoopTime() >= 751);
QCOMPARE(sequence->currentLoop(), 1);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 1);
QCOMPARE(a3_s_o1->currentLoop(), 0);
- QVERIFY(a3_s_o1->currentTime() >= 1);
+ QVERIFY(a3_s_o1->currentLoopTime() >= 1);
QCOMPARE(seqStateChangedSpy.count(), 4); // Running,Paused,Running,Paused
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(3).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(3).first()),
QAnimationGroup::Paused);
group.stop();
QCOMPARE(seqStateChangedSpy.count(), 5); // Running,Paused,Running,Paused,Stopped
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(4).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(4).first()),
QAnimationGroup::Stopped);
}
@@ -797,20 +797,20 @@ void tst_QSequentialAnimationGroup::restart()
for (int i = 0; i < 3; i++) {
QCOMPARE(animsStateChanged[i]->count(), 4);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(1).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(1).first()),
QAnimationGroup::Stopped);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(2).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(2).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(3).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(animsStateChanged[i]->at(3).first()),
QAnimationGroup::Stopped);
}
QCOMPARE(seqStateChangedSpy.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(1).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(seqStateChangedSpy.at(1).first()),
QAnimationGroup::Stopped);
QCOMPARE(seqCurrentAnimChangedSpy.count(), 6);
@@ -855,15 +855,15 @@ void tst_QSequentialAnimationGroup::looping()
// Current time = 1750
group.setCurrentTime(1750);
- QCOMPARE(group.currentTime(), 1750);
- QCOMPARE(sequence->currentTime(), 750);
+ QCOMPARE(group.currentLoopTime(), 1750);
+ QCOMPARE(sequence->currentLoopTime(), 750);
QCOMPARE(sequence->currentLoop(), 1);
- QCOMPARE(a1_s_o1->currentTime(), 250);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 250);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 1);
// this animation is at the beginning because it is the current one inside sequence
QCOMPARE(a3_s_o1->currentLoop(), 0);
- QCOMPARE(a3_s_o1->currentTime(), 0);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 0);
QCOMPARE(sequence->currentAnimation(), a3_s_o1);
QCOMPARE(group.state(), QAnimationGroup::Paused);
@@ -890,16 +890,16 @@ void tst_QSequentialAnimationGroup::looping()
// Looping, current time = duration + 1
group.setCurrentTime(group.duration() + 1);
- QCOMPARE(group.currentTime(), 1);
+ QCOMPARE(group.currentLoopTime(), 1);
QCOMPARE(group.currentLoop(), 1);
- QCOMPARE(sequence->currentTime(), 1);
+ QCOMPARE(sequence->currentLoopTime(), 1);
QCOMPARE(sequence->currentLoop(), 0);
- QCOMPARE(a1_s_o1->currentTime(), 1);
- QCOMPARE(a2_s_o1->currentTime(), 250);
+ QCOMPARE(a1_s_o1->currentLoopTime(), 1);
+ QCOMPARE(a2_s_o1->currentLoopTime(), 250);
QCOMPARE(a2_s_o1->currentLoop(), 1);
// this animation is at the end because it was run on the previous loop
QCOMPARE(a3_s_o1->currentLoop(), 0);
- QCOMPARE(a3_s_o1->currentTime(), 250);
+ QCOMPARE(a3_s_o1->currentLoopTime(), 250);
QCOMPARE(group.state(), QAnimationGroup::Paused);
QCOMPARE(sequence->state(), QAnimationGroup::Paused);
@@ -934,7 +934,7 @@ void tst_QSequentialAnimationGroup::startDelay()
QTest::qWait(500);
- QVERIFY(group.currentTime() == 375);
+ QVERIFY(group.currentLoopTime() == 375);
QCOMPARE(group.state(), QAnimationGroup::Stopped);
}
@@ -958,9 +958,9 @@ void tst_QSequentialAnimationGroup::clearGroup()
children[i] = group.animationAt(i);
}
- group.clearAnimations();
+ group.clear();
QCOMPARE(group.animationCount(), 0);
- QCOMPARE(group.currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 0);
for (int i = 0; i < animationCount; ++i)
QVERIFY(children[i].isNull());
}
@@ -1130,9 +1130,9 @@ void tst_QSequentialAnimationGroup::updateChildrenWithRunningGroup()
QCOMPARE(groupStateChangedSpy.count(), 1);
QCOMPARE(childStateChangedSpy.count(), 1);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(groupStateChangedSpy.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(childStateChangedSpy.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(childStateChangedSpy.at(0).first()),
QAnimationGroup::Running);
// starting directly a running child will not have any effect
@@ -1171,13 +1171,13 @@ void tst_QSequentialAnimationGroup::deleteChildrenWithRunningGroup()
QCOMPARE(anim1->state(), QAnimationGroup::Running);
QTest::qWait(100);
- QVERIFY(group.currentTime() > 0);
+ QVERIFY(group.currentLoopTime() > 0);
delete anim1;
QCOMPARE(group.animationCount(), 0);
QCOMPARE(group.duration(), 0);
QCOMPARE(group.state(), QAnimationGroup::Stopped);
- QCOMPARE(group.currentTime(), 0); //that's the invariant
+ QCOMPARE(group.currentLoopTime(), 0); //that's the invariant
}
void tst_QSequentialAnimationGroup::startChildrenWithStoppedGroup()
@@ -1320,9 +1320,9 @@ void tst_QSequentialAnimationGroup::startGroupWithRunningChild()
QCOMPARE(anim2->state(), QAnimationGroup::Running);
QCOMPARE(stateChangedSpy2.count(), 4);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(2).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(2).first()),
QAnimationGroup::Stopped);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(3).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy2.at(3).first()),
QAnimationGroup::Running);
group.stop();
@@ -1359,9 +1359,9 @@ void tst_QSequentialAnimationGroup::zeroDurationAnimation()
group.start();
QCOMPARE(stateChangedSpy.count(), 2);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(0).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(0).first()),
QAnimationGroup::Running);
- QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(1).at(1)),
+ QCOMPARE(qVariantValue<QAbstractAnimation::State>(stateChangedSpy.at(1).first()),
QAnimationGroup::Stopped);
QCOMPARE(anim1->state(), QAnimationGroup::Stopped);
@@ -1426,14 +1426,14 @@ void tst_QSequentialAnimationGroup::finishWithUncontrolledAnimation()
group.start();
QCOMPARE(group.state(), QAnimationGroup::Running);
QCOMPARE(notTimeDriven.state(), QAnimationGroup::Running);
- QCOMPARE(group.currentTime(), 0);
- QCOMPARE(notTimeDriven.currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 0);
+ QCOMPARE(notTimeDriven.currentLoopTime(), 0);
QTest::qWait(300); //wait for the end of notTimeDriven
QCOMPARE(notTimeDriven.state(), QAnimationGroup::Stopped);
- const int actualDuration = notTimeDriven.currentTime();
+ const int actualDuration = notTimeDriven.currentLoopTime();
QCOMPARE(group.state(), QAnimationGroup::Stopped);
- QCOMPARE(group.currentTime(), actualDuration);
+ QCOMPARE(group.currentLoopTime(), actualDuration);
QCOMPARE(spy.count(), 1);
//2nd case:
@@ -1444,7 +1444,7 @@ void tst_QSequentialAnimationGroup::finishWithUncontrolledAnimation()
group.setCurrentTime(300);
QCOMPARE(group.state(), QAnimationGroup::Stopped);
- QCOMPARE(notTimeDriven.currentTime(), actualDuration);
+ QCOMPARE(notTimeDriven.currentLoopTime(), actualDuration);
QCOMPARE(group.currentAnimation(), static_cast<QAbstractAnimation*>(&anim));
//3rd case:
@@ -1453,8 +1453,8 @@ void tst_QSequentialAnimationGroup::finishWithUncontrolledAnimation()
group.start();
QCOMPARE(group.state(), QAnimationGroup::Running);
QCOMPARE(notTimeDriven.state(), QAnimationGroup::Running);
- QCOMPARE(group.currentTime(), 0);
- QCOMPARE(notTimeDriven.currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 0);
+ QCOMPARE(notTimeDriven.currentLoopTime(), 0);
QCOMPARE(animStateChangedSpy.count(), 0);
@@ -1467,12 +1467,12 @@ void tst_QSequentialAnimationGroup::finishWithUncontrolledAnimation()
QTest::qWait(300); //wait for the end of anim
QCOMPARE(anim.state(), QAnimationGroup::Stopped);
- QCOMPARE(anim.currentTime(), anim.duration());
+ QCOMPARE(anim.currentLoopTime(), anim.duration());
//we should simply be at the end
QCOMPARE(spy.count(), 1);
QCOMPARE(animStateChangedSpy.count(), 2);
- QCOMPARE(group.currentTime(), notTimeDriven.currentTime() + anim.currentTime());
+ QCOMPARE(group.currentLoopTime(), notTimeDriven.currentLoopTime() + anim.currentLoopTime());
}
void tst_QSequentialAnimationGroup::addRemoveAnimation()
@@ -1481,48 +1481,48 @@ void tst_QSequentialAnimationGroup::addRemoveAnimation()
QSequentialAnimationGroup group;
QCOMPARE(group.duration(), 0);
- QCOMPARE(group.currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 0);
QAbstractAnimation *anim1 = new QPropertyAnimation;
group.addAnimation(anim1);
QCOMPARE(group.duration(), 250);
- QCOMPARE(group.currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 0);
QCOMPARE(group.currentAnimation(), anim1);
//let's append an animation
QAbstractAnimation *anim2 = new QPropertyAnimation;
group.addAnimation(anim2);
QCOMPARE(group.duration(), 500);
- QCOMPARE(group.currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 0);
QCOMPARE(group.currentAnimation(), anim1);
//let's prepend an animation
QAbstractAnimation *anim0 = new QPropertyAnimation;
- group.insertAnimationAt(0, anim0);
+ group.insertAnimation(0, anim0);
QCOMPARE(group.duration(), 750);
- QCOMPARE(group.currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 0);
QCOMPARE(group.currentAnimation(), anim0); //anim0 has become the new currentAnimation
group.setCurrentTime(300); //anim0 | anim1 | anim2
- QCOMPARE(group.currentTime(), 300);
+ QCOMPARE(group.currentLoopTime(), 300);
QCOMPARE(group.currentAnimation(), anim1);
- QCOMPARE(anim1->currentTime(), 50);
+ QCOMPARE(anim1->currentLoopTime(), 50);
group.removeAnimation(anim0); //anim1 | anim2
- QCOMPARE(group.currentTime(), 50);
+ QCOMPARE(group.currentLoopTime(), 50);
QCOMPARE(group.currentAnimation(), anim1);
- QCOMPARE(anim1->currentTime(), 50);
+ QCOMPARE(anim1->currentLoopTime(), 50);
group.setCurrentTime(0);
- group.insertAnimationAt(0, anim0); //anim0 | anim1 | anim2
+ group.insertAnimation(0, anim0); //anim0 | anim1 | anim2
group.setCurrentTime(300);
- QCOMPARE(group.currentTime(), 300);
+ QCOMPARE(group.currentLoopTime(), 300);
QCOMPARE(group.currentAnimation(), anim1);
- QCOMPARE(anim1->currentTime(), 50);
+ QCOMPARE(anim1->currentLoopTime(), 50);
group.removeAnimation(anim1); //anim0 | anim2
- QCOMPARE(group.currentTime(), 250);
+ QCOMPARE(group.currentLoopTime(), 250);
QCOMPARE(group.currentAnimation(), anim2);
- QCOMPARE(anim0->currentTime(), 250);
+ QCOMPARE(anim0->currentLoopTime(), 250);
}
void tst_QSequentialAnimationGroup::currentAnimation()
@@ -1595,15 +1595,15 @@ class SequentialAnimationGroup : public QSequentialAnimationGroup
{
Q_OBJECT
public slots:
- void clearAnimations()
+ void clear()
{
- QSequentialAnimationGroup::clearAnimations();
+ QSequentialAnimationGroup::clear();
}
void refill()
{
stop();
- clearAnimations();
+ clear();
new DummyPropertyAnimation(this);
start();
}
@@ -1611,11 +1611,11 @@ public slots:
};
-void tst_QSequentialAnimationGroup::clearAnimations()
+void tst_QSequentialAnimationGroup::clear()
{
SequentialAnimationGroup group;
QPointer<QAbstractAnimation> anim1 = new DummyPropertyAnimation(&group);
- group.connect(anim1, SIGNAL(finished()), SLOT(clearAnimations()));
+ group.connect(anim1, SIGNAL(finished()), SLOT(clear()));
new DummyPropertyAnimation(&group);
QCOMPARE(group.animationCount(), 2);
@@ -1623,7 +1623,7 @@ void tst_QSequentialAnimationGroup::clearAnimations()
QTest::qWait(anim1->duration() + 100);
QCOMPARE(group.animationCount(), 0);
QCOMPARE(group.state(), QAbstractAnimation::Stopped);
- QCOMPARE(group.currentTime(), 0);
+ QCOMPARE(group.currentLoopTime(), 0);
anim1 = new DummyPropertyAnimation(&group);
group.connect(anim1, SIGNAL(finished()), SLOT(refill()));
@@ -1649,22 +1649,22 @@ void tst_QSequentialAnimationGroup::pauseResume()
QCOMPARE(anim->state(), QAnimationGroup::Running);
QCOMPARE(spy.count(), 1);
spy.clear();
- const int currentTime = group.currentTime();
- QCOMPARE(anim->currentTime(), currentTime);
+ const int currentTime = group.currentLoopTime();
+ QCOMPARE(anim->currentLoopTime(), currentTime);
group.pause();
QCOMPARE(group.state(), QAnimationGroup::Paused);
- QCOMPARE(group.currentTime(), currentTime);
+ QCOMPARE(group.currentLoopTime(), currentTime);
QCOMPARE(anim->state(), QAnimationGroup::Paused);
- QCOMPARE(anim->currentTime(), currentTime);
+ QCOMPARE(anim->currentLoopTime(), currentTime);
QCOMPARE(spy.count(), 1);
spy.clear();
group.resume();
QCOMPARE(group.state(), QAnimationGroup::Running);
- QCOMPARE(group.currentTime(), currentTime);
+ QCOMPARE(group.currentLoopTime(), currentTime);
QCOMPARE(anim->state(), QAnimationGroup::Running);
- QCOMPARE(anim->currentTime(), currentTime);
+ QCOMPARE(anim->currentLoopTime(), currentTime);
QCOMPARE(spy.count(), 1);
}
diff --git a/tests/auto/qsound/tst_qsound.cpp b/tests/auto/qsound/tst_qsound.cpp
index 56a330b..73eca98 100644
--- a/tests/auto/qsound/tst_qsound.cpp
+++ b/tests/auto/qsound/tst_qsound.cpp
@@ -55,20 +55,32 @@ public:
tst_QSound( QObject* parent=0) : QObject(parent) {}
private slots:
- void checkFinished();
+ void checkFinished();
+
+ // Manual tests
+ void staticPlay();
};
void tst_QSound::checkFinished()
{
- QSound sound(SRCDIR"4.wav");
- sound.setLoops(3);
- sound.play();
- QTest::qWait(5000);
+ QSound sound(SRCDIR"4.wav");
+ sound.setLoops(3);
+ sound.play();
+ QTest::qWait(5000);
#if defined(Q_WS_QWS)
- QEXPECT_FAIL("", "QSound buggy on embedded (task QTBUG-157)", Abort);
+ QEXPECT_FAIL("", "QSound buggy on embedded (task QTBUG-157)", Abort);
#endif
- QVERIFY(sound.isFinished() );
+ QVERIFY(sound.isFinished() );
+}
+
+void tst_QSound::staticPlay()
+{
+ QSKIP("Test disabled -- only for manual purposes", SkipAll);
+
+ // Check that you hear sound with static play also.
+ QSound::play(SRCDIR"4.wav");
+ QTest::qWait(2000);
}
QTEST_MAIN(tst_QSound);
diff --git a/tests/auto/qsqlquery/tst_qsqlquery.cpp b/tests/auto/qsqlquery/tst_qsqlquery.cpp
index 4d9e50f..4264a70 100644
--- a/tests/auto/qsqlquery/tst_qsqlquery.cpp
+++ b/tests/auto/qsqlquery/tst_qsqlquery.cpp
@@ -193,9 +193,13 @@ private slots:
void sqlServerReturn0_data() { generic_data(); }
void sqlServerReturn0();
+
void QTBUG_551_data() { generic_data("QOCI"); }
void QTBUG_551();
+ void QTBUG_5251_data() { generic_data("QPSQL"); }
+ void QTBUG_5251();
+
private:
// returns all database connections
void generic_data(const QString &engine=QString());
@@ -2901,5 +2905,35 @@ void tst_QSqlQuery::QTBUG_551()
QCOMPARE(res_outLst[2].toString(), QLatin1String("3. Value is 2"));
}
+void tst_QSqlQuery::QTBUG_5251()
+{
+ QFETCH( QString, dbName );
+ QSqlDatabase db = QSqlDatabase::database( dbName );
+ CHECK_DATABASE( db );
+
+ if (!db.driverName().startsWith( "QPSQL" )) return;
+
+ QSqlQuery q(db);
+ q.exec("DROP TABLE " + qTableName("timetest"));
+ QVERIFY_SQL(q, exec("CREATE TABLE " + qTableName("timetest") + " (t TIME)"));
+ QVERIFY_SQL(q, exec("INSERT INTO " + qTableName("timetest") + " VALUES ('1:2:3.666')"));
+
+ QSqlTableModel timetestModel(0,db);
+ timetestModel.setEditStrategy(QSqlTableModel::OnManualSubmit);
+ timetestModel.setTable(qTableName("timetest"));
+ QVERIFY_SQL(timetestModel, select());
+
+ QCOMPARE(timetestModel.record(0).field(0).value().toTime().toString("HH:mm:ss.zzz"), QString("01:02:03.666"));
+ QVERIFY_SQL(timetestModel,setData(timetestModel.index(0, 0), QTime(0,12,34,500)));
+ QCOMPARE(timetestModel.record(0).field(0).value().toTime().toString("HH:mm:ss.zzz"), QString("00:12:34.500"));
+ QVERIFY_SQL(timetestModel, submitAll());
+ QCOMPARE(timetestModel.record(0).field(0).value().toTime().toString("HH:mm:ss.zzz"), QString("00:12:34.500"));
+
+ QVERIFY_SQL(q, exec("UPDATE " + qTableName("timetest") + " SET t = '0:11:22.33'"));
+ QVERIFY_SQL(timetestModel, select());
+ QCOMPARE(timetestModel.record(0).field(0).value().toTime().toString("HH:mm:ss.zzz"), QString("00:11:22.330"));
+
+}
+
QTEST_MAIN( tst_QSqlQuery )
#include "tst_qsqlquery.moc"
diff --git a/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp b/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
index cb24a9f..8c840cd 100644
--- a/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
+++ b/tests/auto/qsqlrelationaltablemodel/tst_qsqlrelationaltablemodel.cpp
@@ -86,6 +86,7 @@ private slots:
void escapedRelations();
void escapedTableName();
void whiteSpaceInIdentifiers();
+ void psqlSchemaTest();
private:
void dropTestTables( QSqlDatabase db );
@@ -150,10 +151,11 @@ void tst_QSqlRelationalTableModel::initTestCase()
if (db.driverName().startsWith("QIBASE"))
db.exec("SET DIALECT 3");
else if (tst_Databases::isSqlServer(db)) {
- QSqlQuery q(db);
- QVERIFY_SQL(q, exec("SET ANSI_DEFAULTS ON"));
- QVERIFY_SQL(q, exec("SET IMPLICIT_TRANSACTIONS OFF"));
+ db.exec("SET ANSI_DEFAULTS ON");
+ db.exec("SET IMPLICIT_TRANSACTIONS OFF");
}
+ else if(tst_Databases::isPostgreSQL(db))
+ db.exec("set client_min_messages='warning'");
recreateTestTables(db);
}
}
@@ -181,6 +183,9 @@ void tst_QSqlRelationalTableModel::dropTestTables( QSqlDatabase db )
<< qTableName("CASETEST1" )
<< qTableName("casetest1" );
tst_Databases::safeDropTables( db, tableNames );
+
+ db.exec("DROP SCHEMA "+qTableName("QTBUG_5373")+" CASCADE");
+ db.exec("DROP SCHEMA "+qTableName("QTBUG_5373_s2")+" CASCADE");
}
void tst_QSqlRelationalTableModel::init()
@@ -1118,8 +1123,8 @@ void tst_QSqlRelationalTableModel::escapedTableName()
}
}
-void tst_QSqlRelationalTableModel::whiteSpaceInIdentifiers() {
-
+void tst_QSqlRelationalTableModel::whiteSpaceInIdentifiers()
+{
QFETCH_GLOBAL(QString, dbName);
QSqlDatabase db = QSqlDatabase::database(dbName);
CHECK_DATABASE(db);
@@ -1193,5 +1198,26 @@ void tst_QSqlRelationalTableModel::whiteSpaceInIdentifiers() {
QCOMPARE(model.data(model.index(0, 2)).toInt(), 6);
}
+void tst_QSqlRelationalTableModel::psqlSchemaTest()
+{
+ QFETCH_GLOBAL(QString, dbName);
+ QSqlDatabase db = QSqlDatabase::database(dbName);
+ CHECK_DATABASE(db);
+
+ if(!tst_Databases::isPostgreSQL(db)) {
+ QSKIP("Postgresql specific test", SkipSingle);
+ return;
+ }
+ QSqlRelationalTableModel model(0, db);
+ QSqlQuery q(db);
+ QVERIFY_SQL(q, exec("create schema "+qTableName("QTBUG_5373")));
+ QVERIFY_SQL(q, exec("create schema "+qTableName("QTBUG_5373_s2")));
+ QVERIFY_SQL(q, exec("create table "+qTableName("QTBUG_5373")+"."+qTableName("user")+"(userid int primary key, relatingid int)"));
+ QVERIFY_SQL(q, exec("create table "+qTableName("QTBUG_5373_s2")+"."+qTableName("user2")+"(userid2 int primary key, username2 char(40))"));
+ model.setTable(qTableName("QTBUG_5373")+"."+qTableName("user"));
+ model.setRelation(1, QSqlRelation(qTableName("QTBUG_5373_s2")+"."+qTableName("user2"), "userid2", "username2"));
+ QVERIFY_SQL(model, select());
+}
+
QTEST_MAIN(tst_QSqlRelationalTableModel)
#include "tst_qsqlrelationaltablemodel.moc"
diff --git a/tests/auto/qstatemachine/tst_qstatemachine.cpp b/tests/auto/qstatemachine/tst_qstatemachine.cpp
index 975b301..fd39515 100644
--- a/tests/auto/qstatemachine/tst_qstatemachine.cpp
+++ b/tests/auto/qstatemachine/tst_qstatemachine.cpp
@@ -162,7 +162,7 @@ private slots:
void defaultGlobalRestorePolicy();
void globalRestorePolicySetToRestore();
- void globalRestorePolicySetToDoNotRestore();
+ void globalRestorePolicySetToDontRestore();
void noInitialStateForInitialState();
@@ -184,7 +184,7 @@ private slots:
void twoAnimatedTransitions();
void playAnimationTwice();
void nestedTargetStateForAnimation();
- void polishedSignalTransitionsReuseAnimationGroup();
+ void propertiesAssignedSignalTransitionsReuseAnimationGroup();
void animatedGlobalRestoreProperty();
void specificTargetValueOfAnimation();
@@ -208,6 +208,7 @@ private slots:
void task260403_clonedSignals();
void postEventFromOtherThread();
+ void eventFilterForApplication();
};
tst_QStateMachine::tst_QStateMachine()
@@ -286,8 +287,8 @@ void tst_QStateMachine::transitionToRootState()
machine.addState(initialState);
machine.setInitialState(initialState);
- QAbstractTransition *trans = initialState->addTransition(new EventTransition(QEvent::User, &machine));
- QVERIFY(trans != 0);
+ QAbstractTransition *trans = new EventTransition(QEvent::User, &machine);
+ initialState->addTransition(trans);
QCOMPARE(trans->sourceState(), initialState);
QCOMPARE(trans->targetState(), static_cast<QAbstractState *>(&machine));
@@ -310,7 +311,7 @@ void tst_QStateMachine::transitionFromRootState()
QState *root = &machine;
QState *s1 = new QState(root);
EventTransition *trans = new EventTransition(QEvent::User, s1);
- QCOMPARE(root->addTransition(trans), static_cast<QAbstractTransition *>(trans));
+ root->addTransition(trans);
QCOMPARE(trans->sourceState(), root);
QCOMPARE(trans->targetState(), static_cast<QAbstractState *>(s1));
}
@@ -984,7 +985,7 @@ void tst_QStateMachine::customErrorStateNotInGraph()
void tst_QStateMachine::restoreProperties()
{
QStateMachine machine;
- QCOMPARE(machine.globalRestorePolicy(), QStateMachine::DoNotRestoreProperties);
+ QCOMPARE(machine.globalRestorePolicy(), QStateMachine::DontRestoreProperties);
machine.setGlobalRestorePolicy(QStateMachine::RestoreProperties);
QObject *object = new QObject(&machine);
@@ -1155,7 +1156,7 @@ void tst_QStateMachine::stateEntryAndExit()
QCOMPARE(t->targetState(), (QAbstractState*)s2);
QCOMPARE(t->targetStates().size(), 1);
QCOMPARE(t->targetStates().at(0), (QAbstractState*)s2);
- QCOMPARE(s1->addTransition(t), (QAbstractTransition*)t);
+ s1->addTransition(t);
QCOMPARE(t->sourceState(), (QState*)s1);
QCOMPARE(t->machine(), &machine);
@@ -1173,7 +1174,7 @@ void tst_QStateMachine::stateEntryAndExit()
s2->removeTransition(trans);
QCOMPARE(trans->sourceState(), (QState*)0);
QCOMPARE(trans->targetState(), (QAbstractState*)s3);
- QCOMPARE(s2->addTransition(trans), trans);
+ s2->addTransition(trans);
QCOMPARE(trans->sourceState(), (QState*)s2);
}
@@ -1319,9 +1320,9 @@ void tst_QStateMachine::assignProperty()
QCOMPARE(s1->objectName(), QString::fromLatin1("foo"));
{
- QSignalSpy polishedSpy(s1, SIGNAL(polished()));
+ QSignalSpy propertiesAssignedSpy(s1, SIGNAL(propertiesAssigned()));
machine.start();
- QTRY_COMPARE(polishedSpy.count(), 1);
+ QTRY_COMPARE(propertiesAssignedSpy.count(), 1);
}
// nested states
@@ -1340,11 +1341,11 @@ void tst_QStateMachine::assignPropertyWithAnimation()
// Single animation
{
QStateMachine machine;
- QVERIFY(machine.animationsEnabled());
- machine.setAnimationsEnabled(false);
- QVERIFY(!machine.animationsEnabled());
- machine.setAnimationsEnabled(true);
- QVERIFY(machine.animationsEnabled());
+ QVERIFY(machine.isAnimated());
+ machine.setAnimated(false);
+ QVERIFY(!machine.isAnimated());
+ machine.setAnimated(true);
+ QVERIFY(machine.isAnimated());
QObject obj;
obj.setProperty("foo", 321);
obj.setProperty("bar", 654);
@@ -1371,7 +1372,7 @@ void tst_QStateMachine::assignPropertyWithAnimation()
QCOMPARE(trans->animations().size(), 1);
QCOMPARE(trans->animations().at(0), (QAbstractAnimation*)&anim);
QFinalState *s3 = new QFinalState(&machine);
- s2->addTransition(s2, SIGNAL(polished()), s3);
+ s2->addTransition(s2, SIGNAL(propertiesAssigned()), s3);
machine.setInitialState(s1);
QSignalSpy finishedSpy(&machine, SIGNAL(finished()));
@@ -1399,7 +1400,7 @@ void tst_QStateMachine::assignPropertyWithAnimation()
anim2.setDuration(150);
trans->addAnimation(&anim2);
QFinalState *s3 = new QFinalState(&machine);
- s2->addTransition(s2, SIGNAL(polished()), s3);
+ s2->addTransition(s2, SIGNAL(propertiesAssigned()), s3);
machine.setInitialState(s1);
QSignalSpy finishedSpy(&machine, SIGNAL(finished()));
@@ -1427,7 +1428,7 @@ void tst_QStateMachine::assignPropertyWithAnimation()
group.addAnimation(new QPropertyAnimation(&obj, "bar"));
trans->addAnimation(&group);
QFinalState *s3 = new QFinalState(&machine);
- s2->addTransition(s2, SIGNAL(polished()), s3);
+ s2->addTransition(s2, SIGNAL(propertiesAssigned()), s3);
machine.setInitialState(s1);
QSignalSpy finishedSpy(&machine, SIGNAL(finished()));
@@ -1473,10 +1474,10 @@ void tst_QStateMachine::assignPropertyWithAnimation()
anim2.setDuration(250);
trans->addAnimation(&anim2);
- s21->addTransition(s21, SIGNAL(polished()), s22);
+ s21->addTransition(s21, SIGNAL(propertiesAssigned()), s22);
QFinalState *s3 = new QFinalState(&machine);
- s22->addTransition(s2, SIGNAL(polished()), s3);
+ s22->addTransition(s2, SIGNAL(propertiesAssigned()), s3);
machine.setInitialState(s1);
QSignalSpy finishedSpy(&machine, SIGNAL(finished()));
@@ -1513,13 +1514,13 @@ void tst_QStateMachine::assignPropertyWithAnimation()
machine.setInitialState(group);
machine.start();
QTRY_COMPARE(machine.configuration().contains(s1), true);
- QSignalSpy polishedSpy(s2, SIGNAL(polished()));
+ QSignalSpy propertiesAssignedSpy(s2, SIGNAL(propertiesAssigned()));
emitter.emitSignalWithNoArg();
QTRY_COMPARE(machine.configuration().contains(s2), true);
- QVERIFY(polishedSpy.isEmpty());
+ QVERIFY(propertiesAssignedSpy.isEmpty());
emitter.emitSignalWithNoArg(); // will cause animations from s1-->s2 to abort
QTRY_COMPARE(machine.configuration().contains(s3), true);
- QVERIFY(polishedSpy.isEmpty());
+ QVERIFY(propertiesAssignedSpy.isEmpty());
QCOMPARE(obj.property("foo").toInt(), 911);
QCOMPARE(obj.property("bar").toInt(), 789);
}
@@ -2736,10 +2737,10 @@ void tst_QStateMachine::restorePolicyNotInherited()
}*/
-void tst_QStateMachine::globalRestorePolicySetToDoNotRestore()
+void tst_QStateMachine::globalRestorePolicySetToDontRestore()
{
QStateMachine machine;
- machine.setGlobalRestorePolicy(QStateMachine::DoNotRestoreProperties);
+ machine.setGlobalRestorePolicy(QStateMachine::DontRestoreProperties);
QObject *propertyHolder = new QObject(&machine);
propertyHolder->setProperty("a", 1);
@@ -3089,7 +3090,7 @@ void tst_QStateMachine::twoAnimations()
QState *s3 = new QState(&machine);
QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit()));
- s2->addTransition(s2, SIGNAL(polished()), s3);
+ s2->addTransition(s2, SIGNAL(propertiesAssigned()), s3);
machine.setInitialState(s1);
machine.start();
@@ -3117,7 +3118,9 @@ void tst_QStateMachine::twoAnimatedTransitions()
QState *s2 = new QState(&machine);
s2->assignProperty(object, "foo", 5.0);
QPropertyAnimation *fooAnimation = new QPropertyAnimation(object, "foo", s2);
- s1->addTransition(new EventTransition(QEvent::User, s2))->addAnimation(fooAnimation);
+ EventTransition *trans = new EventTransition(QEvent::User, s2);
+ s1->addTransition(trans);
+ trans->addAnimation(fooAnimation);
QState *s3 = new QState(&machine);
QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit()));
@@ -3126,7 +3129,9 @@ void tst_QStateMachine::twoAnimatedTransitions()
QState *s4 = new QState(&machine);
s4->assignProperty(object, "foo", 2.0);
QPropertyAnimation *fooAnimation2 = new QPropertyAnimation(object, "foo", s4);
- s3->addTransition(new EventTransition(QEvent::User, s4))->addAnimation(fooAnimation2);
+ trans = new EventTransition(QEvent::User, s4);
+ s3->addTransition(trans);
+ trans->addAnimation(fooAnimation2);
QState *s5 = new QState(&machine);
QObject::connect(s5, SIGNAL(entered()), QApplication::instance(), SLOT(quit()));
@@ -3161,7 +3166,9 @@ void tst_QStateMachine::playAnimationTwice()
QState *s2 = new QState(&machine);
s2->assignProperty(object, "foo", 5.0);
QPropertyAnimation *fooAnimation = new QPropertyAnimation(object, "foo", s2);
- s1->addTransition(new EventTransition(QEvent::User, s2))->addAnimation(fooAnimation);
+ EventTransition *trans = new EventTransition(QEvent::User, s2);
+ s1->addTransition(trans);
+ trans->addAnimation(fooAnimation);
QState *s3 = new QState(&machine);
QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit()));
@@ -3169,7 +3176,9 @@ void tst_QStateMachine::playAnimationTwice()
QState *s4 = new QState(&machine);
s4->assignProperty(object, "foo", 2.0);
- s3->addTransition(new EventTransition(QEvent::User, s4))->addAnimation(fooAnimation);
+ trans = new EventTransition(QEvent::User, s4);
+ s3->addTransition(trans);
+ trans->addAnimation(fooAnimation);
QState *s5 = new QState(&machine);
QObject::connect(s5, SIGNAL(entered()), QApplication::instance(), SLOT(quit()));
@@ -3213,14 +3222,16 @@ void tst_QStateMachine::nestedTargetStateForAnimation()
QState *s2Child2 = new QState(s2);
s2Child2->assignProperty(object, "bar", 11.0);
- QAbstractTransition *at = s2Child->addTransition(new EventTransition(QEvent::User, s2Child2));
+ QAbstractTransition *at = new EventTransition(QEvent::User, s2Child2);
+ s2Child->addTransition(at);
QPropertyAnimation *animation = new QPropertyAnimation(object, "bar", s2);
animation->setDuration(2000);
connect(animation, SIGNAL(finished()), &counter, SLOT(slot()));
at->addAnimation(animation);
- at = s1->addTransition(new EventTransition(QEvent::User, s2));
+ at = new EventTransition(QEvent::User, s2);
+ s1->addTransition(at);
animation = new QPropertyAnimation(object, "foo", s2);
connect(animation, SIGNAL(finished()), &counter, SLOT(slot()));
@@ -3231,7 +3242,7 @@ void tst_QStateMachine::nestedTargetStateForAnimation()
at->addAnimation(animation);
QState *s3 = new QState(&machine);
- s2->addTransition(s2Child, SIGNAL(polished()), s3);
+ s2->addTransition(s2Child, SIGNAL(propertiesAssigned()), s3);
QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit()));
@@ -3248,7 +3259,7 @@ void tst_QStateMachine::nestedTargetStateForAnimation()
QCOMPARE(counter.counter, 2);
}
-void tst_QStateMachine::polishedSignalTransitionsReuseAnimationGroup()
+void tst_QStateMachine::propertiesAssignedSignalTransitionsReuseAnimationGroup()
{
QStateMachine machine;
QObject *object = new QObject(&machine);
@@ -3265,9 +3276,9 @@ void tst_QStateMachine::polishedSignalTransitionsReuseAnimationGroup()
QParallelAnimationGroup animationGroup;
animationGroup.addAnimation(new QPropertyAnimation(object, "foo"));
QSignalSpy animationFinishedSpy(&animationGroup, SIGNAL(finished()));
- s1->addTransition(s1, SIGNAL(polished()), s2)->addAnimation(&animationGroup);
- s2->addTransition(s2, SIGNAL(polished()), s3)->addAnimation(&animationGroup);
- s3->addTransition(s3, SIGNAL(polished()), s4);
+ s1->addTransition(s1, SIGNAL(propertiesAssigned()), s2)->addAnimation(&animationGroup);
+ s2->addTransition(s2, SIGNAL(propertiesAssigned()), s3)->addAnimation(&animationGroup);
+ s3->addTransition(s3, SIGNAL(propertiesAssigned()), s4);
machine.setInitialState(s1);
QSignalSpy machineFinishedSpy(&machine, SIGNAL(finished()));
@@ -3299,7 +3310,8 @@ void tst_QStateMachine::animatedGlobalRestoreProperty()
QState *s4 = new QState(&machine);
QObject::connect(s4, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit()));
- QAbstractTransition *at = s1->addTransition(new EventTransition(QEvent::User, s2));
+ QAbstractTransition *at = new EventTransition(QEvent::User, s2);
+ s1->addTransition(at);
QPropertyAnimation *pa = new QPropertyAnimation(object, "foo", s2);
connect(pa, SIGNAL(finished()), &counter, SLOT(slot()));
at->addAnimation(pa);
@@ -3341,7 +3353,9 @@ void tst_QStateMachine::specificTargetValueOfAnimation()
QPropertyAnimation *anim = new QPropertyAnimation(object, "foo");
anim->setEndValue(10.0);
- s1->addTransition(new EventTransition(QEvent::User, s2))->addAnimation(anim);
+ EventTransition *trans = new EventTransition(QEvent::User, s2);
+ s1->addTransition(trans);
+ trans->addAnimation(anim);
QState *s3 = new QState(&machine);
QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit()));
@@ -3495,7 +3509,8 @@ void tst_QStateMachine::overrideDefaultAnimationWithSpecific()
QState *s3 = new QState(&machine);
QObject::connect(s3, SIGNAL(entered()), QCoreApplication::instance(), SLOT(quit()));
- QAbstractTransition *at = s1->addTransition(new EventTransition(QEvent::User, s2));
+ QAbstractTransition *at = new EventTransition(QEvent::User, s2);
+ s1->addTransition(at);
QPropertyAnimation *defaultAnimation = new QPropertyAnimation(object, "foo");
connect(defaultAnimation, SIGNAL(stateChanged(QAbstractAnimation::State, QAbstractAnimation::State)), &counter, SLOT(slot()));
@@ -4262,5 +4277,35 @@ void tst_QStateMachine::postEventFromOtherThread()
QTRY_COMPARE(finishedSpy.count(), 1);
}
+void tst_QStateMachine::eventFilterForApplication()
+{
+ QStateMachine machine;
+
+ QState *s1 = new QState(&machine);
+ {
+ machine.setInitialState(s1);
+ }
+
+ QState *s2 = new QState(&machine);
+
+ QEventTransition *transition = new QEventTransition(QCoreApplication::instance(),
+ QEvent::ApplicationActivate);
+ transition->setTargetState(s2);
+ s1->addTransition(transition);
+
+ machine.start();
+ QCoreApplication::processEvents();
+
+ QCOMPARE(machine.configuration().size(), 1);
+ QVERIFY(machine.configuration().contains(s1));
+
+ QCoreApplication::postEvent(QCoreApplication::instance(),
+ new QEvent(QEvent::ApplicationActivate));
+ QCoreApplication::processEvents();
+
+ QCOMPARE(machine.configuration().size(), 1);
+ QVERIFY(machine.configuration().contains(s2));
+}
+
QTEST_MAIN(tst_QStateMachine)
#include "tst_qstatemachine.moc"
diff --git a/tests/auto/qstringbuilder1/stringbuilder.cpp b/tests/auto/qstringbuilder1/stringbuilder.cpp
index f35d4d2..9dc467e 100644
--- a/tests/auto/qstringbuilder1/stringbuilder.cpp
+++ b/tests/auto/qstringbuilder1/stringbuilder.cpp
@@ -41,8 +41,15 @@
#define LITERAL "some literal"
+// "some literal", but replacing all vocals by their umlauted UTF-8 string :)
+#define UTF8_LITERAL "s\xc3\xb6m\xc3\xab l\xc3\xaft\xc3\xabr\xc3\xa4l"
+
void runScenario()
{
+ // set codec for C strings to 0, enforcing Latin1
+ QTextCodec::setCodecForCStrings(0);
+ QVERIFY(!QTextCodec::codecForCStrings());
+
QLatin1Literal l1literal(LITERAL);
QLatin1String l1string(LITERAL);
QString string(l1string);
@@ -75,5 +82,24 @@ void runScenario()
QCOMPARE(r, r2);
r = string P ba;
QCOMPARE(r, r2);
+
+ // now test with codec for C strings set
+ QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
+ QVERIFY(QTextCodec::codecForCStrings());
+ QCOMPARE(QTextCodec::codecForCStrings()->name(), QByteArray("UTF-8"));
+
+ string = QString::fromUtf8(UTF8_LITERAL);
+ r2 = QString::fromUtf8(UTF8_LITERAL UTF8_LITERAL);
+ ba = UTF8_LITERAL;
+
+ r = string P UTF8_LITERAL;
+ QCOMPARE(r.size(), r2.size());
+ QCOMPARE(r, r2);
+ r = UTF8_LITERAL P string;
+ QCOMPARE(r, r2);
+ r = ba P string;
+ QCOMPARE(r, r2);
+ r = string P ba;
+ QCOMPARE(r, r2);
#endif
}
diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp
index 227ca6f..f571e8a 100644
--- a/tests/auto/qtableview/tst_qtableview.cpp
+++ b/tests/auto/qtableview/tst_qtableview.cpp
@@ -197,6 +197,7 @@ private slots:
void task259308_scrollVerticalHeaderSwappedSections();
void task191545_dragSelectRows();
void taskQTBUG_5062_spansInconsistency();
+ void taskQTBUG_4516_clickOnRichTextLabel();
void mouseWheel_data();
void mouseWheel();
@@ -3885,6 +3886,24 @@ void tst_QTableView::taskQTBUG_5062_spansInconsistency()
VERIFY_SPANS_CONSISTENCY(&view);
}
+void tst_QTableView::taskQTBUG_4516_clickOnRichTextLabel()
+{
+ QTableView view;
+ QStandardItemModel model(5,5);
+ view.setModel(&model);
+ QLabel label("rich text");
+ label.setTextFormat(Qt::RichText);
+ view.setIndexWidget(model.index(1,1), &label);
+ view.setCurrentIndex(model.index(0,0));
+ QCOMPARE(view.currentIndex(), model.index(0,0));
+
+ QTest::mouseClick(&label, Qt::LeftButton);
+ QCOMPARE(view.currentIndex(), model.index(1,1));
+
+
+}
+
+
void tst_QTableView::changeHeaderData()
{
QTableView view;
diff --git a/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp b/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
index 8c4d8fd..4dc732c 100644
--- a/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
+++ b/tests/auto/qtextdocumentfragment/tst_qtextdocumentfragment.cpp
@@ -2197,6 +2197,16 @@ void tst_QTextDocumentFragment::html_quotedFontFamily()
setHtml("<div style='font-family: \"Foo Bar\";'>Test</div>");
QCOMPARE(doc->begin().begin().fragment().charFormat().fontFamily(), QString("Foo Bar"));
+
+ setHtml("<div style='font-family: \"Foo Bar\";'>Test</div>");
+ QCOMPARE(doc->begin().begin().fragment().charFormat().fontFamily(), QString("Foo Bar"));
+
+ setHtml("<div style='font-family: Foo\n Bar;'>Test</div>");
+ QCOMPARE(doc->begin().begin().fragment().charFormat().fontFamily(), QString("Foo Bar"));
+
+ setHtml("<div style='font-family: Foo\n Bar, serif, \"bar foo\";'>Test</div>");
+ QCOMPARE(doc->begin().begin().fragment().charFormat().fontFamily(), QString("Foo Bar,serif,bar foo"));
+
}
void tst_QTextDocumentFragment::defaultFont()
diff --git a/tests/auto/qtextlayout/tst_qtextlayout.cpp b/tests/auto/qtextlayout/tst_qtextlayout.cpp
index fe87dfb..7c3f4f2 100644
--- a/tests/auto/qtextlayout/tst_qtextlayout.cpp
+++ b/tests/auto/qtextlayout/tst_qtextlayout.cpp
@@ -118,6 +118,7 @@ private slots:
void smallTextLengthWordWrap();
void smallTextLengthWrapAtWordBoundaryOrAnywhere();
void testLineBreakingAllSpaces();
+ void lineWidthFromBOM();
private:
@@ -1306,6 +1307,18 @@ void tst_QTextLayout::columnWrapWithTabs()
}
+void tst_QTextLayout::lineWidthFromBOM()
+{
+ const QString string(QChar(0xfeff)); // BYTE ORDER MARK
+ QTextLayout layout(string);
+ layout.beginLayout();
+ QTextLine line = layout.createLine();
+ line.setLineWidth(INT_MAX / 256);
+ layout.endLayout();
+
+ // Don't spin into an infinite loop
+ }
+
QTEST_MAIN(tst_QTextLayout)
#include "tst_qtextlayout.moc"
diff --git a/tests/auto/qtextscriptengine/generate/generate.pro b/tests/auto/qtextscriptengine/generate/generate.pro
index 355633d..354e0e5 100644
--- a/tests/auto/qtextscriptengine/generate/generate.pro
+++ b/tests/auto/qtextscriptengine/generate/generate.pro
@@ -5,6 +5,7 @@
TEMPLATE = app
CONFIG -= moc
INCLUDEPATH += . /usr/include/freetype2
+INCLUDEPATH += $$QT_SOURCE_TREE/src/3rdparty/harfbuzz/src
# Input
SOURCES += main.cpp
diff --git a/tests/auto/qtextscriptengine/generate/main.cpp b/tests/auto/qtextscriptengine/generate/main.cpp
index 853c726..15fbc47 100644
--- a/tests/auto/qtextscriptengine/generate/main.cpp
+++ b/tests/auto/qtextscriptengine/generate/main.cpp
@@ -40,7 +40,7 @@
****************************************************************************/
-#include <QtTest/QtTest>
+#include <QApplication>
#include <QTextEdit>
#include <QLineEdit>
#include <QVBoxLayout>
@@ -85,7 +85,7 @@ void MyEdit::setText(const QString &str)
result += "0x" + QString::number(str.at(i).unicode(), 16) + ", ";
result += "0x0 },\n { ";
for (int i = 0; i < e->layoutData->items[0].num_glyphs; ++i)
- result += "0x" + QString::number(e->layoutData->glyphPtr[i].glyph, 16) + ", ";
+ result += "0x" + QString::number(e->layoutData->glyphLayout.glyphs[i], 16) + ", ";
result += "0x0 } }";
setPlainText(result);
diff --git a/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp b/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
index 226348a..78e0ce6 100644
--- a/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
+++ b/tests/auto/qtextscriptengine/tst_qtextscriptengine.cpp
@@ -98,7 +98,7 @@ private slots:
void telugu();
void kannada();
void malayalam();
- // sinhala missing
+ void sinhala();
void khmer();
void linearB();
@@ -379,7 +379,11 @@ void tst_QTextScriptEngine::bengali()
{ 0x151, 0x276, 0x172, 0x143, 0x0 } },
{ { 0x9b0, 0x9cd, 0x995, 0x9be, 0x983, 0x0 },
{ 0x151, 0x276, 0x172, 0x144, 0x0 } },
-
+ // test decomposed two parts matras
+ { { 0x995, 0x9c7, 0x9be, 0x0 },
+ { 0x179, 0x151, 0x172, 0x0 } },
+ { { 0x995, 0x9c7, 0x9d7, 0x0 },
+ { 0x179, 0x151, 0x17e, 0x0 } },
{ {0}, {0} }
};
@@ -502,16 +506,16 @@ void tst_QTextScriptEngine::bengali()
if (QFontDatabase().families(QFontDatabase::Bengali).contains("Likhan")) {
QFont f("Likhan");
const ShapeTable shape_table [] = {
- { { 0x09a8, 0x09cd, 0x09af, 0x0 },
- { 0x0192, 0x0 } },
+ { { 0x9a8, 0x9cd, 0x9af, 0x0 },
+ { 0x1ca, 0x0 } },
{ { 0x09b8, 0x09cd, 0x09af, 0x0 },
- { 0x01d6, 0x0 } },
+ { 0x020e, 0x0 } },
{ { 0x09b6, 0x09cd, 0x09af, 0x0 },
- { 0x01bc, 0x0 } },
+ { 0x01f4, 0x0 } },
{ { 0x09b7, 0x09cd, 0x09af, 0x0 },
- { 0x01c6, 0x0 } },
+ { 0x01fe, 0x0 } },
{ { 0x09b0, 0x09cd, 0x09a8, 0x09cd, 0x200d, 0x0 },
- { 0xd3, 0x12f, 0x0 } },
+ { 0x10b, 0x167, 0x0 } },
{ {0}, {0} }
};
@@ -647,6 +651,12 @@ void tst_QTextScriptEngine::tamil()
{ 0x0025, 0x0 } },
{ { 0x0b83, 0x0b95, 0x0 },
{ 0x0025, 0x0031, 0x0 } },
+ { { 0xb95, 0xbc6, 0xbbe, 0x0 },
+ { 0xa, 0x31, 0x7, 0x0 } },
+ { { 0xb95, 0xbc7, 0xbbe, 0x0 },
+ { 0xb, 0x31, 0x7, 0x0 } },
+ { { 0xb95, 0xbc6, 0xbd7, 0x0 },
+ { 0xa, 0x31, 0x40, 0x0 } },
{ {0}, {0} }
};
@@ -694,7 +704,9 @@ void tst_QTextScriptEngine::telugu()
{ 0xe6, 0xb3, 0x83, 0x0 } },
{ { 0xc15, 0xc4d, 0xc30, 0xc48, 0x0 },
{ 0xe6, 0xb3, 0x9f, 0x0 } },
- { {0}, {0} }
+ { { 0xc15, 0xc46, 0xc56, 0x0 },
+ { 0xe6, 0xb3, 0x0 } },
+ { {0}, {0} }
};
@@ -762,7 +774,16 @@ void tst_QTextScriptEngine::kannada()
{ 0x00b0, 0x006c, 0x0 } },
{ { 0x0cb7, 0x0ccd, 0x0 },
{ 0x0163, 0x0 } },
-
+ { { 0xc95, 0xcbf, 0xcd5, 0x0 },
+ { 0x114, 0x73, 0x0 } },
+ { { 0xc95, 0xcc6, 0xcd5, 0x0 },
+ { 0x90, 0x6c, 0x73, 0x0 } },
+ { { 0xc95, 0xcc6, 0xcd6, 0x0 },
+ { 0x90, 0x6c, 0x74, 0x0 } },
+ { { 0xc95, 0xcc6, 0xcc2, 0x0 },
+ { 0x90, 0x6c, 0x69, 0x0 } },
+ { { 0xc95, 0xcca, 0xcd5, 0x0 },
+ { 0x90, 0x6c, 0x69, 0x73, 0x0 } },
{ {0}, {0} }
};
@@ -816,8 +837,14 @@ void tst_QTextScriptEngine::malayalam()
{ 0x009e, 0x0 } },
{ { 0x0d30, 0x0d4d, 0x200d, 0x0 },
{ 0x009e, 0x0 } },
-
-
+ { { 0xd15, 0xd46, 0xd3e, 0x0 },
+ { 0x5e, 0x34, 0x58, 0x0 } },
+ { { 0xd15, 0xd47, 0xd3e, 0x0 },
+ { 0x5f, 0x34, 0x58, 0x0 } },
+ { { 0xd15, 0xd46, 0xd57, 0x0 },
+ { 0x5e, 0x34, 0x65, 0x0 } },
+ { { 0xd15, 0xd57, 0x0 },
+ { 0x34, 0x65, 0x0 } },
{ {0}, {0} }
};
@@ -836,6 +863,42 @@ void tst_QTextScriptEngine::malayalam()
#endif
}
+void tst_QTextScriptEngine::sinhala()
+{
+#if defined(Q_WS_X11)
+ {
+ if (QFontDatabase().families(QFontDatabase::Sinhala).contains("Malithi Web")) {
+ QFont f("Malithi Web");
+ const ShapeTable shape_table [] = {
+ { { 0xd9a, 0xdd9, 0xdcf, 0x0 },
+ { 0x4a, 0x61, 0x42, 0x0 } },
+ { { 0xd9a, 0xdd9, 0xddf, 0x0 },
+ { 0x4a, 0x61, 0x50, 0x0 } },
+ { { 0xd9a, 0xdd9, 0xdca, 0x0 },
+ { 0x4a, 0x62, 0x0 } },
+ { { 0xd9a, 0xddc, 0xdca, 0x0 },
+ { 0x4a, 0x61, 0x42, 0x41, 0x0 } },
+ { { 0xd9a, 0xdda, 0x0 },
+ { 0x4a, 0x62, 0x0 } },
+ { { 0xd9a, 0xddd, 0x0 },
+ { 0x4a, 0x61, 0x42, 0x41, 0x0 } },
+ { {0}, {0} }
+ };
+
+
+ const ShapeTable *s = shape_table;
+ while (s->unicode[0]) {
+ QVERIFY( shaping(f, s) );
+ ++s;
+ }
+ } else {
+ QSKIP("couln't find Malithi Web", SkipAll);
+ }
+ }
+#else
+ QSKIP("X11 specific test", SkipAll);
+#endif
+}
void tst_QTextScriptEngine::khmer()
diff --git a/tests/auto/qtreeview/tst_qtreeview.cpp b/tests/auto/qtreeview/tst_qtreeview.cpp
index 90e6c5c..58f059b 100644
--- a/tests/auto/qtreeview/tst_qtreeview.cpp
+++ b/tests/auto/qtreeview/tst_qtreeview.cpp
@@ -3669,11 +3669,11 @@ void tst_QTreeView::doubleClickedWithSpans()
//end the previous edition
QTest::mouseClick(view.viewport(), Qt::LeftButton, 0, p);
- QTest::qWait(100);
+ QTest::qWait(150);
QTest::mousePress(view.viewport(), Qt::LeftButton, 0, p);
QTest::mouseDClick(view.viewport(), Qt::LeftButton, 0, p);
QTest::mouseRelease(view.viewport(), Qt::LeftButton, 0, p);
- QCOMPARE(spy.count(), 2);
+ QTRY_COMPARE(spy.count(), 2);
}
QTEST_MAIN(tst_QTreeView)
diff --git a/tests/auto/qvariant/tst_qvariant.cpp b/tests/auto/qvariant/tst_qvariant.cpp
index e2a606f..3d68a73 100644
--- a/tests/auto/qvariant/tst_qvariant.cpp
+++ b/tests/auto/qvariant/tst_qvariant.cpp
@@ -1432,8 +1432,10 @@ void tst_QVariant::matrix4x4()
QVariant variant;
QMatrix4x4 matrix = qVariantValue<QMatrix4x4>(variant);
QVERIFY(matrix.isIdentity());
- qVariantSetValue(variant, QMatrix4x4().scale(2.0));
- QCOMPARE(QMatrix4x4().scale(2.0), qVariantValue<QMatrix4x4>(variant));
+ QMatrix4x4 m;
+ m.scale(2.0f);
+ qVariantSetValue(variant, m);
+ QCOMPARE(m, qVariantValue<QMatrix4x4>(variant));
void *mmatrix = QMetaType::construct(QVariant::Matrix4x4, 0);
QVERIFY(mmatrix);
diff --git a/tests/auto/qvideoframe/tst_qvideoframe.cpp b/tests/auto/qvideoframe/tst_qvideoframe.cpp
index b231069..432ef5c 100644
--- a/tests/auto/qvideoframe/tst_qvideoframe.cpp
+++ b/tests/auto/qvideoframe/tst_qvideoframe.cpp
@@ -524,7 +524,7 @@ void tst_QVideoFrame::assign()
void tst_QVideoFrame::map_data()
{
QTest::addColumn<QSize>("size");
- QTest::addColumn<int>("numBytes");
+ QTest::addColumn<int>("mappedBytes");
QTest::addColumn<int>("bytesPerLine");
QTest::addColumn<QVideoFrame::PixelFormat>("pixelFormat");
QTest::addColumn<QAbstractVideoBuffer::MapMode>("mode");
@@ -554,29 +554,29 @@ void tst_QVideoFrame::map_data()
void tst_QVideoFrame::map()
{
QFETCH(QSize, size);
- QFETCH(int, numBytes);
+ QFETCH(int, mappedBytes);
QFETCH(int, bytesPerLine);
QFETCH(QVideoFrame::PixelFormat, pixelFormat);
QFETCH(QAbstractVideoBuffer::MapMode, mode);
- QVideoFrame frame(numBytes, size, bytesPerLine, pixelFormat);
+ QVideoFrame frame(mappedBytes, size, bytesPerLine, pixelFormat);
QVERIFY(!frame.bits());
- QCOMPARE(frame.numBytes(), 0);
+ QCOMPARE(frame.mappedBytes(), 0);
QCOMPARE(frame.bytesPerLine(), 0);
QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped);
QVERIFY(frame.map(mode));
QVERIFY(frame.bits());
- QCOMPARE(frame.numBytes(), numBytes);
+ QCOMPARE(frame.mappedBytes(), mappedBytes);
QCOMPARE(frame.bytesPerLine(), bytesPerLine);
QCOMPARE(frame.mapMode(), mode);
frame.unmap();
QVERIFY(!frame.bits());
- QCOMPARE(frame.numBytes(), 0);
+ QCOMPARE(frame.mappedBytes(), 0);
QCOMPARE(frame.bytesPerLine(), 0);
QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped);
}
@@ -614,21 +614,21 @@ void tst_QVideoFrame::mapImage()
QVideoFrame frame(image);
QVERIFY(!frame.bits());
- QCOMPARE(frame.numBytes(), 0);
+ QCOMPARE(frame.mappedBytes(), 0);
QCOMPARE(frame.bytesPerLine(), 0);
QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped);
QVERIFY(frame.map(mode));
QVERIFY(frame.bits());
- QCOMPARE(frame.numBytes(), image.numBytes());
+ QCOMPARE(frame.mappedBytes(), image.numBytes());
QCOMPARE(frame.bytesPerLine(), image.bytesPerLine());
QCOMPARE(frame.mapMode(), mode);
frame.unmap();
QVERIFY(!frame.bits());
- QCOMPARE(frame.numBytes(), 0);
+ QCOMPARE(frame.mappedBytes(), 0);
QCOMPARE(frame.bytesPerLine(), 0);
QCOMPARE(frame.mapMode(), QAbstractVideoBuffer::NotMapped);
}
diff --git a/tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp b/tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp
index 9623e80..a47cb48 100644
--- a/tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp
+++ b/tests/auto/qvideosurfaceformat/tst_qvideosurfaceformat.cpp
@@ -68,8 +68,8 @@ private slots:
void scanLineDirection();
void frameRate_data();
void frameRate();
- void yuvColorSpace_data();
- void yuvColorSpace();
+ void yCbCrColorSpace_data();
+ void yCbCrColorSpace();
void pixelAspectRatio_data();
void pixelAspectRatio();
void sizeHint_data();
@@ -81,9 +81,6 @@ private slots:
void assign();
};
-Q_DECLARE_METATYPE(QVideoSurfaceFormat::ViewportMode)
-
-
tst_QVideoSurfaceFormat::tst_QVideoSurfaceFormat()
{
}
@@ -122,7 +119,7 @@ void tst_QVideoSurfaceFormat::constructNull()
QCOMPARE(format.scanLineDirection(), QVideoSurfaceFormat::TopToBottom);
QCOMPARE(format.frameRate(), 0.0);
QCOMPARE(format.pixelAspectRatio(), QSize(1, 1));
- QCOMPARE(format.yuvColorSpace(), QVideoSurfaceFormat::YCbCr_Undefined);
+ QCOMPARE(format.yCbCrColorSpace(), QVideoSurfaceFormat::YCbCr_Undefined);
}
void tst_QVideoSurfaceFormat::construct_data()
@@ -161,7 +158,7 @@ void tst_QVideoSurfaceFormat::construct()
QCOMPARE(format.scanLineDirection(), QVideoSurfaceFormat::TopToBottom);
QCOMPARE(format.frameRate(), 0.0);
QCOMPARE(format.pixelAspectRatio(), QSize(1, 1));
- QCOMPARE(format.yuvColorSpace(), QVideoSurfaceFormat::YCbCr_Undefined);
+ QCOMPARE(format.yCbCrColorSpace(), QVideoSurfaceFormat::YCbCr_Undefined);
}
void tst_QVideoSurfaceFormat::frameSize_data()
@@ -202,45 +199,23 @@ void tst_QVideoSurfaceFormat::viewport_data()
QTest::addColumn<QSize>("initialSize");
QTest::addColumn<QRect>("viewport");
QTest::addColumn<QSize>("newSize");
- QTest::addColumn<QVideoSurfaceFormat::ViewportMode>("viewportMode");
QTest::addColumn<QRect>("expectedViewport");
QTest::newRow("grow reset")
<< QSize(64, 64)
<< QRect(8, 8, 48, 48)
<< QSize(1024, 1024)
- << QVideoSurfaceFormat::ResetViewport
<< QRect(0, 0, 1024, 1024);
- QTest::newRow("grow keep")
- << QSize(64, 64)
- << QRect(8, 8, 48, 48)
- << QSize(1024, 1024)
- << QVideoSurfaceFormat::KeepViewport
- << QRect(8, 8, 48, 48);
QTest::newRow("shrink reset")
<< QSize(1024, 1024)
<< QRect(8, 8, 1008, 1008)
<< QSize(64, 64)
- << QVideoSurfaceFormat::ResetViewport
<< QRect(0, 0, 64, 64);
- QTest::newRow("shrink keep")
- << QSize(1024, 1024)
- << QRect(8, 8, 1008, 1008)
- << QSize(64, 64)
- << QVideoSurfaceFormat::KeepViewport
- << QRect(8, 8, 56, 56);
QTest::newRow("unchanged reset")
<< QSize(512, 512)
<< QRect(8, 8, 496, 496)
<< QSize(512, 512)
- << QVideoSurfaceFormat::ResetViewport
<< QRect(0, 0, 512, 512);
- QTest::newRow("unchanged keep")
- << QSize(512, 512)
- << QRect(8, 8, 496, 496)
- << QSize(512, 512)
- << QVideoSurfaceFormat::KeepViewport
- << QRect(8, 8, 496, 496);
}
void tst_QVideoSurfaceFormat::viewport()
@@ -248,7 +223,6 @@ void tst_QVideoSurfaceFormat::viewport()
QFETCH(QSize, initialSize);
QFETCH(QRect, viewport);
QFETCH(QSize, newSize);
- QFETCH(QVideoSurfaceFormat::ViewportMode, viewportMode);
QFETCH(QRect, expectedViewport);
{
@@ -261,7 +235,7 @@ void tst_QVideoSurfaceFormat::viewport()
QCOMPARE(format.viewport(), viewport);
QCOMPARE(format.property("viewport").toRect(), viewport);
- format.setFrameSize(newSize, viewportMode);
+ format.setFrameSize(newSize);
QCOMPARE(format.viewport(), expectedViewport);
QCOMPARE(format.property("viewport").toRect(), expectedViewport);
@@ -350,9 +324,9 @@ void tst_QVideoSurfaceFormat::frameRate()
}
}
-void tst_QVideoSurfaceFormat::yuvColorSpace_data()
+void tst_QVideoSurfaceFormat::yCbCrColorSpace_data()
{
- QTest::addColumn<QVideoSurfaceFormat::YuvColorSpace>("colorspace");
+ QTest::addColumn<QVideoSurfaceFormat::YCbCrColorSpace>("colorspace");
QTest::newRow("undefined")
<< QVideoSurfaceFormat::YCbCr_Undefined;
@@ -364,24 +338,24 @@ void tst_QVideoSurfaceFormat::yuvColorSpace_data()
<< QVideoSurfaceFormat::YCbCr_JPEG;
}
-void tst_QVideoSurfaceFormat::yuvColorSpace()
+void tst_QVideoSurfaceFormat::yCbCrColorSpace()
{
- QFETCH(QVideoSurfaceFormat::YuvColorSpace, colorspace);
+ QFETCH(QVideoSurfaceFormat::YCbCrColorSpace, colorspace);
{
QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
- format.setYuvColorSpace(colorspace);
+ format.setYCbCrColorSpace(colorspace);
- QCOMPARE(format.yuvColorSpace(), colorspace);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat::YuvColorSpace>(format.property("yuvColorSpace")),
+ QCOMPARE(format.yCbCrColorSpace(), colorspace);
+ QCOMPARE(qvariant_cast<QVideoSurfaceFormat::YCbCrColorSpace>(format.property("yCbCrColorSpace")),
colorspace);
}
{
QVideoSurfaceFormat format(QSize(64, 64), QVideoFrame::Format_RGB32);
- format.setProperty("yuvColorSpace", qVariantFromValue(colorspace));
+ format.setProperty("yCbCrColorSpace", qVariantFromValue(colorspace));
- QCOMPARE(format.yuvColorSpace(), colorspace);
- QCOMPARE(qvariant_cast<QVideoSurfaceFormat::YuvColorSpace>(format.property("yuvColorSpace")),
+ QCOMPARE(format.yCbCrColorSpace(), colorspace);
+ QCOMPARE(qvariant_cast<QVideoSurfaceFormat::YCbCrColorSpace>(format.property("yCbCrColorSpace")),
colorspace);
}
}
@@ -483,7 +457,7 @@ void tst_QVideoSurfaceFormat::staticPropertyNames()
QVERIFY(propertyNames.contains("scanLineDirection"));
QVERIFY(propertyNames.contains("frameRate"));
QVERIFY(propertyNames.contains("pixelAspectRatio"));
- QVERIFY(propertyNames.contains("yuvColorSpace"));
+ QVERIFY(propertyNames.contains("yCbCrColorSpace"));
QVERIFY(propertyNames.contains("sizeHint"));
QCOMPARE(propertyNames.count(), 10);
}
@@ -566,19 +540,26 @@ void tst_QVideoSurfaceFormat::compare()
QCOMPARE(format1 == format4, false);
QCOMPARE(format1 != format4, true);
- format2.setFrameSize(1024, 768, QVideoSurfaceFormat::ResetViewport);
+ format2.setFrameSize(1024, 768);
// Not equal, frame size differs.
QCOMPARE(format1 == format2, false);
QCOMPARE(format1 != format2, true);
- format1.setFrameSize(1024, 768, QVideoSurfaceFormat::KeepViewport);
+ format1.setFrameSize(1024, 768);
+
+ // Equal.
+ QCOMPARE(format1 == format2, true);
+ QCOMPARE(format1 != format2, false);
+
+ format1.setViewport(QRect(0, 0, 800, 600));
+ format2.setViewport(QRect(112, 84, 800, 600));
- // Not equal, viewport differs.
+ // Not equal, viewports differ.
QCOMPARE(format1 == format2, false);
QCOMPARE(format1 != format2, true);
- format1.setViewport(QRect(0, 0, 1024, 768));
+ format1.setViewport(QRect(112, 84, 800, 600));
// Equal.
QCOMPARE(format1 == format2, true);
@@ -620,13 +601,13 @@ void tst_QVideoSurfaceFormat::compare()
QCOMPARE(format1 == format2, true);
QCOMPARE(format1 != format2, false);
- format2.setYuvColorSpace(QVideoSurfaceFormat::YCbCr_xvYCC601);
+ format2.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_xvYCC601);
// Not equal yuv color space differs.
QCOMPARE(format1 == format2, false);
QCOMPARE(format1 != format2, true);
- format1.setYuvColorSpace(QVideoSurfaceFormat::YCbCr_xvYCC601);
+ format1.setYCbCrColorSpace(QVideoSurfaceFormat::YCbCr_xvYCC601);
// Equal.
QCOMPARE(format1 == format2, true);
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index 3d801cc..e027dd1 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -3328,9 +3328,10 @@ void tst_QWidget::widgetAt()
w2->lower();
qApp->processEvents();
QTRY_VERIFY((wr = QApplication::widgetAt(100, 100)));
- QCOMPARE(wr->objectName(), QString("w1"));
-
+ const bool match = (wr->objectName() == QString("w1"));
w2->raise();
+ QVERIFY(match);
+
qApp->processEvents();
QTRY_VERIFY((wr = QApplication::widgetAt(100, 100)));
QCOMPARE(wr->objectName(), QString("w2"));
diff --git a/tests/auto/qwidgetaction/tst_qwidgetaction.cpp b/tests/auto/qwidgetaction/tst_qwidgetaction.cpp
index 50b3337..d25738f 100644
--- a/tests/auto/qwidgetaction/tst_qwidgetaction.cpp
+++ b/tests/auto/qwidgetaction/tst_qwidgetaction.cpp
@@ -395,7 +395,9 @@ void tst_QWidgetAction::releaseWidgetCrash()
QMainWindow *w = new QMainWindow;
QAction *a = new CrashedAction(w);
QMenu *menu = w->menuBar()->addMenu("Test");
+ menu->addAction("foo");
menu->addAction(a);
+ menu->addAction("bar");
delete w;
}
diff --git a/tests/auto/qxmlnodemodelindex/tst_qxmlnodemodelindex.cpp b/tests/auto/qxmlnodemodelindex/tst_qxmlnodemodelindex.cpp
index cb6bd4d..c19deb6 100644
--- a/tests/auto/qxmlnodemodelindex/tst_qxmlnodemodelindex.cpp
+++ b/tests/auto/qxmlnodemodelindex/tst_qxmlnodemodelindex.cpp
@@ -178,7 +178,7 @@ void tst_QXmlNodeModelIndex::model() const
/* Check default value. */
{
const QXmlNodeModelIndex index;
- QCOMPARE(index.model(), static_cast<void *>(0));
+ QCOMPARE(index.model(), static_cast<const QAbstractXmlNodeModel *>(0));
}
}
diff --git a/tests/auto/qxmlquery/tst_qxmlquery.cpp b/tests/auto/qxmlquery/tst_qxmlquery.cpp
index 8a9d4ef..49f2b08 100644
--- a/tests/auto/qxmlquery/tst_qxmlquery.cpp
+++ b/tests/auto/qxmlquery/tst_qxmlquery.cpp
@@ -345,8 +345,8 @@ void tst_QXmlQuery::copyConstructor() const
query1.setInitialTemplateName(name);
const QXmlQuery query2(query1);
- QCOMPARE(query2.messageHandler(), &silencer);
- QCOMPARE(query2.uriResolver(), &resolver);
+ QCOMPARE(query2.messageHandler(), static_cast<QAbstractMessageHandler *>(&silencer));
+ QCOMPARE(query2.uriResolver(), static_cast<const QAbstractUriResolver *>(&resolver));
QCOMPARE(query2.queryLanguage(), QXmlQuery::XSLT20);
QCOMPARE(query2.initialTemplateName(), name);
QCOMPARE(query2.networkAccessManager(), &networkManager);
@@ -522,7 +522,7 @@ void tst_QXmlQuery::assignmentOperator() const
QVERIFY(copy.isValid());
QCOMPARE(copy.uriResolver(), static_cast<const QAbstractUriResolver *>(&returnURI));
- QCOMPARE(copy.messageHandler(), &silencer);
+ QCOMPARE(copy.messageHandler(), static_cast<QAbstractMessageHandler *>(&silencer));
QCOMPARE(testName.localName(copy.namePool()), QString::fromLatin1("somethingToCheck"));
QXmlResultItems result;
@@ -559,7 +559,7 @@ void tst_QXmlQuery::assignmentOperator() const
/* Check that the copy picked up the new things. */
QVERIFY(copy.isValid());
QCOMPARE(copy.uriResolver(), static_cast<const QAbstractUriResolver *>(&secondUriResolver));
- QCOMPARE(copy.messageHandler(), &secondSilencer);
+ QCOMPARE(copy.messageHandler(), static_cast<QAbstractMessageHandler *>(&secondSilencer));
QXmlResultItems resultCopy;
copy.evaluateTo(&resultCopy);
@@ -577,7 +577,7 @@ void tst_QXmlQuery::assignmentOperator() const
/* Check that the original is unchanged. */
QVERIFY(original.isValid());
QCOMPARE(original.uriResolver(), static_cast<const QAbstractUriResolver *>(&returnURI));
- QCOMPARE(original.messageHandler(), &silencer);
+ QCOMPARE(original.messageHandler(), static_cast<QAbstractMessageHandler *>(&silencer));
QXmlResultItems resultOriginal;
original.evaluateTo(&resultOriginal);
@@ -931,7 +931,7 @@ void tst_QXmlQuery::setMessageHandler() const
QXmlQuery query;
MessageSilencer silencer;
query.setMessageHandler(&silencer);
- QCOMPARE(&silencer, query.messageHandler());
+ QCOMPARE(static_cast<QAbstractMessageHandler *>(&silencer), query.messageHandler());
}
void tst_QXmlQuery::evaluateToReceiver()
@@ -1691,7 +1691,7 @@ void tst_QXmlQuery::setUriResolver() const
TestURIResolver resolver;
QXmlQuery query;
query.setUriResolver(&resolver);
- QCOMPARE(query.uriResolver(), &resolver);
+ QCOMPARE(query.uriResolver(), static_cast<const QAbstractUriResolver *>(&resolver));
}
}
diff --git a/tests/auto/qxmlschema/tst_qxmlschema.cpp b/tests/auto/qxmlschema/tst_qxmlschema.cpp
index 79f5587..ec91f88 100644
--- a/tests/auto/qxmlschema/tst_qxmlschema.cpp
+++ b/tests/auto/qxmlschema/tst_qxmlschema.cpp
@@ -357,7 +357,7 @@ void tst_QXmlSchema::messageHandler() const
QXmlSchema schema;
schema.setMessageHandler(&handler);
- QCOMPARE(schema.messageHandler(), &handler);
+ QCOMPARE(schema.messageHandler(), static_cast<QAbstractMessageHandler *>(&handler));
}
}
@@ -394,7 +394,7 @@ void tst_QXmlSchema::uriResolver() const
QXmlSchema schema;
schema.setUriResolver(&resolver);
- QCOMPARE(schema.uriResolver(), &resolver);
+ QCOMPARE(schema.uriResolver(), static_cast<const QAbstractUriResolver *>(&resolver));
}
}
diff --git a/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp b/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp
index 519f864..9fc784b 100644
--- a/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp
+++ b/tests/auto/qxmlschemavalidator/tst_qxmlschemavalidator.cpp
@@ -149,8 +149,8 @@ void tst_QXmlSchemaValidator::propertyInitialization() const
schema.setNetworkAccessManager(&manager);
QXmlSchemaValidator validator(schema);
- QCOMPARE(validator.messageHandler(), &handler);
- QCOMPARE(validator.uriResolver(), &resolver);
+ QCOMPARE(validator.messageHandler(), static_cast<QAbstractMessageHandler *>(&handler));
+ QCOMPARE(validator.uriResolver(), static_cast<const QAbstractUriResolver *>(&resolver));
QCOMPARE(validator.networkAccessManager(), &manager);
}
}
@@ -384,7 +384,7 @@ void tst_QXmlSchemaValidator::messageHandler() const
QXmlSchemaValidator validator(schema);
validator.setMessageHandler(&handler);
- QCOMPARE(validator.messageHandler(), &handler);
+ QCOMPARE(validator.messageHandler(), static_cast<QAbstractMessageHandler *>(&handler));
}
/* Test that we return the message handler that was set, even if the schema changed in between. */
@@ -399,7 +399,7 @@ void tst_QXmlSchemaValidator::messageHandler() const
const QXmlSchema schema2;
validator.setSchema(schema2);
- QCOMPARE(validator.messageHandler(), &handler);
+ QCOMPARE(validator.messageHandler(), static_cast<QAbstractMessageHandler *>(&handler));
}
}
@@ -452,7 +452,7 @@ void tst_QXmlSchemaValidator::uriResolver() const
QXmlSchemaValidator validator(schema);
validator.setUriResolver(&resolver);
- QCOMPARE(validator.uriResolver(), &resolver);
+ QCOMPARE(validator.uriResolver(), static_cast<const QAbstractUriResolver *>(&resolver));
}
/* Test that we return the uri resolver that was set, even if the schema changed in between. */
@@ -467,7 +467,7 @@ void tst_QXmlSchemaValidator::uriResolver() const
const QXmlSchema schema2;
validator.setSchema(schema2);
- QCOMPARE(validator.uriResolver(), &resolver);
+ QCOMPARE(validator.uriResolver(), static_cast<const QAbstractUriResolver *>(&resolver));
}
}
diff --git a/tests/auto/qxmlserializer/tst_qxmlserializer.cpp b/tests/auto/qxmlserializer/tst_qxmlserializer.cpp
index aeca140..51044ff 100644
--- a/tests/auto/qxmlserializer/tst_qxmlserializer.cpp
+++ b/tests/auto/qxmlserializer/tst_qxmlserializer.cpp
@@ -148,7 +148,7 @@ void tst_QXmlSerializer::outputDevice() const
{
const QXmlQuery query;
const QXmlSerializer serializer(query, &file);
- QCOMPARE(serializer.outputDevice(), &file);
+ QCOMPARE(serializer.outputDevice(), static_cast< QIODevice *>(&file));
}
}
@@ -158,7 +158,7 @@ void tst_QXmlSerializer::serializationError() const
QXmlQuery query;
MessageSilencer silencer;
query.setMessageHandler(&silencer);
-
+
query.setQuery(queryString);
QByteArray output;
diff --git a/tests/auto/uiloader/baseline/css_itemview_task258382.ui b/tests/auto/uiloader/baseline/css_itemview_task258382.ui
new file mode 100644
index 0000000..11c56b4
--- /dev/null
+++ b/tests/auto/uiloader/baseline/css_itemview_task258382.ui
@@ -0,0 +1,179 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<ui version="4.0">
+ <class>Form</class>
+ <widget class="QWidget" name="Form">
+ <property name="geometry">
+ <rect>
+ <x>0</x>
+ <y>0</y>
+ <width>437</width>
+ <height>352</height>
+ </rect>
+ </property>
+ <property name="windowTitle">
+ <string>Form</string>
+ </property>
+ <property name="styleSheet">
+ <string notr="true">::item { border: 1px solid black; background-color: purple; }
+::item {margin-left: 20px; }
+
+QAbstractItemView { selection-background-color: red;
+show-decoration- selected: 0;
+ }
+
+::item:selected { background-color: yellow; }</string>
+ </property>
+ <layout class="QGridLayout" name="gridLayout">
+ <item row="0" column="0">
+ <widget class="QTreeWidget" name="treeWidget">
+ <column>
+ <property name="text">
+ <string>1</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>New Column</string>
+ </property>
+ </column>
+ <item>
+ <property name="text">
+ <string>New Item</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>New Item</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>New Item</string>
+ </property>
+ <item>
+ <property name="text">
+ <string>New Subitem</string>
+ </property>
+ <item>
+ <property name="text">
+ <string>New Subitem</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>New Item</string>
+ </property>
+ </item>
+ <item>
+ <property name="text">
+ <string>New Item</string>
+ </property>
+ </item>
+ </item>
+ </item>
+ </widget>
+ </item>
+ <item row="1" column="0">
+ <widget class="QTableWidget" name="tableWidget">
+ <row>
+ <property name="text">
+ <string>New Row</string>
+ </property>
+ </row>
+ <row>
+ <property name="text">
+ <string>New Row</string>
+ </property>
+ </row>
+ <row>
+ <property name="text">
+ <string>New Row</string>
+ </property>
+ </row>
+ <row>
+ <property name="text">
+ <string>New Row</string>
+ </property>
+ </row>
+ <row>
+ <property name="text">
+ <string>New Row</string>
+ </property>
+ </row>
+ <column>
+ <property name="text">
+ <string>New Column</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>New Column</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>New Column</string>
+ </property>
+ </column>
+ <column>
+ <property name="text">
+ <string>New Column</string>
+ </property>
+ </column>
+ <item row="0" column="0">
+ <property name="text">
+ <string>mljkh mh mjl</string>
+ </property>
+ </item>
+ <item row="0" column="1">
+ <property name="text">
+ <string>h jlh mjklh </string>
+ </property>
+ </item>
+ <item row="0" column="2">
+ <property name="text">
+ <string>mjklh mlhj mjlh m</string>
+ </property>
+ </item>
+ <item row="1" column="3">
+ <property name="text">
+ <string>mlhj lmhj </string>
+ </property>
+ </item>
+ <item row="2" column="0">
+ <property name="text">
+ <string>mlkj l</string>
+ </property>
+ </item>
+ <item row="2" column="1">
+ <property name="text">
+ <string>mlkj </string>
+ </property>
+ </item>
+ <item row="2" column="2">
+ <property name="text">
+ <string>mlkj lmkj </string>
+ </property>
+ </item>
+ <item row="2" column="3">
+ <property name="text">
+ <string>mlkhj mlh</string>
+ </property>
+ </item>
+ <item row="3" column="1">
+ <property name="text">
+ <string>mlkj lmkj </string>
+ </property>
+ </item>
+ <item row="4" column="0">
+ <property name="text">
+ <string>mlkj lmkj </string>
+ </property>
+ </item>
+ </widget>
+ </item>
+ </layout>
+ </widget>
+ <resources/>
+ <connections/>
+</ui>
diff --git a/tests/auto/xmlpatterns.pri b/tests/auto/xmlpatterns.pri
index 7cdd67f..8c8ccad 100644
--- a/tests/auto/xmlpatterns.pri
+++ b/tests/auto/xmlpatterns.pri
@@ -15,8 +15,9 @@ QT -= gui
XMLPATTERNS_SDK = QtXmlPatternsSDK
if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
- win32:XMLPATTERNS_SDK = $${XMLPATTERNS_SDK}d
- else: XMLPATTERNS_SDK = $${XMLPATTERNS_SDK}_debug
+ symbian: XMLPATTERNS_SDK = $${XMLPATTERNS_SDK}
+ else:win32: XMLPATTERNS_SDK = $${XMLPATTERNS_SDK}d
+ else: XMLPATTERNS_SDK = $${XMLPATTERNS_SDK}_debug
}
INCLUDEPATH += \
diff --git a/tests/auto/xmlpatterns/tst_xmlpatterns.cpp b/tests/auto/xmlpatterns/tst_xmlpatterns.cpp
index 0dcb070..22f6693 100644
--- a/tests/auto/xmlpatterns/tst_xmlpatterns.cpp
+++ b/tests/auto/xmlpatterns/tst_xmlpatterns.cpp
@@ -48,6 +48,10 @@
#include "../qxmlquery/TestFundament.h"
#include "../network-settings.h"
+#if defined(Q_OS_SYMBIAN)
+#define SRCDIR ""
+#endif
+
/*!
\class tst_XmlPatterns
\internal
@@ -130,6 +134,8 @@ void tst_XmlPatterns::xquerySupport()
#ifdef Q_OS_WINCE
QSKIP("WinCE: This test uses unsupported WinCE functionality", SkipAll);
+#elif defined(Q_OS_SYMBIAN)
+ QSKIP("Symbian: This test uses unsupported Symbian functionality (QProcess with std streams)", SkipAll);
#endif
QFETCH(int, expectedExitCode);
@@ -218,7 +224,7 @@ void tst_XmlPatterns::xquerySupport()
void tst_XmlPatterns::xquerySupport_data() const
{
-#ifdef Q_OS_WINCE
+#if defined(Q_OS_WINCE) || defined(Q_OS_SYMBIAN)
return;
#endif
@@ -849,6 +855,8 @@ void tst_XmlPatterns::xsltSupport_data() const
#ifdef Q_OS_WINCE
QSKIP("WinCE: This test uses unsupported WinCE functionality", SkipAll);
+#elif defined(Q_OS_SYMBIAN)
+ QSKIP("Symbian: This test uses unsupported Symbian functionality (QProcess with std streams)", SkipAll);
#endif
QTest::addColumn<int>("expectedExitCode");
diff --git a/tests/auto/xmlpatterns/xmlpatterns.pro b/tests/auto/xmlpatterns/xmlpatterns.pro
index 01e3b2b..54dd9aa 100644
--- a/tests/auto/xmlpatterns/xmlpatterns.pro
+++ b/tests/auto/xmlpatterns/xmlpatterns.pro
@@ -2,10 +2,10 @@ load(qttest_p4)
SOURCES += tst_xmlpatterns.cpp \
../qxmlquery/TestFundament.cpp
-!wince* {
-DEFINES += SRCDIR=\\\"$$PWD/\\\"
-} else {
+wince* {
DEFINES += SRCDIR=\\\"./\\\"
+} else:!symbian {
+DEFINES += SRCDIR=\\\"$$PWD/\\\"
}
include (../xmlpatterns.pri)
diff --git a/tests/auto/xmlpatternsdiagnosticsts/test/test.pro b/tests/auto/xmlpatternsdiagnosticsts/test/test.pro
index aeff896..acd71e4 100644
--- a/tests/auto/xmlpatternsdiagnosticsts/test/test.pro
+++ b/tests/auto/xmlpatternsdiagnosticsts/test/test.pro
@@ -25,8 +25,8 @@ INCLUDEPATH += $$(QTSRCDIR)/tests/auto/xmlpatternsxqts/lib/ \
../../xmlpatternsxqts/test \
../../xmlpatternsxqts/lib
-wince*: {
- catalog.sources = TestSuite Baseline.xml
+wince*|symbian {
+ catalog.sources = ../TestSuite ../Baseline.xml
catalog.path = .
DEPLOYMENT += catalog
}
diff --git a/tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro b/tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro
index bcc988a..0f55078 100644
--- a/tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro
+++ b/tests/auto/xmlpatternsschemats/xmlpatternsschemats.pro
@@ -11,8 +11,9 @@ SOURCES += ../xmlpatternsxqts/test/tst_suitetest.cpp
PATTERNIST_SDK = QtXmlPatternsSDK
if(!debug_and_release|build_pass):CONFIG(debug, debug|release) {
- win32:PATTERNIST_SDK = $${PATTERNIST_SDK}d
- else: PATTERNIST_SDK = $${PATTERNIST_SDK}_debug
+ symbian: PATTERNIST_SDK = $${PATTERNIST_SDK}
+ else:win32: PATTERNIST_SDK = $${PATTERNIST_SDK}d
+ else: PATTERNIST_SDK = $${PATTERNIST_SDK}_debug
}
LIBS += -l$$PATTERNIST_SDK
diff --git a/tests/auto/xmlpatternsxqts/lib/Global.h b/tests/auto/xmlpatternsxqts/lib/Global.h
index eadb940..a620417 100644
--- a/tests/auto/xmlpatternsxqts/lib/Global.h
+++ b/tests/auto/xmlpatternsxqts/lib/Global.h
@@ -47,7 +47,7 @@
#include "private/qitem_p.h"
#include "private/qnamepool_p.h"
-#ifdef Q_WS_WIN
+#if defined(Q_WS_WIN) || defined(Q_OS_SYMBIAN)
# ifdef Q_PATTERNISTSDK_BUILDING
#define Q_PATTERNISTSDK_EXPORT __declspec(dllexport)
#else
diff --git a/tests/auto/xmlpatternsxqts/lib/lib.pro b/tests/auto/xmlpatternsxqts/lib/lib.pro
index cb9453a..f5b0a06 100644
--- a/tests/auto/xmlpatternsxqts/lib/lib.pro
+++ b/tests/auto/xmlpatternsxqts/lib/lib.pro
@@ -13,6 +13,12 @@ mac {
INSTALLS += target
}
+symbian {
+ TARGET.EPOCALLOWDLLDATA=1
+ TARGET.CAPABILITY = All -Tcb
+ MMP_RULES += EXPORTUNFROZEN
+}
+
# We add gui, because xmlpatterns.pri pull it out.
QT += xmlpatterns xml network testlib gui
diff --git a/tests/auto/xmlpatternsxqts/test/test.pro b/tests/auto/xmlpatternsxqts/test/test.pro
index 603ae65..a69838a 100644
--- a/tests/auto/xmlpatternsxqts/test/test.pro
+++ b/tests/auto/xmlpatternsxqts/test/test.pro
@@ -24,5 +24,3 @@ win32 {
else: DESTDIR = ../release
}
TARGET = tst_xmlpatternsxqts
-
-include (../../xmlpatterns.pri)
diff --git a/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro b/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro
index a3b13da..39267c8 100644
--- a/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro
+++ b/tests/auto/xmlpatternsxqts/xmlpatternsxqts.pro
@@ -1,10 +1,10 @@
TEMPLATE = subdirs
-SUBDIRS = test
contains(QT_CONFIG,xmlpatterns) {
SUBDIRS += lib
!wince*:lib.file = lib/lib.pro
test.depends = lib
}
+SUBDIRS += test
# Needed on the win32-g++ setup and on the test machine arsia.
INCLUDEPATH += $$QT_BUILD_TREE/include/QtXmlPatterns/private \
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); }
}
]
}
diff --git a/tests/benchmarks/qanimation/rectanimation.cpp b/tests/benchmarks/qanimation/rectanimation.cpp
index ab381f4..88eec4d 100644
--- a/tests/benchmarks/qanimation/rectanimation.cpp
+++ b/tests/benchmarks/qanimation/rectanimation.cpp
@@ -92,8 +92,3 @@ void RectAnimation::updateCurrentTime(int currentTime)
if (m_object)
m_object->setRect(m_current);
}
-
-void RectAnimation::updateState(QAbstractAnimation::State state)
-{
- Q_UNUSED(state);
-}
diff --git a/tests/benchmarks/qanimation/rectanimation.h b/tests/benchmarks/qanimation/rectanimation.h
index ea1f804..38a6f48 100644
--- a/tests/benchmarks/qanimation/rectanimation.h
+++ b/tests/benchmarks/qanimation/rectanimation.h
@@ -59,7 +59,6 @@ public:
int duration() const;
virtual void updateCurrentTime(int currentTime);
- virtual void updateState(QAbstractAnimation::State state);
private:
DummyObject *m_object;
diff --git a/tests/benchmarks/qapplication/main.cpp b/tests/benchmarks/qapplication/main.cpp
index a299db2..0ec65a8 100644
--- a/tests/benchmarks/qapplication/main.cpp
+++ b/tests/benchmarks/qapplication/main.cpp
@@ -39,7 +39,6 @@
**
****************************************************************************/
#include <QApplication>
-#include <QProcess>
#include <qtest.h>
@@ -54,34 +53,19 @@ private slots:
/*
Test the performance of the QApplication constructor.
- This test creates a new process and thus includes process creation overhead.
- Callgrind results are meaningless since the child process is not traced.
+ Note: results from the second start on can be misleading,
+ since all global statics are already initialized.
*/
void tst_qapplication::ctor()
{
- QProcess proc;
- const QString program = QCoreApplication::applicationFilePath();
- const QStringList arguments = QStringList() << QLatin1String("--exit-now");
-
+ // simulate reasonable argc, argv
+ int argc = 1;
+ char *argv[] = { "tst_qapplication" };
QBENCHMARK {
- proc.start(program, arguments);
- QVERIFY(proc.waitForStarted());
- QVERIFY(proc.waitForFinished());
- QCOMPARE(proc.exitStatus(), QProcess::NormalExit);
- QCOMPARE(proc.exitCode(), 0);
+ QApplication app(argc, argv);
}
}
-int main(int argc, char** argv)
-{
- QApplication app(argc, argv);
-
- if (argc == 2 && QLatin1String("--exit-now") == QLatin1String(argv[1])) {
- return 0;
- }
-
- tst_qapplication test;
- return QTest::qExec(&test, argc, argv);
-}
+QTEST_APPLESS_MAIN(tst_qapplication)
#include "main.moc"
diff --git a/tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp b/tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp
index 71f45ff..f80b579 100644
--- a/tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp
+++ b/tests/benchmarks/qmatrix4x4/tst_qmatrix4x4.cpp
@@ -220,7 +220,7 @@ void tst_QMatrix4x4::mapVector3D()
QVector3D v(10.5f, -2.0f, 3.0f);
QVector3D result;
- m1.inferSpecialType();
+ m1.optimize();
QBENCHMARK {
result = m1 * v;
@@ -244,7 +244,7 @@ void tst_QMatrix4x4::mapVector2D()
QPointF v(10.5f, -2.0f);
QPointF result;
- m1.inferSpecialType();
+ m1.optimize();
QBENCHMARK {
result = m1 * v;
diff --git a/tests/manual/gestures/graphicsview/gestures.cpp b/tests/manual/gestures/graphicsview/gestures.cpp
index 5416457..4c21712 100644
--- a/tests/manual/gestures/graphicsview/gestures.cpp
+++ b/tests/manual/gestures/graphicsview/gestures.cpp
@@ -45,41 +45,41 @@
Qt::GestureType ThreeFingerSlideGesture::Type = Qt::CustomGesture;
-QGesture *ThreeFingerSlideGestureRecognizer::createGesture(QObject *)
+QGesture *ThreeFingerSlideGestureRecognizer::create(QObject *)
{
return new ThreeFingerSlideGesture;
}
-QGestureRecognizer::Result ThreeFingerSlideGestureRecognizer::filterEvent(QGesture *state, QObject *, QEvent *event)
+QGestureRecognizer::Result ThreeFingerSlideGestureRecognizer::recognize(QGesture *state, QObject *, QEvent *event)
{
ThreeFingerSlideGesture *d = static_cast<ThreeFingerSlideGesture *>(state);
QGestureRecognizer::Result result;
switch (event->type()) {
case QEvent::TouchBegin:
- result = QGestureRecognizer::MaybeGesture;
+ result = QGestureRecognizer::MayBeGesture;
case QEvent::TouchEnd:
if (d->gestureFired)
- result = QGestureRecognizer::GestureFinished;
+ result = QGestureRecognizer::FinishGesture;
else
- result = QGestureRecognizer::NotGesture;
+ result = QGestureRecognizer::CancelGesture;
case QEvent::TouchUpdate:
if (d->state() != Qt::NoGesture) {
QTouchEvent *ev = static_cast<QTouchEvent*>(event);
if (ev->touchPoints().size() == 3) {
d->gestureFired = true;
- result = QGestureRecognizer::GestureTriggered;
+ result = QGestureRecognizer::TriggerGesture;
} else {
- result = QGestureRecognizer::MaybeGesture;
+ result = QGestureRecognizer::MayBeGesture;
for (int i = 0; i < ev->touchPoints().size(); ++i) {
const QTouchEvent::TouchPoint &pt = ev->touchPoints().at(i);
const int distance = (pt.pos().toPoint() - pt.startPos().toPoint()).manhattanLength();
if (distance > 20) {
- result = QGestureRecognizer::NotGesture;
+ result = QGestureRecognizer::CancelGesture;
}
}
}
} else {
- result = QGestureRecognizer::NotGesture;
+ result = QGestureRecognizer::CancelGesture;
}
break;
@@ -89,7 +89,7 @@ QGestureRecognizer::Result ThreeFingerSlideGestureRecognizer::filterEvent(QGestu
if (d->state() != Qt::NoGesture)
result = QGestureRecognizer::Ignore;
else
- result = QGestureRecognizer::NotGesture;
+ result = QGestureRecognizer::CancelGesture;
break;
default:
result = QGestureRecognizer::Ignore;
@@ -105,12 +105,12 @@ void ThreeFingerSlideGestureRecognizer::reset(QGesture *state)
}
-QGesture *RotateGestureRecognizer::createGesture(QObject *)
+QGesture *RotateGestureRecognizer::create(QObject *)
{
return new QGesture;
}
-QGestureRecognizer::Result RotateGestureRecognizer::filterEvent(QGesture *, QObject *, QEvent *event)
+QGestureRecognizer::Result RotateGestureRecognizer::recognize(QGesture *, QObject *, QEvent *event)
{
switch (event->type()) {
case QEvent::TouchBegin:
diff --git a/tests/manual/gestures/graphicsview/gestures.h b/tests/manual/gestures/graphicsview/gestures.h
index 6140b12..8a31b71 100644
--- a/tests/manual/gestures/graphicsview/gestures.h
+++ b/tests/manual/gestures/graphicsview/gestures.h
@@ -59,8 +59,8 @@ public:
class ThreeFingerSlideGestureRecognizer : public QGestureRecognizer
{
private:
- QGesture* createGesture(QObject *target);
- QGestureRecognizer::Result filterEvent(QGesture *state, QObject *watched, QEvent *event);
+ QGesture *create(QObject *target);
+ QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event);
void reset(QGesture *state);
};
@@ -70,8 +70,8 @@ public:
RotateGestureRecognizer();
private:
- QGesture* createGesture(QObject *target);
- QGestureRecognizer::Result filterEvent(QGesture *state, QObject *watched, QEvent *event);
+ QGesture *create(QObject *target);
+ QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event);
void reset(QGesture *state);
};
diff --git a/tests/manual/gestures/graphicsview/main.cpp b/tests/manual/gestures/graphicsview/main.cpp
index de92afe..f8433b5 100644
--- a/tests/manual/gestures/graphicsview/main.cpp
+++ b/tests/manual/gestures/graphicsview/main.cpp
@@ -66,11 +66,11 @@ protected:
default: qDebug("view: Pan: <unknown state>"); break;
}
- const QPointF offset = pan->offset();
+ const QPointF delta = pan->delta();
QScrollBar *vbar = verticalScrollBar();
QScrollBar *hbar = horizontalScrollBar();
- vbar->setValue(vbar->value() - offset.y());
- hbar->setValue(hbar->value() - offset.x());
+ vbar->setValue(vbar->value() - delta.y());
+ hbar->setValue(hbar->value() - delta.x());
ge->accept(pan);
return true;
}
@@ -152,8 +152,8 @@ private:
MainWindow::MainWindow()
{
- (void)QApplication::registerGestureRecognizer(new MousePanGestureRecognizer);
- ThreeFingerSlideGesture::Type = QApplication::registerGestureRecognizer(new ThreeFingerSlideGestureRecognizer);
+ (void)QGestureRecognizer::registerRecognizer(new MousePanGestureRecognizer);
+ ThreeFingerSlideGesture::Type = QGestureRecognizer::registerRecognizer(new ThreeFingerSlideGestureRecognizer);
tabWidget = new QTabWidget;
diff --git a/tests/manual/gestures/graphicsview/mousepangesturerecognizer.cpp b/tests/manual/gestures/graphicsview/mousepangesturerecognizer.cpp
index 6cdbe12..82adfbd 100644
--- a/tests/manual/gestures/graphicsview/mousepangesturerecognizer.cpp
+++ b/tests/manual/gestures/graphicsview/mousepangesturerecognizer.cpp
@@ -51,12 +51,12 @@ MousePanGestureRecognizer::MousePanGestureRecognizer()
{
}
-QGesture* MousePanGestureRecognizer::createGesture(QObject *)
+QGesture* MousePanGestureRecognizer::create(QObject *)
{
return new QPanGesture;
}
-QGestureRecognizer::Result MousePanGestureRecognizer::filterEvent(QGesture *state, QObject *, QEvent *event)
+QGestureRecognizer::Result MousePanGestureRecognizer::recognize(QGesture *state, QObject *, QEvent *event)
{
QPanGesture *g = static_cast<QPanGesture *>(state);
QPoint globalPos;
@@ -78,23 +78,19 @@ QGestureRecognizer::Result MousePanGestureRecognizer::filterEvent(QGesture *stat
if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonDblClick
|| event->type() == QEvent::GraphicsSceneMousePress || event->type() == QEvent::GraphicsSceneMouseDoubleClick) {
g->setHotSpot(globalPos);
- g->setProperty("lastPos", globalPos);
+ g->setProperty("startPos", globalPos);
g->setProperty("pressed", QVariant::fromValue<bool>(true));
- return QGestureRecognizer::GestureTriggered | QGestureRecognizer::ConsumeEventHint;
+ return QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint;
} else if (event->type() == QEvent::MouseMove || event->type() == QEvent::GraphicsSceneMouseMove) {
if (g->property("pressed").toBool()) {
- QPoint pos = globalPos;
- QPoint lastPos = g->property("lastPos").toPoint();
+ QPoint offset = globalPos - g->property("startPos").toPoint();
g->setLastOffset(g->offset());
- lastPos = pos - lastPos;
- g->setOffset(QPointF(lastPos.x(), lastPos.y()));
- g->setTotalOffset(g->totalOffset() + QPointF(lastPos.x(), lastPos.y()));
- g->setProperty("lastPos", pos);
- return QGestureRecognizer::GestureTriggered | QGestureRecognizer::ConsumeEventHint;
+ g->setOffset(QPointF(offset.x(), offset.y()));
+ return QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint;
}
- return QGestureRecognizer::NotGesture;
+ return QGestureRecognizer::CancelGesture;
} else if (event->type() == QEvent::MouseButtonRelease || event->type() == QEvent::GraphicsSceneMouseRelease) {
- return QGestureRecognizer::GestureFinished | QGestureRecognizer::ConsumeEventHint;
+ return QGestureRecognizer::FinishGesture | QGestureRecognizer::ConsumeEventHint;
}
return QGestureRecognizer::Ignore;
}
@@ -102,11 +98,10 @@ QGestureRecognizer::Result MousePanGestureRecognizer::filterEvent(QGesture *stat
void MousePanGestureRecognizer::reset(QGesture *state)
{
QPanGesture *g = static_cast<QPanGesture *>(state);
- g->setTotalOffset(QPointF());
g->setLastOffset(QPointF());
g->setOffset(QPointF());
g->setAcceleration(0);
- g->setProperty("lastPos", QVariant());
+ g->setProperty("startPos", QVariant());
g->setProperty("pressed", QVariant::fromValue<bool>(false));
QGestureRecognizer::reset(state);
}
diff --git a/tests/manual/gestures/graphicsview/mousepangesturerecognizer.h b/tests/manual/gestures/graphicsview/mousepangesturerecognizer.h
index b062fd0..6e04621 100644
--- a/tests/manual/gestures/graphicsview/mousepangesturerecognizer.h
+++ b/tests/manual/gestures/graphicsview/mousepangesturerecognizer.h
@@ -49,8 +49,8 @@ class MousePanGestureRecognizer : public QGestureRecognizer
public:
MousePanGestureRecognizer();
- QGesture* createGesture(QObject *target);
- QGestureRecognizer::Result filterEvent(QGesture *state, QObject *watched, QEvent *event);
+ QGesture* create(QObject *target);
+ QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event);
void reset(QGesture *state);
};
diff --git a/tests/manual/gestures/scrollarea/main.cpp b/tests/manual/gestures/scrollarea/main.cpp
index f90f6c6..4f33b28 100644
--- a/tests/manual/gestures/scrollarea/main.cpp
+++ b/tests/manual/gestures/scrollarea/main.cpp
@@ -50,7 +50,7 @@ public:
ScrollArea(QWidget *parent = 0)
: QScrollArea(parent), outside(false)
{
- viewport()->grabGesture(Qt::PanGesture);
+ viewport()->grabGesture(Qt::PanGesture, Qt::ReceivePartialGestures);
}
protected:
@@ -73,11 +73,11 @@ protected:
QPanGesture *pan = static_cast<QPanGesture *>(event->gesture(Qt::PanGesture));
if (pan) {
switch(pan->state()) {
- case Qt::GestureStarted: qDebug("area: Pan: started"); break;
- case Qt::GestureFinished: qDebug("area: Pan: finished"); break;
- case Qt::GestureCanceled: qDebug("area: Pan: canceled"); break;
+ case Qt::GestureStarted: qDebug() << this << "Pan: started"; break;
+ case Qt::GestureFinished: qDebug() << this << "Pan: finished"; break;
+ case Qt::GestureCanceled: qDebug() << this << "Pan: canceled"; break;
case Qt::GestureUpdated: break;
- default: qDebug("area: Pan: <unknown state>"); break;
+ default: qDebug() << this << "Pan: <unknown state>"; break;
}
if (pan->state() == Qt::GestureStarted)
@@ -87,8 +87,8 @@ protected:
if (outside)
return;
- const QPointF offset = pan->offset();
- const QPointF totalOffset = pan->totalOffset();
+ const QPointF delta = pan->delta();
+ const QPointF totalOffset = pan->offset();
QScrollBar *vbar = verticalScrollBar();
QScrollBar *hbar = horizontalScrollBar();
@@ -102,8 +102,8 @@ protected:
outside = true;
return;
}
- vbar->setValue(vbar->value() - offset.y());
- hbar->setValue(hbar->value() - offset.x());
+ vbar->setValue(vbar->value() - delta.y());
+ hbar->setValue(hbar->value() - delta.x());
event->accept(pan);
}
}
@@ -134,11 +134,11 @@ protected:
QPanGesture *pan = static_cast<QPanGesture *>(event->gesture(Qt::PanGesture));
if (pan) {
switch (pan->state()) {
- case Qt::GestureStarted: qDebug("slider: Pan: started"); break;
- case Qt::GestureFinished: qDebug("slider: Pan: finished"); break;
- case Qt::GestureCanceled: qDebug("slider: Pan: canceled"); break;
+ case Qt::GestureStarted: qDebug() << this << "Pan: started"; break;
+ case Qt::GestureFinished: qDebug() << this << "Pan: finished"; break;
+ case Qt::GestureCanceled: qDebug() << this << "Pan: canceled"; break;
case Qt::GestureUpdated: break;
- default: qDebug("slider: Pan: <unknown state>"); break;
+ default: qDebug() << this << "Pan: <unknown state>"; break;
}
if (pan->state() == Qt::GestureStarted)
@@ -147,8 +147,8 @@ protected:
event->ignore(pan);
if (outside)
return;
- const QPointF offset = pan->offset();
- const QPointF totalOffset = pan->totalOffset();
+ const QPointF delta = pan->delta();
+ const QPointF totalOffset = pan->offset();
if (orientation() == Qt::Horizontal) {
if ((value() == minimum() && totalOffset.x() < -10) ||
(value() == maximum() && totalOffset.x() > 10)) {
@@ -156,7 +156,7 @@ protected:
return;
}
if (totalOffset.y() < 40 && totalOffset.y() > -40) {
- setValue(value() + offset.x());
+ setValue(value() + delta.x());
event->accept(pan);
} else {
outside = true;
@@ -168,7 +168,7 @@ protected:
return;
}
if (totalOffset.x() < 40 && totalOffset.x() > -40) {
- setValue(value() - offset.y());
+ setValue(value() - delta.y());
event->accept(pan);
} else {
outside = true;
@@ -186,6 +186,7 @@ public:
MainWindow()
{
rootScrollArea = new ScrollArea;
+ rootScrollArea->setObjectName(QLatin1String("rootScrollArea"));
setCentralWidget(rootScrollArea);
QWidget *root = new QWidget;
@@ -193,14 +194,17 @@ public:
rootScrollArea->setWidget(root);
Slider *verticalSlider = new Slider(Qt::Vertical, root);
+ verticalSlider->setObjectName(QLatin1String("verticalSlider"));
verticalSlider ->move(650, 1100);
Slider *horizontalSlider = new Slider(Qt::Horizontal, root);
+ horizontalSlider->setObjectName(QLatin1String("horizontalSlider"));
horizontalSlider ->move(600, 1000);
childScrollArea = new ScrollArea(root);
+ childScrollArea->setObjectName(QLatin1String("childScrollArea"));
childScrollArea->move(500, 500);
QWidget *w = new QWidget;
- w->setMinimumWidth(400);
+ w->setMinimumWidth(700);
QVBoxLayout *l = new QVBoxLayout(w);
l->setMargin(20);
for (int i = 0; i < 100; ++i) {
@@ -211,6 +215,14 @@ public:
l->addWidget(w);
}
childScrollArea->setWidget(w);
+#if defined(Q_OS_WIN)
+ // Windows can force Qt to create a native window handle for an
+ // intermediate widget and that will block gesture to get touch events.
+ // So this hack to make sure gestures get all touch events they need.
+ foreach (QObject *w, children())
+ if (w->isWidgetType())
+ static_cast<QWidget *>(w)->setAttribute(Qt::WA_AcceptTouchEvents);
+#endif
}
private:
ScrollArea *rootScrollArea;
@@ -220,7 +232,7 @@ private:
int main(int argc, char **argv)
{
QApplication app(argc, argv);
- app.registerGestureRecognizer(new MousePanGestureRecognizer);
+ QGestureRecognizer::registerRecognizer(new MousePanGestureRecognizer);
MainWindow w;
w.show();
return app.exec();
diff --git a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp
index 63d3e76..66fcf18 100644
--- a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp
+++ b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.cpp
@@ -49,34 +49,39 @@ MousePanGestureRecognizer::MousePanGestureRecognizer()
{
}
-QGesture* MousePanGestureRecognizer::createGesture(QObject *)
+QGesture *MousePanGestureRecognizer::create(QObject *)
{
return new QPanGesture;
}
-QGestureRecognizer::Result MousePanGestureRecognizer::filterEvent(QGesture *state, QObject *, QEvent *event)
+QGestureRecognizer::Result MousePanGestureRecognizer::recognize(QGesture *state, QObject *, QEvent *event)
{
QPanGesture *g = static_cast<QPanGesture *>(state);
+ if (event->type() == QEvent::TouchBegin) {
+ // ignore the following mousepress event
+ g->setProperty("ignoreMousePress", QVariant::fromValue<bool>(true));
+ } else if (event->type() == QEvent::TouchEnd) {
+ g->setProperty("ignoreMousePress", QVariant::fromValue<bool>(false));
+ }
QMouseEvent *me = static_cast<QMouseEvent *>(event);
- if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonDblClick) {
+ if (event->type() == QEvent::MouseButtonPress) {
+ if (g->property("ignoreMousePress").toBool())
+ return QGestureRecognizer::Ignore;
g->setHotSpot(me->globalPos());
- g->setProperty("lastPos", me->globalPos());
+ g->setProperty("startPos", me->globalPos());
g->setProperty("pressed", QVariant::fromValue<bool>(true));
- return QGestureRecognizer::GestureTriggered | QGestureRecognizer::ConsumeEventHint;
+ return QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint;
} else if (event->type() == QEvent::MouseMove) {
if (g->property("pressed").toBool()) {
- QPoint pos = me->globalPos();
- QPoint lastPos = g->property("lastPos").toPoint();
+ QPoint offset = me->globalPos() - g->property("startPos").toPoint();
g->setLastOffset(g->offset());
- lastPos = pos - lastPos;
- g->setOffset(QPointF(lastPos.x(), lastPos.y()));
- g->setTotalOffset(g->totalOffset() + QPointF(lastPos.x(), lastPos.y()));
- g->setProperty("lastPos", pos);
- return QGestureRecognizer::GestureTriggered | QGestureRecognizer::ConsumeEventHint;
+ g->setOffset(QPointF(offset.x(), offset.y()));
+ return QGestureRecognizer::TriggerGesture | QGestureRecognizer::ConsumeEventHint;
}
- return QGestureRecognizer::NotGesture;
+ return QGestureRecognizer::CancelGesture;
} else if (event->type() == QEvent::MouseButtonRelease) {
- return QGestureRecognizer::GestureFinished | QGestureRecognizer::ConsumeEventHint;
+ if (g->property("pressed").toBool())
+ return QGestureRecognizer::FinishGesture | QGestureRecognizer::ConsumeEventHint;
}
return QGestureRecognizer::Ignore;
}
@@ -84,11 +89,11 @@ QGestureRecognizer::Result MousePanGestureRecognizer::filterEvent(QGesture *stat
void MousePanGestureRecognizer::reset(QGesture *state)
{
QPanGesture *g = static_cast<QPanGesture *>(state);
- g->setTotalOffset(QPointF());
g->setLastOffset(QPointF());
g->setOffset(QPointF());
g->setAcceleration(0);
- g->setProperty("lastPos", QVariant());
+ g->setProperty("startPos", QVariant());
g->setProperty("pressed", QVariant::fromValue<bool>(false));
+ g->setProperty("ignoreMousePress", QVariant::fromValue<bool>(false));
QGestureRecognizer::reset(state);
}
diff --git a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h
index b062fd0..6e04621 100644
--- a/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h
+++ b/tests/manual/gestures/scrollarea/mousepangesturerecognizer.h
@@ -49,8 +49,8 @@ class MousePanGestureRecognizer : public QGestureRecognizer
public:
MousePanGestureRecognizer();
- QGesture* createGesture(QObject *target);
- QGestureRecognizer::Result filterEvent(QGesture *state, QObject *watched, QEvent *event);
+ QGesture* create(QObject *target);
+ QGestureRecognizer::Result recognize(QGesture *state, QObject *watched, QEvent *event);
void reset(QGesture *state);
};