summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Bastian <thierry.bastian@nokia.com>2010-11-26 01:00:13 +0100
committerThierry Bastian <thierry.bastian@nokia.com>2010-11-26 01:00:13 +0100
commit7dec702b4ac6fba07640959a0666ab1b44e25f07 (patch)
treee640b2e533c69ea9878f63f2aeecce3d604a01a0
parentd8ee9ddffa4e0cad8c1d991ab6fb84b705c075e5 (diff)
parentccebbb663a1b21204057d8b799de3ddf1b63307e (diff)
Merge branch 'master-upstream' into master-water
-rw-r--r--.gitignore2
-rwxr-xr-xbin/patch_capabilities.pl6
-rwxr-xr-xconfigure6
-rw-r--r--demos/symbianpkgrules.pri5
-rw-r--r--dist/changes-4.7.28
-rw-r--r--doc/src/declarative/basictypes.qdoc2
-rw-r--r--doc/src/declarative/declarativeui.qdoc10
-rw-r--r--doc/src/declarative/elements.qdoc2
-rw-r--r--doc/src/declarative/extending-tutorial.qdoc4
-rw-r--r--doc/src/declarative/qml-intro.qdoc2
-rw-r--r--doc/src/declarative/qmlinuse.qdoc499
-rw-r--r--doc/src/declarative/qtbinding.qdoc15
-rw-r--r--doc/src/declarative/qtdeclarative.qdoc2
-rw-r--r--doc/src/development/qmake-manual.qdoc8
-rw-r--r--doc/src/getting-started/gettingstartedqml.qdoc2
-rw-r--r--doc/src/platforms/emb-directfb-EmbLinux.qdoc6
-rw-r--r--doc/src/platforms/emb-pointer.qdoc4
-rw-r--r--doc/src/qt4-intro.qdoc2
-rw-r--r--doc/src/snippets/code/doc_src_properties.qdoc17
-rw-r--r--doc/src/snippets/moc/myclass2.h7
-rw-r--r--doc/src/snippets/threads/threads.cpp9
-rw-r--r--examples/symbianpkgrules.pri5
-rw-r--r--mkspecs/common/symbian/appCaptionForTranslation.cpp46
-rw-r--r--mkspecs/common/symbian/packageNameForTranslation.cpp47
-rw-r--r--mkspecs/common/symbian/symbian-mmp.conf4
-rw-r--r--mkspecs/common/symbian/symbian.conf63
-rw-r--r--mkspecs/features/default_post.prf10
-rw-r--r--mkspecs/features/symbian/default_post.prf12
-rw-r--r--mkspecs/features/symbian/localize_deployment.prf82
-rw-r--r--mkspecs/features/symbian/qt.prf6
-rw-r--r--mkspecs/features/symbian/sis_targets.prf26
-rw-r--r--mkspecs/features/symbian/stl.prf2
-rw-r--r--qmake/Makefile.unix2
-rw-r--r--qmake/Makefile.win323
-rw-r--r--qmake/Makefile.win32-g++2
-rw-r--r--qmake/Makefile.win32-g++-sh2
-rw-r--r--qmake/generators/symbian/initprojectdeploy_symbian.cpp12
-rw-r--r--qmake/generators/symbian/symbian_makefile.h10
-rw-r--r--qmake/generators/symbian/symbiancommon.cpp471
-rw-r--r--qmake/generators/symbian/symbiancommon.h35
-rw-r--r--qmake/generators/symbian/symmake.cpp45
-rw-r--r--qmake/generators/symbian/symmake.h5
-rw-r--r--qmake/generators/symbian/symmake_abld.cpp25
-rw-r--r--qmake/generators/symbian/symmake_sbsv2.cpp33
-rw-r--r--qmake/generators/win32/msvc_nmake.cpp39
-rw-r--r--qmake/generators/win32/msvc_nmake.h2
-rw-r--r--qmake/generators/win32/msvc_vcproj.cpp6
-rw-r--r--qmake/generators/win32/winmakefile.cpp27
-rw-r--r--qmake/generators/win32/winmakefile.h1
-rw-r--r--qmake/project.cpp4
-rw-r--r--qmake/qmake.pri6
-rw-r--r--src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp38
-rw-r--r--src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp10
-rw-r--r--src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview_p.h2
-rw-r--r--src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri4
-rw-r--r--src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp14
-rw-r--r--src/corelib/global/global.pri2
-rw-r--r--src/corelib/global/qlibraryinfo.cpp12
-rw-r--r--src/corelib/global/qnamespace.h2
-rw-r--r--src/corelib/global/qnamespace.qdoc3
-rw-r--r--src/corelib/io/qfilesystemwatcher.cpp7
-rw-r--r--src/corelib/io/qfilesystemwatcher_inotify.cpp2
-rw-r--r--src/corelib/io/qfilesystemwatcher_symbian.cpp2
-rw-r--r--src/corelib/io/qiodevice.cpp5
-rw-r--r--src/corelib/kernel/qeventdispatcher_win.cpp48
-rw-r--r--src/corelib/kernel/qobjectdefs.h8
-rw-r--r--src/corelib/kernel/qtcore_eval.cpp4
-rw-r--r--src/corelib/thread/qthread.cpp12
-rw-r--r--src/corelib/thread/qthread_p.h1
-rw-r--r--src/corelib/thread/qthread_unix.cpp54
-rw-r--r--src/corelib/thread/qthread_win.cpp36
-rw-r--r--src/corelib/thread/qthreadstorage.cpp59
-rw-r--r--src/corelib/thread/qthreadstorage.h13
-rw-r--r--src/corelib/tools/qchar.cpp26
-rw-r--r--src/corelib/tools/qsimd_p.h8
-rw-r--r--src/corelib/tools/qstring.cpp6
-rw-r--r--src/declarative/graphicsitems/qdeclarativeflickable.cpp23
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview.cpp8
-rw-r--r--src/declarative/graphicsitems/qdeclarativemousearea.cpp37
-rw-r--r--src/declarative/graphicsitems/qdeclarativerectangle.cpp3
-rw-r--r--src/declarative/qml/qdeclarativecompileddata.cpp4
-rw-r--r--src/declarative/qml/qdeclarativecompiler.cpp2
-rw-r--r--src/declarative/qml/qdeclarativecompiler_p.h4
-rw-r--r--src/declarative/qml/qdeclarativeworkerscript.cpp13
-rw-r--r--src/declarative/util/qdeclarativeopenmetaobject.cpp2
-rw-r--r--src/gui/accessible/qaccessible_mac.mm2
-rw-r--r--src/gui/dialogs/dialogs.pri9
-rw-r--r--src/gui/dialogs/qabstractprintdialog.cpp3
-rw-r--r--src/gui/dialogs/qcolordialog.cpp21
-rw-r--r--src/gui/dialogs/qcolordialog_mac.mm4
-rw-r--r--src/gui/dialogs/qcolordialog_symbian.cpp107
-rw-r--r--src/gui/dialogs/qfiledialog.cpp68
-rw-r--r--src/gui/dialogs/qfiledialog_symbian.cpp196
-rw-r--r--src/gui/dialogs/qfontdialog_mac.mm2
-rw-r--r--src/gui/dialogs/qmessagebox.cpp88
-rw-r--r--src/gui/dialogs/qpagesetupdialog.cpp3
-rw-r--r--src/gui/dialogs/qpagesetupdialog_mac.mm4
-rw-r--r--src/gui/dialogs/qprintpreviewdialog.cpp2
-rw-r--r--src/gui/graphicsview/qgraphicsgridlayout.cpp11
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem.cpp35
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem_p.h2
-rw-r--r--src/gui/graphicsview/qgraphicslinearlayout.cpp4
-rw-r--r--src/gui/graphicsview/qgraphicstransform.cpp2
-rw-r--r--src/gui/graphicsview/qgridlayoutengine.cpp185
-rw-r--r--src/gui/graphicsview/qgridlayoutengine_p.h7
-rw-r--r--src/gui/image/qnativeimage.cpp2
-rw-r--r--src/gui/kernel/qapplication_win.cpp4
-rw-r--r--src/gui/kernel/qclipboard_mac.cpp2
-rw-r--r--src/gui/kernel/qcocoaapplicationdelegate_mac.mm5
-rw-r--r--src/gui/kernel/qcocoamenuloader_mac.mm4
-rw-r--r--src/gui/kernel/qcocoaview_mac.mm30
-rw-r--r--src/gui/kernel/qcocoawindow_mac.mm2
-rw-r--r--src/gui/kernel/qcocoawindowdelegate_mac.mm2
-rw-r--r--src/gui/kernel/qevent.cpp2
-rw-r--r--src/gui/kernel/qgesturemanager.cpp2
-rw-r--r--src/gui/kernel/qgesturemanager_p.h2
-rw-r--r--src/gui/kernel/qguiplatformplugin.cpp2
-rw-r--r--src/gui/kernel/qkeymapper_mac.cpp2
-rw-r--r--src/gui/kernel/qkeysequence.cpp2
-rw-r--r--src/gui/kernel/qsound_s60.cpp2
-rw-r--r--src/gui/kernel/qwidget.cpp13
-rw-r--r--src/gui/kernel/qwidget_mac.mm7
-rw-r--r--src/gui/kernel/qwidget_p.h1
-rw-r--r--src/gui/kernel/qwidget_s60.cpp14
-rw-r--r--src/gui/kernel/qx11embed_x11.cpp2
-rw-r--r--src/gui/painting/qtextureglyphcache.cpp17
-rw-r--r--src/gui/painting/qtextureglyphcache_p.h4
-rw-r--r--src/gui/styles/qmacstyle_mac.mm10
-rw-r--r--src/gui/styles/qs60style.cpp59
-rw-r--r--src/gui/styles/qstyle.cpp2
-rw-r--r--src/gui/styles/qstyleoption.cpp4
-rw-r--r--src/gui/util/qdesktopservices_s60.cpp180
-rw-r--r--src/gui/util/qundostack.cpp2
-rw-r--r--src/gui/util/util.pri17
-rw-r--r--src/gui/widgets/qabstractslider_p.h2
-rw-r--r--src/gui/widgets/qcocoamenu_mac.mm9
-rw-r--r--src/gui/widgets/qdial.cpp15
-rw-r--r--src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp6
-rw-r--r--src/multimedia/audio/qaudiodeviceinfo_alsa_p.h2
-rw-r--r--src/network/ssl/qsslsocket_openssl.cpp14
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp5
-rw-r--r--src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp3
-rw-r--r--src/opengl/gl2paintengineex/qtriangulator.cpp34
-rw-r--r--src/opengl/qgl_p.h3
-rw-r--r--src/openvg/qpaintengine_vg.cpp7
-rw-r--r--src/openvg/qpixmapdata_vg.cpp2
-rw-r--r--src/plugins/bearer/symbian/symbianengine.cpp2
-rw-r--r--src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp2
-rw-r--r--src/plugins/graphicssystems/meego/qmeegographicssystem.cpp2
-rw-r--r--src/plugins/s60/feedback/feedback.pro2
-rw-r--r--src/plugins/s60/s60.pro2
-rw-r--r--src/qbase.pri2
-rw-r--r--src/s60installs/bwins/QtGuiu.def9
-rw-r--r--src/s60installs/bwins/QtOpenGLu.def11
-rw-r--r--src/s60installs/eabi/QtOpenGLu.def5
-rw-r--r--src/s60installs/s60installs.pro10
-rw-r--r--src/script/api/qscriptcontextinfo.cpp2
-rw-r--r--src/script/api/qscriptengine.cpp4
-rw-r--r--src/xmlpatterns/expr/qarithmeticexpression_p.h2
-rw-r--r--tests/arthur/baselineserver/src/baselineserver.cpp59
-rw-r--r--tests/arthur/baselineserver/src/baselineserver.h3
-rw-r--r--tests/arthur/baselineserver/src/htmlpage.cpp51
-rw-r--r--tests/arthur/baselineserver/src/htmlpage.h2
-rw-r--r--tests/arthur/common/baselineprotocol.cpp47
-rw-r--r--tests/arthur/common/baselineprotocol.h7
-rw-r--r--tests/auto/collections/tst_collections.cpp2
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/qtbug14821.qml31
-rw-r--r--tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp21
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp7
-rw-r--r--tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp3
-rw-r--r--tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp5
-rw-r--r--tests/auto/declarative/qmlvisual/TEST_GUIDELINES2
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.pngbin622 -> 0 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.pngbin627 -> 0 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.pngbin626 -> 0 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml951
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.pngbin627 -> 622 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.pngbin626 -> 627 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.pngbin625 -> 626 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.3.png (renamed from tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png)bin625 -> 625 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml16
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.pngbin1549 -> 0 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.pngbin1140 -> 0 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.pngbin1338 -> 0 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.pngbin1221 -> 0 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml1327
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.0.pngbin0 -> 1360 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.1.pngbin0 -> 1367 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.2.pngbin0 -> 1367 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.3.pngbin0 -> 1372 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.4.pngbin0 -> 1382 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.5.pngbin0 -> 1379 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.6.pngbin0 -> 1390 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.7.pngbin0 -> 1379 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.8.pngbin0 -> 1380 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.9.pngbin0 -> 1379 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.qml5039
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/nested.qml62
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.pngbin2388 -> 2569 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml120
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.pngbin0 -> 5648 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml62
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.pngbin1640 -> 1083 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.pngbin625 -> 1083 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml220
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.pngbin1706 -> 1353 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.pngbin0 -> 1353 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml134
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.pngbin3564 -> 3572 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.pngbin3271 -> 3320 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.pngbin2549 -> 2953 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.pngbin1574 -> 2386 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.pngbin0 -> 1650 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml490
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.pngbin2883 -> 2748 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.pngbin0 -> 3064 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml148
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.pngbin96247 -> 60155 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.pngbin3481 -> 3805 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.pngbin53503 -> 21056 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.pngbin118835 -> 62489 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.pngbin0 -> 29962 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.qml11
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.pngbin3636 -> 1177 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.pngbin3611 -> 1254 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.pngbin3612 -> 1199 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.pngbin3612 -> 1198 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.pngbin3609 -> 1195 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.pngbin3147 -> 1197 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml658
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.pngbin3273 -> 737 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.pngbin3265 -> 740 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.pngbin3266 -> 746 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.pngbin3245 -> 739 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.4.pngbin0 -> 737 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml538
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.pngbin5123 -> 1362 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.pngbin5500 -> 1377 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.pngbin8641 -> 2037 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.pngbin8641 -> 2037 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.12.pngbin0 -> 2037 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.pngbin6163 -> 1461 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.pngbin6785 -> 1577 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.pngbin6943 -> 1704 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.pngbin7043 -> 1778 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.pngbin7428 -> 1797 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.pngbin6860 -> 1859 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.pngbin8659 -> 1835 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.pngbin8641 -> 2028 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml1452
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.pngbin11626 -> 3756 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.pngbin11869 -> 3891 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.pngbin12264 -> 3964 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.pngbin12607 -> 4054 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.pngbin13243 -> 4132 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.pngbin13260 -> 4234 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.pngbin13260 -> 4238 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.7.pngbin0 -> 4238 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml858
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.pngbin3613 -> 1177 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.pngbin4140 -> 1148 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.pngbin3593 -> 1312 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.pngbin3605 -> 1256 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.pngbin3605 -> 1197 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.pngbin805 -> 1197 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml620
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.pngbin703 -> 256 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.pngbin1360 -> 715 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.pngbin2031 -> 1295 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.pngbin0 -> 1922 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml340
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.0.pngbin0 -> 3987 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml50
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.0.pngbin0 -> 1254 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.1.pngbin0 -> 1328 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.10.pngbin0 -> 1345 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.11.pngbin0 -> 1433 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.2.pngbin0 -> 1328 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.3.pngbin0 -> 1328 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.4.pngbin0 -> 1316 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.5.pngbin0 -> 1318 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.6.pngbin0 -> 1321 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.7.pngbin0 -> 1316 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.8.pngbin0 -> 1362 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.9.pngbin0 -> 1423 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml4335
-rw-r--r--tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp6
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.0.pngbin0 -> 2812 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.1.pngbin0 -> 2812 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.10.pngbin0 -> 2829 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.2.pngbin0 -> 3466 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.3.pngbin0 -> 2812 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.4.pngbin0 -> 2829 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.5.pngbin0 -> 2829 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.6.pngbin0 -> 2768 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.7.pngbin0 -> 2829 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.8.pngbin0 -> 2829 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.9.pngbin0 -> 2829 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.qml6083
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml35
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/qtlogo.pngbin0 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/test.html3
-rw-r--r--tests/auto/lancelot/tst_lancelot.cpp30
-rw-r--r--tests/auto/qdbusconnection/tst_qdbusconnection.cpp4
-rw-r--r--tests/auto/qdial/tst_qdial.cpp64
-rw-r--r--tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp20
-rw-r--r--tests/auto/qgl/tst_qgl.cpp23
-rw-r--r--tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp352
-rw-r--r--tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp118
-rw-r--r--tests/auto/qkeysequence/tst_qkeysequence.cpp2
-rw-r--r--tests/auto/qscriptvalue/tst_qscriptvalue.cpp4
-rw-r--r--tests/auto/qthread/tst_qthread.cpp160
-rw-r--r--tests/auto/qthreadstorage/tst_qthreadstorage.cpp190
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp29
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro6
-rw-r--r--tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp133
-rw-r--r--tools/assistant/tools/assistant/helpenginewrapper.cpp2
-rw-r--r--tools/configure/configure.pro4
-rw-r--r--tools/configure/configureapp.cpp20
-rw-r--r--tools/configure/environment.cpp10
-rw-r--r--tools/linguist/lrelease/lrelease.pro1
-rw-r--r--tools/linguist/lupdate/main.cpp4
-rw-r--r--tools/qdoc3/doc/files/qt.qdocconf8
-rw-r--r--tools/qdoc3/test/designer.qdocconf2
-rw-r--r--tools/qdoc3/test/qdeclarative.qdocconf2
-rw-r--r--tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf6
-rw-r--r--tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp17
-rw-r--r--tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h6
-rw-r--r--tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro4
-rw-r--r--tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp68
-rw-r--r--tools/qmeegographicssystemhelper/qmeegoswitchevent.h91
-rw-r--r--tools/qml/main.cpp9
-rw-r--r--tools/qml/qmlruntime.cpp2
-rw-r--r--tools/shared/symbian/epocroot.cpp115
-rw-r--r--tools/shared/symbian/epocroot.pri11
-rw-r--r--tools/shared/symbian/epocroot_p.h (renamed from tools/shared/symbian/epocroot.h)24
-rw-r--r--tools/shared/windows/registry.cpp15
-rw-r--r--tools/shared/windows/registry_p.h (renamed from tools/shared/windows/registry.h)24
338 files changed, 22558 insertions, 6254 deletions
diff --git a/.gitignore b/.gitignore
index af521975b7..f9a4454229 100644
--- a/.gitignore
+++ b/.gitignore
@@ -235,3 +235,5 @@ qtc-debugging-helper
src/corelib/lib
src/network/lib
src/xml/lib/
+
+.pc/
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index 5230480418..994d49334f 100755
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -78,7 +78,7 @@ sub trim($) {
my $nullDevice = "/dev/null";
$nullDevice = "NUL" if ($^O =~ /MSWin/);
-my @capabilitiesToAllow = ("LocalServices", "NetworkServices", "ReadUserData", "UserEnvironment", "WriteUserData");
+my @capabilitiesToAllow = ("LocalServices", "NetworkServices", "ReadUserData", "UserEnvironment", "WriteUserData", "Location");
my @capabilitiesSpecified = ();
# If arguments were given to the script,
@@ -301,6 +301,9 @@ if (@ARGV)
$_ = trim($_);
if ($capabilitiesToAllow =~ /$_/) {
push(@capabilitiesToSet, $_);
+ if (Location =~ /$_/i) {
+ print ("Patching: Warning - \"Location\" capability detected for binary: \"$binaryBaseName\". This capability is not self-signable for S60 3rd edition feature pack 1 devices, so installing this package on those devices will most likely not work.\n");
+ }
} else {
push(@capabilitiesToDrop, $_);
}
@@ -319,6 +322,7 @@ if (@ARGV)
# While libraries often have capabilities they do not themselves need just to enable them to be loaded by wider variety of processes,
# executables are more likely to need every capability they have been assigned or they won't function correctly.
print ("Patching: Executable with capabilities incompatible with self-signing detected: \"$binaryBaseName\". (Incompatible capabilities: \"$capsToDropStr\".) Reducing capabilities is only supported for libraries.\n");
+ print ("Patching: Please use a proper developer certificate for signing this package.\n");
exit(1);
} else {
print ("Patching: The following capabilities used in \"$binaryBaseName\" are not compatible with a self-signed package and will be removed: \"$capsToDropStr\".\n");
diff --git a/configure b/configure
index 875fef4c9e..05b5629b9b 100755
--- a/configure
+++ b/configure
@@ -634,12 +634,14 @@ fi
# initalize variables
#-------------------------------------------------------------------------------
-SYSTEM_VARIABLES="CC CXX CFLAGS CXXFLAGS LDFLAGS"
+SYSTEM_VARIABLES="RANLIB STRIP OBJDUMP LD CC CXX CFLAGS CXXFLAGS LDFLAGS"
for varname in $SYSTEM_VARIABLES; do
qmakevarname="${varname}"
# use LDFLAGS for autoconf compat, but qmake uses QMAKE_LFLAGS
if [ "${varname}" = "LDFLAGS" ]; then
qmakevarname="LFLAGS"
+ elif [ "${varname}" = "LD" ]; then
+ qmakevarname="LINK"
fi
cmd=`echo \
'if [ -n "\$'${varname}'" ]; then
@@ -4668,7 +4670,7 @@ if [ -n "$EVALKEY" ]; then
rm -f "$outpath/src/corelib/global/qconfig_eval.cpp"
cat > "$outpath/src/corelib/global/qconfig_eval.cpp" <<EOF
/* Evaluation license key */
-static const char qt_eval_key_data [512 + 12] = "$EVALKEY";
+static const volatile char qt_eval_key_data [512 + 12] = "$EVALKEY";
EOF
chmod -w "$outpath/src/corelib/global/qconfig_eval.cpp"
fi
diff --git a/demos/symbianpkgrules.pri b/demos/symbianpkgrules.pri
index c9cc492bce..ef6dfd8419 100644
--- a/demos/symbianpkgrules.pri
+++ b/demos/symbianpkgrules.pri
@@ -2,12 +2,13 @@
RSS_RULES ="group_name=\"QtDemos\";"
+nokiaVendor = "Nokia, Qt"
vendorinfo = \
"; Localised Vendor name" \
- "%{\"Nokia, Qt\"}" \
+ "%{$$addLanguageDependentPkgItem(nokiaVendor)}" \
" " \
"; Unique Vendor name" \
- ":\"Nokia, Qt\"" \
+ ":\"$$nokiaVendor\"" \
" "
demos_deployment.pkg_prerules += vendorinfo
diff --git a/dist/changes-4.7.2 b/dist/changes-4.7.2
index 49bdd8ed60..a18a237429 100644
--- a/dist/changes-4.7.2
+++ b/dist/changes-4.7.2
@@ -45,8 +45,12 @@ QtCore
QtGui
-----
- - foo
- * bar
+ - QWidget
+ * [QTMOBILITY-645] Send WinIdChange event when winId is set to zero.
+ The window handle of a native widget may be set to zero in two
+ situations: (i) temporarily, during reparenting and (ii) during
+ widget destruction. Previously, no WinIdChange event was sent in
+ either of these cases; now, it is sent in both cases.
QtDBus
------
diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc
index 8ab06abaa9..71192bfe79 100644
--- a/doc/src/declarative/basictypes.qdoc
+++ b/doc/src/declarative/basictypes.qdoc
@@ -166,7 +166,7 @@
\l{QML:Qt::lighter()}{Qt.lighter()} or \l{QML:Qt::tint()}{Qt.tint()} functions:
\qml
- Rectangle { color: Qt.rgba(255, 0, 0, 1) }
+ Rectangle { color: Qt.rgba(0.5, 0.5, 0, 1) }
\endqml
\sa {QML Basic Types}
diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc
index 28a8a7012e..01e130221c 100644
--- a/doc/src/declarative/declarativeui.qdoc
+++ b/doc/src/declarative/declarativeui.qdoc
@@ -45,7 +45,7 @@ language for describing user interfaces and a language runtime. A collection
of C++ APIs is used to integrate these high level features with classic
Qt applications.
-\section2 QML, Elements and the QtDeclarative Module
+\section2 QML, Elements and the Qt Declarative Module
User interfaces and their behavior are described using QML, an extension to
\l{About JavaScript}{JavaScript} that lets developers and designers
@@ -60,14 +60,14 @@ QObject-based type system, adds support for automatic
\l{Property Binding}{property bindings} and provides
\l{Network Transparency}{network transparency} at the language level.
-The QtDeclarative module implements the interface between the QML language
+The Qt Declarative module implements the interface between the QML language
and the elements available to it. It also provides a C++ API that can be
used to load and interact with QML files from within Qt applications.
Qt Quick builds on \l{QML for Qt programmers}{Qt's existing strengths}.
QML can be be used to incrementally extend an existing application or
to build completely new applications. QML is fully
-\l{Extending QML in C++}{extensible from C++} through the QtDeclarative
+\l{Extending QML in C++}{extensible from C++} through the Qt Declarative
Module.
\section1 Getting Started
@@ -77,7 +77,7 @@ Module.
\o \l{Introduction to the QML language}
\o \l{QML for Qt Programmers}
\o \l{Getting Started Programming with QML}
-\o \l{Beginning Qt Quick}
+\o \l{Intro to Qt Quick}
\endlist
\list
@@ -139,7 +139,7 @@ Module.
\o \l{QML Global Object}
\o \l{QML Internationalization}
\o \l{QML Security}
-\o \l{QtDeclarative Module}
+\o \l{Qt Declarative Module}
\o \l{Debugging QML}
\o \l{QML Viewer}
\o \l{QML Performance}
diff --git a/doc/src/declarative/elements.qdoc b/doc/src/declarative/elements.qdoc
index 54f07a219f..eaa6a828cc 100644
--- a/doc/src/declarative/elements.qdoc
+++ b/doc/src/declarative/elements.qdoc
@@ -32,7 +32,7 @@
\brief A dictionary of standard QML elements.
This is a dictionary of all standard QML elements made available
- in the QtDeclarative module.
+ in the Qt Declarative module.
To see the QML elements listed by functional area, see the
\l{Groups Of Related QML Elements} page.
diff --git a/doc/src/declarative/extending-tutorial.qdoc b/doc/src/declarative/extending-tutorial.qdoc
index 2bfe62ec07..dff1d9caa2 100644
--- a/doc/src/declarative/extending-tutorial.qdoc
+++ b/doc/src/declarative/extending-tutorial.qdoc
@@ -29,7 +29,7 @@
\page qml-extending-tutorial-index.html
\title Tutorial: Writing QML extensions with C++
-The QtDeclarative module provides a set of APIs for extending QML through
+The Qt Declarative module provides a set of APIs for extending QML through
C++ extensions. You can write extensions to add your own QML types, extend existing
Qt types, or call C/C++ functions that are not accessible from ordinary QML code.
@@ -65,7 +65,7 @@ For example, this could be done to implement particular data models, or provide
elements with custom painting and drawing capabilities, or access system features
like network programming that are not accessible through built-in QML features.
-In this tutorial, we will show how to use the C++ classes in the QtDeclarative
+In this tutorial, we will show how to use the C++ classes in the Qt Declarative
module to extend QML. The end result will be a simple Pie Chart display implemented by
several custom QML types connected together through QML features like bindings and
signals, and made available to the QML runtime through a plugin.
diff --git a/doc/src/declarative/qml-intro.qdoc b/doc/src/declarative/qml-intro.qdoc
index f891e01650..e02ce8ff65 100644
--- a/doc/src/declarative/qml-intro.qdoc
+++ b/doc/src/declarative/qml-intro.qdoc
@@ -29,7 +29,7 @@
/*!
\page qml-intro.html
-\title Beginning Qt Quick
+\title Intro to Qt Quick
\section1 Overview
diff --git a/doc/src/declarative/qmlinuse.qdoc b/doc/src/declarative/qmlinuse.qdoc
new file mode 100644
index 0000000000..90ce02caa2
--- /dev/null
+++ b/doc/src/declarative/qmlinuse.qdoc
@@ -0,0 +1,499 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:FDL$
+** Commercial Usage
+** Licensees holding valid Qt Commercial licenses may use this file in
+** accordance with the Qt Commercial License Agreement provided with the
+** Software or, alternatively, in accordance with the terms contained in a
+** written agreement between you and Nokia.
+**
+** GNU Free Documentation License
+** Alternatively, this file may be used under the terms of the GNU Free
+** Documentation License version 1.3 as published by the Free Software
+** Foundation and appearing in the file included in the packaging of this
+** file.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+/*!
+\page qmlinuse.html
+\title Using QML elements
+
+\raw HTML
+ <div class="item group">
+ <div class="secondaryx">
+ <div class="toc">
+ <h3>
+ <a name="toc">QML Elements</a></h3>
+ <ul>
+ <li class="level1"><a href="#basicElements">Basic QML Elements</a></li>
+ <li class="level1"><a href="#visualElements">QML Visual Elements</a></li>
+ <li class="level1"><a href="#AnimAndTrans">QML Animation and Transition Elements</a></li>
+ <li class="level1"><a href="#interactElement">Basic QML Interaction Elements</a></li>
+ <li class="level1"><a href="#eventElements">QML Event Elements</a></li>
+ <li class="level1"><a href="#Position">QML Positioning Elements</a></li>
+ <li class="level1"><a href="#stateElement">QML State Elements</a></li>
+ <li class="level1"><a href="#transformElement">QML Transform Elements</a></li>
+ <li class="level1"><a href="#utilityElement">QML Utility Elements</a></li>
+ <li class="level1"><a href="#modelView">Models and View Elements</a></li>
+ <li class="level1"><a href="#paths">Paths</a></li>
+ <li class="level1"><a href="#ParticleElement">Particle Elements</a></li>
+ <li class="level1"><a href="#bridge">Bridge Elements</a></li>
+ </ul>
+ </div>
+ </div>
+ <div class="primary">
+ <h1>
+ Groups Of Related QML Elements</h1>
+ <p>
+ QML Elements are grouped by their respective functionalities. Certain elements are
+ suited for building complex components while other elements strictly dictate appearances
+ and color.</p>
+ <div class="cols two group unclear">
+ <div class="col first">
+ <p>
+ <i>add something about elements in use in general</i></p>
+ </div>
+ <div class="col">
+ <img src="images/quick_screens.png" />
+ </div>
+ </div>
+ </div>
+ </div>
+ <!-- tech domains start -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="basicElements"> Basic QML Elements</a></h2>
+ <p>
+ Basic elements can be extended to form more complex elements.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-item.html">Item Element</a>
+ - The Item is the most basic of all visual items in QML. Many visual elements inherit
+ properties from the Item element.</li>
+ <li><a href="qml-component.html">Component Element</a>
+ - The Component element encapsulates a QML component definition.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="visualElements">QML Visual Elements</a></h2>
+ <p>
+ Visual elements offer various interactive and graphical functionalities. Visual
+ elements can directly set properties that dictate appearances.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-borderimage.html">BorderImage
+ Element</a> - The BorderImage element provides an image that can be used as a border.</li>
+ <li><a href="qml-gradient.html">Gradient Element</a>
+ - The Gradient item defines a gradient fill.</li>
+ <li><a href="qml-gradientstop.html">GradientStop
+ Element</a> - The GradientStop item defines the color at a position in a Gradient.</li>
+ <li><a href="qml-image.html">Image Element</a>
+ - The Image element displays an image from a source.</li>
+ <li><a href="qml-rectangle.html">Rectangle Element</a>
+ - The Rectangle item provides a filled rectangle.</li>
+ <li><a href="qml-text.html">Text Element</a>
+ - The Text item allows the addition of formatted text to a scene.</li>
+ <li><a href="qml-textedit.html">TextEdit Element</a>
+ - The TextEdit item displays multiple lines of editable formatted text.</li>
+ <li><a href="qml-textinput.html">TextInput Element</a>
+ - The TextInput item displays an editable line of text.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="AnimAndTrans">QML Animation and Transition Elements</a></h2>
+ <p>
+ Animation and transition elements control animation behaviors. Animations can run
+ in parallel or in series for different value types.
+ </p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-anchoranimation.html">AnchorAnimation Element</a> -
+ The AnchorAnimation element animates changes in anchor values.</li>
+ <li><a href="qml-animation.html">Animation Element</a> - The Animation
+ element is the base of all QML animations.</li>
+ <li><a href="qml-behavior.html">Behavior Element</a> - The Behavior element allows you to specify a default animation for a property change.</li>
+ <li><a href="qml-coloranimation.html">ColorAnimation Element</a> - The ColorAnimation element animates changes in color values.</li>
+ <li><a href="qml-numberanimation.html">NumberAnimation Element</a> - The NumberAnimation element animates changes in qreal-type values.</li>
+ <li><a href="qml-parallelanimation.html">ParallelAnimation Element</a> - The ParallelAnimation element allows animations to be run in parallel.</li>
+ <li><a href="qml-parentanimation.html">ParentAnimation Element</a> - The ParentAnimation element animates changes in parent values.</li>
+ <li><a href="qml-pauseanimation.html">PauseAnimation Element</a> - The PauseAnimation element provides a pause during an animation.</li>
+ <li><a href="qml-propertyaction.html">PropertyAction Element</a> - The PropertyAction element allows immediate property changes during animation.</li>
+ <li><a href="qml-propertyanimation.html">PropertyAnimation Element</a> - The PropertyAnimation element animates changes in property values.</li>
+ <li><a href="qml-rotationanimation.html">RotationAnimation Element</a> - The RotationAnimation element animates changes in rotational values.</li>
+ <li><a href="qml-scriptaction.html">ScriptAction Element</a> - The ScriptAction element allows scripts to be run during an animation.</li>
+ <li><a href="qml-sequentialanimation.html">SequentialAnimation Element</a> - The SequentialAnimation element allows animations to be run sequentially.</li>
+ <li><a href="qml-smoothedanimation.html">SmoothedAnimation Element</a> - The SmoothedAnimation element allows a property to smoothly track a value.</li>
+ <li><a href="qml-springanimation.html">SpringAnimation Element</a> - The SpringAnimation element allows a property to track a value in a spring-like
+ motion.</li>
+ <li><a href="qml-transition.html">Transition Element</a> - The Transition element defines animated transitions that occur on state changes.</li>
+ <li><a href="qml-vector3danimation.html">Vector3dAnimation Element</a> - The Vector3dAnimation element animates changes in QVector3d values.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="interactElement">QML Interaction Elements</h2></a>
+ <p>
+ These elements define basic interactions such as touch movements and focus management.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-flickable.html">Flickable Element</a> - The Flickable item provides a surface that can be "flicked".</li>
+ <li><a href="qml-flipable.html">Flipable Element</a> - The Flipable item provides a surface that can be flipped or reflected.</li>
+ <li><a href="qml-focuspanel.html">FocusPanel Element</a> - The FocusPanel item explicitly creates a focus panel.</li>
+ <li><a href="qml-focusscope.html">FocusScope Element</a> - The FocusScope object explicitly creates a focus scope for focus management.</li>
+ <li><a href="qml-gesturearea.html">GestureArea Element</a> - The GestureArea item enables simple gesture handling.</li>
+ <li><a href="qml-keynavigation.html">KeyNavigation Element</a> - The KeyNavigation attached property supports key navigation by arrow keys.</li>
+ <li><a href="qml-keys.html">Keys Element</a> - The Keys attached property provides key handling to Items.</li>
+ <li><a href="qml-mousearea.html">MouseArea Element</a> - The MouseArea item enables simple mouse handling.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="eventElements">QML Event Elements</a></h2>
+ <p>
+ Key and mouse events information are provided in these event elements.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-keyevent.html">KeyEvent Element</a> - The KeyEvent
+ object provides information about a key event.</li>
+ <li><a href="qml-mouseevent.html">MouseEvent Element</a> - The MouseEvent
+ object provides information about a mouse event.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="Position">QML Positioning Elements</a></h2>
+ <p>
+ Using positioning elements, layouts can be defined and their children accessed through
+ an index.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-column.html">Column Element</a> - The Column
+ item arranges its children vertically.</li>
+ <li><a href="qml-flow.html">Flow Element</a> - The Flow item
+ arranges its children side by side, wrapping as necessary.</li>
+ <li><a href="qml-grid.html">Grid Element</a> - The Grid item
+ positions its children in a grid.</li>
+ <li><a href="qml-row.html">Row Element</a> - The Row item
+ arranges its children horizontally.</li>
+ <li><a href="qml-repeater.html">Repeater Element</a> - The Repeater element allows you to repeat an Item-based component using a model.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+
+ <h2><a name="stateElement">QML State Elements</a></h2>
+ <p>
+ States and groups of states are formed using state elements.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-anchorchanges.html">AnchorChanges Element</a> - The AnchorChanges element allows you to change the anchors of an item in a state.</li>
+ <li><a href="qml-parentchange.html">ParentChange Element</a> - The ParentChange element allows you to reparent an Item in a state change.</li>
+ <li><a href="qml-propertychanges.html">PropertyChanges Element</a> - The PropertyChanges element describes new property bindings or values for a state.</li>
+ <li><a href="qml-state.html">State Element</a> - The State
+ element defines configurations of objects and properties.</li>
+ <li><a href="qml-statechangescript.html">StateChangeScript Element</a> - The StateChangeScript element allows you to run a script in a state.</li>
+ <li><a href="qml-stategroup.html">StateGroup Element</a> - The StateGroup element provides state support for non-Item elements.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="transformElement">QML Transform Elements</a></h2>
+ <p>
+ Advanced handling of transformations is controlled in transform elements.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-rotation.html">Rotation Element</a> - The Rotation object provides a way to rotate an Item.</li>
+ <li><a href="qml-scale.html">Scale Element</a> - The Scale element provides a way to scale an Item.</li>
+ <li><a href="qml-transform.html">Transform Element</a> - The Transform element provide a way of building advanced transformations on Items.</li>
+ <li><a href="qml-translate.html">Translate Element</a> - The Translate object provides a way to move an Item without changing its x or y properties.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="utilityElement">QML Utility Elements</a></h2>
+ <p>
+ These elements handle assorted operations such as event timing, Qt enumerations,
+ and font loading.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-binding.html">Binding Element</a> - The Binding element allows arbitrary property bindings to be created.</li>
+ <li><a href="qml-connections.html">Connections Element</a> - A Connections element describes generalized connections to signals.</li>
+ <li><a href="qml-doublevalidator.html">DoubleValidator Element</a> - Provides a validator for non-integer numbers.</li>
+ <li><a href="qml-fontloader.html">FontLoader Element</a> - The FontLoader element allows fonts to be loaded by name or URL.</li>
+ <li><a href="qml-intvalidator.html">IntValidator Element</a> - This element provides a validator for integer values.</li>
+ <li><a href="qml-layoutitem.html">LayoutItem Element</a> - The LayoutItem element allows declarative UI elements to be placed inside Qt's Graphics View layouts.</li>
+ <li><a href="qml-loader.html">Loader Element</a> - The Loader item allows dynamically loading an Item-based subtree from a URL or Component.</li>
+ <li><a href="qml-package.html">Package Element</a> - Package provides a bundle for shared contexts in multiple views.</li>
+ <li><a href="qml-qt.html">Qt Element</a> - The QML global Qt object provides useful enums and functions from Qt.</li>
+ <li><a href="qml-qtobject.html">QtObject Element</a> - The QtObject element is the most basic element in QML.</li>
+ <li><a href="qml-regexpvalidator.html">RegExpValidator Element</a> - This element provides a validator for regular expressions.</li>
+ <li><a href="qml-systempalette.html">SystemPalette Element</a> - The SystemPalette element provides access to the Qt palettes.</li>
+ <li><a href="qml-timer.html">Timer Element</a> - The Timer item triggers a handler at a specified interval.</li>
+ <li><a href="qml-workerscript.html">WorkerScript Element</a> - The WorkerScript element enables the use of threads in QML.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="modelView">Models and View Elements</a></h2>
+ <p>
+ Models and views are used to organize data and control their layouts using delegates.
+ Models dictate the data formation and views control the layouts of data in the model.</p>
+ <b>View Elements:</b>
+ <ul>
+ <li><a href="qml-gridview.html">GridView Element</a> - The GridView item provides a grid view of items provided by a model.</li>
+ <li><a href="qml-listview.html">ListView Element</a> - The ListView item provides a list view of items provided by a model.</li>
+ <li><a href="qml-pathview.html">PathView Element</a> - The PathView element lays out model-provided items on a path.</li>
+ <li><a href="qml-webview.html">WebView Element</a> - The WebView item allows you to add Web content to a canvas.</li>
+ </ul>
+ <b>Model Elements:</b>
+ <ul>
+ <li><a href="qml-folderlistmodel.html">FolderListModel Element</a> - The FolderListModel provides a model of the contents of a file system folder.</li>
+ <li><a href="qml-listelement.html">ListElement Element</a> - A ListElement defines a data item in a ListModel.</li>
+ <li><a href="qml-listmodel.html">ListModel Element</a> - The ListModel element defines a free-form list data source.</li>
+ <li><a href="qml-visualdatamodel.html">VisualDataModel Element</a> - The VisualDataModel encapsulates a model and delegate.</li>
+ <li><a href="qml-visualitemmodel.html">VisualItemModel Element</a> - The VisualItemModel allows items to be provided to a view.</li>
+ <li><a href="qml-xmllistmodel.html">XmlListModel Element</a> - The XmlListModel element is used to specify a model using XPath expressions.</li>
+ <li><a href="qml-xmlrole.html">XmlRole Element</a> - The XmlRole element allows you to specify a role for an XmlListModel.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="paths">Paths</a></h2>
+ <p>
+ QML components can be arranged along paths. Path elements allow control over different
+ path types.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-path.html">Path Element</a> - A Path object defines a path for use by PathView.</li>
+ <li><a href="qml-pathattribute.html">PathAttribute Element</a> - The PathAttribute allows setting an attribute at a given position in a Path.</li>
+ <li><a href="qml-pathcubic.html">PathCubic Element</a> - The PathCubic defines a cubic Bezier curve with two control points.</li>
+ <li><a href="qml-pathelement.html">PathElement Element</a> - PathElement is the base path type.</li>
+ <li><a href="qml-pathline.html">PathLine Element</a> - The PathLine defines a straight line.</li>
+ <li><a href="qml-pathpercent.html">PathPercent Element</a> - The PathPercent manipulates the way a path is interpreted.</li>
+ <li><a href="qml-pathquad.html">PathQuad Element</a> - The PathQuad defines a quadratic Bezier curve with a control point.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="ParticleElement">Particle Elements</a></h2>
+ <p>
+ Particle effects are declared and controlled using particle elements.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-particlemotiongravity.html">ParticleMotionGravity Element</a> - The ParticleMotionGravity object moves particles towards a point.</li>
+ <li><a href="qml-particlemotionlinear.html">ParticleMotionLinear Element</a> - The ParticleMotionLinear object moves particles linearly.</li>
+ <li><a href="qml-particlemotionwander.html">ParticleMotionWander Element</a> - The ParticleMotionWander object moves particles in a somewhat random fashion.</li>
+ <li><a href="qml-particles.html">Particles Element</a> - The Particles object generates and moves particles.</li>
+ </ul>
+ </div>
+ </div>
+ <!-- next -->
+ <div class="item group">
+ <hr>
+ <div class="secondary">
+ <div class="box">
+ <!-- video box -->
+ <h3>
+ image heading</h3>
+ <img src="" />
+ <p>
+ img descr.</p>
+ </div>
+ <!-- video box end -->
+ </div>
+ <div class="primary">
+ <h2><a name="bridge">Bridge Elements</a></h2>
+ <p>
+ Bridge elements allow direct communication between C++ and QML entities.</p>
+ <b>Elements:</b>
+ <ul>
+ <li><a href="qml-layoutitem.html">LayoutItem Element</a> - The LayoutItem element allows declarative UI elements to be placed inside Qt's Graphics View layouts.</li>
+ </ul>
+ </div>
+ </div>
+
+\endraw
+
+
+
+*/
+
diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc
index 8a969eb8e5..c3ce6d025d 100644
--- a/doc/src/declarative/qtbinding.qdoc
+++ b/doc/src/declarative/qtbinding.qdoc
@@ -31,7 +31,7 @@
\title Using QML in C++ Applications
QML is designed to be easily extensible from C++. The classes in the
-QtDeclarative module allow QML components to be loaded and manipulated from C++, and through
+Qt Declarative module allow QML components to be loaded and manipulated from C++, and through
Qt's \l{The Meta-Object System}{meta-object system}, QML and C++ objects can easily
communicate through Qt signals and slots. In addition, QML plugins can be written to create
reusable QML components for distribution.
@@ -41,20 +41,20 @@ You may want to mix QML and C++ for a number of reasons. For example:
\list
\o To use functionality defined in a C++ source (for example, when using a C++ Qt-based data model, or
calling functions in a third-party C++ library)
-\o To access functionality in the QtDeclarative module (for example, to dynamically generate
+\o To access functionality in the Qt Declarative module (for example, to dynamically generate
images using QDeclarativeImageProvider)
\o To write your own QML elements (whether for your applications, or for distribution to others)
\endlist
-To use the QtDeclarative module, you must include and link to the module appropriately, as shown on
+To use the Qt Declarative module, you must include and link to the module appropriately, as shown on
the \l {QtDeclarative}{module index page}. The \l {Qt Declarative UI Runtime} documentation
shows how to build a basic C++ application that uses this module.
\section1 Core module classes
-The QtDeclarative module provides a set of C++ APIs for extending your QML applications from C++ and
-embedding QML into C++ applications. There are several core classes in the QtDeclarative module
+The Qt Declarative module provides a set of C++ APIs for extending your QML applications from C++ and
+embedding QML into C++ applications. There are several core classes in the Qt Declarative module
that provide the essential capabilities for doing this. These are:
\list
@@ -448,7 +448,8 @@ now be used from QML:
\snippet doc/src/snippets/declarative/qtbinding/enums/standalone.qml 0
The C++ type must be registered with QML to use its enums. If your C++ type is not instantiable, it
-can be registered using qmlRegisterUncreatableType().
+can be registered using qmlRegisterUncreatableType(). To be accessible from QML, the names of enum values
+must begin with a capital letter.
See the \l {Tutorial: Writing QML extensions with C++}{Writing QML extensions with C++} tutorial and
the \l {Extending QML in C++} reference documentation for more information.
@@ -520,7 +521,7 @@ a QColor-type property or to call a C++ function that requires a QColor paramete
\section1 Writing QML plugins
-The QtDeclarative module includes the QDeclarativeExtensionPlugin class, which is an abstract
+The Qt Declarative module includes the QDeclarativeExtensionPlugin class, which is an abstract
class for writing QML plugins. This allows QML extension types to be dynamically loaded into
QML applications.
diff --git a/doc/src/declarative/qtdeclarative.qdoc b/doc/src/declarative/qtdeclarative.qdoc
index 7ecdc53dc2..f2b20329fa 100644
--- a/doc/src/declarative/qtdeclarative.qdoc
+++ b/doc/src/declarative/qtdeclarative.qdoc
@@ -27,7 +27,7 @@
/*!
\module QtDeclarative
- \title QtDeclarative Module
+ \title Qt Declarative Module
\ingroup modules
\brief The Qt Declarative module provides a declarative framework
diff --git a/doc/src/development/qmake-manual.qdoc b/doc/src/development/qmake-manual.qdoc
index 1230af3f70..d7a48a3647 100644
--- a/doc/src/development/qmake-manual.qdoc
+++ b/doc/src/development/qmake-manual.qdoc
@@ -1294,6 +1294,14 @@
test sections in generated bld.inf instead of their regular sections.
Note that this only affects automatically generated bld.inf content;
the content added via \c BLD_INF_RULES variable is not affected.
+ \row \o localize_deployment \o Makes \c lupdate tool add fields for
+ application captions and package file names into generated \c{.ts}
+ files. Qmake generates properly localized \c{.loc} and \c{.pkg} files
+ based on available translations. Translation file name bodies must
+ end with underscore and the language code for deployment localization
+ to work. E.g. \c{myapp_en.ts}.
+ \bold{Note:} All languages supported by Qt are not supported by Symbian,
+ so some \c{.ts} files may be ignored by qmake.
\endtable
These options have an effect on Linux/Unix platforms:
diff --git a/doc/src/getting-started/gettingstartedqml.qdoc b/doc/src/getting-started/gettingstartedqml.qdoc
index 54fa098c63..b76758749e 100644
--- a/doc/src/getting-started/gettingstartedqml.qdoc
+++ b/doc/src/getting-started/gettingstartedqml.qdoc
@@ -42,7 +42,7 @@
installation instructions and requirements for different platforms.
Qt Quick includes a declarative language called
- \l{Introduction to the QML language}{QML}, the \l{QtDeclarative Module}, and
+ \l{Introduction to the QML language}{QML}, the \l{Qt Declarative Module}, and
\l{QML Viewer}.
\section1 QML to Build User Interfaces
diff --git a/doc/src/platforms/emb-directfb-EmbLinux.qdoc b/doc/src/platforms/emb-directfb-EmbLinux.qdoc
index dbe6c14459..bcc06dc2c4 100644
--- a/doc/src/platforms/emb-directfb-EmbLinux.qdoc
+++ b/doc/src/platforms/emb-directfb-EmbLinux.qdoc
@@ -39,11 +39,11 @@ and generally chip vendors start out with the official version and
implement their own plugins to optimize the operations their hardware
supports.
-We recommend using Qt 4.6 with DirectFB. DirectFB support was introduced
-already into Qt for Embedded Linux as a labs project for Qt 4.3 and folded
+We recommend using Qt 4.6 or later with DirectFB. Support for DirectFB was
+introduced into Qt for Embedded Linux as a labs project for Qt 4.3 and folded
into Qt as a screen driver for Qt 4.4, but not supported fully. In Qt 4.5,
major changes were made to make it work with the optimized raster paint
-engine. And in Qt 4.6 these have been further improved.
+engine. These changes were further improved in Qt 4.6.
\tableofcontents
diff --git a/doc/src/platforms/emb-pointer.qdoc b/doc/src/platforms/emb-pointer.qdoc
index 81e532f5a0..506e9e002a 100644
--- a/doc/src/platforms/emb-pointer.qdoc
+++ b/doc/src/platforms/emb-pointer.qdoc
@@ -105,7 +105,7 @@
{touch panels} in which case the driver must be specified
explicitly to determine which device to use.
- To manually specify which driver to use, set the QWS_MOUSE_PROTO
+ To manually specify which driver to use, set the \c QWS_MOUSE_PROTO
environment variable. For example (if the current shell is bash,
ksh, zsh or sh):
@@ -156,7 +156,7 @@
\snippet doc/src/snippets/code/doc_src_emb-pointer.qdoc 8
To make \l{Qt for Embedded Linux} explicitly choose the tslib mouse
- handler, set the QWS_MOUSE_PROTO environment variable as explained
+ handler, set the \c QWS_MOUSE_PROTO environment variable as explained
above.
\endtable
diff --git a/doc/src/qt4-intro.qdoc b/doc/src/qt4-intro.qdoc
index 2384051b24..62decbb68c 100644
--- a/doc/src/qt4-intro.qdoc
+++ b/doc/src/qt4-intro.qdoc
@@ -466,7 +466,7 @@
collaborate tightly and create animated and fluid user experiences,
using existing knowledge in script language and design.
- \i QtDeclarative is a C++ library that provides the underlying engine,
+ \i Qt Declarative is a C++ library that provides the underlying engine,
which translates the declarative description of the UI in QML into
items on a QGraphicsScene. The library also provides APIs to bind
custom C++ types and elements to QML, and to connect the QML UI with
diff --git a/doc/src/snippets/code/doc_src_properties.qdoc b/doc/src/snippets/code/doc_src_properties.qdoc
index 7704160f74..a4ed409a52 100644
--- a/doc/src/snippets/code/doc_src_properties.qdoc
+++ b/doc/src/snippets/code/doc_src_properties.qdoc
@@ -91,7 +91,7 @@ for (int i=0; i<count; ++i) {
class MyClass : public QObject
{
Q_OBJECT
- Q_PROPERTY(Priority priority READ priority WRITE setPriority)
+ Q_PROPERTY(Priority priority READ priority WRITE setPriority NOTIFY priorityChanged)
Q_ENUMS(Priority)
public:
@@ -100,8 +100,19 @@ public:
enum Priority { High, Low, VeryHigh, VeryLow };
- void setPriority(Priority priority);
- Priority priority() const;
+ void setPriority(Priority priority)
+ {
+ m_priority = priority;
+ emit priorityChanged(priority);
+ }
+ Priority priority() const
+ { return m_priority; }
+
+signals:
+ void priorityChanged(Priority);
+
+private:
+ Priority m_priority;
};
//! [5]
diff --git a/doc/src/snippets/moc/myclass2.h b/doc/src/snippets/moc/myclass2.h
index ca79515167..daea23c1f0 100644
--- a/doc/src/snippets/moc/myclass2.h
+++ b/doc/src/snippets/moc/myclass2.h
@@ -58,8 +58,11 @@ public:
MyClass(QObject *parent = 0);
~MyClass();
- void setPriority(Priority priority);
- Priority priority() const;
+ void setPriority(Priority priority) { m_priority = priority; }
+ Priority priority() const { return m_priority; }
+
+private:
+ Priority m_priority;
};
//! [0]
diff --git a/doc/src/snippets/threads/threads.cpp b/doc/src/snippets/threads/threads.cpp
index d8d1270713..d16c39884a 100644
--- a/doc/src/snippets/threads/threads.cpp
+++ b/doc/src/snippets/threads/threads.cpp
@@ -93,15 +93,12 @@ private:
typedef int SomeClass;
//! [7]
-QThreadStorage<QCache<QString, SomeClass> *> caches;
+QThreadStorage<QCache<QString, SomeClass> > caches;
void cacheObject(const QString &key, SomeClass *object)
//! [7] //! [8]
{
- if (!caches.hasLocalData())
- caches.setLocalData(new QCache<QString, SomeClass>);
-
- caches.localData()->insert(key, object);
+ caches.localData().insert(key, object);
}
void removeFromCache(const QString &key)
@@ -110,7 +107,7 @@ void removeFromCache(const QString &key)
if (!caches.hasLocalData())
return;
- caches.localData()->remove(key);
+ caches.localData().remove(key);
}
//! [9]
diff --git a/examples/symbianpkgrules.pri b/examples/symbianpkgrules.pri
index 0f615c70eb..fe9b487d55 100644
--- a/examples/symbianpkgrules.pri
+++ b/examples/symbianpkgrules.pri
@@ -2,12 +2,13 @@
RSS_RULES ="group_name=\"QtExamples\";"
+nokiaVendor = "Nokia, Qt"
vendorinfo = \
"; Localised Vendor name" \
- "%{\"Nokia, Qt\"}" \
+ "%{$$addLanguageDependentPkgItem(nokiaVendor)}" \
" " \
"; Unique Vendor name" \
- ":\"Nokia, Qt\"" \
+ ":\"$$nokiaVendor\"" \
" "
examples_deployment.pkg_prerules += vendorinfo
diff --git a/mkspecs/common/symbian/appCaptionForTranslation.cpp b/mkspecs/common/symbian/appCaptionForTranslation.cpp
new file mode 100644
index 0000000000..c29514770e
--- /dev/null
+++ b/mkspecs/common/symbian/appCaptionForTranslation.cpp
@@ -0,0 +1,46 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the qmake spec 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$
+**
+****************************************************************************/
+
+//: Application short caption, currently only relevant for application projects in Symbian.
+QT_TRANSLATE_NOOP("QtApplicationCaptions", "Application short caption")
+
+//: Application long caption, currently only relevant for application projects in Symbian.
+QT_TRANSLATE_NOOP("QtApplicationCaptions", "Application long caption")
diff --git a/mkspecs/common/symbian/packageNameForTranslation.cpp b/mkspecs/common/symbian/packageNameForTranslation.cpp
new file mode 100644
index 0000000000..bc4a7f438c
--- /dev/null
+++ b/mkspecs/common/symbian/packageNameForTranslation.cpp
@@ -0,0 +1,47 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the qmake spec 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$
+**
+****************************************************************************/
+
+//: Installation package name, currently only relevant for Symbian projects that deploy something.
+QT_TRANSLATE_NOOP("QtPackageNames", "Package name")
+
+//: Smart installer installation package name, currently only relevant for Symbian projects that
+//: deploy something.
+QT_TRANSLATE_NOOP("QtPackageNames", "Smart installer package name")
diff --git a/mkspecs/common/symbian/symbian-mmp.conf b/mkspecs/common/symbian/symbian-mmp.conf
index 1fbd302c68..4d554bd4ae 100644
--- a/mkspecs/common/symbian/symbian-mmp.conf
+++ b/mkspecs/common/symbian/symbian-mmp.conf
@@ -18,8 +18,8 @@ MMP_RULES += $$MMP_RULES_DONT_EXPORT_ALL_CLASS_IMPEDIMENTA
SYMBIAN_PLATFORMS = WINSCW GCCE ARMV5 ARMV6
INCLUDEPATH = \
- $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off \
- $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian \
+ $$[QT_INSTALL_DATA]/mkspecs/common/symbian/stl-off \
+ $$[QT_INSTALL_DATA]/mkspecs/common/symbian \
$${EPOCROOT}epoc32/include \
$$OS_LAYER_LIBC_SYSTEMINCLUDE \
$$INCLUDEPATH
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index 4d0320dd91..0b5c573eef 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -130,6 +130,17 @@ QMAKE_LIBS_QT_ENTRY = -lqtmain$${QT_LIBINFIX}.lib
QMAKE_LIBS_NO_QT_ENTRY = -llibcrt0.lib
QMAKE_LIBS_NO_QT_ENTRY_GCCE = -llibcrt0_gcce.lib
+# List of languages that have a Symbian language code mapping provided in localize_deployment.prf
+SYMBIAN_SUPPORTED_LANGUAGES = \
+ af sq am ar hy bn bg my be ca \
+ hr cs da nl en et fi fr gd ka \
+ de el gu he hi hu is id ga it \
+ ja kn kk ko lo lv lt mk ms ml \
+ mr mo mn nb pl pt pa ro ru sr \
+ si sk sl so es sw sv tl ta te \
+ th bo ti tr tk uk ur vi cy zu \
+ nn
+
# These directories must match what configure uses for QT_INSTALL_PLUGINS and QT_INSTALL_IMPORTS
QT_PLUGINS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/plugins
QT_IMPORTS_BASE_DIR = /resource/qt/imports
@@ -194,17 +205,6 @@ isEmpty(S60_VERSION) {
# multiple language compatible dependency statements him/herself.
default_deployment.pkg_prerules += pkg_depends_webkit pkg_depends_qt pkg_platform_dependencies
-
-# Supports S60 3.1, 3.2, 5.0, Symbian^3, and Symbian^4 by default
-pkg_platform_dependencies = \
- "; Default HW/platform dependencies" \
- "[0x102032BE],0,0,0,{\"S60ProductID\"}" \
- "[0x102752AE],0,0,0,{\"S60ProductID\"}" \
- "[0x1028315F],0,0,0,{\"S60ProductID\"}" \
- "[0x20022E6D],0,0,0,{\"S60ProductID\"}" \
- "[0x20032DE7],0,0,0,{\"S60ProductID\"}" \
- " "
-
DEPLOYMENT += default_deployment default_bin_deployment default_resource_deployment default_reg_deployment
defineReplace(symbianRemoveSpecialCharacters) {
@@ -225,3 +225,44 @@ defineReplace(symbianRemoveSpecialCharacters) {
return ($$fixedStr)
}
+# Determines translations that are Symbian supported
+defineTest(matchSymbianLanguages) {
+ SYMBIAN_MATCHED_LANGUAGES =
+ SYMBIAN_MATCHED_TRANSLATIONS =
+
+ # Cannot parse .ts file for language here, so detect it from filename.
+ # Allow two and three character language and country codes.
+ for(translation, TRANSLATIONS) {
+ language = $$replace(translation, "^(.*/)?[^/]+_(([^_]{2,3}_)?[^_]{2,3})\\.ts$", \\2)
+ contains(SYMBIAN_SUPPORTED_LANGUAGES, $$language) {
+ SYMBIAN_MATCHED_LANGUAGES += $$language
+ SYMBIAN_MATCHED_TRANSLATIONS += $$translation
+ }
+ }
+
+ isEmpty(SYMBIAN_MATCHED_LANGUAGES): SYMBIAN_MATCHED_LANGUAGES = en
+
+ export(SYMBIAN_MATCHED_LANGUAGES)
+ export(SYMBIAN_MATCHED_TRANSLATIONS)
+}
+
+# Symbian pkg files that define multiple languages require a language specific string to be
+# defined for various items, even though the string often needs to be same for all languages.
+# This replacement method will generate correct string for such cases based on TRANSLATIONS
+# variable.
+defineReplace(addLanguageDependentPkgItem) {
+ localize_deployment:!isEmpty(TRANSLATIONS):isEmpty(SYMBIAN_MATCHED_LANGUAGES) {
+ matchSymbianLanguages()
+ }
+
+ pkgItem = $$eval($$1)
+ pkgLanguageList =
+
+ for(dummyItem, SYMBIAN_MATCHED_LANGUAGES) {
+ pkgLanguageList += "\"$$pkgItem\""
+ }
+
+ isEmpty(pkgLanguageList): pkgLanguageList = "\"$$pkgItem\""
+
+ return($$join(pkgLanguageList,",",,))
+}
diff --git a/mkspecs/features/default_post.prf b/mkspecs/features/default_post.prf
index 09c6587aad..9fb9f10e76 100644
--- a/mkspecs/features/default_post.prf
+++ b/mkspecs/features/default_post.prf
@@ -110,3 +110,13 @@ QMAKE_LIBDIR += $$QMAKE_LIBDIR_POST
}
QMAKE_EXTRA_TARGETS += check
}
+
+# Add special translation sources for projects that require them.
+# Note 1: Since lupdate will not parse regular config scopes right, contains checks are used instead.
+# Note 2: Checking for last value of TEMPLATE is used instead of simple contains check because
+# lupdate doesn't respect "-=" variable assignments and therefore always finds "app"
+# as the first value of TEMPLATE variable.
+contains(CONFIG, lupdate_run):contains(CONFIG, localize_deployment) {
+ equals($$list($$last(TEMPLATE)), app): SOURCES += $$[QT_INSTALL_DATA]/mkspecs/common/symbian/appCaptionForTranslation.cpp
+ SOURCES += $$[QT_INSTALL_DATA]/mkspecs/common/symbian/packageNameForTranslation.cpp
+}
diff --git a/mkspecs/features/symbian/default_post.prf b/mkspecs/features/symbian/default_post.prf
index d9ff03d6ee..ec6ecd0c84 100644
--- a/mkspecs/features/symbian/default_post.prf
+++ b/mkspecs/features/symbian/default_post.prf
@@ -52,3 +52,15 @@ isEmpty(TARGET.UID2) {
}
}
}
+
+# Supports S60 3.1, 3.2, 5.0, Symbian^3, and Symbian^4 by default
+platform_product_id = S60ProductID
+platform_product_id = $$addLanguageDependentPkgItem(platform_product_id)
+pkg_platform_dependencies = \
+ "; Default HW/platform dependencies" \
+ "[0x102032BE],0,0,0,{$$platform_product_id}" \
+ "[0x102752AE],0,0,0,{$$platform_product_id}" \
+ "[0x1028315F],0,0,0,{$$platform_product_id}" \
+ "[0x20022E6D],0,0,0,{$$platform_product_id}" \
+ "[0x20032DE7],0,0,0,{$$platform_product_id}" \
+ " "
diff --git a/mkspecs/features/symbian/localize_deployment.prf b/mkspecs/features/symbian/localize_deployment.prf
new file mode 100644
index 0000000000..5f52dbc293
--- /dev/null
+++ b/mkspecs/features/symbian/localize_deployment.prf
@@ -0,0 +1,82 @@
+SYMBIAN_LANG.af = 34 #Afrikaans
+SYMBIAN_LANG.sq = 35 #Albanian
+SYMBIAN_LANG.am = 36 #Amharic
+SYMBIAN_LANG.ar = 37 #Arabic
+SYMBIAN_LANG.hy = 38 #Armenian
+SYMBIAN_LANG.bn = 41 #Bengali
+SYMBIAN_LANG.bg = 42 #Bulgarian
+SYMBIAN_LANG.my = 43 #Burmese
+SYMBIAN_LANG.be = 40 #Byelorussian
+SYMBIAN_LANG.ca = 44 #Catalan
+SYMBIAN_LANG.hr = 45 #Croatian
+SYMBIAN_LANG.cs = 25 #Czech
+SYMBIAN_LANG.da = 07 #Danish
+SYMBIAN_LANG.nl = 18 #Dutch
+SYMBIAN_LANG.en = 01 #English(UK)
+SYMBIAN_LANG.et = 49 #Estonian
+SYMBIAN_LANG.fi = 09 #Finnish
+SYMBIAN_LANG.fr = 02 #French
+SYMBIAN_LANG.gd = 52 #Gaelic
+SYMBIAN_LANG.ka = 53 #Georgian
+SYMBIAN_LANG.de = 03 #German
+SYMBIAN_LANG.el = 54 #Greek
+SYMBIAN_LANG.gu = 56 #Gujarati
+SYMBIAN_LANG.he = 57 #Hebrew
+SYMBIAN_LANG.hi = 58 #Hindi
+SYMBIAN_LANG.hu = 17 #Hungarian
+SYMBIAN_LANG.is = 15 #Icelandic
+SYMBIAN_LANG.id = 59 #Indonesian
+SYMBIAN_LANG.ga = 60 #Irish
+SYMBIAN_LANG.it = 05 #Italian
+SYMBIAN_LANG.ja = 32 #Japanese
+SYMBIAN_LANG.kn = 62 #Kannada
+SYMBIAN_LANG.kk = 63 #Kazakh
+SYMBIAN_LANG.ko = 65 #Korean
+SYMBIAN_LANG.lo = 66 #Laothian
+SYMBIAN_LANG.lv = 67 #Latvian
+SYMBIAN_LANG.lt = 68 #Lithuanian
+SYMBIAN_LANG.mk = 69 #Macedonian
+SYMBIAN_LANG.ms = 70 #Malay
+SYMBIAN_LANG.ml = 71 #Malayalam
+SYMBIAN_LANG.mr = 72 #Marathi
+SYMBIAN_LANG.mo = 73 #Moldavian
+SYMBIAN_LANG.mn = 74 #Mongolian
+SYMBIAN_LANG.nb = 08 #Norwegian
+SYMBIAN_LANG.pl = 27 #Polish
+SYMBIAN_LANG.pt = 13 #Portuguese
+SYMBIAN_LANG.pa = 77 #Punjabi
+SYMBIAN_LANG.ro = 78 #Romanian
+SYMBIAN_LANG.ru = 16 #Russian
+SYMBIAN_LANG.sr = 79 #Serbian
+SYMBIAN_LANG.si = 80 #Singhalese
+SYMBIAN_LANG.sk = 26 #Slovak
+SYMBIAN_LANG.sl = 28 #Slovenian
+SYMBIAN_LANG.so = 81 #Somali
+SYMBIAN_LANG.es = 04 #Spanish
+SYMBIAN_LANG.sw = 84 #Swahili
+SYMBIAN_LANG.sv = 06 #Swedish
+SYMBIAN_LANG.tl = 39 #Tagalog
+SYMBIAN_LANG.ta = 87 #Tamil
+SYMBIAN_LANG.te = 88 #Telugu
+SYMBIAN_LANG.th = 33 #Thai
+SYMBIAN_LANG.bo = 89 #Tibetan
+SYMBIAN_LANG.ti = 90 #Tigrinya
+SYMBIAN_LANG.tr = 14 #Turkish
+SYMBIAN_LANG.tk = 92 #Turkmen
+SYMBIAN_LANG.uk = 93 #Ukrainian
+SYMBIAN_LANG.ur = 94 #Urdu
+SYMBIAN_LANG.vi = 96 #Vietnamese
+SYMBIAN_LANG.cy = 97 #Welsh
+SYMBIAN_LANG.zu = 98 #Zulu
+SYMBIAN_LANG.nn = 75 #Nynorsk
+
+isEmpty(SYMBIAN_MATCHED_LANGUAGES) {
+ matchSymbianLanguages()
+}
+
+!isEmpty(SYMBIAN_MATCHED_TRANSLATIONS) {
+ # Generate dependencies to .ts files for pkg files
+ template_pkg_target.depends += $$SYMBIAN_MATCHED_TRANSLATIONS
+ installer_pkg_target.depends += $$SYMBIAN_MATCHED_TRANSLATIONS
+ stub_pkg_target.depends += $$SYMBIAN_MATCHED_TRANSLATIONS
+}
diff --git a/mkspecs/features/symbian/qt.prf b/mkspecs/features/symbian/qt.prf
index b5d3d98002..c8f97aa439 100644
--- a/mkspecs/features/symbian/qt.prf
+++ b/mkspecs/features/symbian/qt.prf
@@ -25,9 +25,10 @@ INCLUDEPATH = $$PREPEND_INCLUDEPATH $$INCLUDEPATH
# Note: Qt libs package with full capabilities has UID3 of 0x2001E61C,
# while self-signed version typically has temporary UID3 of 0xE001E61C.
contains(CONFIG, qt):!contains(TARGET.UID3, 0x2001E61C):!contains(TARGET.UID3, 0xE001E61C):isEmpty(QT_LIBINFIX) {
+ qt_pkg_name = Qt
pkg_depends_qt += \
"; Default dependency to Qt libraries" \
- "(0x2001E61C), $${QT_MAJOR_VERSION}, $${QT_MINOR_VERSION}, $${QT_PATCH_VERSION}, {\"Qt\"}"
+ "(0x2001E61C), $${QT_MAJOR_VERSION}, $${QT_MINOR_VERSION}, $${QT_PATCH_VERSION}, {$$addLanguageDependentPkgItem(qt_pkg_name)}"
# Projects linking to webkit need dependency to webkit
contains(QT, webkit): {
@@ -38,9 +39,10 @@ contains(CONFIG, qt):!contains(TARGET.UID3, 0x2001E61C):!contains(TARGET.UID3, 0
QT_WEBKIT_PATCH_VERSION = $${QT_PATCH_VERSION}
}
+ webkit_pkg_name = QtWebKit
pkg_depends_webkit += \
"; Dependency to Qt Webkit" \
- "(0x200267C2), $${QT_WEBKIT_MAJOR_VERSION}, $${QT_WEBKIT_MINOR_VERSION}, $${QT_WEBKIT_PATCH_VERSION}, {\"QtWebKit\"}"
+ "(0x200267C2), $${QT_WEBKIT_MAJOR_VERSION}, $${QT_WEBKIT_MINOR_VERSION}, $${QT_WEBKIT_PATCH_VERSION}, {$$addLanguageDependentPkgItem(webkit_pkg_name)}"
} else {
default_deployment.pkg_prerules -= pkg_depends_webkit
}
diff --git a/mkspecs/features/symbian/sis_targets.prf b/mkspecs/features/symbian/sis_targets.prf
index e5a33cb799..7456deb048 100644
--- a/mkspecs/features/symbian/sis_targets.prf
+++ b/mkspecs/features/symbian/sis_targets.prf
@@ -13,6 +13,17 @@ else:!equals(DEPLOYMENT, default_deployment) {
equals(GENERATE_SIS_TARGETS, true) {
baseTarget = $$symbianRemoveSpecialCharacters($$basename(TARGET))
+ template_pkg_target.target = $${baseTarget}_template.pkg
+ template_pkg_target.depends += $$_PRO_FILE_
+ template_pkg_target.commands = $(MAKE) -f $(MAKEFILE) qmake
+ installer_pkg_target.target = $${baseTarget}_installer.pkg
+ installer_pkg_target.depends += $$_PRO_FILE_
+ installer_pkg_target.commands = $(MAKE) -f $(MAKEFILE) qmake
+ stub_pkg_target.target = $${baseTarget}_stub.pkg
+ stub_pkg_target.depends += $$_PRO_FILE_
+ stub_pkg_target.commands = $(MAKE) -f $(MAKEFILE) qmake
+ QMAKE_EXTRA_TARGETS += template_pkg_target installer_pkg_target stub_pkg_target
+
symbian-abld|symbian-sbsv2 {
symbian-sbsv2 {
@@ -36,6 +47,7 @@ equals(GENERATE_SIS_TARGETS, true) {
, \
$(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
+ sis_target.depends += $${baseTarget}_template.pkg
ok_sis_target.target = ok_sis
ok_sis_target.commands = createpackage $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \
@@ -55,6 +67,7 @@ equals(GENERATE_SIS_TARGETS, true) {
, \
$(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
+ unsigned_sis_target.depends += $${baseTarget}_template.pkg
ok_unsigned_sis_target.target = ok_unsigned_sis
ok_unsigned_sis_target.commands = createpackage $$CONVERT_GCCE_PARAM $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg $(QT_SIS_TARGET)
@@ -68,7 +81,7 @@ equals(GENERATE_SIS_TARGETS, true) {
, \
$(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
- installer_sis_target.depends = sis
+ installer_sis_target.depends = $${baseTarget}_installer.pkg sis
ok_installer_sis_target.target = ok_installer_sis
ok_installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
@@ -80,7 +93,7 @@ equals(GENERATE_SIS_TARGETS, true) {
, \
$(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
- unsigned_installer_sis_target.depends = unsigned_sis
+ unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg unsigned_sis
ok_unsigned_installer_sis_target.target = ok_unsigned_installer_sis
ok_unsigned_installer_sis_target.commands = createpackage $(QT_SIS_OPTIONS) -o $${baseTarget}_installer.pkg
@@ -105,6 +118,7 @@ equals(GENERATE_SIS_TARGETS, true) {
, \
$(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
+ stub_sis_target.depends += $${baseTarget}_stub.pkg
ok_stub_sis_target.target = ok_stub_sis
ok_stub_sis_target.commands = createpackage -s $(QT_SIS_OPTIONS) $${baseTarget}_stub.pkg \
@@ -155,11 +169,11 @@ equals(GENERATE_SIS_TARGETS, true) {
sis_target.target = sis
sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_template.pkg \
- $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
- sis_target.depends = first
+ sis_target.depends = first $${baseTarget}_template.pkg
unsigned_sis_target.target = unsigned_sis
unsigned_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) -o $${baseTarget}_template.pkg
- unsigned_sis_target.depends = first
+ unsigned_sis_target.depends = first $${baseTarget}_template.pkg
target_sis_target.target = $${sis_destdir}/$${baseTarget}.sis
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
@@ -167,11 +181,11 @@ equals(GENERATE_SIS_TARGETS, true) {
installer_sis_target.target = installer_sis
installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
$(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
- installer_sis_target.depends = sis
+ installer_sis_target.depends = $${baseTarget}_installer.pkg sis
unsigned_installer_sis_target.target = unsigned_installer_sis
unsigned_installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) -o $${baseTarget}_installer.pkg
- unsigned_installer_sis_target.depends = unsigned_sis
+ unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg unsigned_sis
!isEmpty(sis_destdir):!equals(sis_destdir, "."):!equals(sis_destdir, "./") {
sis_target.commands += && $$QMAKE_MOVE $${baseTarget}.sis $$sis_destdir
diff --git a/mkspecs/features/symbian/stl.prf b/mkspecs/features/symbian/stl.prf
index 65d4b93af2..1fd5e16e32 100644
--- a/mkspecs/features/symbian/stl.prf
+++ b/mkspecs/features/symbian/stl.prf
@@ -12,7 +12,7 @@ INCLUDEPATH += $$OS_LAYER_STDCPP_SYSTEMINCLUDE
# Remove mkspecs/common/symbian/stl-off from beginning of includepath
# in order to use new and delete operators from STL
-INCLUDEPATH -= $$[QT_INSTALL_PREFIX]/mkspecs/common/symbian/stl-off
+INCLUDEPATH -= $$[QT_INSTALL_DATA]/mkspecs/common/symbian/stl-off
# libstdcppv5 is preferred over libstdcpp as it has/uses the throwing version of operator new
# STDCPP turns on standard C++ new behaviour (ie. throwing new)
diff --git a/qmake/Makefile.unix b/qmake/Makefile.unix
index 561cd0a1f0..b9e281b57e 100644
--- a/qmake/Makefile.unix
+++ b/qmake/Makefile.unix
@@ -68,7 +68,7 @@ CPPFLAGS = -I. -Igenerators -Igenerators/unix -Igenerators/win32 -Igenerators/ma
-I$(BUILD_PATH)/src/corelib/global -I$(BUILD_PATH)/src/corelib/xml \
-I$(SOURCE_PATH)/tools/shared \
-DQT_NO_PCRE \
- -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED \
+ -DQT_BUILD_QMAKE -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT \
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_NO_COMPONENT -DQT_NO_STL \
-DQT_NO_COMPRESS -I$(QMAKESPEC) -DHAVE_QCONFIG_CPP -DQT_NO_THREAD -DQT_NO_QOBJECT \
-DQT_NO_GEOM_VARIANT -DQT_NO_DEPRECATED $(OPENSOURCE_CXXFLAGS)
diff --git a/qmake/Makefile.win32 b/qmake/Makefile.win32
index 4d0121c02b..c04bcb29a3 100644
--- a/qmake/Makefile.win32
+++ b/qmake/Makefile.win32
@@ -40,7 +40,8 @@ CFLAGS_BARE = -c -Fo./ \
-I$(SOURCE_PATH)\tools\shared \
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NODLL -DQT_NO_STL \
-DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP -DQT_BUILD_QMAKE -DQT_NO_THREAD \
- -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED
+ -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM -DQT_NO_PCRE -DQT_BOOTSTRAPPED \
+ -DQLIBRARYINFO_EPOCROOT
CFLAGS = -Yuqmake_pch.h -FIqmake_pch.h -Fpqmake_pch.pch $(CFLAGS_BARE) $(CFLAGS)
CXXFLAGS_BARE = $(CFLAGS_BARE)
diff --git a/qmake/Makefile.win32-g++ b/qmake/Makefile.win32-g++
index f313f9ef0b..29fbd0af7a 100644
--- a/qmake/Makefile.win32-g++
+++ b/qmake/Makefile.win32-g++
@@ -25,7 +25,7 @@ CFLAGS = -c -o$@ -O \
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE \
-DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP \
-DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
- -DQT_BOOTSTRAPPED
+ -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT
CXXFLAGS = $(CFLAGS)
LFLAGS = -static-libgcc -static-libstdc++ -s
LIBS = -lole32 -luuid
diff --git a/qmake/Makefile.win32-g++-sh b/qmake/Makefile.win32-g++-sh
index af5428877d..9c7942c3ca 100644
--- a/qmake/Makefile.win32-g++-sh
+++ b/qmake/Makefile.win32-g++-sh
@@ -25,7 +25,7 @@ CFLAGS = -c -o$@ -O \
-DQT_NO_TEXTCODEC -DQT_NO_UNICODETABLES -DQT_LITE_COMPONENT -DQT_NO_PCRE \
-DQT_NODLL -DQT_NO_STL -DQT_NO_COMPRESS -DUNICODE -DHAVE_QCONFIG_CPP \
-DQT_BUILD_QMAKE -DQT_NO_THREAD -DQT_NO_QOBJECT -DQT_NO_GEOM_VARIANT -DQT_NO_DATASTREAM \
- -DQT_BOOTSTRAPPED
+ -DQT_BOOTSTRAPPED -DQLIBRARYINFO_EPOCROOT
CXXFLAGS = $(CFLAGS)
LFLAGS = -static-libgcc -static-libstdc++ -s
LIBS = -lole32 -luuid
diff --git a/qmake/generators/symbian/initprojectdeploy_symbian.cpp b/qmake/generators/symbian/initprojectdeploy_symbian.cpp
index eb45b10487..2349c11c76 100644
--- a/qmake/generators/symbian/initprojectdeploy_symbian.cpp
+++ b/qmake/generators/symbian/initprojectdeploy_symbian.cpp
@@ -47,7 +47,7 @@
#include <qdebug.h>
// Included from tools/shared
-#include <symbian/epocroot.h>
+#include <symbian/epocroot_p.h>
#define SYSBIN_DIR "/sys/bin"
#define HW_Z_DIR "epoc32/data/z"
@@ -75,7 +75,7 @@ static bool isPlugin(const QFileInfo& info, const QString& devicePath)
&& (devicePath.size() < 8
|| (0 != devicePath.compare(QLatin1String(SYSBIN_DIR), Qt::CaseInsensitive)
&& 0 != devicePath.mid(1).compare(QLatin1String(":" SYSBIN_DIR), Qt::CaseInsensitive)
- && 0 != devicePath.compare(epocRoot() + QLatin1String(HW_Z_DIR SYSBIN_DIR))))) {
+ && 0 != devicePath.compare(qt_epocRoot() + QLatin1String(HW_Z_DIR SYSBIN_DIR))))) {
return true;
} else {
return false;
@@ -182,7 +182,7 @@ void initProjectDeploySymbian(QMakeProject* project,
QString deploymentDrive;
if (0 == platform.compare(QLatin1String(ROM_DEPLOYMENT_PLATFORM))) {
- deploymentDrive = epocRoot() + HW_Z_DIR;
+ deploymentDrive = qt_epocRoot() + HW_Z_DIR;
} else {
deploymentDrive = targetPathHasDriveLetter ? targetPath.left(2) : QLatin1String("c:");
}
@@ -225,9 +225,9 @@ void initProjectDeploySymbian(QMakeProject* project,
} else {
if (0 == platform.compare(QLatin1String(EMULATOR_DEPLOYMENT_PLATFORM))) {
if (devicePathHasDriveLetter) {
- devicePath = epocRoot() + "epoc32/winscw/" + devicePath.remove(1, 1);
+ devicePath = qt_epocRoot() + "epoc32/winscw/" + devicePath.remove(1, 1);
} else {
- devicePath = epocRoot() + "epoc32/winscw/c" + devicePath;
+ devicePath = qt_epocRoot() + "epoc32/winscw/c" + devicePath;
}
} else {
if (devicePathHasDriveLetter
@@ -279,7 +279,7 @@ void initProjectDeploySymbian(QMakeProject* project,
// Executables and libraries are deployed to \sys\bin
QFileInfo targetPath;
if (epocBuild)
- targetPath.setFile(epocRoot() + "epoc32/release/" + platform + "/" + build + "/");
+ targetPath.setFile(qt_epocRoot() + "epoc32/release/" + platform + "/" + build + "/");
else
targetPath.setFile(info.path() + QDir::separator());
if(devicePathHasDriveLetter) {
diff --git a/qmake/generators/symbian/symbian_makefile.h b/qmake/generators/symbian/symbian_makefile.h
index 63cede2763..9339223978 100644
--- a/qmake/generators/symbian/symbian_makefile.h
+++ b/qmake/generators/symbian/symbian_makefile.h
@@ -81,18 +81,18 @@ public:
}
}
+ SymbianLocalizationList symbianLocalizationList;
+ parseTsFiles(&symbianLocalizationList);
+
if (generatePkg) {
- generatePkgFile(iconFile, false);
+ generatePkgFile(iconFile, false, symbianLocalizationList);
}
- // Get the application translations and convert to symbian OS lang code, i.e. decical number
- QStringList symbianLangCodes = symbianLangCodesFromTsFiles();
-
if (targetType == TypeExe) {
if (!this->project->values("CONFIG").contains("no_icon", Qt::CaseInsensitive)) {
writeRegRssFile(userRssRules);
writeRssFile(numberOfIcons, iconFile);
- writeLocFile(symbianLangCodes);
+ writeLocFile(symbianLocalizationList);
}
}
diff --git a/qmake/generators/symbian/symbiancommon.cpp b/qmake/generators/symbian/symbiancommon.cpp
index 9d4f27e124..602bcc29df 100644
--- a/qmake/generators/symbian/symbiancommon.cpp
+++ b/qmake/generators/symbian/symbiancommon.cpp
@@ -41,9 +41,10 @@
#include "symbiancommon.h"
#include <qdebug.h>
+#include <qxmlstream.h>
// Included from tools/shared
-#include <symbian/epocroot.h>
+#include <symbian/epocroot_p.h>
#define RESOURCE_DIRECTORY_RESOURCE "\\\\resource\\\\apps\\\\"
@@ -151,7 +152,9 @@ QString romPath(const QString& path)
return QLatin1String("z:") + path;
}
-void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocBuild)
+void SymbianCommonGenerator::generatePkgFile(const QString &iconFile,
+ bool epocBuild,
+ const SymbianLocalizationList &symbianLocalizationList)
{
QMakeProject *project = generator->project;
QString pkgFilename = Option::output_dir + QLatin1Char('/') +
@@ -270,8 +273,17 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
// Apply some defaults if specific data does not exist in PKG pre-rules
if (languageRules.isEmpty()) {
- // language, (*** hardcoded to english atm, should be parsed from TRANSLATIONS)
- languageRules << "; Language\n&EN\n\n";
+ if (symbianLocalizationList.isEmpty()) {
+ languageRules << "; Language\n&EN\n\n";
+ } else {
+ QStringList langCodes;
+ SymbianLocalizationListIterator iter(symbianLocalizationList);
+ while (iter.hasNext()) {
+ const SymbianLocalization &loc = iter.next();
+ langCodes << loc.symbianLanguageCode;
+ }
+ languageRules << QString("; Languages\n&%1\n\n").arg(langCodes.join(","));
+ }
} else if (headerRules.isEmpty()) {
// In case user defines langs, he must take care also about SIS header
fprintf(stderr, "Warning: If language is defined with DEPLOYMENT pkg_prerules, also the SIS header must be defined\n");
@@ -320,12 +332,14 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
// Package header
QString sisHeader = "; SIS header: name, uid, version\n#{\"%1\"},(%2),%3\n\n";
- QString visualTarget = project->values("DEPLOYMENT.display_name").join(" ");
- if (visualTarget.isEmpty())
- visualTarget = generator->escapeFilePath(project->first("TARGET"));
- visualTarget = removePathSeparators(visualTarget);
- QString wrapperTarget = visualTarget + " installer";
+ QString defaultVisualTarget = project->values("DEPLOYMENT.display_name").join(" ");
+ if (defaultVisualTarget.isEmpty())
+ defaultVisualTarget = generator->escapeFilePath(project->first("TARGET"));
+ defaultVisualTarget = removePathSeparators(defaultVisualTarget);
+
+ QString visualTarget = generatePkgNameForHeader(symbianLocalizationList, defaultVisualTarget, false);
+ QString wrapperTarget = generatePkgNameForHeader(symbianLocalizationList, defaultVisualTarget, true);
if (installerSisHeader.startsWith("0x", Qt::CaseInsensitive)) {
tw << sisHeader.arg(wrapperTarget).arg(installerSisHeader).arg(applicationVersion);
@@ -344,7 +358,13 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
// Vendor name
if (!containsStartWithItem('%', vendorRules)) {
- vendorRules << "; Default localized vendor name\n%{\"Vendor\"}\n\n";
+ QString vendorStr = QLatin1String("\"Vendor\",");
+ QString locVendors = vendorStr;
+ for (int i = 1; i < symbianLocalizationList.size(); i++) {
+ locVendors.append(vendorStr);
+ }
+ locVendors.chop(1);
+ vendorRules << QString("; Default localized vendor name\n%{%1}\n\n").arg(locVendors);
}
if (!containsStartWithItem(':', vendorRules)) {
vendorRules << "; Default unique vendor name\n:\"Vendor\"\n\n";
@@ -385,12 +405,19 @@ void SymbianCommonGenerator::generatePkgFile(const QString &iconFile, bool epocB
t << manufacturerStr << endl;
}
+ // ### FIXME: remove epocBuild check once makefile based mkspecs support localized resource generation
+ if (epocBuild && symbianLocalizationList.size()) {
+ // Add localized resources to DEPLOYMENT if default resource deployment is done
+ addLocalizedResourcesToDeployment("default_resource_deployment.sources", symbianLocalizationList);
+ addLocalizedResourcesToDeployment("default_reg_deployment.sources", symbianLocalizationList);
+ }
+
// deploy files specified by DEPLOYMENT variable
QString remoteTestPath;
QString zDir;
remoteTestPath = QString("!:\\private\\%1").arg(privateDirUid);
if (epocBuild)
- zDir = epocRoot() + QLatin1String("epoc32/data/z");
+ zDir = qt_epocRoot() + QLatin1String("epoc32/data/z");
DeploymentList depList;
initProjectDeploySymbian(project, depList, remoteTestPath, true, epocBuild, "$(PLATFORM)", "$(TARGET)", generatedDirs, generatedFiles);
@@ -633,12 +660,9 @@ void SymbianCommonGenerator::writeRssFile(QString &numberOfIcons, QString &iconF
}
}
-void SymbianCommonGenerator::writeLocFile(QStringList &symbianLangCodes)
+void SymbianCommonGenerator::writeLocFile(const SymbianLocalizationList &symbianLocalizationList)
{
- QString filename(fixedTarget);
- if (!Option::output_dir.isEmpty())
- filename = Option::output_dir + '/' + filename;
- filename.append(".loc");
+ QString filename = generateLocFileName();
QFile ft(filename);
if (ft.open(QIODevice::WriteOnly)) {
generatedFiles << ft.fileName();
@@ -658,11 +682,22 @@ void SymbianCommonGenerator::writeLocFile(QStringList &symbianLangCodes)
t << "#ifdef LANGUAGE_SC" << endl;
t << "#define STRING_r_short_caption \"" << displayName << "\"" << endl;
t << "#define STRING_r_caption \"" << displayName << "\"" << endl;
- foreach(QString lang, symbianLangCodes) {
- t << "#elif defined LANGUAGE_" << lang << endl;
- t << "#define STRING_r_short_caption \"" << displayName << "\"" << endl;
- t << "#define STRING_r_caption \"" << displayName << "\"" << endl;
+
+ SymbianLocalizationListIterator iter(symbianLocalizationList);
+ while (iter.hasNext()) {
+ const SymbianLocalization &loc = iter.next();
+ QString shortCaption = loc.shortCaption;
+ QString longCaption = loc.longCaption;
+ if (shortCaption.isEmpty())
+ shortCaption = displayName;
+ if (longCaption.isEmpty())
+ longCaption = displayName;
+
+ t << "#elif defined LANGUAGE_" << loc.symbianLanguageCode << endl;
+ t << "#define STRING_r_short_caption \"" << shortCaption << "\"" << endl;
+ t << "#define STRING_r_caption \"" << longCaption << "\"" << endl;
}
+
t << "#else" << endl;
t << "#define STRING_r_short_caption \"" << displayName << "\"" << endl;
t << "#define STRING_r_caption \"" << displayName << "\"" << endl;
@@ -803,195 +838,49 @@ void SymbianCommonGenerator::writeCustomDefFile()
}
}
-QStringList SymbianCommonGenerator::symbianLangCodesFromTsFiles()
+void SymbianCommonGenerator::parseTsFiles(SymbianLocalizationList *symbianLocalizationList)
{
- QStringList tsfiles;
- QStringList symbianLangCodes;
- tsfiles << generator->project->values("TRANSLATIONS");
+ if (!generator->project->isActiveConfig("localize_deployment")) {
+ return;
+ }
- fillQt2S60LangMapTable();
+ QStringList symbianTsFiles;
- foreach(QString file, tsfiles) {
- int extIndex = file.lastIndexOf(".");
- int langIndex = file.lastIndexOf("_", (extIndex - file.length()));
- langIndex += 1;
- QString qtlang = file.mid(langIndex, extIndex - langIndex);
- QString s60lang = qt2S60LangMapTable.value(qtlang, QString("SC"));
+ symbianTsFiles << generator->project->values("SYMBIAN_MATCHED_TRANSLATIONS");
- if (!symbianLangCodes.contains(s60lang) && s60lang != "SC")
- symbianLangCodes += s60lang;
- }
+ if (!symbianTsFiles.isEmpty()) {
+ fillQt2SymbianLocalizationList(symbianLocalizationList);
- return symbianLangCodes;
+ QMutableListIterator<SymbianLocalization> iter(*symbianLocalizationList);
+ while (iter.hasNext()) {
+ SymbianLocalization &loc = iter.next();
+ static QString matchStrTemplate = QLatin1String(".*_%1\\.ts");
+ QString matchStr = matchStrTemplate.arg(loc.qtLanguageCode);
+
+ foreach (QString file, symbianTsFiles) {
+ QRegExp matcher(matchStr);
+ if (matcher.exactMatch(file) && parseTsContent(file, &loc))
+ break;
+ }
+ }
+ }
}
-void SymbianCommonGenerator::fillQt2S60LangMapTable()
+void SymbianCommonGenerator::fillQt2SymbianLocalizationList(SymbianLocalizationList *symbianLocalizationList)
{
- qt2S60LangMapTable.reserve(170); // 165 items at time of writing.
- qt2S60LangMapTable.insert("ab", "SC"); //Abkhazian //
- qt2S60LangMapTable.insert("om", "SC"); //Afan //
- qt2S60LangMapTable.insert("aa", "SC"); //Afar //
- qt2S60LangMapTable.insert("af", "34"); //Afrikaans //Afrikaans
- qt2S60LangMapTable.insert("sq", "35"); //Albanian //Albanian
- qt2S60LangMapTable.insert("am", "36"); //Amharic //Amharic
- qt2S60LangMapTable.insert("ar", "37"); //Arabic //Arabic
- qt2S60LangMapTable.insert("hy", "38"); //Armenian //Armenian
- qt2S60LangMapTable.insert("as", "SC"); //Assamese //
- qt2S60LangMapTable.insert("ay", "SC"); //Aymara //
- qt2S60LangMapTable.insert("az", "SC"); //Azerbaijani //
- qt2S60LangMapTable.insert("ba", "SC"); //Bashkir //
- qt2S60LangMapTable.insert("eu", "SC"); //Basque //
- qt2S60LangMapTable.insert("bn", "41"); //Bengali //Bengali
- qt2S60LangMapTable.insert("dz", "SC"); //Bhutani //
- qt2S60LangMapTable.insert("bh", "SC"); //Bihari //
- qt2S60LangMapTable.insert("bi", "SC"); //Bislama //
- qt2S60LangMapTable.insert("br", "SC"); //Breton //
- qt2S60LangMapTable.insert("bg", "42"); //Bulgarian //Bulgarian
- qt2S60LangMapTable.insert("my", "43"); //Burmese //Burmese
- qt2S60LangMapTable.insert("be", "40"); //Byelorussian //Belarussian
- qt2S60LangMapTable.insert("km", "SC"); //Cambodian //
- qt2S60LangMapTable.insert("ca", "44"); //Catalan //Catalan
- qt2S60LangMapTable.insert("zh", "SC"); //Chinese //
- qt2S60LangMapTable.insert("co", "SC"); //Corsican //
- qt2S60LangMapTable.insert("hr", "45"); //Croatian //Croatian
- qt2S60LangMapTable.insert("cs", "25"); //Czech //Czech
- qt2S60LangMapTable.insert("da", "07"); //Danish //Danish
- qt2S60LangMapTable.insert("nl", "18"); //Dutch //Dutch
- qt2S60LangMapTable.insert("en", "01"); //English //English(UK)
- qt2S60LangMapTable.insert("eo", "SC"); //Esperanto //
- qt2S60LangMapTable.insert("et", "49"); //Estonian //Estonian
- qt2S60LangMapTable.insert("fo", "SC"); //Faroese //
- qt2S60LangMapTable.insert("fj", "SC"); //Fiji //
- qt2S60LangMapTable.insert("fi", "09"); //Finnish //Finnish
- qt2S60LangMapTable.insert("fr", "02"); //French //French
- qt2S60LangMapTable.insert("fy", "SC"); //Frisian //
- qt2S60LangMapTable.insert("gd", "52"); //Gaelic //Gaelic
- qt2S60LangMapTable.insert("gl", "SC"); //Galician //
- qt2S60LangMapTable.insert("ka", "53"); //Georgian //Georgian
- qt2S60LangMapTable.insert("de", "03"); //German //German
- qt2S60LangMapTable.insert("el", "54"); //Greek //Greek
- qt2S60LangMapTable.insert("kl", "SC"); //Greenlandic //
- qt2S60LangMapTable.insert("gn", "SC"); //Guarani //
- qt2S60LangMapTable.insert("gu", "56"); //Gujarati //Gujarati
- qt2S60LangMapTable.insert("ha", "SC"); //Hausa //
- qt2S60LangMapTable.insert("he", "57"); //Hebrew //Hebrew
- qt2S60LangMapTable.insert("hi", "58"); //Hindi //Hindi
- qt2S60LangMapTable.insert("hu", "17"); //Hungarian //Hungarian
- qt2S60LangMapTable.insert("is", "15"); //Icelandic //Icelandic
- qt2S60LangMapTable.insert("id", "59"); //Indonesian //Indonesian
- qt2S60LangMapTable.insert("ia", "SC"); //Interlingua //
- qt2S60LangMapTable.insert("ie", "SC"); //Interlingue //
- qt2S60LangMapTable.insert("iu", "SC"); //Inuktitut //
- qt2S60LangMapTable.insert("ik", "SC"); //Inupiak //
- qt2S60LangMapTable.insert("ga", "60"); //Irish //Irish
- qt2S60LangMapTable.insert("it", "05"); //Italian //Italian
- qt2S60LangMapTable.insert("ja", "32"); //Japanese //Japanese
- qt2S60LangMapTable.insert("jv", "SC"); //Javanese //
- qt2S60LangMapTable.insert("kn", "62"); //Kannada //Kannada
- qt2S60LangMapTable.insert("ks", "SC"); //Kashmiri //
- qt2S60LangMapTable.insert("kk", "63"); //Kazakh //Kazakh
- qt2S60LangMapTable.insert("rw", "SC"); //Kinyarwanda //
- qt2S60LangMapTable.insert("ky", "SC"); //Kirghiz //
- qt2S60LangMapTable.insert("ko", "65"); //Korean //Korean
- qt2S60LangMapTable.insert("ku", "SC"); //Kurdish //
- qt2S60LangMapTable.insert("rn", "SC"); //Kurundi //
- qt2S60LangMapTable.insert("lo", "66"); //Laothian //Laothian
- qt2S60LangMapTable.insert("la", "SC"); //Latin //
- qt2S60LangMapTable.insert("lv", "67"); //Latvian //Latvian
- qt2S60LangMapTable.insert("ln", "SC"); //Lingala //
- qt2S60LangMapTable.insert("lt", "68"); //Lithuanian //Lithuanian
- qt2S60LangMapTable.insert("mk", "69"); //Macedonian //Macedonian
- qt2S60LangMapTable.insert("mg", "SC"); //Malagasy //
- qt2S60LangMapTable.insert("ms", "70"); //Malay //Malay
- qt2S60LangMapTable.insert("ml", "71"); //Malayalam //Malayalam
- qt2S60LangMapTable.insert("mt", "SC"); //Maltese //
- qt2S60LangMapTable.insert("mi", "SC"); //Maori //
- qt2S60LangMapTable.insert("mr", "72"); //Marathi //Marathi
- qt2S60LangMapTable.insert("mo", "73"); //Moldavian //Moldovian
- qt2S60LangMapTable.insert("mn", "74"); //Mongolian //Mongolian
- qt2S60LangMapTable.insert("na", "SC"); //Nauru //
- qt2S60LangMapTable.insert("ne", "SC"); //Nepali //
- qt2S60LangMapTable.insert("nb", "08"); //Norwegian //Norwegian
- qt2S60LangMapTable.insert("oc", "SC"); //Occitan //
- qt2S60LangMapTable.insert("or", "SC"); //Oriya //
- qt2S60LangMapTable.insert("ps", "SC"); //Pashto //
- qt2S60LangMapTable.insert("fa", "SC"); //Persian //
- qt2S60LangMapTable.insert("pl", "27"); //Polish //Polish
- qt2S60LangMapTable.insert("pt", "13"); //Portuguese //Portuguese
- qt2S60LangMapTable.insert("pa", "77"); //Punjabi //Punjabi
- qt2S60LangMapTable.insert("qu", "SC"); //Quechua //
- qt2S60LangMapTable.insert("rm", "SC"); //RhaetoRomance //
- qt2S60LangMapTable.insert("ro", "78"); //Romanian //Romanian
- qt2S60LangMapTable.insert("ru", "16"); //Russian //Russian
- qt2S60LangMapTable.insert("sm", "SC"); //Samoan //
- qt2S60LangMapTable.insert("sg", "SC"); //Sangho //
- qt2S60LangMapTable.insert("sa", "SC"); //Sanskrit //
- qt2S60LangMapTable.insert("sr", "79"); //Serbian //Serbian
- qt2S60LangMapTable.insert("sh", "SC"); //SerboCroatian //
- qt2S60LangMapTable.insert("st", "SC"); //Sesotho //
- qt2S60LangMapTable.insert("tn", "SC"); //Setswana //
- qt2S60LangMapTable.insert("sn", "SC"); //Shona //
- qt2S60LangMapTable.insert("sd", "SC"); //Sindhi //
- qt2S60LangMapTable.insert("si", "80"); //Singhalese //Sinhalese
- qt2S60LangMapTable.insert("ss", "SC"); //Siswati //
- qt2S60LangMapTable.insert("sk", "26"); //Slovak //Slovak
- qt2S60LangMapTable.insert("sl", "28"); //Slovenian //Slovenian
- qt2S60LangMapTable.insert("so", "81"); //Somali //Somali
- qt2S60LangMapTable.insert("es", "04"); //Spanish //Spanish
- qt2S60LangMapTable.insert("su", "SC"); //Sundanese //
- qt2S60LangMapTable.insert("sw", "84"); //Swahili //Swahili
- qt2S60LangMapTable.insert("sv", "06"); //Swedish //Swedish
- qt2S60LangMapTable.insert("tl", "39"); //Tagalog //Tagalog
- qt2S60LangMapTable.insert("tg", "SC"); //Tajik //
- qt2S60LangMapTable.insert("ta", "87"); //Tamil //Tamil
- qt2S60LangMapTable.insert("tt", "SC"); //Tatar //
- qt2S60LangMapTable.insert("te", "88"); //Telugu //Telugu
- qt2S60LangMapTable.insert("th", "33"); //Thai //Thai
- qt2S60LangMapTable.insert("bo", "89"); //Tibetan //Tibetan
- qt2S60LangMapTable.insert("ti", "90"); //Tigrinya //Tigrinya
- qt2S60LangMapTable.insert("to", "SC"); //Tonga //
- qt2S60LangMapTable.insert("ts", "SC"); //Tsonga //
- qt2S60LangMapTable.insert("tr", "14"); //Turkish //Turkish
- qt2S60LangMapTable.insert("tk", "92"); //Turkmen //Turkmen
- qt2S60LangMapTable.insert("tw", "SC"); //Twi //
- qt2S60LangMapTable.insert("ug", "SC"); //Uigur //
- qt2S60LangMapTable.insert("uk", "93"); //Ukrainian //Ukrainian
- qt2S60LangMapTable.insert("ur", "94"); //Urdu //Urdu
- qt2S60LangMapTable.insert("uz", "SC"); //Uzbek //
- qt2S60LangMapTable.insert("vi", "96"); //Vietnamese //Vietnamese
- qt2S60LangMapTable.insert("vo", "SC"); //Volapuk //
- qt2S60LangMapTable.insert("cy", "97"); //Welsh //Welsh
- qt2S60LangMapTable.insert("wo", "SC"); //Wolof //
- qt2S60LangMapTable.insert("xh", "SC"); //Xhosa //
- qt2S60LangMapTable.insert("yi", "SC"); //Yiddish //
- qt2S60LangMapTable.insert("yo", "SC"); //Yoruba //
- qt2S60LangMapTable.insert("za", "SC"); //Zhuang //
- qt2S60LangMapTable.insert("zu", "98"); //Zulu //Zulu
- qt2S60LangMapTable.insert("nn", "75"); //Nynorsk //NorwegianNynorsk
- qt2S60LangMapTable.insert("bs", "SC"); //Bosnian //
- qt2S60LangMapTable.insert("dv", "SC"); //Divehi //
- qt2S60LangMapTable.insert("gv", "SC"); //Manx //
- qt2S60LangMapTable.insert("kw", "SC"); //Cornish //
- qt2S60LangMapTable.insert("ak", "SC"); //Akan //
- qt2S60LangMapTable.insert("kok", "SC"); //Konkani //
- qt2S60LangMapTable.insert("gaa", "SC"); //Ga //
- qt2S60LangMapTable.insert("ig", "SC"); //Igbo //
- qt2S60LangMapTable.insert("kam", "SC"); //Kamba //
- qt2S60LangMapTable.insert("syr", "SC"); //Syriac //
- qt2S60LangMapTable.insert("byn", "SC"); //Blin //
- qt2S60LangMapTable.insert("gez", "SC"); //Geez //
- qt2S60LangMapTable.insert("kfo", "SC"); //Koro //
- qt2S60LangMapTable.insert("sid", "SC"); //Sidamo //
- qt2S60LangMapTable.insert("cch", "SC"); //Atsam //
- qt2S60LangMapTable.insert("tig", "SC"); //Tigre //
- qt2S60LangMapTable.insert("kaj", "SC"); //Jju //
- qt2S60LangMapTable.insert("fur", "SC"); //Friulian //
- qt2S60LangMapTable.insert("ve", "SC"); //Venda //
- qt2S60LangMapTable.insert("ee", "SC"); //Ewe //
- qt2S60LangMapTable.insert("wa", "SC"); //Walamo //
- qt2S60LangMapTable.insert("haw", "SC"); //Hawaiian //
- qt2S60LangMapTable.insert("kcg", "SC"); //Tyap //
- qt2S60LangMapTable.insert("ny", "SC"); //Chewa //
+ static QString symbianCodePrefix = QLatin1String("SYMBIAN_LANG.");
+
+ QStringList symbianLanguages = generator->project->values("SYMBIAN_MATCHED_LANGUAGES");
+
+ foreach (QString qtCode, symbianLanguages) {
+ SymbianLocalization newLoc;
+ QString symbianCodeVariable = symbianCodePrefix + qtCode;
+ newLoc.symbianLanguageCode = generator->project->first(symbianCodeVariable);
+ if (!newLoc.symbianLanguageCode.isEmpty()) {
+ newLoc.qtLanguageCode = qtCode;
+ symbianLocalizationList->append(newLoc);
+ }
+ }
}
void SymbianCommonGenerator::parsePreRules(const QString &deploymentVariable,
@@ -1057,3 +946,183 @@ void SymbianCommonGenerator::parsePostRules(const QString &deploymentVariable,
}
}
+bool SymbianCommonGenerator::parseTsContent(const QString &tsFilename, SymbianLocalization *loc)
+{
+ bool retval = true;
+ QMakeProject *project = generator->project;
+ QFile tsFile(tsFilename);
+
+ if (tsFile.exists()) {
+ if (tsFile.open(QIODevice::ReadOnly)) {
+ static QString applicationCaptionsContext = QLatin1String("QtApplicationCaptions");
+ static QString pkgNameContext = QLatin1String("QtPackageNames");
+ static QString tsElement = QLatin1String("TS");
+ static QString contextElement = QLatin1String("context");
+ static QString nameElement = QLatin1String("name");
+ static QString messageElement = QLatin1String("message");
+ static QString sourceElement = QLatin1String("source");
+ static QString translationElement = QLatin1String("translation");
+ static QString shortCaptionId = QLatin1String("Application short caption");
+ static QString longCaptionId = QLatin1String("Application long caption");
+ static QString pkgDisplayNameId = QLatin1String("Package name");
+ static QString installerPkgDisplayNameId = QLatin1String("Smart installer package name");
+ static QString languageAttribute = QLatin1String("language");
+ static QChar underscoreChar = QLatin1Char('_');
+
+ enum CurrentContext {
+ ContextUnknown,
+ ContextUninteresting,
+ ContextInteresting
+ };
+
+ QXmlStreamReader xml(&tsFile);
+
+ while (xml.name() != tsElement)
+ xml.readNextStartElement();
+
+ while (xml.readNextStartElement()) {
+ if (xml.name() == contextElement) {
+ CurrentContext currentContext = ContextUnknown;
+ while (xml.readNextStartElement()) {
+ if (currentContext == ContextUnknown) {
+ // Expect name element before message elements
+ if (xml.name() == nameElement) {
+ QString nameText = xml.readElementText();
+ if (nameText == applicationCaptionsContext || nameText == pkgNameContext) {
+ currentContext = ContextInteresting;
+ } else {
+ currentContext = ContextUninteresting;
+ }
+ } else {
+ xml.skipCurrentElement();
+ }
+ } else if (currentContext == ContextInteresting) {
+ if (xml.name() == messageElement) {
+ QString source;
+ QString translation;
+ while (xml.readNextStartElement()) {
+ if (xml.name() == sourceElement) {
+ source = xml.readElementText();
+ } else if (xml.name() == translationElement) {
+ translation = xml.readElementText();
+ } else {
+ xml.skipCurrentElement();
+ }
+ }
+
+ if (source == shortCaptionId) {
+ if (loc->shortCaption.isEmpty()) {
+ loc->shortCaption = translation;
+ } else {
+ fprintf(stderr, "Warning: Duplicate application short caption defined in (%s).\n",
+ qPrintable(tsFilename));
+ }
+ } else if (source == longCaptionId) {
+ if (loc->longCaption.isEmpty()) {
+ loc->longCaption = translation;
+ } else {
+ fprintf(stderr, "Warning: Duplicate application long caption defined in (%s).\n",
+ qPrintable(tsFilename));
+ }
+ } else if (source == pkgDisplayNameId) {
+ if (loc->pkgDisplayName.isEmpty()) {
+ loc->pkgDisplayName = translation;
+ } else {
+ fprintf(stderr, "Warning: Duplicate package display name defined in (%s).\n",
+ qPrintable(tsFilename));
+ }
+ } else if (source == installerPkgDisplayNameId) {
+ if (loc->installerPkgDisplayName.isEmpty()) {
+ loc->installerPkgDisplayName = translation;
+ } else {
+ fprintf(stderr, "Warning: Duplicate smart installer package display name defined in (%s).\n",
+ qPrintable(tsFilename));
+ }
+ }
+ } else {
+ xml.skipCurrentElement();
+ }
+ } else {
+ xml.skipCurrentElement();
+ }
+ }
+ } else {
+ xml.skipCurrentElement();
+ }
+ }
+ if (xml.hasError()) {
+ retval = false;
+ fprintf(stderr, "ERROR: Encountered error \"%s\" when parsing ts file (%s).\n",
+ qPrintable(xml.errorString()), qPrintable(tsFilename));
+ }
+ } else {
+ retval = false;
+ fprintf(stderr, "Warning: Could not open ts file (%s).\n", qPrintable(tsFilename));
+ }
+ } else {
+ retval = false;
+ fprintf(stderr, "Warning: ts file does not exist: (%s), unable to parse it.\n",
+ qPrintable(tsFilename));
+ }
+
+ return retval;
+}
+
+QString SymbianCommonGenerator::generatePkgNameForHeader(const SymbianLocalizationList &symbianLocalizationList,
+ const QString &defaultName,
+ bool isForSmartInstaller)
+{
+ QStringList allNames;
+ QString noTranslation = defaultName;
+
+ if (isForSmartInstaller)
+ noTranslation += QLatin1String(" installer");
+
+ SymbianLocalizationListIterator iter(symbianLocalizationList);
+ while (iter.hasNext()) {
+ const SymbianLocalization &loc = iter.next();
+ QString currentName;
+ if (isForSmartInstaller) {
+ currentName = loc.installerPkgDisplayName;
+ } else {
+ currentName = loc.pkgDisplayName;
+ }
+
+ if (currentName.isEmpty())
+ currentName = noTranslation;
+
+ allNames << currentName;
+ }
+
+ if (!allNames.size())
+ allNames << noTranslation;
+
+ return allNames.join("\",\"");
+
+}
+
+void SymbianCommonGenerator::addLocalizedResourcesToDeployment(const QString &deploymentFilesVar,
+ const SymbianLocalizationList &symbianLocalizationList)
+{
+ QStringList locResources;
+ foreach (QString defaultResource, generator->project->values(deploymentFilesVar)) {
+ if (defaultResource.endsWith(".rsc")) {
+ defaultResource.chop(2);
+ SymbianLocalizationListIterator iter(symbianLocalizationList);
+ while (iter.hasNext()) {
+ const SymbianLocalization &loc = iter.next();
+ locResources << QString(defaultResource + loc.symbianLanguageCode);
+ }
+ }
+ }
+ generator->project->values(deploymentFilesVar) << locResources;
+}
+
+QString SymbianCommonGenerator::generateLocFileName()
+{
+ QString fileName(fixedTarget);
+ if (!Option::output_dir.isEmpty())
+ fileName = Option::output_dir + QLatin1Char('/') + fileName;
+ fileName.append(".loc");
+ return fileName;
+}
diff --git a/qmake/generators/symbian/symbiancommon.h b/qmake/generators/symbian/symbiancommon.h
index 80f2079e0d..1db5890448 100644
--- a/qmake/generators/symbian/symbiancommon.h
+++ b/qmake/generators/symbian/symbiancommon.h
@@ -48,6 +48,20 @@
#define PRINT_FILE_CREATE_ERROR(filename) fprintf(stderr, "Error: Could not create '%s'\n", qPrintable(filename));
+class SymbianLocalization
+{
+public:
+ QString qtLanguageCode;
+ QString symbianLanguageCode;
+ QString shortCaption;
+ QString longCaption;
+ QString pkgDisplayName;
+ QString installerPkgDisplayName;
+};
+
+typedef QList<SymbianLocalization> SymbianLocalizationList;
+typedef QListIterator<SymbianLocalization> SymbianLocalizationListIterator;
+
class SymbianCommonGenerator
{
public:
@@ -59,6 +73,7 @@ public:
TypeSubdirs
};
+
SymbianCommonGenerator(MakefileGenerator *generator);
virtual void init();
@@ -68,7 +83,9 @@ protected:
QString removePathSeparators(QString &file);
void removeSpecialCharacters(QString& str);
void removeEpocSpecialCharacters(QString& str);
- void generatePkgFile(const QString &iconFile, bool epocBuild);
+ void generatePkgFile(const QString &iconFile,
+ bool epocBuild,
+ const SymbianLocalizationList &symbianLocalizationList);
bool containsStartWithItem(const QChar &c, const QStringList& src);
void writeRegRssFile(QMap<QString, QStringList> &useritems);
@@ -76,15 +93,15 @@ protected:
const QString &listTag,
const QString &listItem);
void writeRssFile(QString &numberOfIcons, QString &iconfile);
- void writeLocFile(QStringList &symbianLangCodes);
+ void writeLocFile(const SymbianLocalizationList &symbianLocalizationList);
void readRssRules(QString &numberOfIcons,
QString &iconFile,
QMap<QString, QStringList> &userRssRules);
void writeCustomDefFile();
- QStringList symbianLangCodesFromTsFiles();
- void fillQt2S60LangMapTable();
+ void parseTsFiles(SymbianLocalizationList *symbianLocalizationList);
+ void fillQt2SymbianLocalizationList(SymbianLocalizationList *symbianLocalizationList);
void parsePreRules(const QString &deploymentVariable,
const QString &variableSuffix,
@@ -95,7 +112,13 @@ protected:
void parsePostRules(const QString &deploymentVariable,
const QString &variableSuffix,
QStringList *rawRuleList);
-
+ bool parseTsContent(const QString &tsFilename, SymbianLocalization *loc);
+ QString generatePkgNameForHeader(const SymbianLocalizationList &symbianLocalizationList,
+ const QString &defaultName,
+ bool isForSmartInstaller);
+ void addLocalizedResourcesToDeployment(const QString &deploymentFilesVar,
+ const SymbianLocalizationList &symbianLocalizationList);
+ QString generateLocFileName();
protected:
MakefileGenerator *generator;
@@ -106,8 +129,6 @@ protected:
QString privateDirUid;
QString uid3;
TargetType targetType;
-
- QHash<QString, QString> qt2S60LangMapTable;
};
#endif // SYMBIANCOMMON_H
diff --git a/qmake/generators/symbian/symmake.cpp b/qmake/generators/symbian/symmake.cpp
index 0d63cdfff6..7a5a33636b 100644
--- a/qmake/generators/symbian/symmake.cpp
+++ b/qmake/generators/symbian/symmake.cpp
@@ -50,7 +50,7 @@
#include <qdebug.h>
// Included from tools/shared
-#include <symbian/epocroot.h>
+#include <symbian/epocroot_p.h>
#define RESOURCE_DIRECTORY_MMP "/resource/apps"
#define REGISTRATION_RESOURCE_DIRECTORY_HW "/private/10003a3f/import/apps"
@@ -87,10 +87,10 @@ QString SymbianMakefileGenerator::fixPathForMmp(const QString& origPath, const Q
{
static QString epocRootStr;
if (epocRootStr.isEmpty()) {
- epocRootStr = epocRoot();
+ epocRootStr = qt_epocRoot();
QFileInfo efi(epocRootStr);
if (!efi.exists() || epocRootStr.isEmpty()) {
- fprintf(stderr, "Unable to resolve epocRoot '%s' to real dir on current drive, defaulting to '/' for mmp paths\n", qPrintable(epocRoot()));
+ fprintf(stderr, "Unable to resolve epocRoot '%s' to real dir on current drive, defaulting to '/' for mmp paths\n", qPrintable(qt_epocRoot()));
epocRootStr = "/";
} else {
epocRootStr = efi.absoluteFilePath();
@@ -122,7 +122,7 @@ QString SymbianMakefileGenerator::absolutizePath(const QString& origPath)
// Prepend epocroot to any paths beginning with "/epoc32/"
QString resultPath = QDir::fromNativeSeparators(origPath);
if (resultPath.startsWith("/epoc32/", Qt::CaseInsensitive))
- resultPath = QDir::fromNativeSeparators(epocRoot()) + resultPath.mid(1);
+ resultPath = QDir::fromNativeSeparators(qt_epocRoot()) + resultPath.mid(1);
QFileInfo fi(fileInfo(resultPath));
@@ -187,8 +187,8 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t)
QMap<QString, QStringList> userRssRules;
readRssRules(numberOfIcons, iconFile, userRssRules);
- // Get the application translations and convert to symbian OS lang code, i.e. decical number
- QStringList symbianLangCodes = symbianLangCodesFromTsFiles();
+ SymbianLocalizationList symbianLocalizationList;
+ parseTsFiles(&symbianLocalizationList);
// Generate pkg files if there are any actual files to deploy
bool generatePkg = false;
@@ -207,7 +207,7 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t)
}
if (generatePkg) {
- generatePkgFile(iconFile, true);
+ generatePkgFile(iconFile, true, symbianLocalizationList);
}
writeBldInfContent(t, generatePkg, iconFile);
@@ -244,13 +244,13 @@ bool SymbianMakefileGenerator::writeMakefile(QTextStream &t)
writeMkFile(wrapperFileName, false);
QString absoluteMmpFileName = Option::output_dir + QLatin1Char('/') + mmpFileName;
- writeMmpFile(absoluteMmpFileName, symbianLangCodes);
+ writeMmpFile(absoluteMmpFileName, symbianLocalizationList);
if (targetType == TypeExe) {
if (!project->isActiveConfig("no_icon")) {
writeRegRssFile(userRssRules);
writeRssFile(numberOfIcons, iconFile);
- writeLocFile(symbianLangCodes);
+ writeLocFile(symbianLocalizationList);
}
}
@@ -491,7 +491,7 @@ void SymbianMakefileGenerator::writeMmpFileHeader(QTextStream &t)
t << "// ==============================================================================" << endl << endl;
}
-void SymbianMakefileGenerator::writeMmpFile(QString &filename, QStringList &symbianLangCodes)
+void SymbianMakefileGenerator::writeMmpFile(QString &filename, const SymbianLocalizationList &symbianLocalizationList)
{
QFile ft(filename);
if (ft.open(QIODevice::WriteOnly)) {
@@ -503,7 +503,7 @@ void SymbianMakefileGenerator::writeMmpFile(QString &filename, QStringList &symb
writeMmpFileTargetPart(t);
- writeMmpFileResourcePart(t, symbianLangCodes);
+ writeMmpFileResourcePart(t, symbianLocalizationList);
writeMmpFileMacrosPart(t);
@@ -645,7 +645,7 @@ void SymbianMakefileGenerator::writeMmpFileTargetPart(QTextStream& t)
Application registration resource files should be installed to the
\private\10003a3f\import\apps directory.
*/
-void SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, QStringList &symbianLangCodes)
+void SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, const SymbianLocalizationList &symbianLocalizationList)
{
if ((targetType == TypeExe) &&
!project->isActiveConfig("no_icon")) {
@@ -655,8 +655,10 @@ void SymbianMakefileGenerator::writeMmpFileResourcePart(QTextStream& t, QStringL
t << "SOURCEPATH\t\t\t. " << endl;
t << "LANG SC "; // no endl
- foreach(QString lang, symbianLangCodes) {
- t << lang << " "; // no endl
+ SymbianLocalizationListIterator iter(symbianLocalizationList);
+ while (iter.hasNext()) {
+ const SymbianLocalization &loc = iter.next();
+ t << loc.symbianLanguageCode << " "; // no endl
}
t << endl;
t << MMP_START_RESOURCE "\t\t" << locTarget << endl;
@@ -1098,3 +1100,18 @@ void SymbianMakefileGenerator::generateDistcleanTargets(QTextStream& t)
t << "distclean: clean dodistclean" << endl;
t << endl;
}
+
+// Returns a string that can be used as a dependency to loc file on other targets
+QString SymbianMakefileGenerator::generateLocFileTarget(QTextStream& t, const QString& locCmd)
+{
+ QString locFile;
+ if (targetType == TypeExe && !project->isActiveConfig("no_icon")) {
+ locFile = Option::fixPathToLocalOS(generateLocFileName());
+ t << locFile << QLatin1String(": ") << project->values("SYMBIAN_MATCHED_TRANSLATIONS").join(" ") << endl;
+ t << locCmd << endl;
+ t << endl;
+ locFile += QLatin1Char(' ');
+ }
+
+ return locFile;
+}
diff --git a/qmake/generators/symbian/symmake.h b/qmake/generators/symbian/symmake.h
index a1a8e887c1..aba11dea12 100644
--- a/qmake/generators/symbian/symmake.h
+++ b/qmake/generators/symbian/symmake.h
@@ -97,11 +97,11 @@ protected:
static bool removeDuplicatedStrings(QStringList& stringList);
void writeMmpFileHeader(QTextStream &t);
- void writeMmpFile(QString &filename, QStringList &symbianLangCodes);
+ void writeMmpFile(QString &filename, const SymbianLocalizationList &symbianLocalizationList);
void writeMmpFileMacrosPart(QTextStream& t);
void addMacro(QTextStream& t, const QString& value);
void writeMmpFileTargetPart(QTextStream& t);
- void writeMmpFileResourcePart(QTextStream& t, QStringList &symbianLangCodes);
+ void writeMmpFileResourcePart(QTextStream& t, const SymbianLocalizationList &symbianLocalizationList);
void writeMmpFileSystemIncludePart(QTextStream& t);
void writeMmpFileIncludePart(QTextStream& t);
void writeMmpFileLibraryPart(QTextStream& t);
@@ -131,6 +131,7 @@ protected:
const QString& itemSuffix);
void generateDistcleanTargets(QTextStream& t);
+ QString generateLocFileTarget(QTextStream& t, const QString& locCmd);
// Subclass implements
virtual void writeBldInfExtensionRulesPart(QTextStream& t, const QString &iconTargetFile) = 0;
diff --git a/qmake/generators/symbian/symmake_abld.cpp b/qmake/generators/symbian/symmake_abld.cpp
index f8951098a1..eb39d36170 100644
--- a/qmake/generators/symbian/symmake_abld.cpp
+++ b/qmake/generators/symbian/symmake_abld.cpp
@@ -49,7 +49,7 @@
#include <qdebug.h>
// Included from tools/shared
-#include <symbian/epocroot.h>
+#include <symbian/epocroot_p.h>
#define DO_NOTHING_TARGET "do_nothing"
#define CREATE_TEMPS_TARGET "create_temps"
@@ -184,16 +184,7 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool
QTextStream t(&wrapperFile);
- t << "# ==============================================================================" << endl;
- t << "# Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: ";
- t << QDateTime::currentDateTime().toString() << endl;
- t << "# This file is generated by qmake and should not be modified by the" << endl;
- t << "# user." << endl;
- t << "# Name : " << wrapperFile.fileName() << endl;
- t << "# Description : Wrapper Makefile for calling Symbian build tools" << endl;
- t << "#" << endl;
- t << "# ==============================================================================" << "\n" << endl;
- t << endl;
+ MakefileGenerator::writeHeader(t);
t << "MAKEFILE = " << fileInfo(wrapperFile.fileName()).fileName() << endl;
t << "QMAKE = " << var("QMAKE_QMAKE") << endl;
@@ -267,12 +258,14 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool
t << "\tbldmake bldfiles" << endl;
t << endl;
- t << "debug: $(ABLD)" << endl;
+ QString locFileDep = generateLocFileTarget(t, qmakeCmd);
+
+ t << "debug: " << locFileDep << "$(ABLD)" << endl;
foreach(QString item, debugPlatforms) {
t << "\t$(ABLD)" << testClause << " build " << item << " udeb" << endl;
}
t << endl;
- t << "release: $(ABLD)" << endl;
+ t << "release: " << locFileDep << "$(ABLD)" << endl;
foreach(QString item, releasePlatforms) {
t << "\t$(ABLD)" << testClause << " build " << item << " urel" << endl;
}
@@ -280,12 +273,12 @@ void SymbianAbldMakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, bool
// For more specific builds, targets are in this form: build-platform, e.g. release-armv5
foreach(QString item, debugPlatforms) {
- t << "debug-" << item << ": $(ABLD)" << endl;
+ t << "debug-" << item << ": " << locFileDep << "$(ABLD)" << endl;
t << "\t$(ABLD)" << testClause << " build " << item << " udeb" << endl;
}
foreach(QString item, releasePlatforms) {
- t << "release-" << item << ": $(ABLD)" << endl;
+ t << "release-" << item << ": " << locFileDep << "$(ABLD)" << endl;
t << "\t$(ABLD)" << testClause << " build " << item << " urel" << endl;
}
@@ -429,7 +422,7 @@ bool SymbianAbldMakefileGenerator::writeDeploymentTargets(QTextStream &t, bool i
else
t << WINSCW_DEPLOYMENT_TARGET ":" << endl;
- QString remoteTestPath = epocRoot()
+ QString remoteTestPath = qt_epocRoot()
+ QDir::toNativeSeparators(QLatin1String(isRom ? "epoc32/data/z/private/"
: "epoc32/winscw/c/private/"))
+ privateDirUid;
diff --git a/qmake/generators/symbian/symmake_sbsv2.cpp b/qmake/generators/symbian/symmake_sbsv2.cpp
index d650e083bc..c4b51f227a 100644
--- a/qmake/generators/symbian/symmake_sbsv2.cpp
+++ b/qmake/generators/symbian/symmake_sbsv2.cpp
@@ -49,7 +49,7 @@
#include <qdebug.h>
// Included from tools/shared
-#include <symbian/epocroot.h>
+#include <symbian/epocroot_p.h>
SymbianSbsv2MakefileGenerator::SymbianSbsv2MakefileGenerator() : SymbianMakefileGenerator() { }
SymbianSbsv2MakefileGenerator::~SymbianSbsv2MakefileGenerator() { }
@@ -82,7 +82,7 @@ void SymbianSbsv2MakefileGenerator::exportFlm()
QDir sourceDir = QDir(QLibraryInfo::location(QLibraryInfo::PrefixPath) + FLM_SOURCE_DIR);
QFileInfoList sourceInfos = sourceDir.entryInfoList(QDir::Files);
- QDir destDir(epocRoot() + FLM_DEST_DIR);
+ QDir destDir(qt_epocRoot() + FLM_DEST_DIR);
if (!destDir.exists()) {
if (destDir.mkpath(destDir.absolutePath()))
generatedDirs << destDir.absolutePath();
@@ -324,16 +324,8 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
QTextStream t(&wrapperFile);
- t << "# ==============================================================================" << endl;
- t << "# Generated by qmake (" << qmake_version() << ") (Qt " << QT_VERSION_STR << ") on: ";
- t << QDateTime::currentDateTime().toString() << endl;
- t << "# This file is generated by qmake and should not be modified by the" << endl;
- t << "# user." << endl;
- t << "# Name : " << wrapperFile.fileName() << endl;
- t << "# Description : Wrapper Makefile for calling Symbian build tools" << endl;
- t << "#" << endl;
- t << "# ==============================================================================" << "\n" << endl;
- t << endl;
+ MakefileGenerator::writeHeader(t);
+
t << "MAKEFILE = " << fileInfo(wrapperFile.fileName()).fileName() << endl;
t << "QMAKE = " << var("QMAKE_QMAKE") << endl;
t << "DEL_FILE = " << var("QMAKE_DEL_FILE") << endl;
@@ -386,8 +378,9 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
t << endl;
QString currentClause;
+ QString locFileDep = generateLocFileTarget(t, qmakeCmd);
- t << "debug: " << BLD_INF_FILENAME << endl;
+ t << "debug: " << locFileDep << BLD_INF_FILENAME << endl;
t << "\t$(SBS)";
foreach(QString clause, debugClauses) {
t << clause;
@@ -399,7 +392,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
t << clause;
}
t << endl;
- t << "release: " << BLD_INF_FILENAME << endl;
+ t << "release: " << locFileDep << BLD_INF_FILENAME << endl;
t << "\t$(SBS)";
foreach(QString clause, releaseClauses) {
t << clause;
@@ -431,7 +424,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
else // use generic arm clause
clause = configClause(item, debugBuild, defaultRvctCompilerVersion, genericArmClause);
- t << "debug-" << item << ": " << BLD_INF_FILENAME << endl;
+ t << "debug-" << item << ": " << locFileDep << BLD_INF_FILENAME << endl;
t << "\t$(SBS)" << clause << endl;
t << "clean-debug-" << item << ": " << BLD_INF_FILENAME << endl;
t << "\t$(SBS) reallyclean" << clause << endl;
@@ -444,7 +437,7 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
else // use generic arm clause
clause = configClause(item, releaseBuild, defaultRvctCompilerVersion, genericArmClause);
- t << "release-" << item << ": " << BLD_INF_FILENAME << endl;
+ t << "release-" << item << ": " << locFileDep << BLD_INF_FILENAME << endl;
t << "\t$(SBS)" << clause << endl;
t << "clean-release-" << item << ": " << BLD_INF_FILENAME << endl;
t << "\t$(SBS) reallyclean" << clause << endl;
@@ -454,11 +447,11 @@ void SymbianSbsv2MakefileGenerator::writeWrapperMakefile(QFile& wrapperFile, boo
foreach(QString compilerVersion, allArmCompilerVersions) {
QString debugClause = configClause(item, debugBuild, compilerVersion, armClause);
QString releaseClause = configClause(item, releaseBuild, compilerVersion, armClause);
- t << "debug-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl;
+ t << "debug-" << item << "-" << compilerVersion << ": " << locFileDep << BLD_INF_FILENAME << endl;
t << "\t$(SBS)" << debugClause << endl;
t << "clean-debug-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl;
t << "\t$(SBS) reallyclean" << debugClause << endl;
- t << "release-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl;
+ t << "release-" << item << "-" << compilerVersion << ": " << locFileDep << BLD_INF_FILENAME << endl;
t << "\t$(SBS)" << releaseClause << endl;
t << "clean-release-" << item << "-" << compilerVersion << ": " << BLD_INF_FILENAME << endl;
t << "\t$(SBS) reallyclean" << releaseClause << endl;
@@ -629,7 +622,7 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
t << endl;
// Write deployment rules
- QString remoteTestPath = epocRoot() + QLatin1String("epoc32/winscw/c/private/") + privateDirUid;
+ QString remoteTestPath = qt_epocRoot() + QLatin1String("epoc32/winscw/c/private/") + privateDirUid;
DeploymentList depList;
//write emulator deployment
@@ -640,7 +633,7 @@ void SymbianSbsv2MakefileGenerator::writeBldInfExtensionRulesPart(QTextStream& t
t << "#endif" << endl;
//write ROM deployment
- remoteTestPath = epocRoot() + QLatin1String("epoc32/data/z/private/") + privateDirUid;
+ remoteTestPath = qt_epocRoot() + QLatin1String("epoc32/data/z/private/") + privateDirUid;
depList.clear();
initProjectDeploySymbian(project, depList, remoteTestPath, false, true,
QLatin1String(ROM_DEPLOYMENT_PLATFORM), QString(), generatedDirs, generatedFiles);
diff --git a/qmake/generators/win32/msvc_nmake.cpp b/qmake/generators/win32/msvc_nmake.cpp
index 0678d86bca..b72a8dfd0b 100644
--- a/qmake/generators/win32/msvc_nmake.cpp
+++ b/qmake/generators/win32/msvc_nmake.cpp
@@ -85,6 +85,45 @@ NmakeMakefileGenerator::writeMakefile(QTextStream &t)
return false;
}
+QString NmakeMakefileGenerator::getPdbTarget()
+{
+ return QString(project->first("TARGET") + project->first("TARGET_VERSION_EXT") + ".pdb");
+}
+
+QString NmakeMakefileGenerator::defaultInstall(const QString &t)
+{
+ if((t != "target" && t != "dlltarget") ||
+ (t == "dlltarget" && (project->first("TEMPLATE") != "lib" || !project->isActiveConfig("shared"))) ||
+ project->first("TEMPLATE") == "subdirs")
+ return QString();
+
+ QString ret = Win32MakefileGenerator::defaultInstall(t);
+
+ const QString root = "$(INSTALL_ROOT)";
+ QStringList &uninst = project->values(t + ".uninstall");
+ QString targetdir = Option::fixPathToTargetOS(project->first(t + ".path"), false);
+ targetdir = fileFixify(targetdir, FileFixifyAbsolute);
+ if(targetdir.right(1) != Option::dir_sep)
+ targetdir += Option::dir_sep;
+
+ if(t == "target" && project->first("TEMPLATE") == "lib") {
+ if(project->isActiveConfig("shared") && project->isActiveConfig("debug")) {
+ QString pdb_target = getPdbTarget();
+ pdb_target.remove('"');
+ QString src_targ = (project->isEmpty("DESTDIR") ? QString("$(DESTDIR)") : project->first("DESTDIR")) + pdb_target;
+ QString dst_targ = filePrefixRoot(root, fileFixify(targetdir + pdb_target, FileFixifyAbsolute));
+ if(!ret.isEmpty())
+ ret += "\n\t";
+ ret += QString("-$(INSTALL_FILE)") + " \"" + src_targ + "\" \"" + dst_targ + "\"";
+ if(!uninst.isEmpty())
+ uninst.append("\n\t");
+ uninst.append("-$(DEL_FILE) \"" + dst_targ + "\"");
+ }
+ }
+
+ return ret;
+}
+
QStringList &NmakeMakefileGenerator::findDependencies(const QString &file)
{
QStringList &aList = MakefileGenerator::findDependencies(file);
diff --git a/qmake/generators/win32/msvc_nmake.h b/qmake/generators/win32/msvc_nmake.h
index a751e454fc..b3fcb82dd1 100644
--- a/qmake/generators/win32/msvc_nmake.h
+++ b/qmake/generators/win32/msvc_nmake.h
@@ -57,6 +57,8 @@ class NmakeMakefileGenerator : public Win32MakefileGenerator
void init();
protected:
+ virtual QString getPdbTarget();
+ virtual QString defaultInstall(const QString &t);
virtual QStringList &findDependencies(const QString &file);
QString var(const QString &value);
QString precompH, precompObj, precompPch;
diff --git a/qmake/generators/win32/msvc_vcproj.cpp b/qmake/generators/win32/msvc_vcproj.cpp
index fbaa6c2876..8719045a2f 100644
--- a/qmake/generators/win32/msvc_vcproj.cpp
+++ b/qmake/generators/win32/msvc_vcproj.cpp
@@ -66,7 +66,7 @@ QT_END_NAMESPACE
#ifdef Q_OS_WIN32
#include <qt_windows.h>
-#include <windows/registry.h>
+#include <windows/registry_p.h>
QT_BEGIN_NAMESPACE
@@ -118,7 +118,7 @@ DotNET which_dotnet_version()
int installed = 0;
int i = 0;
for(; dotNetCombo[i].version; ++i) {
- QString path = readRegistryKey(HKEY_LOCAL_MACHINE, dotNetCombo[i].regKey);
+ QString path = qt_readRegistryKey(HKEY_LOCAL_MACHINE, dotNetCombo[i].regKey);
if(!path.isEmpty()) {
++installed;
current_version = dotNetCombo[i].version;
@@ -135,7 +135,7 @@ DotNET which_dotnet_version()
i = installed = 0;
for(; dotNetCombo[i].version; ++i) {
- QString productPath = readRegistryKey(HKEY_LOCAL_MACHINE, dotNetCombo[i].regKey).toLower();
+ QString productPath = qt_readRegistryKey(HKEY_LOCAL_MACHINE, dotNetCombo[i].regKey).toLower();
if (productPath.isEmpty())
continue;
QStringList::iterator it;
diff --git a/qmake/generators/win32/winmakefile.cpp b/qmake/generators/win32/winmakefile.cpp
index ddfe399bc0..8cf970efe2 100644
--- a/qmake/generators/win32/winmakefile.cpp
+++ b/qmake/generators/win32/winmakefile.cpp
@@ -78,8 +78,14 @@ Win32MakefileGenerator::findHighestVersion(const QString &d, const QString &stem
int biggest=-1;
if(!project->isActiveConfig("no_versionlink")) {
- QDir dir(bd);
- QStringList entries = dir.entryList();
+ static QHash<QString, QStringList> dirEntryListCache;
+ QStringList entries = dirEntryListCache.value(bd);
+ if (entries.isEmpty()) {
+ QDir dir(bd);
+ entries = dir.entryList();
+ dirEntryListCache.insert(bd, entries);
+ }
+
QRegExp regx(QString("((lib)?%1([0-9]*)).(%2|prl)$").arg(dllStem).arg(ext), Qt::CaseInsensitive);
for(QStringList::Iterator it = entries.begin(); it != entries.end(); ++it) {
if(regx.exactMatch((*it))) {
@@ -775,11 +781,6 @@ QString Win32MakefileGenerator::getLibTarget()
return QString(project->first("TARGET") + project->first("TARGET_VERSION_EXT") + ".lib");
}
-QString Win32MakefileGenerator::getPdbTarget()
-{
- return QString(project->first("TARGET") + project->first("TARGET_VERSION_EXT") + ".pdb");
-}
-
QString Win32MakefileGenerator::defaultInstall(const QString &t)
{
if((t != "target" && t != "dlltarget") ||
@@ -820,18 +821,6 @@ QString Win32MakefileGenerator::defaultInstall(const QString &t)
uninst.append("\n\t");
uninst.append("-$(DEL_FILE) \"" + dst_targ + "\"");
}
- if(project->isActiveConfig("shared") && project->isActiveConfig("debug")) {
- QString pdb_target = getPdbTarget();
- pdb_target.remove('"');
- QString src_targ = (project->isEmpty("DESTDIR") ? QString("$(DESTDIR)") : project->first("DESTDIR")) + pdb_target;
- QString dst_targ = filePrefixRoot(root, fileFixify(targetdir + pdb_target, FileFixifyAbsolute));
- if(!ret.isEmpty())
- ret += "\n\t";
- ret += QString("-$(INSTALL_FILE)") + " \"" + src_targ + "\" \"" + dst_targ + "\"";
- if(!uninst.isEmpty())
- uninst.append("\n\t");
- uninst.append("-$(DEL_FILE) \"" + dst_targ + "\"");
- }
}
if(t == "dlltarget" || project->values(t + ".CONFIG").indexOf("no_dll") == -1) {
diff --git a/qmake/generators/win32/winmakefile.h b/qmake/generators/win32/winmakefile.h
index 3a2e3a1ee8..5437524495 100644
--- a/qmake/generators/win32/winmakefile.h
+++ b/qmake/generators/win32/winmakefile.h
@@ -83,7 +83,6 @@ protected:
virtual void processRcFileVar();
virtual void processFileTagsVar();
virtual QString getLibTarget();
- virtual QString getPdbTarget();
};
inline Win32MakefileGenerator::~Win32MakefileGenerator()
diff --git a/qmake/project.cpp b/qmake/project.cpp
index 5f5745ac04..38b47e0813 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -64,7 +64,7 @@
#include <stdlib.h>
// Included from tools/shared
-#include <symbian/epocroot.h>
+#include <symbian/epocroot_p.h>
#ifdef Q_OS_WIN32
#define QT_POPEN _popen
@@ -3118,7 +3118,7 @@ QStringList &QMakeProject::values(const QString &_var, QMap<QString, QStringList
false));
} else if (var == QLatin1String("EPOCROOT")) {
if (place[var].isEmpty())
- place[var] = QStringList(epocRoot());
+ place[var] = QStringList(qt_epocRoot());
}
#if defined(Q_OS_WIN32) && defined(Q_CC_MSVC)
else if(var.startsWith(QLatin1String("QMAKE_TARGET."))) {
diff --git a/qmake/qmake.pri b/qmake/qmake.pri
index 36c5d36a83..8f46a2eb7f 100644
--- a/qmake/qmake.pri
+++ b/qmake/qmake.pri
@@ -3,7 +3,7 @@ CONFIG += depend_includepath
QMAKE_INCREMENTAL =
SKIP_DEPENDS += qconfig.h qmodules.h
DEFINES += QT_NO_TEXTCODEC QT_NO_LIBRARY QT_NO_STL QT_NO_COMPRESS QT_NO_UNICODETABLES \
- QT_NO_GEOM_VARIANT QT_NO_DATASTREAM
+ QT_NO_GEOM_VARIANT QT_NO_DATASTREAM QLIBRARYINFO_EPOCROOT
#qmake code
SOURCES += project.cpp property.cpp main.cpp generators/makefile.cpp \
@@ -36,8 +36,8 @@ HEADERS += project.h property.h generators/makefile.h \
generators/symbian/symmake_abld.h \
generators/symbian/symmake_sbsv2.h \
generators/symbian/initprojectdeploy_symbian.h \
- windows/registry.h \
- symbian/epocroot.h
+ windows/registry_p.h \
+ symbian/epocroot_p.h
contains(QT_EDITION, OpenSource) {
DEFINES += QMAKE_OPENSOURCE_EDITION
diff --git a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
index 9b97c8b350..5bb3c57e92 100644
--- a/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/Api/qwebpage.cpp
@@ -1351,26 +1351,30 @@ void QWebPagePrivate::inputMethodEvent(QInputMethodEvent *ev)
}
}
- if (!ev->commitString().isEmpty())
+ if (renderTextControl && ev->replacementLength() > 0) {
+ renderTextControl->setSelectionStart(qMax(renderTextControl->selectionStart() + ev->replacementStart(), 0));
+ renderTextControl->setSelectionEnd(qMin(renderTextControl->selectionStart() + ev->replacementLength(), static_cast<int>(renderTextControl->text().length())));
+ // Commit regardless of whether commitString is empty, to get rid of selection.
editor->confirmComposition(ev->commitString());
- else {
- // 1. empty preedit with a selection attribute, and start/end of 0 cancels composition
- // 2. empty preedit with a selection attribute, and start/end of non-0 updates selection of current preedit text
- // 3. populated preedit with a selection attribute, and start/end of 0 or non-0 updates selection of supplied preedit text
- // 4. otherwise event is updating supplied pre-edit text
- QString preedit = ev->preeditString();
+ } else if (!ev->commitString().isEmpty()) {
+ editor->confirmComposition(ev->commitString());
+ }
+ // 1. empty preedit with a selection attribute, and start/end of 0 cancels composition
+ // 2. empty preedit with a selection attribute, and start/end of non-0 updates selection of current preedit text
+ // 3. populated preedit with a selection attribute, and start/end of 0 or non-0 updates selection of supplied preedit text
+ // 4. otherwise event is updating supplied pre-edit text
+ QString preedit = ev->preeditString();
#if QT_VERSION >= 0x040600
- if (hasSelection) {
- QString text = (renderTextControl) ? QString(renderTextControl->text()) : QString();
- if (preedit.isEmpty() && selection.start + selection.length > 0)
- preedit = text;
- editor->setComposition(preedit, underlines,
- (selection.length < 0) ? selection.start + selection.length : selection.start,
- (selection.length < 0) ? selection.start : selection.start + selection.length);
- } else
+ if (hasSelection) {
+ QString text = (renderTextControl) ? QString(renderTextControl->text()) : QString();
+ if (preedit.isEmpty() && selection.start + selection.length > 0)
+ preedit = text;
+ editor->setComposition(preedit, underlines,
+ (selection.length < 0) ? selection.start + selection.length : selection.start,
+ (selection.length < 0) ? selection.start : selection.start + selection.length);
+ } else
#endif
- editor->setComposition(preedit, underlines, preedit.length(), 0);
- }
+ editor->setComposition(preedit, underlines, preedit.length(), 0);
ev->accept();
}
diff --git a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp
index e4f70deb76..7a8aae7535 100644
--- a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview.cpp
@@ -141,6 +141,16 @@ void GraphicsWebView::mouseMoveEvent(QGraphicsSceneMouseEvent* event)
QGraphicsWebView::mouseMoveEvent(event);
}
+bool GraphicsWebView::sceneEvent(QEvent *event)
+{
+ bool rv = QGraphicsWebView::sceneEvent(event);
+ if (event->type() == QEvent::UngrabMouse) {
+ pressTimer.stop();
+ parent->setKeepMouseGrab(false);
+ }
+ return rv;
+}
+
/*!
\qmlclass WebView QDeclarativeWebView
\ingroup qml-view-elements
diff --git a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview_p.h b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview_p.h
index b2055bf121..ca15a1eefb 100644
--- a/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview_p.h
+++ b/src/3rdparty/webkit/WebKit/qt/declarative/qdeclarativewebview_p.h
@@ -70,6 +70,8 @@ protected:
void mouseMoveEvent(QGraphicsSceneMouseEvent* event);
void mouseDoubleClickEvent(QGraphicsSceneMouseEvent *event);
void timerEvent(QTimerEvent* event);
+ bool sceneEvent(QEvent *event);
+
Q_SIGNALS:
void doubleClick(int clickX, int clickY);
private:
diff --git a/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri
index f2282f847d..b98617f439 100644
--- a/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri
+++ b/src/3rdparty/webkit/WebKit/qt/qt_webkit_version.pri
@@ -1,5 +1,5 @@
-QT_WEBKIT_VERSION = 4.7.1
+QT_WEBKIT_VERSION = 4.7.2
QT_WEBKIT_MAJOR_VERSION = 4
QT_WEBKIT_MINOR_VERSION = 7
-QT_WEBKIT_PATCH_VERSION = 1
+QT_WEBKIT_PATCH_VERSION = 2
QT_CONFIG += webkit
diff --git a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
index b7ffb8a60c..31cf277607 100644
--- a/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
+++ b/src/3rdparty/webkit/WebKit/qt/tests/qwebpage/tst_qwebpage.cpp
@@ -1502,6 +1502,20 @@ void tst_QWebPage::inputMethods()
QCOMPARE(value, QString("QtWebKit"));
#endif
+ {
+ QList<QInputMethodEvent::Attribute> attributes;
+ QInputMethodEvent event(QString(), attributes);
+ event.setCommitString("XXX", 0, 0);
+ page->event(&event);
+ event.setCommitString(QString(), -2, 2); // Erase two characters.
+ page->event(&event);
+ event.setCommitString(QString(), -1, 1); // Erase one character.
+ page->event(&event);
+ variant = page->inputMethodQuery(Qt::ImSurroundingText);
+ value = variant.value<QString>();
+ QCOMPARE(value, QString("QtWebKit"));
+ }
+
// Cancel current composition first
inputAttributes << QInputMethodEvent::Attribute(QInputMethodEvent::Selection, 0, 0, QVariant());
QInputMethodEvent eventSelection4("", inputAttributes);
diff --git a/src/corelib/global/global.pri b/src/corelib/global/global.pri
index 47b82ef177..8eae391e5c 100644
--- a/src/corelib/global/global.pri
+++ b/src/corelib/global/global.pri
@@ -31,3 +31,5 @@ linux*:!static:!symbian-armcc:!symbian-gcce {
# Compensate for lack of platform defines in Symbian3 and Symbian4
symbian: DEFINES += SYMBIAN_VERSION_$$upper($$replace(SYMBIAN_VERSION,\\.,_))
+
+include(../../../tools/shared/symbian/epocroot.pri)
diff --git a/src/corelib/global/qlibraryinfo.cpp b/src/corelib/global/qlibraryinfo.cpp
index d493390bd0..8b2ab5a766 100644
--- a/src/corelib/global/qlibraryinfo.cpp
+++ b/src/corelib/global/qlibraryinfo.cpp
@@ -62,6 +62,10 @@ QT_END_NAMESPACE
# include "private/qcore_mac_p.h"
#endif
+#ifdef QLIBRARYINFO_EPOCROOT
+# include "symbian/epocroot_p.h"
+#endif
+
#include "qconfig.cpp"
QT_BEGIN_NAMESPACE
@@ -433,6 +437,14 @@ QLibraryInfo::location(LibraryLocation loc)
QString::fromLocal8Bit(qgetenv(ret.mid(rep + 2,
reg_var.matchedLength() - 3).toLatin1().constData()).constData()));
}
+
+#ifdef QLIBRARYINFO_EPOCROOT
+ // $${EPOCROOT} is a special case, resolve it similarly to qmake.
+ QRegExp epocrootMatcher(QLatin1String("\\$\\$\\{EPOCROOT\\}"));
+ if ((rep = epocrootMatcher.indexIn(ret)) != -1)
+ ret.replace(rep, epocrootMatcher.matchedLength(), qt_epocRoot());
+#endif
+
config->endGroup();
}
}
diff --git a/src/corelib/global/qnamespace.h b/src/corelib/global/qnamespace.h
index 830d35bbcc..b83c7c317f 100644
--- a/src/corelib/global/qnamespace.h
+++ b/src/corelib/global/qnamespace.h
@@ -519,6 +519,8 @@ public:
WA_X11DoNotAcceptFocus = 132,
+ WA_MacNoShadow = 133,
+
// Add new attributes before this line
WA_AttributeCount
};
diff --git a/src/corelib/global/qnamespace.qdoc b/src/corelib/global/qnamespace.qdoc
index d911c4ce5d..9bca386d2f 100644
--- a/src/corelib/global/qnamespace.qdoc
+++ b/src/corelib/global/qnamespace.qdoc
@@ -1257,6 +1257,9 @@
to this top level window. This attribute has no effect on non-X11
platforms.
+ \value WA_MacNoShadow Since Qt 4.8, this attribute disables drop shadows
+ for this top level window. Only affects Cocoa builds of Qt for Mac OS X.
+
\omitvalue WA_SetLayoutDirection
\omitvalue WA_InputMethodTransparent
\omitvalue WA_WState_CompressKeys
diff --git a/src/corelib/io/qfilesystemwatcher.cpp b/src/corelib/io/qfilesystemwatcher.cpp
index 18c3c9fd8d..3a7d79538a 100644
--- a/src/corelib/io/qfilesystemwatcher.cpp
+++ b/src/corelib/io/qfilesystemwatcher.cpp
@@ -198,7 +198,7 @@ QStringList QPollingFileSystemWatcherEngine::removePaths(const QStringList &path
void QPollingFileSystemWatcherEngine::stop()
{
- QMetaObject::invokeMethod(this, "quit");
+ quit();
}
void QPollingFileSystemWatcherEngine::timeout()
@@ -426,11 +426,6 @@ QFileSystemWatcher::QFileSystemWatcher(const QStringList &paths, QObject *parent
/*!
Destroys the file system watcher.
-
- \note To avoid deadlocks on shutdown, all instances of QFileSystemWatcher
- need to be destroyed before QCoreApplication. Note that passing
- QCoreApplication::instance() as the parent object when creating
- QFileSystemWatcher is not sufficient.
*/
QFileSystemWatcher::~QFileSystemWatcher()
{
diff --git a/src/corelib/io/qfilesystemwatcher_inotify.cpp b/src/corelib/io/qfilesystemwatcher_inotify.cpp
index 25ff2b61ce..ab534316da 100644
--- a/src/corelib/io/qfilesystemwatcher_inotify.cpp
+++ b/src/corelib/io/qfilesystemwatcher_inotify.cpp
@@ -340,7 +340,7 @@ QStringList QInotifyFileSystemWatcherEngine::removePaths(const QStringList &path
void QInotifyFileSystemWatcherEngine::stop()
{
- QMetaObject::invokeMethod(this, "quit");
+ quit();
}
void QInotifyFileSystemWatcherEngine::readFromInotify()
diff --git a/src/corelib/io/qfilesystemwatcher_symbian.cpp b/src/corelib/io/qfilesystemwatcher_symbian.cpp
index 6136742213..ee66c36d85 100644
--- a/src/corelib/io/qfilesystemwatcher_symbian.cpp
+++ b/src/corelib/io/qfilesystemwatcher_symbian.cpp
@@ -215,7 +215,7 @@ void QSymbianFileSystemWatcherEngine::emitPathChanged(QNotifyChangeEvent *e)
void QSymbianFileSystemWatcherEngine::stop()
{
- QMetaObject::invokeMethod(this, "quit");
+ quit();
wait();
}
diff --git a/src/corelib/io/qiodevice.cpp b/src/corelib/io/qiodevice.cpp
index 8544fbaf94..f8eb8865b3 100644
--- a/src/corelib/io/qiodevice.cpp
+++ b/src/corelib/io/qiodevice.cpp
@@ -395,7 +395,10 @@ QIODevice::QIODevice(QIODevicePrivate &dd, QObject *parent)
/*!
- Destructs the QIODevice object.
+ The destructor is virtual, and QIODevice is an abstract base
+ class. This destructor does not call close(), but the subclass
+ destructor might. If you are in doubt, call close() before
+ destroying the QIODevice.
*/
QIODevice::~QIODevice()
{
diff --git a/src/corelib/kernel/qeventdispatcher_win.cpp b/src/corelib/kernel/qeventdispatcher_win.cpp
index aa7e32f209..91c20b553f 100644
--- a/src/corelib/kernel/qeventdispatcher_win.cpp
+++ b/src/corelib/kernel/qeventdispatcher_win.cpp
@@ -86,7 +86,8 @@ extern uint qGlobalPostedEventsCount();
enum {
WM_QT_SOCKETNOTIFIER = WM_USER,
- WM_QT_SENDPOSTEDEVENTS = WM_USER + 1
+ WM_QT_SENDPOSTEDEVENTS = WM_USER + 1,
+ SendPostedEventsWindowsTimerId = ~1u
};
#if defined(Q_OS_WINCE)
@@ -355,7 +356,7 @@ public:
// for controlling when to send posted events
QAtomicInt serialNumber;
- int lastSerialNumber;
+ int lastSerialNumber, sendPostedEventsWindowsTimerId;
QAtomicInt wakeUps;
// timers
@@ -380,7 +381,7 @@ public:
QEventDispatcherWin32Private::QEventDispatcherWin32Private()
: threadId(GetCurrentThreadId()), interrupt(false), internalHwnd(0), getMessageHook(0),
- serialNumber(0), lastSerialNumber(0), wakeUps(0)
+ serialNumber(0), lastSerialNumber(0), sendPostedEventsWindowsTimerId(0), wakeUps(0)
{
resolveTimerAPI();
}
@@ -487,17 +488,21 @@ LRESULT QT_WIN_CALLBACK qt_internal_proc(HWND hwnd, UINT message, WPARAM wp, LPA
}
}
return 0;
- } else if (message == WM_TIMER) {
- Q_ASSERT(d != 0);
- d->sendTimerEvent(wp);
- return 0;
- } else if (message == WM_QT_SENDPOSTEDEVENTS) {
+ } else if (message == WM_QT_SENDPOSTEDEVENTS
+ // we also use a Windows timer to send posted events when the message queue is full
+ || (message == WM_TIMER
+ && d->sendPostedEventsWindowsTimerId != 0
+ && wp == d->sendPostedEventsWindowsTimerId)) {
int localSerialNumber = d->serialNumber;
if (localSerialNumber != d->lastSerialNumber) {
d->lastSerialNumber = localSerialNumber;
QCoreApplicationPrivate::sendPostedEvents(0, 0, d->threadData);
}
return 0;
+ } else if (message == WM_TIMER) {
+ Q_ASSERT(d != 0);
+ d->sendTimerEvent(wp);
+ return 0;
}
return DefWindowProc(hwnd, message, wp, lp);
@@ -509,21 +514,36 @@ LRESULT QT_WIN_CALLBACK qt_GetMessageHook(int code, WPARAM wp, LPARAM lp)
QEventDispatcherWin32 *q = qobject_cast<QEventDispatcherWin32 *>(QAbstractEventDispatcher::instance());
Q_ASSERT(q != 0);
if (q) {
+ MSG *msg = (MSG *) lp;
QEventDispatcherWin32Private *d = q->d_func();
int localSerialNumber = d->serialNumber;
- MSG unused;
- if ((HIWORD(GetQueueStatus(QS_INPUT | QS_RAWINPUT)) == 0
- && PeekMessage(&unused, 0, WM_TIMER, WM_TIMER, PM_NOREMOVE) == 0)) {
- // no more input or timer events in the message queue or more than 10ms has elapsed since
- // we send posted events, we can allow posted events to be sent now
+ if (HIWORD(GetQueueStatus(QS_TIMER | QS_INPUT | QS_RAWINPUT)) == 0) {
+ // no more input or timer events in the message queue, we can allow posted events to be sent normally now
+ if (d->sendPostedEventsWindowsTimerId != 0) {
+ // stop the timer to send posted events, since we now allow the WM_QT_SENDPOSTEDEVENTS message
+ KillTimer(d->internalHwnd, d->sendPostedEventsWindowsTimerId);
+ d->sendPostedEventsWindowsTimerId = 0;
+ }
(void) d->wakeUps.fetchAndStoreRelease(0);
- MSG *msg = (MSG *) lp;
if (localSerialNumber != d->lastSerialNumber
// if this message IS the one that triggers sendPostedEvents(), no need to post it again
&& (msg->hwnd != d->internalHwnd
|| msg->message != WM_QT_SENDPOSTEDEVENTS)) {
PostMessage(d->internalHwnd, WM_QT_SENDPOSTEDEVENTS, 0, 0);
}
+ } else if (d->sendPostedEventsWindowsTimerId == 0
+ && localSerialNumber != d->lastSerialNumber
+ // if this message IS the one that triggers sendPostedEvents(), no need to post it again
+ && (msg->hwnd != d->internalHwnd
+ || msg->message != WM_QT_SENDPOSTEDEVENTS)) {
+ // start a special timer to continue delivering posted events while
+ // there are still input and timer messages in the message queue
+ d->sendPostedEventsWindowsTimerId = SetTimer(d->internalHwnd,
+ SendPostedEventsWindowsTimerId,
+ 0, // we specify zero, but Windows uses USER_TIMER_MINIMUM
+ NULL);
+ // we don't check the return value of SetTimer()... if creating the timer failed, there's little
+ // we can do. we just have to accept that posted events will be starved
}
}
}
diff --git a/src/corelib/kernel/qobjectdefs.h b/src/corelib/kernel/qobjectdefs.h
index db46ba5c9c..b4e4aa576f 100644
--- a/src/corelib/kernel/qobjectdefs.h
+++ b/src/corelib/kernel/qobjectdefs.h
@@ -215,11 +215,15 @@ Q_CORE_EXPORT const char *qFlagLocation(const char *method);
#define QTOSTRING(s) QTOSTRING_HELPER(s)
#ifndef QT_NO_DEBUG
# define QLOCATION "\0"__FILE__":"QTOSTRING(__LINE__)
-# define METHOD(a) qFlagLocation("0"#a QLOCATION)
+# ifndef QT_NO_KEYWORDS
+# define METHOD(a) qFlagLocation("0"#a QLOCATION)
+# endif
# define SLOT(a) qFlagLocation("1"#a QLOCATION)
# define SIGNAL(a) qFlagLocation("2"#a QLOCATION)
#else
-# define METHOD(a) "0"#a
+# ifndef QT_NO_KEYWORDS
+# define METHOD(a) "0"#a
+# endif
# define SLOT(a) "1"#a
# define SIGNAL(a) "2"#a
#endif
diff --git a/src/corelib/kernel/qtcore_eval.cpp b/src/corelib/kernel/qtcore_eval.cpp
index 78556c3cc9..da76b74878 100644
--- a/src/corelib/kernel/qtcore_eval.cpp
+++ b/src/corelib/kernel/qtcore_eval.cpp
@@ -90,14 +90,14 @@ static const char will_shutdown_now[] =
static int qt_eval_is_supported()
{
- const char *const license_key = qt_eval_key_data + 12;
+ const volatile char *const license_key = qt_eval_key_data + 12;
// fast fail
if (!qt_eval_key_data[0] || !*license_key)
return -1;
// is this an unsupported evaluation?
- const char* typecode = license_key;
+ const volatile char *typecode = license_key;
int field = 2;
for ( ; field && *typecode; ++typecode)
if (*typecode == '-')
diff --git a/src/corelib/thread/qthread.cpp b/src/corelib/thread/qthread.cpp
index 69b70cb4d2..c9ff8d36fe 100644
--- a/src/corelib/thread/qthread.cpp
+++ b/src/corelib/thread/qthread.cpp
@@ -173,7 +173,8 @@ void QAdoptedThread::run()
*/
QThreadPrivate::QThreadPrivate(QThreadData *d)
- : QObjectPrivate(), running(false), finished(false), terminated(false), exited(false), returnCode(-1),
+ : QObjectPrivate(), running(false), finished(false), terminated(false),
+ isInFinish(false), exited(false), returnCode(-1),
stackSize(0), priority(QThread::InheritPriority), data(d)
{
#if defined (Q_OS_UNIX)
@@ -403,6 +404,11 @@ QThread::~QThread()
Q_D(QThread);
{
QMutexLocker locker(&d->mutex);
+ if (d->isInFinish) {
+ locker.unlock();
+ wait();
+ locker.relock();
+ }
if (d->running && !d->finished)
qWarning("QThread: Destroyed while thread is still running");
@@ -482,8 +488,10 @@ int QThread::exec()
Q_D(QThread);
QMutexLocker locker(&d->mutex);
d->data->quitNow = false;
- if (d->exited)
+ if (d->exited) {
+ d->exited = false;
return d->returnCode;
+ }
locker.unlock();
QEventLoop eventLoop;
diff --git a/src/corelib/thread/qthread_p.h b/src/corelib/thread/qthread_p.h
index d816aefdc3..51c6991d0d 100644
--- a/src/corelib/thread/qthread_p.h
+++ b/src/corelib/thread/qthread_p.h
@@ -126,6 +126,7 @@ public:
bool running;
bool finished;
bool terminated;
+ bool isInFinish; //when in QThreadPrivate::finish
bool exited;
int returnCode;
diff --git a/src/corelib/thread/qthread_unix.cpp b/src/corelib/thread/qthread_unix.cpp
index adbbad2f32..0892d8e7f6 100644
--- a/src/corelib/thread/qthread_unix.cpp
+++ b/src/corelib/thread/qthread_unix.cpp
@@ -99,6 +99,11 @@
# define SCHED_IDLE 5
#endif
+#if defined(Q_OS_DARWIN) || !defined(Q_OS_OPENBSD) && defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0)
+#define QT_HAS_THREAD_PRIORITY_SCHEDULING
+#endif
+
+
QT_BEGIN_NAMESPACE
#ifndef QT_NO_THREAD
@@ -334,40 +339,45 @@ void QThreadPrivate::finish(void *arg)
{
QThread *thr = reinterpret_cast<QThread *>(arg);
QThreadPrivate *d = thr->d_func();
+
#ifdef Q_OS_SYMBIAN
- if (lockAnyway)
+ QMutexLocker locker(lockAnyway ? &d->mutex : 0);
+#else
+ QMutexLocker locker(&d->mutex);
#endif
- d->mutex.lock();
+ d->isInFinish = true;
d->priority = QThread::InheritPriority;
- d->running = false;
- d->finished = true;
- if (d->terminated)
+ bool terminated = d->terminated;
+ void *data = &d->data->tls;
+ locker.unlock();
+ if (terminated)
emit thr->terminated();
- d->terminated = false;
emit thr->finished();
QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
+ QThreadStorageData::finish((void **)data);
+ locker.relock();
+ d->terminated = false;
- if (d->data->eventDispatcher) {
- d->data->eventDispatcher->closingDown();
- QAbstractEventDispatcher *eventDispatcher = d->data->eventDispatcher;
+ QAbstractEventDispatcher *eventDispatcher = d->data->eventDispatcher;
+ if (eventDispatcher) {
d->data->eventDispatcher = 0;
+ locker.unlock();
+ eventDispatcher->closingDown();
delete eventDispatcher;
+ locker.relock();
}
- void *data = &d->data->tls;
- QThreadStorageData::finish((void **)data);
-
d->thread_id = 0;
#ifdef Q_OS_SYMBIAN
if (closeNativeHandle)
d->data->symbian_thread_handle.Close();
#endif
+ d->running = false;
+ d->finished = true;
+
+ d->isInFinish = false;
d->thread_done.wakeAll();
-#ifdef Q_OS_SYMBIAN
- if (lockAnyway)
-#endif
- d->mutex.unlock();
}
@@ -507,10 +517,10 @@ void QThread::usleep(unsigned long usecs)
thread_sleep(&ti);
}
+#ifdef QT_HAS_THREAD_PRIORITY_SCHEDULING
// Does some magic and calculate the Unix scheduler priorities
// sched_policy is IN/OUT: it must be set to a valid policy before calling this function
// sched_priority is OUT only
-#if defined(Q_OS_DARWIN) || !defined(Q_OS_OPENBSD) && defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0)
static bool calculateUnixPriority(int priority, int *sched_policy, int *sched_priority)
{
#ifdef SCHED_IDLE
@@ -544,6 +554,10 @@ void QThread::start(Priority priority)
{
Q_D(QThread);
QMutexLocker locker(&d->mutex);
+
+ if (d->isInFinish)
+ d->thread_done.wait(locker.mutex());
+
if (d->running)
return;
@@ -559,7 +573,7 @@ void QThread::start(Priority priority)
d->priority = priority;
-#if defined(Q_OS_DARWIN) || !defined(Q_OS_OPENBSD) && !defined(Q_OS_SYMBIAN) && defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0)
+#if defined(QT_HAS_THREAD_PRIORITY_SCHEDULING) && !defined(Q_OS_SYMBIAN)
// ### Need to implement thread sheduling and priorities for symbian os. Implementation removed for now
switch (priority) {
case InheritPriority:
@@ -600,7 +614,7 @@ void QThread::start(Priority priority)
break;
}
}
-#endif // _POSIX_THREAD_PRIORITY_SCHEDULING
+#endif // QT_HAS_THREAD_PRIORITY_SCHEDULING
#ifdef Q_OS_SYMBIAN
if (d->stackSize == 0)
@@ -763,7 +777,7 @@ void QThread::setPriority(Priority priority)
// copied from start() with a few modifications:
-#if defined(Q_OS_DARWIN) || !defined(Q_OS_OPENBSD) && defined(_POSIX_THREAD_PRIORITY_SCHEDULING) && (_POSIX_THREAD_PRIORITY_SCHEDULING-0 >= 0)
+#ifdef QT_HAS_THREAD_PRIORITY_SCHEDULING
int sched_policy;
sched_param param;
diff --git a/src/corelib/thread/qthread_win.cpp b/src/corelib/thread/qthread_win.cpp
index 4a967ed3bc..74fedd3880 100644
--- a/src/corelib/thread/qthread_win.cpp
+++ b/src/corelib/thread/qthread_win.cpp
@@ -323,25 +323,33 @@ void QThreadPrivate::finish(void *arg, bool lockAnyway)
QThread *thr = reinterpret_cast<QThread *>(arg);
QThreadPrivate *d = thr->d_func();
- if (lockAnyway)
- d->mutex.lock();
+ QMutexLocker locker(lockAnyway ? &d->mutex : 0);
+ d->isInFinish = true;
d->priority = QThread::InheritPriority;
- d->running = false;
- d->finished = true;
- if (d->terminated)
+ bool terminated = d->terminated;
+ void **tls_data = reinterpret_cast<void **>(&d->data->tls);
+ locker.unlock();
+ if (terminated)
emit thr->terminated();
- d->terminated = false;
emit thr->finished();
QCoreApplication::sendPostedEvents(0, QEvent::DeferredDelete);
+ QThreadStorageData::finish(tls_data);
+ locker.relock();
+
+ d->terminated = false;
- if (d->data->eventDispatcher) {
- d->data->eventDispatcher->closingDown();
- QAbstractEventDispatcher *eventDispatcher = d->data->eventDispatcher;
+ QAbstractEventDispatcher *eventDispatcher = d->data->eventDispatcher;
+ if (eventDispatcher) {
d->data->eventDispatcher = 0;
+ locker.unlock();
+ eventDispatcher->closingDown();
delete eventDispatcher;
+ locker.relock();
}
- QThreadStorageData::finish(reinterpret_cast<void **>(&d->data->tls));
+ d->running = false;
+ d->finished = true;
+ d->isInFinish = false;
if (!d->waiters) {
CloseHandle(d->handle);
@@ -350,8 +358,6 @@ void QThreadPrivate::finish(void *arg, bool lockAnyway)
d->id = 0;
- if (lockAnyway)
- d->mutex.unlock();
}
/**************************************************************************
@@ -400,6 +406,12 @@ void QThread::start(Priority priority)
Q_D(QThread);
QMutexLocker locker(&d->mutex);
+ if (d->isInFinish) {
+ locker.unlock();
+ wait();
+ locker.relock();
+ }
+
if (d->running)
return;
diff --git a/src/corelib/thread/qthreadstorage.cpp b/src/corelib/thread/qthreadstorage.cpp
index 2fc04f573e..416fcfba22 100644
--- a/src/corelib/thread/qthreadstorage.cpp
+++ b/src/corelib/thread/qthreadstorage.cpp
@@ -178,11 +178,12 @@ void QThreadStorageData::finish(void **p)
return; // nothing to do
DEBUG_MSG("QThreadStorageData: Destroying storage for thread %p", QThread::currentThread());
-
- for(int i = tls->size() - 1; i >= 0; i--) {
- void *&value = (*tls)[i];
+ while (!tls->isEmpty()) {
+ void *&value = tls->last();
void *q = value;
value = 0;
+ int i = tls->size() - 1;
+ tls->resize(i);
if (!q) {
// data already deleted
@@ -200,6 +201,11 @@ void QThreadStorageData::finish(void **p)
continue;
}
destructor(q); //crash here might mean the thread exited after qthreadstorage was destroyed
+
+ if (tls->size() > i) {
+ //re reset the tls in case it has been recreated by its own destructor.
+ (*tls)[i] = 0;
+ }
}
tls->clear();
}
@@ -215,19 +221,18 @@ void QThreadStorageData::finish(void **p)
QThreadStorage is a template class that provides per-thread data
storage.
- \e{Note that due to compiler limitations, QThreadStorage can only
- store pointers.}
-
The setLocalData() function stores a single thread-specific value
for the calling thread. The data can be accessed later using
- localData(). QThreadStorage takes ownership of the data (which
- must be created on the heap with \c new) and deletes it when the
- thread exits, either normally or via termination.
+ localData().
The hasLocalData() function allows the programmer to determine if
data has previously been set using the setLocalData() function.
This is also useful for lazy initializiation.
+ If T is a pointer type, QThreadStorage takes ownership of the data
+ (which must be created on the heap with \c new) and deletes it when
+ the thread exits, either normally or via termination.
+
For example, the following code uses QThreadStorage to store a
single cache for each thread that calls the cacheObject() and
removeFromCache() functions. The cache is automatically
@@ -241,9 +246,6 @@ void QThreadStorageData::finish(void **p)
\list
- \o As noted above, QThreadStorage can only store pointers due to
- compiler limitations.
-
\o The QThreadStorage destructor does not delete per-thread data.
QThreadStorage only deletes per-thread data when the thread exits
or when setLocalData() is called multiple times.
@@ -279,8 +281,11 @@ void QThreadStorageData::finish(void **p)
/*!
\fn bool QThreadStorage::hasLocalData() const
- Returns true if the calling thread has non-zero data available;
- otherwise returns false.
+ If T is a pointer type, returns true if the calling thread has
+ non-zero data available.
+
+ If T is a value type, returns whether the data has already been
+ constructed by calling setLocalData or localData.
\sa localData()
*/
@@ -291,10 +296,8 @@ void QThreadStorageData::finish(void **p)
Returns a reference to the data that was set by the calling
thread.
- Note: QThreadStorage can only store pointers. This function
- returns a reference to the pointer that was set by the calling
- thread. The value of this reference is 0 if no data was set by
- the calling thread,
+ If no data has been set, this will create a default constructed
+ instance of type T.
\sa hasLocalData()
*/
@@ -305,10 +308,6 @@ void QThreadStorageData::finish(void **p)
Returns a copy of the data that was set by the calling thread.
- Note: QThreadStorage can only store pointers. This function
- returns a pointer to the data that was set by the calling thread.
- If no data was set by the calling thread, this function returns 0.
-
\sa hasLocalData()
*/
@@ -318,19 +317,9 @@ void QThreadStorageData::finish(void **p)
Sets the local data for the calling thread to \a data. It can be
accessed later using the localData() functions.
- If \a data is 0, this function deletes the previous data (if
- any) and returns immediately.
-
- If \a data is non-zero, QThreadStorage takes ownership of the \a
- data and deletes it automatically either when the thread exits
- (either normally or via termination) or when setLocalData() is
- called again.
-
- Note: QThreadStorage can only store pointers. The \a data
- argument must be either a pointer to an object created on the heap
- (i.e. using \c new) or 0. You should not delete \a data
- yourself; QThreadStorage takes ownership and will delete the \a
- data itself.
+ If T is a pointer type, QThreadStorage takes ownership of the data
+ and deletes it automatically either when the thread exits (either
+ normally or via termination) or when setLocalData() is called again.
\sa localData(), hasLocalData()
*/
diff --git a/src/corelib/thread/qthreadstorage.h b/src/corelib/thread/qthreadstorage.h
index 6264674bb0..475d20d5ea 100644
--- a/src/corelib/thread/qthreadstorage.h
+++ b/src/corelib/thread/qthreadstorage.h
@@ -91,6 +91,11 @@ inline
void qThreadStorage_setLocalData(QThreadStorageData &d, T **t)
{ (void) d.set(*t); }
+template <typename T>
+inline
+void qThreadStorage_deleteData(void *d, T **)
+{ delete static_cast<T *>(d); }
+
// value-based specialization
template <typename T>
inline
@@ -114,6 +119,12 @@ inline
void qThreadStorage_setLocalData(QThreadStorageData &d, T *t)
{ (void) d.set(new T(*t)); }
+template <typename T>
+inline
+void qThreadStorage_deleteData(void *d, T *)
+{ delete static_cast<T *>(d); }
+
+
// MOC_SKIP_END
#endif
@@ -126,7 +137,7 @@ private:
Q_DISABLE_COPY(QThreadStorage)
static inline void deleteData(void *x)
- { delete static_cast<T>(x); }
+ { qThreadStorage_deleteData(x, reinterpret_cast<T*>(0)); }
public:
inline QThreadStorage() : d(deleteData) { }
diff --git a/src/corelib/tools/qchar.cpp b/src/corelib/tools/qchar.cpp
index bb777cde4c..fba0bd2510 100644
--- a/src/corelib/tools/qchar.cpp
+++ b/src/corelib/tools/qchar.cpp
@@ -48,11 +48,11 @@
# undef QT_NO_CAST_TO_ASCII
#endif
#include "qchar.h"
+
#include "qdatastream.h"
#include "qtextcodec.h"
#include "qunicodetables_p.h"
-
#include "qunicodetables.cpp"
QT_BEGIN_NAMESPACE
@@ -1489,6 +1489,16 @@ static void decomposeHelper(QString *str, bool canonical, QChar::UnicodeVersion
}
+struct UCS2Pair {
+ ushort u1;
+ ushort u2;
+};
+
+inline bool operator<(ushort u1, const UCS2Pair &ligature)
+{ return u1 < ligature.u1; }
+inline bool operator<(const UCS2Pair &ligature, ushort u1)
+{ return ligature.u1 < u1; }
+
static ushort ligatureHelper(ushort u1, ushort u2)
{
// hangul L-V pair
@@ -1511,12 +1521,14 @@ static ushort ligatureHelper(ushort u1, ushort u2)
if (index == 0xffff)
return 0;
const unsigned short *ligatures = uc_ligature_map+index;
- ushort length = *ligatures;
- ++ligatures;
- // ### use bsearch
- for (uint i = 0; i < length; ++i)
- if (ligatures[2*i] == u1)
- return ligatures[2*i+1];
+ ushort length = *ligatures++;
+ {
+ const UCS2Pair *data = reinterpret_cast<const UCS2Pair *>(ligatures);
+ const UCS2Pair *r = qBinaryFind(data, data + length, u1);
+ if (r != data + length)
+ return r->u2;
+ }
+
return 0;
}
diff --git a/src/corelib/tools/qsimd_p.h b/src/corelib/tools/qsimd_p.h
index 87fa7700eb..2dbed76523 100644
--- a/src/corelib/tools/qsimd_p.h
+++ b/src/corelib/tools/qsimd_p.h
@@ -87,9 +87,13 @@ QT_BEGIN_HEADER
#include <tmmintrin.h>
#endif
-// SSE4.1 and SSE4.2 intrinsics
-#if (defined(QT_HAVE_SSE4_1) || defined(QT_HAVE_SSE4_2)) && (defined(__SSE4_1__) || defined(Q_CC_MSVC))
+// SSE4.1 intrinsics
+#if defined(QT_HAVE_SSE4_1) && (defined(__SSE4_1__) || defined(Q_CC_MSVC))
#include <smmintrin.h>
+#endif
+
+// SSE4.2 intrinsics
+#if defined(QT_HAVE_SSE4_2) && (defined(__SSE4_2__) || defined(Q_CC_MSVC))
#include <nmmintrin.h>
#endif
diff --git a/src/corelib/tools/qstring.cpp b/src/corelib/tools/qstring.cpp
index bb496c6b82..c30af64a93 100644
--- a/src/corelib/tools/qstring.cpp
+++ b/src/corelib/tools/qstring.cpp
@@ -714,7 +714,7 @@ const QString::Null QString::null = { };
formats, the \e precision represents the maximum number of
significant digits (trailing zeroes are omitted).
- \section1 More Efficient String Construction
+ \section1 More Efficient String Construction
Using the QString \c{'+'} operator, it is easy to construct a
complex string from multiple substrings. You will often write code
@@ -924,7 +924,7 @@ int QString::grow(int size)
/*!
\since 4.2
- Returns a copy of the \a string, where the encoding of \a string depends on
+ Returns a copy of the \a string, where the encoding of \a string depends on
the size of wchar. If wchar is 4 bytes, the \a string is interpreted as ucs-4,
if wchar is 2 bytes it is interpreted as ucs-2.
@@ -3606,7 +3606,7 @@ static QByteArray toLatin1_helper(const QChar *data, int length)
}
length = length % 16;
}
-#elif QT_ALWAYS_HAVE_NEON
+#elif defined(QT_ALWAYS_HAVE_NEON)
// Refer to the documentation of the SSE2 implementation
// this use eactly the same method as for SSE except:
// 1) neon has unsigned comparison
diff --git a/src/declarative/graphicsitems/qdeclarativeflickable.cpp b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
index 0f786e35f8..98c213c8ca 100644
--- a/src/declarative/graphicsitems/qdeclarativeflickable.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeflickable.cpp
@@ -281,7 +281,6 @@ void QDeclarativeFlickablePrivate::fixupY()
void QDeclarativeFlickablePrivate::fixup(AxisData &data, qreal minExtent, qreal maxExtent)
{
- Q_Q(QDeclarativeFlickable);
if (data.move.value() > minExtent || maxExtent > minExtent) {
timeline.reset(data.move);
if (data.move.value() != minExtent) {
@@ -290,8 +289,7 @@ void QDeclarativeFlickablePrivate::fixup(AxisData &data, qreal minExtent, qreal
timeline.move(data.move, minExtent - dist/2, QEasingCurve(QEasingCurve::InQuad), fixupDuration/4);
timeline.move(data.move, minExtent, QEasingCurve(QEasingCurve::OutExpo), 3*fixupDuration/4);
} else {
- data.move.setValue(minExtent);
- q->viewportMoved();
+ timeline.set(data.move, minExtent);
}
}
} else if (data.move.value() < maxExtent) {
@@ -301,8 +299,7 @@ void QDeclarativeFlickablePrivate::fixup(AxisData &data, qreal minExtent, qreal
timeline.move(data.move, maxExtent - dist/2, QEasingCurve(QEasingCurve::InQuad), fixupDuration/4);
timeline.move(data.move, maxExtent, QEasingCurve(QEasingCurve::OutExpo), 3*fixupDuration/4);
} else {
- data.move.setValue(maxExtent);
- q->viewportMoved();
+ timeline.set(data.move, minExtent);
}
}
vTime = timeline.time();
@@ -386,6 +383,13 @@ void QDeclarativeFlickablePrivate::updateBeginningEnd()
\snippet doc/src/snippets/declarative/flickable.qml document
\clearfloat
+
+ Items declared as children of a Flickable are automatically parented to the
+ Flickable's \l contentItem. This should be taken into account when
+ operating on the children of the Flickable; it is usually the children of
+ \c contentItem that are relevant. For example, the bound of Items added
+ to the Flickable will be available by \c contentItem.childrenRect
+
\section1 Limitations
\note Due to an implementation detail, items placed inside a Flickable cannot anchor to it by
@@ -696,6 +700,9 @@ void QDeclarativeFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent
bool rejectY = false;
bool rejectX = false;
+ bool stealY = false;
+ bool stealX = false;
+
if (q->yflick()) {
int dy = int(event->pos().y() - pressPos.y());
if (qAbs(dy) > QApplication::startDragDistance() || QDeclarativeItemPrivate::elapsed(pressTime) > 200) {
@@ -724,7 +731,7 @@ void QDeclarativeFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent
vMoved = true;
}
if (qAbs(dy) > QApplication::startDragDistance())
- stealMouse = true;
+ stealY = true;
}
}
@@ -757,10 +764,12 @@ void QDeclarativeFlickablePrivate::handleMouseMoveEvent(QGraphicsSceneMouseEvent
}
if (qAbs(dx) > QApplication::startDragDistance())
- stealMouse = true;
+ stealX = true;
}
}
+ stealMouse = stealX || stealY;
+
if (!lastPos.isNull()) {
qreal elapsed = qreal(QDeclarativeItemPrivate::restart(lastPosTime)) / 1000.;
if (elapsed <= 0)
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 6be49babe6..450b6af6da 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -183,6 +183,7 @@ public:
, ownModel(false), wrap(false), autoHighlight(true), haveHighlightRange(false)
, correctFlick(false), inFlickCorrection(false), lazyRelease(false)
, deferredRelease(false), layoutScheduled(false), currentIndexCleared(false)
+ , inViewportMoved(false)
, minExtentDirty(true), maxExtentDirty(true)
{}
@@ -503,6 +504,7 @@ public:
bool deferredRelease : 1;
bool layoutScheduled : 1;
bool currentIndexCleared : 1;
+ bool inViewportMoved : 1;
mutable bool minExtentDirty : 1;
mutable bool maxExtentDirty : 1;
};
@@ -2281,6 +2283,10 @@ void QDeclarativeListView::viewportMoved()
QDeclarativeFlickable::viewportMoved();
if (!d->itemCount)
return;
+ // Recursion can occur due to refill changing the content size.
+ if (d->inViewportMoved)
+ return;
+ d->inViewportMoved = true;
d->lazyRelease = true;
refill();
if (d->flickingHorizontally || d->flickingVertically || d->movingHorizontally || d->movingVertically)
@@ -2294,6 +2300,7 @@ void QDeclarativeListView::viewportMoved()
pos = viewPos + d->highlightRangeEnd - d->highlight->size();
if (pos < viewPos + d->highlightRangeStart)
pos = viewPos + d->highlightRangeStart;
+ d->highlightPosAnimator->stop();
d->highlight->setPosition(qRound(pos));
// update current index
@@ -2341,6 +2348,7 @@ void QDeclarativeListView::viewportMoved()
}
d->inFlickCorrection = false;
}
+ d->inViewportMoved = false;
}
qreal QDeclarativeListView::minYExtent() const
diff --git a/src/declarative/graphicsitems/qdeclarativemousearea.cpp b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
index d9edd11171..0a043a7967 100644
--- a/src/declarative/graphicsitems/qdeclarativemousearea.cpp
+++ b/src/declarative/graphicsitems/qdeclarativemousearea.cpp
@@ -500,17 +500,9 @@ void QDeclarativeMouseArea::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
const int dragThreshold = QApplication::startDragDistance();
qreal dx = qAbs(curLocalPos.x() - startLocalPos.x());
qreal dy = qAbs(curLocalPos.y() - startLocalPos.y());
- if ((d->dragX && !(dx < dragThreshold)) || (d->dragY && !(dy < dragThreshold))) {
+
+ if (keepMouseGrab() && d->stealMouse)
d->drag->setActive(true);
- d->stealMouse = true;
- }
- if (!keepMouseGrab()) {
- if ((!d->dragY && dy < dragThreshold && d->dragX && dx > dragThreshold)
- || (!d->dragX && dx < dragThreshold && d->dragY && dy > dragThreshold)
- || (d->dragX && d->dragY)) {
- setKeepMouseGrab(true);
- }
- }
if (d->dragX && d->drag->active()) {
qreal x = (curLocalPos.x() - startLocalPos.x()) + d->startX;
@@ -528,6 +520,16 @@ void QDeclarativeMouseArea::mouseMoveEvent(QGraphicsSceneMouseEvent *event)
y = drag()->ymax();
drag()->target()->setY(y);
}
+
+ if (!keepMouseGrab()) {
+ if ((!d->dragY && dy < dragThreshold && d->dragX && dx > dragThreshold)
+ || (!d->dragX && dx < dragThreshold && d->dragY && dy > dragThreshold)
+ || (d->dragX && d->dragY && (dx > dragThreshold || dy > dragThreshold))) {
+ setKeepMouseGrab(true);
+ d->stealMouse = true;
+ }
+ }
+
d->moved = true;
}
QDeclarativeMouseEvent me(d->lastPos.x(), d->lastPos.y(), d->lastButton, d->lastButtons, d->lastModifiers, false, d->longPress);
@@ -618,6 +620,7 @@ bool QDeclarativeMouseArea::sceneEvent(QEvent *event)
// if our mouse grab has been removed (probably by Flickable), fix our
// state
d->pressed = false;
+ d->stealMouse = false;
setKeepMouseGrab(false);
emit canceled();
emit pressedChanged();
@@ -672,8 +675,18 @@ bool QDeclarativeMouseArea::sendMouseEvent(QGraphicsSceneMouseEvent *event)
return stealThisEvent;
}
if (mouseEvent.type() == QEvent::GraphicsSceneMouseRelease) {
- d->stealMouse = false;
- ungrabMouse();
+ if (d->pressed) {
+ d->pressed = false;
+ d->stealMouse = false;
+ if (s && s->mouseGrabberItem() == this)
+ ungrabMouse();
+ emit canceled();
+ emit pressedChanged();
+ if (d->hovered) {
+ d->hovered = false;
+ emit hoveredChanged();
+ }
+ }
}
return false;
}
diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
index fc3954f042..7686dde887 100644
--- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp
+++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
@@ -260,6 +260,9 @@ void QDeclarativeRectangle::doUpdate()
A width of 1 creates a thin line. For no line, use a width of 0 or a transparent color.
+ \note The width of the rectangle's border does not affect the geometry of the
+ rectangle itself or its position relative to other items if anchors are used.
+
If \c border.width is an odd number, the rectangle is painted at a half-pixel offset to retain
border smoothness. Also, the border is rendered evenly on either side of the
rectangle's boundaries, and the spare pixel is rendered to the right and below the
diff --git a/src/declarative/qml/qdeclarativecompileddata.cpp b/src/declarative/qml/qdeclarativecompileddata.cpp
index a4ecc770c4..690f499b06 100644
--- a/src/declarative/qml/qdeclarativecompileddata.cpp
+++ b/src/declarative/qml/qdeclarativecompileddata.cpp
@@ -169,8 +169,8 @@ QDeclarativeCompiledData::QDeclarativeCompiledData(QDeclarativeEngine *engine)
QDeclarativeCompiledData::~QDeclarativeCompiledData()
{
for (int ii = 0; ii < types.count(); ++ii) {
- if (types.at(ii).ref)
- types.at(ii).ref->release();
+ if (types.at(ii).component)
+ types.at(ii).component->release();
}
for (int ii = 0; ii < propertyCaches.count(); ++ii)
diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp
index b2740b82a6..645402ea29 100644
--- a/src/declarative/qml/qdeclarativecompiler.cpp
+++ b/src/declarative/qml/qdeclarativecompiler.cpp
@@ -591,8 +591,6 @@ bool QDeclarativeCompiler::compile(QDeclarativeEngine *engine,
}
} else if (tref.typeData) {
ref.component = tref.typeData->compiledData();
- ref.ref = tref.typeData;
- ref.ref->addref();
}
ref.className = parserRef->name.toUtf8();
out->types << ref;
diff --git a/src/declarative/qml/qdeclarativecompiler_p.h b/src/declarative/qml/qdeclarativecompiler_p.h
index 43a0901ca4..5cd1fd2864 100644
--- a/src/declarative/qml/qdeclarativecompiler_p.h
+++ b/src/declarative/qml/qdeclarativecompiler_p.h
@@ -89,14 +89,12 @@ public:
struct TypeReference
{
TypeReference()
- : type(0), component(0), ref(0) {}
+ : type(0), component(0) {}
QByteArray className;
QDeclarativeType *type;
-// QDeclarativeComponent *component;
QDeclarativeCompiledData *component;
- QDeclarativeRefCount *ref;
QObject *createInstance(QDeclarativeContextData *, const QBitField &, QList<QDeclarativeError> *) const;
const QMetaObject *metaObject() const;
};
diff --git a/src/declarative/qml/qdeclarativeworkerscript.cpp b/src/declarative/qml/qdeclarativeworkerscript.cpp
index ae7a80d139..75cc6f9f93 100644
--- a/src/declarative/qml/qdeclarativeworkerscript.cpp
+++ b/src/declarative/qml/qdeclarativeworkerscript.cpp
@@ -52,6 +52,7 @@
#include <QtCore/qwaitcondition.h>
#include <QtScript/qscriptvalueiterator.h>
#include <QtCore/qfile.h>
+#include <QtCore/qdatetime.h>
#include <QtNetwork/qnetworkaccessmanager.h>
#include <QtDeclarative/qdeclarativeinfo.h>
#include "qdeclarativenetworkaccessmanagerfactory.h"
@@ -314,6 +315,12 @@ QVariant QDeclarativeWorkerScriptEnginePrivate::scriptValueToVariant(const QScri
return QVariant(value.toString());
} else if (value.isNumber()) {
return QVariant((qreal)value.toNumber());
+ } else if (value.isDate()) {
+ return QVariant(value.toDateTime());
+#ifndef QT_NO_REGEXP
+ } else if (value.isRegExp()) {
+ return QVariant(value.toRegExp());
+#endif
} else if (value.isArray()) {
QVariantList list;
@@ -364,6 +371,12 @@ QScriptValue QDeclarativeWorkerScriptEnginePrivate::variantToScriptValue(const Q
return QScriptValue(value.toString());
} else if (value.userType() == QMetaType::QReal) {
return QScriptValue(value.toReal());
+ } else if (value.userType() == QVariant::DateTime) {
+ return engine->newDate(value.toDateTime());
+#ifndef QT_NO_REGEXP
+ } else if (value.userType() == QVariant::RegExp) {
+ return engine->newRegExp(value.toRegExp());
+#endif
} else if (value.userType() == qMetaTypeId<QDeclarativeListModelWorkerAgent::VariantRef>()) {
QDeclarativeListModelWorkerAgent::VariantRef vr = qvariant_cast<QDeclarativeListModelWorkerAgent::VariantRef>(value);
if (vr.a->scriptEngine() == 0)
diff --git a/src/declarative/util/qdeclarativeopenmetaobject.cpp b/src/declarative/util/qdeclarativeopenmetaobject.cpp
index 40485bd503..c611435a1e 100644
--- a/src/declarative/util/qdeclarativeopenmetaobject.cpp
+++ b/src/declarative/util/qdeclarativeopenmetaobject.cpp
@@ -186,6 +186,7 @@ QDeclarativeOpenMetaObject::QDeclarativeOpenMetaObject(QObject *obj, bool automa
d->type->d->referers.insert(this);
QObjectPrivate *op = QObjectPrivate::get(obj);
+ d->parent = static_cast<QAbstractDynamicMetaObject *>(op->metaObject);
*static_cast<QMetaObject *>(this) = *d->type->d->mem;
op->metaObject = this;
}
@@ -201,6 +202,7 @@ QDeclarativeOpenMetaObject::QDeclarativeOpenMetaObject(QObject *obj, QDeclarativ
d->type->d->referers.insert(this);
QObjectPrivate *op = QObjectPrivate::get(obj);
+ d->parent = static_cast<QAbstractDynamicMetaObject *>(op->metaObject);
*static_cast<QMetaObject *>(this) = *d->type->d->mem;
op->metaObject = this;
}
diff --git a/src/gui/accessible/qaccessible_mac.mm b/src/gui/accessible/qaccessible_mac.mm
index 57ea41b2f7..3b1396ae71 100644
--- a/src/gui/accessible/qaccessible_mac.mm
+++ b/src/gui/accessible/qaccessible_mac.mm
@@ -774,7 +774,7 @@ QAInterface QAccessibleHierarchyManager::lookup(const AXUIElementRef &element)
return factory->interface(id);
#else
return QAInterface();
-#endif;
+#endif
}
QAInterface QAccessibleHierarchyManager::lookup(const QAElement &element)
diff --git a/src/gui/dialogs/dialogs.pri b/src/gui/dialogs/dialogs.pri
index cd8e71a8a0..fc1ea9eafb 100644
--- a/src/gui/dialogs/dialogs.pri
+++ b/src/gui/dialogs/dialogs.pri
@@ -108,6 +108,15 @@ SOURCES += \
dialogs/qwizard.cpp \
dialogs/qprintpreviewdialog.cpp
+symbian:contains(QT_CONFIG, s60) {
+ LIBS += -lcommondialogs
+ SOURCES += dialogs/qfiledialog_symbian.cpp \
+ dialogs/qcolordialog_symbian.cpp
+}
+
FORMS += dialogs/qpagesetupwidget.ui
RESOURCES += dialogs/qprintdialog.qrc
RESOURCES += dialogs/qmessagebox.qrc
+
+# Compensate for lack of platform defines in Symbian3
+symbian: DEFINES += SYMBIAN_VERSION_$$upper($$replace(SYMBIAN_VERSION,\\.,_))
diff --git a/src/gui/dialogs/qabstractprintdialog.cpp b/src/gui/dialogs/qabstractprintdialog.cpp
index 25d9ebbdb3..641419f332 100644
--- a/src/gui/dialogs/qabstractprintdialog.cpp
+++ b/src/gui/dialogs/qabstractprintdialog.cpp
@@ -65,6 +65,9 @@ class QPrintDialogPrivate : public QAbstractPrintDialogPrivate
customize settings shown in print dialogs, but it is not used directly.
Use QPrintDialog to display a print dialog in your application.
+ In Symbian, there is no support for printing. Hence, this dialog should not
+ be used in Symbian.
+
\sa QPrintDialog, QPrinter, {Printing with Qt}
*/
diff --git a/src/gui/dialogs/qcolordialog.cpp b/src/gui/dialogs/qcolordialog.cpp
index e9b5720584..a66a979e22 100644
--- a/src/gui/dialogs/qcolordialog.cpp
+++ b/src/gui/dialogs/qcolordialog.cpp
@@ -1952,6 +1952,12 @@ void QColorDialog::open(QObject *receiver, const char *member)
\sa QDialog::open()
*/
+/*
+ For Symbian color dialogs
+*/
+#ifdef Q_WS_S60
+extern QColor qtSymbianGetColor(const QColor &initial);
+#endif
/*!
\since 4.5
@@ -1961,10 +1967,19 @@ void QColorDialog::open(QObject *receiver, const char *member)
QColor::isValid()) color if the user cancels the dialog.
The \a options argument allows you to customize the dialog.
+
+ On Symbian, this static function will use the native color dialog and not a QColorDialog.
+ On Symbian the parameters \a title and \a parent has no relevance and the
+ \a options parameter is only used to define if the native color dialog is
+ used or not.
*/
QColor QColorDialog::getColor(const QColor &initial, QWidget *parent, const QString &title,
ColorDialogOptions options)
{
+#ifdef Q_WS_S60
+ if (!(options & DontUseNativeDialog))
+ return qtSymbianGetColor(initial);
+#endif
QColorDialog dlg(parent);
if (!title.isEmpty())
dlg.setWindowTitle(title);
@@ -1979,10 +1994,16 @@ QColor QColorDialog::getColor(const QColor &initial, QWidget *parent, const QStr
returns that color. The color is initially set to \a initial. The
dialog is a child of \a parent. It returns an invalid (see
QColor::isValid()) color if the user cancels the dialog.
+
+ On Symbian, this static function will use the native
+ color dialog and not a QColorDialog.
*/
QColor QColorDialog::getColor(const QColor &initial, QWidget *parent)
{
+#ifdef Q_WS_S60
+ return qtSymbianGetColor(initial);
+#endif
return getColor(initial, parent, QString(), ColorDialogOptions(0));
}
diff --git a/src/gui/dialogs/qcolordialog_mac.mm b/src/gui/dialogs/qcolordialog_mac.mm
index 82cfa24937..655de0888f 100644
--- a/src/gui/dialogs/qcolordialog_mac.mm
+++ b/src/gui/dialogs/qcolordialog_mac.mm
@@ -185,7 +185,7 @@ QT_USE_NAMESPACE
[self relayout];
}
-- (void)colorChanged:(NSNotification *)notification;
+- (void)colorChanged:(NSNotification *)notification
{
Q_UNUSED(notification);
[self updateQtColor];
@@ -439,7 +439,7 @@ void QColorDialogPrivate::openCocoaColorPanel(const QColor &initial,
priv:this];
[colorPanel setDelegate:static_cast<QT_MANGLE_NAMESPACE(QCocoaColorPanelDelegate) *>(delegate)];
}
- [delegate setResultSet:false];
+ [static_cast<QT_MANGLE_NAMESPACE(QCocoaColorPanelDelegate) *>(delegate) setResultSet:NO];
setCocoaPanelColor(initial);
[static_cast<QT_MANGLE_NAMESPACE(QCocoaColorPanelDelegate) *>(delegate) showColorPanel];
}
diff --git a/src/gui/dialogs/qcolordialog_symbian.cpp b/src/gui/dialogs/qcolordialog_symbian.cpp
new file mode 100644
index 0000000000..8f73f7cc90
--- /dev/null
+++ b/src/gui/dialogs/qcolordialog_symbian.cpp
@@ -0,0 +1,107 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui 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$
+**
+****************************************************************************/
+
+#include "qcolordialog_p.h"
+
+#ifndef QT_NO_COLORDIALOG
+
+
+#include "qcolor.h"
+#include "private/qguiplatformplugin_p.h"
+
+#ifdef Q_WS_S60
+#include <AknColourSelectionGrid.h>
+#endif
+
+#include "private/qt_s60_p.h"
+
+QT_BEGIN_NAMESPACE
+
+QColor launchSymbianColorDialog(QColor initial)
+{
+ QColor currentColor = QColor::Invalid;
+#ifdef Q_WS_S60
+ QT_TRAP_THROWING(
+ CArrayFixFlat<TRgb>* array = new( ELeave ) CArrayFixFlat<TRgb>(17);
+ CleanupStack::PushL(array);
+ array->AppendL(KRgbBlack);
+ array->AppendL(KRgbDarkGray);
+ array->AppendL(KRgbDarkRed);
+ array->AppendL(KRgbDarkGreen);
+ array->AppendL(KRgbDarkYellow);
+ array->AppendL(KRgbDarkBlue);
+ array->AppendL(KRgbDarkMagenta);
+ array->AppendL(KRgbDarkCyan);
+ array->AppendL(KRgbRed);
+ array->AppendL(KRgbGreen);
+ array->AppendL(KRgbYellow);
+ array->AppendL(KRgbBlue);
+ array->AppendL(KRgbMagenta);
+ array->AppendL(KRgbCyan);
+ array->AppendL(KRgbGray);
+ array->AppendL(KRgbWhite);
+
+ TRgb initialColour(initial.red(), initial.green(), initial.blue(), initial.alpha());
+
+ TBool noneChosen = EFalse; // If true shows the default colour button
+ CAknColourSelectionGrid* colourSelectionGrid =
+ CAknColourSelectionGrid::NewL(array, EFalse, noneChosen, initialColour);
+ CleanupStack::PushL(colourSelectionGrid);
+
+ if (colourSelectionGrid->ExecuteLD()) {
+ currentColor.setRgb(initialColour.Red(), initialColour.Green(),
+ initialColour.Blue(), initialColour.Alpha());
+ }
+ CleanupStack::Pop(colourSelectionGrid);
+ CleanupStack::PopAndDestroy(array);
+ );
+#endif
+ return currentColor;
+}
+
+QColor qtSymbianGetColor(const QColor &initial)
+{
+ return launchSymbianColorDialog(initial);
+}
+
+QT_END_NAMESPACE
+
+#endif // QT_NO_COLORDIALOG
diff --git a/src/gui/dialogs/qfiledialog.cpp b/src/gui/dialogs/qfiledialog.cpp
index 1b9d127063..9509330055 100644
--- a/src/gui/dialogs/qfiledialog.cpp
+++ b/src/gui/dialogs/qfiledialog.cpp
@@ -1616,6 +1616,25 @@ extern QStringList qt_win_get_open_file_names(const QFileDialogArgs &args,
extern QString qt_win_get_existing_directory(const QFileDialogArgs &args);
#endif
+/*
+ For Symbian file dialogs
+*/
+#if defined(Q_WS_S60)
+extern QString qtSymbianGetOpenFileName(const QString &caption,
+ const QString &dir,
+ const QString &filter);
+
+extern QStringList qtSymbianGetOpenFileNames(const QString &caption,
+ const QString &dir,
+ const QString &filter);
+
+extern QString qtSymbianGetSaveFileName(const QString &caption,
+ const QString &dir);
+
+extern QString qtSymbianGetExistingDirectory(const QString &caption,
+ const QString &dir);
+#endif
+
/*!
This is a convenience static function that returns an existing file
selected by the user. If the user presses Cancel, it returns a null string.
@@ -1644,8 +1663,8 @@ extern QString qt_win_get_existing_directory(const QFileDialogArgs &args);
The dialog's caption is set to \a caption. If \a caption is not specified
then a default caption will be used.
- On Windows and Mac OS X, this static function will use the native file
- dialog and not a QFileDialog.
+ On Windows, Mac OS X and Symbian^3, this static function will use the
+ native file dialog and not a QFileDialog.
On Windows the dialog will spin a blocking modal event loop that will not
dispatch any QTimers, and if \a parent is not 0 then it will position the
@@ -1657,6 +1676,10 @@ extern QString qt_win_get_existing_directory(const QFileDialogArgs &args);
\a options includes DontResolveSymlinks, the file dialog will treat
symlinks as regular directories.
+ On Symbian^3 the parameter \a selectedFilter has no meaning and the
+ \a options parameter is only used to define if the native file dialog is
+ used.
+
\warning Do not delete \a parent during the execution of the dialog. If you
want to do this, you should create the dialog yourself using one of the
QFileDialog constructors.
@@ -1672,6 +1695,10 @@ QString QFileDialog::getOpenFileName(QWidget *parent,
{
if (qt_filedialog_open_filename_hook && !(options & DontUseNativeDialog))
return qt_filedialog_open_filename_hook(parent, caption, dir, filter, selectedFilter, options);
+#if defined(Q_WS_S60)
+ if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog))
+ return qtSymbianGetOpenFileName(caption, dir, filter);
+#endif
QFileDialogArgs args;
args.parent = parent;
args.caption = caption;
@@ -1722,8 +1749,8 @@ QString QFileDialog::getOpenFileName(QWidget *parent,
The dialog's caption is set to \a caption. If \a caption is not specified
then a default caption will be used.
- On Windows and Mac OS X, this static function will use the native file
- dialog and not a QFileDialog.
+ On Windows, Mac OS X and Symbian^3, this static function will use the
+ native file dialog and not a QFileDialog.
On Windows the dialog will spin a blocking modal event loop that will not
dispatch any QTimers, and if \a parent is not 0 then it will position the
@@ -1741,6 +1768,10 @@ QString QFileDialog::getOpenFileName(QWidget *parent,
\snippet doc/src/snippets/code/src_gui_dialogs_qfiledialog.cpp 10
+ On Symbian^3 the parameter \a selectedFilter has no meaning and the
+ \a options parameter is only used to define if the native file dialog is
+ used.
+
\warning Do not delete \a parent during the execution of the dialog. If you
want to do this, you should create the dialog yourself using one of the
QFileDialog constructors.
@@ -1756,6 +1787,10 @@ QStringList QFileDialog::getOpenFileNames(QWidget *parent,
{
if (qt_filedialog_open_filenames_hook && !(options & DontUseNativeDialog))
return qt_filedialog_open_filenames_hook(parent, caption, dir, filter, selectedFilter, options);
+#if defined(Q_WS_S60)
+ if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog))
+ return qtSymbianGetOpenFileNames(caption, dir, filter);
+#endif
QFileDialogArgs args;
args.parent = parent;
args.caption = caption;
@@ -1813,8 +1848,8 @@ QStringList QFileDialog::getOpenFileNames(QWidget *parent,
The dialog's caption is set to \a caption. If \a caption is not specified,
a default caption will be used.
- On Windows and Mac OS X, this static function will use the native file
- dialog and not a QFileDialog.
+ On Windows, Mac OS X and Symbian^3, this static function will use the
+ native file dialog and not a QFileDialog.
On Windows the dialog will spin a blocking modal event loop that will not
dispatch any QTimers, and if \a parent is not 0 then it will position the
@@ -1827,6 +1862,10 @@ QStringList QFileDialog::getOpenFileNames(QWidget *parent,
\a options includes DontResolveSymlinks the file dialog will treat symlinks
as regular directories.
+ On Symbian^3 the parameters \a filter and \a selectedFilter have no
+ meaning. The \a options parameter is only used to define if the native file
+ dialog is used.
+
\warning Do not delete \a parent during the execution of the dialog. If you
want to do this, you should create the dialog yourself using one of the
QFileDialog constructors.
@@ -1842,6 +1881,10 @@ QString QFileDialog::getSaveFileName(QWidget *parent,
{
if (qt_filedialog_save_filename_hook && !(options & DontUseNativeDialog))
return qt_filedialog_save_filename_hook(parent, caption, dir, filter, selectedFilter, options);
+#if defined(Q_WS_S60)
+ if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog))
+ return qtSymbianGetSaveFileName(caption, dir);
+#endif
QFileDialogArgs args;
args.parent = parent;
args.caption = caption;
@@ -1890,9 +1933,9 @@ QString QFileDialog::getSaveFileName(QWidget *parent,
pass. To ensure a native file dialog, \l{QFileDialog::}{ShowDirsOnly} must
be set.
- On Windows and Mac OS X, this static function will use the native file
- dialog and not a QFileDialog. On Windows CE, if the device has no native
- file dialog, a QFileDialog will be used.
+ On Windows, Mac OS X and Symbian^3, this static function will use the
+ native file dialog and not a QFileDialog. On Windows CE, if the device has
+ no native file dialog, a QFileDialog will be used.
On Unix/X11, the normal behavior of the file dialog is to resolve and
follow symlinks. For example, if \c{/usr/tmp} is a symlink to \c{/var/tmp},
@@ -1904,6 +1947,9 @@ QString QFileDialog::getSaveFileName(QWidget *parent,
dispatch any QTimers, and if \a parent is not 0 then it will position the
dialog just below the parent's title bar.
+ On Symbian^3 the \a options parameter is only used to define if the native
+ file dialog is used.
+
\warning Do not delete \a parent during the execution of the dialog. If you
want to do this, you should create the dialog yourself using one of the
QFileDialog constructors.
@@ -1917,6 +1963,10 @@ QString QFileDialog::getExistingDirectory(QWidget *parent,
{
if (qt_filedialog_existing_directory_hook && !(options & DontUseNativeDialog))
return qt_filedialog_existing_directory_hook(parent, caption, dir, options);
+#if defined(Q_WS_S60)
+ if (QSysInfo::s60Version() > QSysInfo::SV_S60_5_0 && !(options & DontUseNativeDialog))
+ return qtSymbianGetExistingDirectory(caption, dir);
+#endif
QFileDialogArgs args;
args.parent = parent;
args.caption = caption;
diff --git a/src/gui/dialogs/qfiledialog_symbian.cpp b/src/gui/dialogs/qfiledialog_symbian.cpp
new file mode 100644
index 0000000000..1f7030510d
--- /dev/null
+++ b/src/gui/dialogs/qfiledialog_symbian.cpp
@@ -0,0 +1,196 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the QtGui 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$
+**
+****************************************************************************/
+
+#include "qfiledialog.h"
+
+#ifndef QT_NO_FILEDIALOG
+
+#include <private/qfiledialog_p.h>
+#if defined(Q_WS_S60) && defined(SYMBIAN_VERSION_SYMBIAN3)
+#include <driveinfo.h>
+#include <AknCommonDialogsDynMem.h>
+#include <CAknMemorySelectionDialogMultiDrive.h>
+#include <MAknFileFilter.h>
+#endif
+#include "private/qcore_symbian_p.h"
+
+QT_BEGIN_NAMESPACE
+
+enum DialogMode { DialogOpen, DialogSave, DialogFolder };
+#if defined(Q_WS_S60) && defined(SYMBIAN_VERSION_SYMBIAN3)
+class CExtensionFilter : public MAknFileFilter
+{
+public:
+ void setFilter(const QString filter)
+ {
+ filterList.clear();
+ if (filter.left(2) == QLatin1String("*.")) {
+ //Filter has only extensions
+ filterList << filter.split(" ");
+ return;
+ } else {
+ //Extensions are in parenthesis and there may be several filters
+ QStringList separatedFilters(filter.split(QLatin1String(";;")));
+ for (int i = 0; i < separatedFilters.size(); i++) {
+ if (separatedFilters.at(i).contains(QLatin1String("(*)"))) {
+ filterList << QLatin1String("(*)");
+ return;
+ }
+ }
+ QRegExp rx("\\(([^\\)]*)\\)");
+ int pos = 0;
+ while ((pos = rx.indexIn(filter, pos)) != -1) {
+ filterList << rx.cap(1).split(QLatin1String(" "));
+ pos += rx.matchedLength();
+ }
+ }
+ }
+
+ TBool Accept(const TDesC &/*aDriveAndPath*/, const TEntry &aEntry) const
+ {
+ if (aEntry.IsDir())
+ return ETrue;
+
+ //If no filter for files, all can be accepted
+ if (filterList.isEmpty())
+ return ETrue;
+
+ if (filterList == QStringList(QLatin1String("(*)")))
+ return ETrue;
+
+ for (int i = 0; i < filterList.size(); ++i) {
+ QString extension = filterList.at(i);
+ //remove '*' from the beginning of the extension
+ if (extension.at(0) == QLatin1Char('*'))
+ extension = extension.mid(1);
+
+ QString fileName = qt_TDesC2QString(aEntry.iName);
+ if (fileName.endsWith(extension))
+ return ETrue;
+ }
+ return EFalse;
+ }
+
+private:
+ QStringList filterList;
+};
+#endif
+
+static QString launchSymbianDialog(const QString dialogCaption, const QString startDirectory,
+ const QString filter, DialogMode dialogMode)
+{
+ QString selection;
+#if defined(Q_WS_S60) && defined(SYMBIAN_VERSION_SYMBIAN3)
+ QT_TRAP_THROWING(
+ TFileName startFolder;
+ if (!startDirectory.isEmpty()) {
+ QString dir = QDir::toNativeSeparators(startDirectory);
+ startFolder = qt_QString2TPtrC(dir);
+ }
+ TInt types = AknCommonDialogsDynMem::EMemoryTypeMMCExternal|
+ AknCommonDialogsDynMem::EMemoryTypeInternalMassStorage|
+ AknCommonDialogsDynMem::EMemoryTypePhone;
+
+ TPtrC titlePtr(qt_QString2TPtrC(dialogCaption));
+ TFileName target;
+ bool select = false;
+ if (dialogMode == DialogOpen) {
+ CExtensionFilter* extensionFilter = new (ELeave) CExtensionFilter;
+ CleanupStack::PushL(extensionFilter);
+ extensionFilter->setFilter(filter);
+ select = AknCommonDialogsDynMem::RunSelectDlgLD(types, target,
+ startFolder, NULL, NULL, titlePtr, extensionFilter);
+ CleanupStack::Pop(extensionFilter);
+ } else if (dialogMode == DialogSave) {
+ select = AknCommonDialogsDynMem::RunSaveDlgLD(types, target,
+ startFolder, NULL, NULL, titlePtr);
+ } else if (dialogMode == DialogFolder) {
+ select = AknCommonDialogsDynMem::RunFolderSelectDlgLD(types, target, startFolder,
+ 0, 0, titlePtr, NULL, NULL);
+ }
+ if (select)
+ selection.append(qt_TDesC2QString(target));
+ );
+#endif
+ return selection;
+}
+
+QString qtSymbianGetOpenFileName(const QString &caption,
+ const QString &dir,
+ const QString &filter)
+{
+ return launchSymbianDialog(caption, dir, filter, DialogOpen);
+}
+
+QStringList qtSymbianGetOpenFileNames(const QString &caption,
+ const QString &dir,
+ const QString &filter)
+{
+ QString fileName;
+ fileName.append(launchSymbianDialog(caption, dir, filter, DialogOpen));
+ QStringList fileList;
+ fileList << fileName;
+
+ return fileList;
+}
+
+QString qtSymbianGetSaveFileName(const QString &caption,
+ const QString &dir)
+{
+ return launchSymbianDialog(caption, dir, QString(), DialogSave);
+}
+
+QString qtSymbianGetExistingDirectory(const QString &caption,
+ const QString &dir)
+{
+ QString folderCaption;
+ if (!caption.isEmpty()) {
+ folderCaption.append(caption);
+ } else {
+ // Title for folder selection dialog is mandatory
+ folderCaption.append(QFileDialog::tr("Find Directory"));
+ }
+ return launchSymbianDialog(folderCaption, dir, QString(), DialogFolder);
+}
+
+QT_END_NAMESPACE
+
+#endif
diff --git a/src/gui/dialogs/qfontdialog_mac.mm b/src/gui/dialogs/qfontdialog_mac.mm
index 6fb363bcae..e2c2fc25c4 100644
--- a/src/gui/dialogs/qfontdialog_mac.mm
+++ b/src/gui/dialogs/qfontdialog_mac.mm
@@ -339,7 +339,7 @@ static QFont qfontForCocoaFont(NSFont *cocoaFont, const QFont &resolveFont)
[self relayoutToContentSize:[[mStolenContentView superview] frame].size];
}
-- (void)relayoutToContentSize:(NSSize)frameSize;
+- (void)relayoutToContentSize:(NSSize)frameSize
{
Q_ASSERT(mPanelHackedWithButtons);
diff --git a/src/gui/dialogs/qmessagebox.cpp b/src/gui/dialogs/qmessagebox.cpp
index f849996151..224a176e96 100644
--- a/src/gui/dialogs/qmessagebox.cpp
+++ b/src/gui/dialogs/qmessagebox.cpp
@@ -776,10 +776,8 @@ QMessageBox::QMessageBox(QWidget *parent)
added at any time using addButton(). The \a parent and \a f
arguments are passed to the QDialog constructor.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
On Mac OS X, if \a parent is not 0 and you want your message box
to appear as a Qt::Sheet of that parent, set the message box's
@@ -1549,10 +1547,8 @@ static QMessageBox::StandardButton showNewMessageBox(QWidget *parent,
\key Esc was pressed instead, the \l{Default and Escape Keys}
{escape button} is returned.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\sa question(), warning(), critical()
*/
@@ -1579,10 +1575,8 @@ QMessageBox::StandardButton QMessageBox::information(QWidget *parent, const QStr
\key Esc was pressed instead, the \l{Default and Escape Keys}
{escape button} is returned.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\sa information(), warning(), critical()
*/
@@ -1607,10 +1601,8 @@ QMessageBox::StandardButton QMessageBox::question(QWidget *parent, const QString
\key Esc was pressed instead, the \l{Default and Escape Keys}
{escape button} is returned.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\sa question(), information(), critical()
*/
@@ -1635,10 +1627,8 @@ QMessageBox::StandardButton QMessageBox::warning(QWidget *parent, const QString
\key Esc was pressed instead, the \l{Default and Escape Keys}
{escape button} is returned.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\warning Do not delete \a parent during the execution of the dialog.
If you want to do this, you should create the dialog
@@ -1670,7 +1660,7 @@ QMessageBox::StandardButton QMessageBox::critical(QWidget *parent, const QString
The about box has a single button labelled "OK". On Mac OS X, the
about box is popped up as a modeless window; on other platforms,
- it is currently a window modal.
+ it is currently application modal.
\sa QWidget::windowIcon(), QApplication::activeWindow()
*/
@@ -1723,7 +1713,7 @@ void QMessageBox::about(QWidget *parent, const QString &title, const QString &te
QApplication provides this functionality as a slot.
On Mac OS X, the about box is popped up as a modeless window; on
- other platforms, it is currently window modal.
+ other platforms, it is currently application modal.
\sa QApplication::aboutQt()
*/
@@ -1983,10 +1973,8 @@ void QMessageBoxPrivate::retranslateStrings()
\snippet doc/src/snippets/dialogs/dialogs.cpp 2
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
The \a parent and \a f arguments are passed to
the QDialog constructor.
@@ -2035,10 +2023,8 @@ QMessageBox::QMessageBox(const QString &title, const QString &text, Icon icon,
Returns the identity (QMessageBox::Ok, or QMessageBox::No, etc.)
of the button that was clicked.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\warning Do not delete \a parent during the execution of the dialog.
If you want to do this, you should create the dialog
@@ -2073,10 +2059,8 @@ int QMessageBox::information(QWidget *parent, const QString &title, const QStrin
supply 0, 1 or 2 to make pressing \key Esc equivalent to clicking
the relevant button.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\warning Do not delete \a parent during the execution of the dialog.
If you want to do this, you should create the dialog
@@ -2125,10 +2109,8 @@ int QMessageBox::information(QWidget *parent, const QString &title, const QStrin
Returns the identity (QMessageBox::Yes, or QMessageBox::No, etc.)
of the button that was clicked.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\warning Do not delete \a parent during the execution of the dialog.
If you want to do this, you should create the dialog
@@ -2163,10 +2145,8 @@ int QMessageBox::question(QWidget *parent, const QString &title, const QString&
supply 0, 1 or 2 to make pressing Escape equivalent to clicking
the relevant button.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\warning Do not delete \a parent during the execution of the dialog.
If you want to do this, you should create the dialog
@@ -2215,10 +2195,8 @@ int QMessageBox::question(QWidget *parent, const QString &title, const QString&
Returns the identity (QMessageBox::Ok or QMessageBox::No or ...)
of the button that was clicked.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\warning Do not delete \a parent during the execution of the dialog.
If you want to do this, you should create the dialog
@@ -2253,10 +2231,8 @@ int QMessageBox::warning(QWidget *parent, const QString &title, const QString& t
supply 0, 1, or 2 to make pressing Escape equivalent to clicking
the relevant button.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\warning Do not delete \a parent during the execution of the dialog.
If you want to do this, you should create the dialog
@@ -2304,10 +2280,8 @@ int QMessageBox::warning(QWidget *parent, const QString &title, const QString& t
Returns the identity (QMessageBox::Ok, or QMessageBox::No, etc.)
of the button that was clicked.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\warning Do not delete \a parent during the execution of the dialog.
If you want to do this, you should create the dialog
@@ -2343,10 +2317,8 @@ int QMessageBox::critical(QWidget *parent, const QString &title, const QString&
supply 0, 1, or 2 to make pressing Escape equivalent to clicking
the relevant button.
- If \a parent is 0, the message box is an \l{Qt::ApplicationModal}
- {application modal} dialog box. If \a parent is a widget, the
- message box is \l{Qt::WindowModal} {window modal} relative to \a
- parent.
+ The message box is an \l{Qt::ApplicationModal} {application modal}
+ dialog box.
\warning Do not delete \a parent during the execution of the dialog.
If you want to do this, you should create the dialog
diff --git a/src/gui/dialogs/qpagesetupdialog.cpp b/src/gui/dialogs/qpagesetupdialog.cpp
index 5d77de1b71..b5be942b82 100644
--- a/src/gui/dialogs/qpagesetupdialog.cpp
+++ b/src/gui/dialogs/qpagesetupdialog.cpp
@@ -62,6 +62,9 @@ QT_BEGIN_NAMESPACE
page margins set on a QPrinter won't show in the native Mac OS X
page setup dialog.
+ In Symbian, there is no support for printing. Hence, this dialog should not
+ be used in Symbian.
+
\sa QPrinter, QPrintDialog
*/
diff --git a/src/gui/dialogs/qpagesetupdialog_mac.mm b/src/gui/dialogs/qpagesetupdialog_mac.mm
index 0302be4d46..f7a9aabff8 100644
--- a/src/gui/dialogs/qpagesetupdialog_mac.mm
+++ b/src/gui/dialogs/qpagesetupdialog_mac.mm
@@ -61,7 +61,7 @@ QT_USE_NAMESPACE
@end
@implementation QT_MANGLE_NAMESPACE(QCocoaPageLayoutDelegate)
-- (id)initWithMacPrintEngine:(QMacPrintEnginePrivate *)printEngine;
+- (id)initWithMacPrintEngine:(QMacPrintEnginePrivate *)printEngine
{
self = [super init];
if (self) {
@@ -312,4 +312,4 @@ int QPageSetupDialog::exec()
QT_END_NAMESPACE
-#endif QT_NO_PRINTDIALOG
+#endif /* QT_NO_PRINTDIALOG */
diff --git a/src/gui/dialogs/qprintpreviewdialog.cpp b/src/gui/dialogs/qprintpreviewdialog.cpp
index f21343e2dc..d74742a5db 100644
--- a/src/gui/dialogs/qprintpreviewdialog.cpp
+++ b/src/gui/dialogs/qprintpreviewdialog.cpp
@@ -676,6 +676,8 @@ void QPrintPreviewDialogPrivate::_q_zoomFactorChanged()
Call QPrintPreviewDialog::exec() to show the preview dialog.
\endlist
+ In Symbian, there is no support for printing. Hence, this dialog should not
+ be used in Symbian.
\sa QPrinter, QPrintDialog, QPageSetupDialog, QPrintPreviewWidget
*/
diff --git a/src/gui/graphicsview/qgraphicsgridlayout.cpp b/src/gui/graphicsview/qgraphicsgridlayout.cpp
index 41048346a3..477aea327f 100644
--- a/src/gui/graphicsview/qgraphicsgridlayout.cpp
+++ b/src/gui/graphicsview/qgraphicsgridlayout.cpp
@@ -64,6 +64,17 @@
removeAt() will remove an item from the layout, without
destroying it.
+ \section1 Size Hints and Size Policies in QGraphicsGridLayout
+
+ QGraphicsGridLayout respects each item's size hints and size policies,
+ and when a cell in the grid has more space than the items can fill, each item
+ is arranged according to the layout's alignment for that item. You can set
+ an alignment for each item by calling setAlignment(), and check the
+ alignment for any item by calling alignment(). You can also set the alignment
+ for an entire row or column by calling setRowAlignment() and setColumnAlignment()
+ respectively. By default, items are aligned to the top left.
+
+
\sa QGraphicsLinearLayout, QGraphicsWidget
*/
diff --git a/src/gui/graphicsview/qgraphicslayoutitem.cpp b/src/gui/graphicsview/qgraphicslayoutitem.cpp
index fab1bbba6f..b650391128 100644
--- a/src/gui/graphicsview/qgraphicslayoutitem.cpp
+++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp
@@ -137,19 +137,28 @@ void QGraphicsLayoutItemPrivate::init()
QSizeF *QGraphicsLayoutItemPrivate::effectiveSizeHints(const QSizeF &constraint) const
{
Q_Q(const QGraphicsLayoutItem);
- if (!sizeHintCacheDirty && cachedConstraint == constraint)
- return cachedSizeHints;
+ QSizeF *sizeHintCache;
+ const bool hasConstraint = constraint.width() >= 0 || constraint.height() >= 0;
+ if (hasConstraint) {
+ if (!sizeHintWithConstraintCacheDirty && constraint == cachedConstraint)
+ return cachedSizeHintsWithConstraints;
+ sizeHintCache = cachedSizeHintsWithConstraints;
+ } else {
+ if (!sizeHintCacheDirty)
+ return cachedSizeHints;
+ sizeHintCache = cachedSizeHints;
+ }
for (int i = 0; i < Qt::NSizeHints; ++i) {
- cachedSizeHints[i] = constraint;
+ sizeHintCache[i] = constraint;
if (userSizeHints)
- combineSize(cachedSizeHints[i], userSizeHints[i]);
+ combineSize(sizeHintCache[i], userSizeHints[i]);
}
- QSizeF &minS = cachedSizeHints[Qt::MinimumSize];
- QSizeF &prefS = cachedSizeHints[Qt::PreferredSize];
- QSizeF &maxS = cachedSizeHints[Qt::MaximumSize];
- QSizeF &descentS = cachedSizeHints[Qt::MinimumDescent];
+ QSizeF &minS = sizeHintCache[Qt::MinimumSize];
+ QSizeF &prefS = sizeHintCache[Qt::PreferredSize];
+ QSizeF &maxS = sizeHintCache[Qt::MaximumSize];
+ QSizeF &descentS = sizeHintCache[Qt::MinimumDescent];
normalizeHints(minS.rwidth(), prefS.rwidth(), maxS.rwidth(), descentS.rwidth());
normalizeHints(minS.rheight(), prefS.rheight(), maxS.rheight(), descentS.rheight());
@@ -175,9 +184,13 @@ QSizeF *QGraphicsLayoutItemPrivate::effectiveSizeHints(const QSizeF &constraint)
// Not supported yet
// COMBINE_SIZE(descentS, q->sizeHint(Qt::MinimumDescent, constraint));
- cachedConstraint = constraint;
- sizeHintCacheDirty = false;
- return cachedSizeHints;
+ if (hasConstraint) {
+ cachedConstraint = constraint;
+ sizeHintWithConstraintCacheDirty = false;
+ } else {
+ sizeHintCacheDirty = false;
+ }
+ return sizeHintCache;
}
diff --git a/src/gui/graphicsview/qgraphicslayoutitem_p.h b/src/gui/graphicsview/qgraphicslayoutitem_p.h
index b752e03ad2..d72ee9f0d9 100644
--- a/src/gui/graphicsview/qgraphicslayoutitem_p.h
+++ b/src/gui/graphicsview/qgraphicslayoutitem_p.h
@@ -85,8 +85,10 @@ public:
QSizeF *userSizeHints;
mutable QSizeF cachedSizeHints[Qt::NSizeHints];
mutable QSizeF cachedConstraint;
+ mutable QSizeF cachedSizeHintsWithConstraints[Qt::NSizeHints];
mutable quint32 sizeHintCacheDirty : 1;
+ mutable quint32 sizeHintWithConstraintCacheDirty : 1;
quint32 isLayout : 1;
quint32 ownedByLayout : 1;
diff --git a/src/gui/graphicsview/qgraphicslinearlayout.cpp b/src/gui/graphicsview/qgraphicslinearlayout.cpp
index 7e8d19f2aa..244a7284ba 100644
--- a/src/gui/graphicsview/qgraphicslinearlayout.cpp
+++ b/src/gui/graphicsview/qgraphicslinearlayout.cpp
@@ -75,7 +75,7 @@
is arranged according to the layout's alignment for that item. You can set
an alignment for each item by calling setAlignment(), and check the
alignment for any item by calling alignment(). By default, items are
- centered both vertically and horizontally.
+ aligned to the top left.
\section1 Spacing within QGraphicsLinearLayout
@@ -446,7 +446,7 @@ void QGraphicsLinearLayout::setAlignment(QGraphicsLayoutItem *item, Qt::Alignmen
/*!
Returns the alignment for \a item. The default alignment is
- Qt::AlignCenter.
+ Qt::AlignTop | Qt::AlignLeft.
The alignment decides how the item is positioned within its assigned space
in the case where there's more space available in the layout than the
diff --git a/src/gui/graphicsview/qgraphicstransform.cpp b/src/gui/graphicsview/qgraphicstransform.cpp
index 1f155c6e9d..d495da27cb 100644
--- a/src/gui/graphicsview/qgraphicstransform.cpp
+++ b/src/gui/graphicsview/qgraphicstransform.cpp
@@ -54,7 +54,7 @@
instances to one QGraphicsItem. Each QGraphicsTransform is applied in
order, one at a time, to the QGraphicsItem it's assigned to.
- QGraphicsTransform is particularily useful for animations. Whereas
+ QGraphicsTransform is particularly useful for animations. Whereas
QGraphicsItem::setTransform() lets you assign any transform directly to an
item, there is no direct way to interpolate between two different
transformations (e.g., when transitioning between two states, each for
diff --git a/src/gui/graphicsview/qgridlayoutengine.cpp b/src/gui/graphicsview/qgridlayoutengine.cpp
index 7f8d574e42..75f1cf5190 100644
--- a/src/gui/graphicsview/qgridlayoutengine.cpp
+++ b/src/gui/graphicsview/qgridlayoutengine.cpp
@@ -166,7 +166,7 @@ void QGridLayoutRowData::reset(int count)
hasIgnoreFlag = false;
}
-void QGridLayoutRowData::distributeMultiCells()
+void QGridLayoutRowData::distributeMultiCells(const QGridLayoutRowInfo &rowInfo)
{
MultiCellMap::const_iterator i = multiCellMap.constBegin();
for (; i != multiCellMap.constEnd(); ++i) {
@@ -185,7 +185,7 @@ void QGridLayoutRowData::distributeMultiCells()
qreal extra = compare(box, totalBox, j);
if (extra > 0.0) {
calculateGeometries(start, end, box.q_sizes(j), dummy.data(), newSizes.data(),
- 0, totalBox);
+ 0, totalBox, rowInfo);
for (int k = 0; k < span; ++k)
extras[k].q_sizes(j) = newSizes[k];
@@ -202,11 +202,12 @@ void QGridLayoutRowData::distributeMultiCells()
void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSize, qreal *positions,
qreal *sizes, qreal *descents,
- const QGridLayoutBox &totalBox)
+ const QGridLayoutBox &totalBox,
+ const QGridLayoutRowInfo &rowInfo)
{
Q_ASSERT(end > start);
- targetSize = qBound(totalBox.q_minimumSize, targetSize, totalBox.q_maximumSize);
+ targetSize = qMax(totalBox.q_minimumSize, targetSize);
int n = end - start;
QVarLengthArray<qreal> newSizes(n);
@@ -246,16 +247,22 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz
}
}
} else {
- stealBox(start, end, PreferredSize, positions, sizes);
+ bool isLargerThanMaximum = (targetSize > totalBox.q_maximumSize);
+ if (isLargerThanMaximum) {
+ stealBox(start, end, MaximumSize, positions, sizes);
+ sumAvailable = targetSize - totalBox.q_maximumSize;
+ } else {
+ stealBox(start, end, PreferredSize, positions, sizes);
+ sumAvailable = targetSize - totalBox.q_preferredSize;
+ }
- sumAvailable = targetSize - totalBox.q_preferredSize;
if (sumAvailable > 0.0) {
qreal sumCurrentAvailable = sumAvailable;
bool somethingHasAMaximumSize = false;
- qreal sumPreferredSizes = 0.0;
+ qreal sumSizes = 0.0;
for (int i = 0; i < n; ++i)
- sumPreferredSizes += sizes[i];
+ sumSizes += sizes[i];
for (int i = 0; i < n; ++i) {
if (ignore.testBit(start + i)) {
@@ -265,7 +272,16 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz
}
const QGridLayoutBox &box = boxes.at(start + i);
- qreal desired = box.q_maximumSize - box.q_preferredSize;
+ qreal boxSize;
+
+ qreal desired;
+ if (isLargerThanMaximum) {
+ boxSize = box.q_maximumSize;
+ desired = rowInfo.boxes.value(start + i).q_maximumSize - boxSize;
+ } else {
+ boxSize = box.q_preferredSize;
+ desired = box.q_maximumSize - boxSize;
+ }
if (desired == 0.0) {
newSizes[i] = sizes[i];
factors[i] = 0.0;
@@ -284,17 +300,17 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz
} else if (stretch <= 0) {
factors[i] = 0.0;
} else {
- qreal ultimatePreferredSize;
- qreal ultimateSumPreferredSizes;
- qreal x = ((stretch * sumPreferredSizes)
- - (sumStretches * box.q_preferredSize))
+ qreal ultimateSize;
+ qreal ultimateSumSizes;
+ qreal x = ((stretch * sumSizes)
+ - (sumStretches * boxSize))
/ (sumStretches - stretch);
if (x >= 0.0) {
- ultimatePreferredSize = box.q_preferredSize + x;
- ultimateSumPreferredSizes = sumPreferredSizes + x;
+ ultimateSize = boxSize + x;
+ ultimateSumSizes = sumSizes + x;
} else {
- ultimatePreferredSize = box.q_preferredSize;
- ultimateSumPreferredSizes = (sumStretches * box.q_preferredSize)
+ ultimateSize = boxSize;
+ ultimateSumSizes = (sumStretches * boxSize)
/ stretch;
}
@@ -303,17 +319,17 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz
(at the expense of the stretch factors, which are not fully respected
during the transition).
*/
- ultimatePreferredSize = ultimatePreferredSize * 3 / 2;
- ultimateSumPreferredSizes = ultimateSumPreferredSizes * 3 / 2;
+ ultimateSize = ultimateSize * 3 / 2;
+ ultimateSumSizes = ultimateSumSizes * 3 / 2;
- qreal beta = ultimateSumPreferredSizes - sumPreferredSizes;
+ qreal beta = ultimateSumSizes - sumSizes;
if (!beta) {
factors[i] = 1;
} else {
qreal alpha = qMin(sumCurrentAvailable, beta);
- qreal ultimateFactor = (stretch * ultimateSumPreferredSizes / sumStretches)
- - (box.q_preferredSize);
- qreal transitionalFactor = sumCurrentAvailable * (ultimatePreferredSize - box.q_preferredSize) / beta;
+ qreal ultimateFactor = (stretch * ultimateSumSizes / sumStretches)
+ - (boxSize);
+ qreal transitionalFactor = sumCurrentAvailable * (ultimateSize - boxSize) / beta;
factors[i] = ((alpha * ultimateFactor)
+ ((beta - alpha) * transitionalFactor)) / beta;
@@ -336,11 +352,16 @@ void QGridLayoutRowData::calculateGeometries(int start, int end, qreal targetSiz
if (newSizes[i] >= 0.0)
continue;
- const QGridLayoutBox &box = boxes.at(start + i);
+ qreal maxBoxSize;
+ if (isLargerThanMaximum)
+ maxBoxSize = rowInfo.boxes.value(start + i).q_maximumSize;
+ else
+ maxBoxSize = boxes.at(start + i).q_maximumSize;
+
qreal avail = sumCurrentAvailable * factors[i] / sumFactors;
- if (sizes[i] + avail >= box.q_maximumSize) {
- newSizes[i] = box.q_maximumSize;
- sumCurrentAvailable -= box.q_maximumSize - sizes[i];
+ if (sizes[i] + avail >= maxBoxSize) {
+ newSizes[i] = maxBoxSize;
+ sumCurrentAvailable -= maxBoxSize - sizes[i];
sumFactors -= factors[i];
keepGoing = (sumCurrentAvailable > 0.0);
if (!keepGoing)
@@ -637,7 +658,7 @@ QRectF QGridLayoutItem::geometryWithin(qreal x, qreal y, qreal width, qreal heig
if (dynamicConstraintOrientation() == Qt::Vertical) {
if (size.width() > cellWidth)
size = effectiveMaxSize(QSizeF(cellWidth, -1));
- } else if(size.height() > cellHeight) {
+ } else if (size.height() > cellHeight) {
size = effectiveMaxSize(QSizeF(-1, cellHeight));
}
}
@@ -1116,63 +1137,58 @@ QSizeF QGridLayoutEngine::sizeHint(const QLayoutStyleInfo &styleInfo, Qt::SizeHi
{
QGridLayoutBox sizehint_totalBoxes[NOrientations];
- if(rowCount() < 1 || columnCount() < 1 || !hasDynamicConstraint()) {
+ bool sizeHintCalculated = false;
+
+ if (hasDynamicConstraint() && rowCount() > 0 && columnCount() > 0) {
+ if (constraintOrientation() == Qt::Vertical) {
+ //We have items whose height depends on their width
+ if (constraint.width() >= 0) {
+ if (q_cachedDataForStyleInfo != styleInfo)
+ ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, NULL, NULL, Qt::Horizontal);
+ else
+ sizehint_totalBoxes[Hor] = q_totalBoxes[Hor];
+ QVector<qreal> sizehint_xx;
+ QVector<qreal> sizehint_widths;
+
+ sizehint_xx.resize(columnCount());
+ sizehint_widths.resize(columnCount());
+ qreal width = constraint.width();
+ //Calculate column widths and positions, and put results in q_xx.data() and q_widths.data() so that we can use this information as
+ //constraints to find the row heights
+ q_columnData.calculateGeometries(0, columnCount(), width, sizehint_xx.data(), sizehint_widths.data(),
+ 0, sizehint_totalBoxes[Hor], q_infos[Hor]);
+ ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, sizehint_xx.data(), sizehint_widths.data(), Qt::Vertical);
+ sizeHintCalculated = true;
+ }
+ } else {
+ if (constraint.height() >= 0) {
+ //We have items whose width depends on their height
+ ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, NULL, NULL, Qt::Vertical);
+ QVector<qreal> sizehint_yy;
+ QVector<qreal> sizehint_heights;
+
+ sizehint_yy.resize(rowCount());
+ sizehint_heights.resize(rowCount());
+ qreal height = constraint.height();
+ //Calculate row heights and positions, and put results in q_yy.data() and q_heights.data() so that we can use this information as
+ //constraints to find the column widths
+ q_rowData.calculateGeometries(0, rowCount(), height, sizehint_yy.data(), sizehint_heights.data(),
+ 0, sizehint_totalBoxes[Ver], q_infos[Ver]);
+ ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, sizehint_yy.data(), sizehint_heights.data(), Qt::Vertical);
+ sizeHintCalculated = true;
+ }
+ }
+ }
+
+ if (!sizeHintCalculated) {
//No items with height for width, so it doesn't matter which order we do these in
- if(q_cachedDataForStyleInfo != styleInfo) {
+ if (q_cachedDataForStyleInfo != styleInfo) {
ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, NULL, NULL, Qt::Horizontal);
ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, NULL, NULL, Qt::Vertical);
} else {
sizehint_totalBoxes[Hor] = q_totalBoxes[Hor];
sizehint_totalBoxes[Ver] = q_totalBoxes[Ver];
}
- } else if(constraintOrientation() == Qt::Vertical) {
- //We have items whose width depends on their height
- if(q_cachedDataForStyleInfo != styleInfo)
- ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, NULL, NULL, Qt::Horizontal);
- else
- sizehint_totalBoxes[Hor] = q_totalBoxes[Hor];
- QVector<qreal> sizehint_xx;
- QVector<qreal> sizehint_widths;
-
- sizehint_xx.resize(columnCount());
- sizehint_widths.resize(columnCount());
- qreal width = constraint.width();
- if(width < 0) {
- /* It's not obvious what the behaviour should be. */
-/* if(which == Qt::MaximumSize)
- width = sizehint_totalBoxes[Hor].q_maximumSize;
- else if(which == Qt::MinimumSize)
- width = sizehint_totalBoxes[Hor].q_minimumSize;
- else*/
- width = sizehint_totalBoxes[Hor].q_preferredSize;
- }
- //Calculate column widths and positions, and put results in q_xx.data() and q_widths.data() so that we can use this information as
- //constraints to find the row heights
- q_columnData.calculateGeometries(0, columnCount(), width, sizehint_xx.data(), sizehint_widths.data(),
- 0, sizehint_totalBoxes[Hor]);
- ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, sizehint_xx.data(), sizehint_widths.data(), Qt::Vertical);
- } else {
- //We have items whose height depends on their width
- ensureColumnAndRowData(&q_rowData, &sizehint_totalBoxes[Ver], styleInfo, NULL, NULL, Qt::Vertical);
- QVector<qreal> sizehint_yy;
- QVector<qreal> sizehint_heights;
-
- sizehint_yy.resize(rowCount());
- sizehint_heights.resize(rowCount());
- qreal height = constraint.height();
- if(height < 0) {
-/* if(which == Qt::MaximumSize)
- height = sizehint_totalBoxes[Ver].q_maximumSize;
- else if(which == Qt::MinimumSize)
- height = sizehint_totalBoxes[Ver].q_minimumSize;
- else*/
- height = sizehint_totalBoxes[Ver].q_preferredSize;
- }
- //Calculate row heights and positions, and put results in q_yy.data() and q_heights.data() so that we can use this information as
- //constraints to find the column widths
- q_rowData.calculateGeometries(0, rowCount(), height, sizehint_yy.data(), sizehint_heights.data(),
- 0, sizehint_totalBoxes[Ver]);
- ensureColumnAndRowData(&q_columnData, &sizehint_totalBoxes[Hor], styleInfo, sizehint_yy.data(), sizehint_heights.data(), Qt::Vertical);
}
switch (which) {
@@ -1631,7 +1647,8 @@ void QGridLayoutEngine::ensureColumnAndRowData(QGridLayoutRowData *rowData, QGri
{
rowData->reset(rowCount(orientation));
fillRowData(rowData, styleInfo, colPositions, colSizes, orientation);
- rowData->distributeMultiCells();
+ const QGridLayoutRowInfo &rowInfo = q_infos[orientation == Qt::Vertical];
+ rowData->distributeMultiCells(rowInfo);
*totalBox = rowData->totalBox(0, rowCount(orientation));
//We have items whose width depends on their height
}
@@ -1694,28 +1711,28 @@ void QGridLayoutEngine::ensureGeometries(const QLayoutStyleInfo &styleInfo,
q_heights.resize(rowCount());
q_descents.resize(rowCount());
- if(constraintOrientation() != Qt::Horizontal) {
+ if (constraintOrientation() != Qt::Horizontal) {
//We might have items whose width depends on their height
ensureColumnAndRowData(&q_columnData, &q_totalBoxes[Hor], styleInfo, NULL, NULL, Qt::Horizontal);
//Calculate column widths and positions, and put results in q_xx.data() and q_widths.data() so that we can use this information as
//constraints to find the row heights
q_columnData.calculateGeometries(0, columnCount(), size.width(), q_xx.data(), q_widths.data(),
- 0, q_totalBoxes[Hor]);
+ 0, q_totalBoxes[Hor], q_infos[Hor] );
ensureColumnAndRowData(&q_rowData, &q_totalBoxes[Ver], styleInfo, q_xx.data(), q_widths.data(), Qt::Vertical);
//Calculate row heights and positions, and put results in q_yy.data() and q_heights.data()
q_rowData.calculateGeometries(0, rowCount(), size.height(), q_yy.data(), q_heights.data(),
- q_descents.data(), q_totalBoxes[Ver]);
+ q_descents.data(), q_totalBoxes[Ver], q_infos[Ver]);
} else {
//We have items whose height depends on their width
ensureColumnAndRowData(&q_rowData, &q_totalBoxes[Ver], styleInfo, NULL, NULL, Qt::Vertical);
//Calculate row heights and positions, and put results in q_yy.data() and q_heights.data() so that we can use this information as
//constraints to find the column widths
q_rowData.calculateGeometries(0, rowCount(), size.height(), q_yy.data(), q_heights.data(),
- q_descents.data(), q_totalBoxes[Ver]);
+ q_descents.data(), q_totalBoxes[Ver], q_infos[Ver]);
ensureColumnAndRowData(&q_columnData, &q_totalBoxes[Hor], styleInfo, q_yy.data(), q_heights.data(), Qt::Horizontal);
//Calculate row heights and positions, and put results in q_yy.data() and q_heights.data()
q_columnData.calculateGeometries(0, columnCount(), size.width(), q_xx.data(), q_widths.data(),
- 0, q_totalBoxes[Hor]);
+ 0, q_totalBoxes[Hor], q_infos[Hor]);
}
}
diff --git a/src/gui/graphicsview/qgridlayoutengine_p.h b/src/gui/graphicsview/qgridlayoutengine_p.h
index 7c77b2ac01..1016bc8c39 100644
--- a/src/gui/graphicsview/qgridlayoutengine_p.h
+++ b/src/gui/graphicsview/qgridlayoutengine_p.h
@@ -224,13 +224,16 @@ public:
typedef QMap<QPair<int, int>, QGridLayoutMultiCellData> MultiCellMap;
+class QGridLayoutRowInfo;
+
class QGridLayoutRowData
{
public:
void reset(int count);
- void distributeMultiCells();
+ void distributeMultiCells(const QGridLayoutRowInfo &rowInfo);
void calculateGeometries(int start, int end, qreal targetSize, qreal *positions, qreal *sizes,
- qreal *descents, const QGridLayoutBox &totalBox);
+ qreal *descents, const QGridLayoutBox &totalBox,
+ const QGridLayoutRowInfo &rowInfo);
QGridLayoutBox totalBox(int start, int end) const;
void stealBox(int start, int end, int which, qreal *positions, qreal *sizes);
diff --git a/src/gui/image/qnativeimage.cpp b/src/gui/image/qnativeimage.cpp
index 0f7872e92c..c15474085f 100644
--- a/src/gui/image/qnativeimage.cpp
+++ b/src/gui/image/qnativeimage.cpp
@@ -256,6 +256,8 @@ QNativeImage::QNativeImage(int width, int height, QImage::Format format, bool /*
case QImage::Format_ARGB4444_Premultiplied:
cgflags = kCGImageAlphaPremultipliedFirst;
break;
+ default:
+ break;
}
#ifdef kCGBitmapByteOrder32Host //only needed because CGImage.h added symbols in the minor version
diff --git a/src/gui/kernel/qapplication_win.cpp b/src/gui/kernel/qapplication_win.cpp
index 67e2cbb208..49f780c772 100644
--- a/src/gui/kernel/qapplication_win.cpp
+++ b/src/gui/kernel/qapplication_win.cpp
@@ -3307,7 +3307,7 @@ bool QETWidget::translateMouseEvent(const MSG &msg)
if (type == QEvent::MouseButtonPress
&& QApplication::activePopupWidget() != activePopupWidget
&& replayPopupMouseEvent) {
- // the popup dissappeared. Replay the event
+ // the popup disappeared. Replay the event
QWidget* w = QApplication::widgetAt(gpos.x, gpos.y);
if (w && !QApplicationPrivate::isBlockedByModal(w)) {
Q_ASSERT(w->testAttribute(Qt::WA_WState_Created));
@@ -3544,7 +3544,7 @@ static void tabletInit(const quint64 uniqueId, const UINT csr_type, HCTX hTab)
}
#endif // QT_NO_TABLETEVENT
-// Update the "dynamic" informations of a cursor device (pen, airbrush, etc).
+// Update the "dynamic" information of a cursor device (pen, airbrush, etc).
// The dynamic information is the information of QTabletDeviceData that can change
// in time (eraser or pen if a device is turned around).
#ifndef QT_NO_TABLETEVENT
diff --git a/src/gui/kernel/qclipboard_mac.cpp b/src/gui/kernel/qclipboard_mac.cpp
index 49a6cc81d7..482a3a3be4 100644
--- a/src/gui/kernel/qclipboard_mac.cpp
+++ b/src/gui/kernel/qclipboard_mac.cpp
@@ -623,7 +623,7 @@ QMacPasteboard::sync() const
#ifdef DEBUG_PASTEBOARD
if(fromGlobal)
- qDebug("Pasteboard: Syncronize!");
+ qDebug("Pasteboard: Synchronize!");
#endif
return fromGlobal;
}
diff --git a/src/gui/kernel/qcocoaapplicationdelegate_mac.mm b/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
index 9b07d64f70..036cb3b78c 100644
--- a/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
+++ b/src/gui/kernel/qcocoaapplicationdelegate_mac.mm
@@ -78,6 +78,7 @@
#import <private/qcocoaapplicationdelegate_mac_p.h>
#import <private/qcocoamenuloader_mac_p.h>
+#import <private/qcocoaapplication_mac_p.h>
#include <private/qapplication_p.h>
#include <private/qt_mac_p.h>
#include <private/qt_cocoa_helpers_mac_p.h>
@@ -173,7 +174,7 @@ static void cleanupCocoaApplicationDelegate()
qtMenuLoader = menuLoader;
}
-- (QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *)menuLoader;
+- (QT_MANGLE_NAMESPACE(QCocoaMenuLoader) *)menuLoader
{
return [[qtMenuLoader retain] autorelease];
}
@@ -256,7 +257,7 @@ static void cleanupCocoaApplicationDelegate()
onApplicationChangedActivation(true);
}
-- (void)applicationDidResignActive:(NSNotification *)notification;
+- (void)applicationDidResignActive:(NSNotification *)notification
{
if (reflectionDelegate
&& [reflectionDelegate respondsToSelector:@selector(applicationDidResignActive:)])
diff --git a/src/gui/kernel/qcocoamenuloader_mac.mm b/src/gui/kernel/qcocoamenuloader_mac.mm
index b963b3c6f5..d351831538 100644
--- a/src/gui/kernel/qcocoamenuloader_mac.mm
+++ b/src/gui/kernel/qcocoamenuloader_mac.mm
@@ -170,12 +170,12 @@ QT_USE_NAMESPACE
return [[aboutQtItem retain] autorelease];
}
-- (NSMenuItem *)hideMenuItem;
+- (NSMenuItem *)hideMenuItem
{
return [[hideItem retain] autorelease];
}
-- (NSMenuItem *)appSpecificMenuItem;
+- (NSMenuItem *)appSpecificMenuItem
{
// Create an App-Specific menu item, insert it into the menu and return
// it as an autorelease item.
diff --git a/src/gui/kernel/qcocoaview_mac.mm b/src/gui/kernel/qcocoaview_mac.mm
index dfcc2e6ffb..d5363bd5ca 100644
--- a/src/gui/kernel/qcocoaview_mac.mm
+++ b/src/gui/kernel/qcocoaview_mac.mm
@@ -302,7 +302,6 @@ static int qCocoaViewCount = 0;
QMimeData *mimeData = dropData;
if (QDragManager::self()->source())
mimeData = QDragManager::self()->dragPrivate()->data;
- NSPoint globalPoint = [[sender draggingDestinationWindow] convertBaseToScreen:windowPoint];
NSPoint localPoint = [self convertPoint:windowPoint fromView:nil];
QPoint posDrag(localPoint.x, localPoint.y);
NSDragOperation nsActions = [sender draggingSourceOperationMask];
@@ -365,7 +364,6 @@ static int qCocoaViewCount = 0;
return NSDragOperationNone;
}
// return last value, if we are still in the answerRect.
- NSPoint globalPoint = [[sender draggingDestinationWindow] convertBaseToScreen:windowPoint];
NSPoint localPoint = [self convertPoint:windowPoint fromView:nil];
NSDragOperation nsActions = [sender draggingSourceOperationMask];
QPoint posDrag(localPoint.x, localPoint.y);
@@ -434,7 +432,6 @@ static int qCocoaViewCount = 0;
dragEnterSequence = -1;
[self addDropData:sender];
- NSPoint globalPoint = [[sender draggingDestinationWindow] convertBaseToScreen:windowPoint];
NSPoint localPoint = [self convertPoint:windowPoint fromView:nil];
QPoint posDrop(localPoint.x, localPoint.y);
@@ -470,14 +467,14 @@ static int qCocoaViewCount = 0;
[super dealloc];
}
-- (BOOL)isOpaque;
+- (BOOL)isOpaque
{
if (!qwidgetprivate)
return [super isOpaque];
return qwidgetprivate->isOpaque;
}
-- (BOOL)isFlipped;
+- (BOOL)isFlipped
{
return YES;
}
@@ -620,8 +617,8 @@ static int qCocoaViewCount = 0;
// is the case. This makes sure child widgets are drawn as well, Cocoa does not know about
// those and wont send them drawRect calls.
if (qwidget->testAttribute(Qt::WA_NativeWindow) && qt_widget_private(qwidget)->hasAlienChildren == false) {
- if (engine && !qwidget->testAttribute(Qt::WA_NoSystemBackground)
- && (qwidget->isWindow() || qwidget->autoFillBackground())
+ if ((engine && !qwidget->testAttribute(Qt::WA_NoSystemBackground)
+ && (qwidget->isWindow() || qwidget->autoFillBackground()))
|| qwidget->testAttribute(Qt::WA_TintedBackground)
|| qwidget->testAttribute(Qt::WA_StyledBackground)) {
#ifdef DEBUG_WIDGET_PAINT
@@ -978,32 +975,32 @@ static int qCocoaViewCount = 0;
}
#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
-- (void)touchesBeganWithEvent:(NSEvent *)event;
+- (void)touchesBeganWithEvent:(NSEvent *)event
{
bool all = qwidget->testAttribute(Qt::WA_TouchPadAcceptSingleTouchEvents);
qt_translateRawTouchEvent(qwidget, QTouchEvent::TouchPad, QCocoaTouch::getCurrentTouchPointList(event, all));
}
-- (void)touchesMovedWithEvent:(NSEvent *)event;
+- (void)touchesMovedWithEvent:(NSEvent *)event
{
bool all = qwidget->testAttribute(Qt::WA_TouchPadAcceptSingleTouchEvents);
qt_translateRawTouchEvent(qwidget, QTouchEvent::TouchPad, QCocoaTouch::getCurrentTouchPointList(event, all));
}
-- (void)touchesEndedWithEvent:(NSEvent *)event;
+- (void)touchesEndedWithEvent:(NSEvent *)event
{
bool all = qwidget->testAttribute(Qt::WA_TouchPadAcceptSingleTouchEvents);
qt_translateRawTouchEvent(qwidget, QTouchEvent::TouchPad, QCocoaTouch::getCurrentTouchPointList(event, all));
}
-- (void)touchesCancelledWithEvent:(NSEvent *)event;
+- (void)touchesCancelledWithEvent:(NSEvent *)event
{
bool all = qwidget->testAttribute(Qt::WA_TouchPadAcceptSingleTouchEvents);
qt_translateRawTouchEvent(qwidget, QTouchEvent::TouchPad, QCocoaTouch::getCurrentTouchPointList(event, all));
}
#endif // MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_6
-- (void)magnifyWithEvent:(NSEvent *)event;
+- (void)magnifyWithEvent:(NSEvent *)event
{
if (!QApplicationPrivate::tryModalHelper(qwidget, 0))
return;
@@ -1018,7 +1015,7 @@ static int qCocoaViewCount = 0;
#endif // QT_NO_GESTURES
}
-- (void)rotateWithEvent:(NSEvent *)event;
+- (void)rotateWithEvent:(NSEvent *)event
{
if (!QApplicationPrivate::tryModalHelper(qwidget, 0))
return;
@@ -1033,7 +1030,7 @@ static int qCocoaViewCount = 0;
#endif // QT_NO_GESTURES
}
-- (void)swipeWithEvent:(NSEvent *)event;
+- (void)swipeWithEvent:(NSEvent *)event
{
if (!QApplicationPrivate::tryModalHelper(qwidget, 0))
return;
@@ -1055,7 +1052,7 @@ static int qCocoaViewCount = 0;
#endif // QT_NO_GESTURES
}
-- (void)beginGestureWithEvent:(NSEvent *)event;
+- (void)beginGestureWithEvent:(NSEvent *)event
{
if (!QApplicationPrivate::tryModalHelper(qwidget, 0))
return;
@@ -1069,7 +1066,7 @@ static int qCocoaViewCount = 0;
#endif // QT_NO_GESTURES
}
-- (void)endGestureWithEvent:(NSEvent *)event;
+- (void)endGestureWithEvent:(NSEvent *)event
{
if (!QApplicationPrivate::tryModalHelper(qwidget, 0))
return;
@@ -1609,7 +1606,6 @@ Qt::DropAction QDragManager::drag(QDrag *o)
dndParams.localPoint.y + pix.height() - hotspot.y()};
NSSize mouseOffset = {0.0, 0.0};
NSPasteboard *pboard = [NSPasteboard pasteboardWithName:NSDragPboard];
- NSPoint windowPoint = [dndParams.theEvent locationInWindow];
dragPrivate()->executed_action = Qt::ActionMask;
// do the drag
[dndParams.view retain];
diff --git a/src/gui/kernel/qcocoawindow_mac.mm b/src/gui/kernel/qcocoawindow_mac.mm
index f1b642b50c..8d44003f0c 100644
--- a/src/gui/kernel/qcocoawindow_mac.mm
+++ b/src/gui/kernel/qcocoawindow_mac.mm
@@ -55,7 +55,7 @@ QT_USE_NAMESPACE
@implementation NSWindow (QT_MANGLE_NAMESPACE(QWidgetIntegration))
-- (id)QT_MANGLE_NAMESPACE(qt_initWithQWidget):(QWidget*)widget contentRect:(NSRect)rect styleMask:(NSUInteger)mask;
+- (id)QT_MANGLE_NAMESPACE(qt_initWithQWidget):(QWidget*)widget contentRect:(NSRect)rect styleMask:(NSUInteger)mask
{
self = [self initWithContentRect:rect styleMask:mask backing:NSBackingStoreBuffered defer:YES];
if (self) {
diff --git a/src/gui/kernel/qcocoawindowdelegate_mac.mm b/src/gui/kernel/qcocoawindowdelegate_mac.mm
index ffba6c2569..6ce7b35f14 100644
--- a/src/gui/kernel/qcocoawindowdelegate_mac.mm
+++ b/src/gui/kernel/qcocoawindowdelegate_mac.mm
@@ -138,7 +138,7 @@ static void cleanupCocoaWindowDelegate()
}
}
-- (void)dumpMaximizedStateforWidget:(QWidget*)qwidget window:(NSWindow *)window;
+- (void)dumpMaximizedStateforWidget:(QWidget*)qwidget window:(NSWindow *)window
{
if (!window)
return; // Nothing to do.
diff --git a/src/gui/kernel/qevent.cpp b/src/gui/kernel/qevent.cpp
index d2b2098444..5633cb87d4 100644
--- a/src/gui/kernel/qevent.cpp
+++ b/src/gui/kernel/qevent.cpp
@@ -1970,7 +1970,7 @@ void QInputMethodEvent::setCommitString(const QString &commitString, int replace
is usually given by a wheel on 4D mouse. If the device does not support a
Z-axis, pass zero here.
- The \a tangentialPressure paramater contins the tangential pressure of an air
+ The \a tangentialPressure parameter contins the tangential pressure of an air
brush. If the device does not support tangential pressure, pass 0 here.
\a rotation contains the device's rotation in degrees. 4D mice support
diff --git a/src/gui/kernel/qgesturemanager.cpp b/src/gui/kernel/qgesturemanager.cpp
index 930ca1081c..136fb51883 100644
--- a/src/gui/kernel/qgesturemanager.cpp
+++ b/src/gui/kernel/qgesturemanager.cpp
@@ -189,7 +189,7 @@ void QGestureManager::cleanupCachedGestures(QObject *target, Qt::GestureType typ
QGesture *QGestureManager::getState(QObject *object, QGestureRecognizer *recognizer, Qt::GestureType type)
{
// if the widget is being deleted we should be careful not to
- // create a new state, as it will create QWeakPointer which doesnt work
+ // create a new state, as it will create QWeakPointer which doesn't work
// from the destructor.
if (object->isWidgetType()) {
if (static_cast<QWidget *>(object)->d_func()->data.in_destructor)
diff --git a/src/gui/kernel/qgesturemanager_p.h b/src/gui/kernel/qgesturemanager_p.h
index a5a3482bb1..92310f5f0b 100644
--- a/src/gui/kernel/qgesturemanager_p.h
+++ b/src/gui/kernel/qgesturemanager_p.h
@@ -101,7 +101,7 @@ private:
NotGesture,
MaybeGesture // this means timers are up and waiting for some
// more events, and input events are handled by
- // gesture recognizer explicitely
+ // gesture recognizer explicitly
} state;
struct ObjectGesture
diff --git a/src/gui/kernel/qguiplatformplugin.cpp b/src/gui/kernel/qguiplatformplugin.cpp
index 98b9c4ac29..52431155ad 100644
--- a/src/gui/kernel/qguiplatformplugin.cpp
+++ b/src/gui/kernel/qguiplatformplugin.cpp
@@ -187,7 +187,7 @@ QString QGuiPlatformPlugin::styleName()
#endif
}
-/* return an aditional default palette (only work on X11) */
+/* return an additional default palette (only work on X11) */
QPalette QGuiPlatformPlugin::palette()
{
#ifdef Q_WS_X11
diff --git a/src/gui/kernel/qkeymapper_mac.cpp b/src/gui/kernel/qkeymapper_mac.cpp
index 300e5cac12..b8f08bfcd4 100644
--- a/src/gui/kernel/qkeymapper_mac.cpp
+++ b/src/gui/kernel/qkeymapper_mac.cpp
@@ -765,7 +765,7 @@ bool QKeyMapperPrivate::translateKeyEvent(QWidget *widget, EventHandlerCallRef e
&handled_event) == false)
return handled_event;
QString text(ourChar);
- /* This is actually wrong - but unfortunatly it is the best that can be
+ /* This is actually wrong - but unfortunately it is the best that can be
done for now because of the Control/Meta mapping problems */
if (modifiers & (Qt::ControlModifier | Qt::MetaModifier)
&& !qApp->testAttribute(Qt::AA_MacDontSwapCtrlAndMeta)) {
diff --git a/src/gui/kernel/qkeysequence.cpp b/src/gui/kernel/qkeysequence.cpp
index b4a360a077..33c5f443cc 100644
--- a/src/gui/kernel/qkeysequence.cpp
+++ b/src/gui/kernel/qkeysequence.cpp
@@ -1104,7 +1104,7 @@ QKeySequence QKeySequence::mnemonic(const QString &text)
#else
found = true;
} else {
- qWarning("QKeySequence::mnemonic: \"%s\" contains multiple occurences of '&'", qPrintable(text));
+ qWarning("QKeySequence::mnemonic: \"%s\" contains multiple occurrences of '&'", qPrintable(text));
#endif
}
}
diff --git a/src/gui/kernel/qsound_s60.cpp b/src/gui/kernel/qsound_s60.cpp
index df2830bc4e..accfce2dd0 100644
--- a/src/gui/kernel/qsound_s60.cpp
+++ b/src/gui/kernel/qsound_s60.cpp
@@ -150,7 +150,7 @@ void QAuServerS60::playCompleted(QAuBucketS60 *bucket, int error)
} else {
// We don't have a way to inform about errors -> just decrement loops
// in order that QSound::isFinished will return true;
- while (decLoop(sound)) {}
+ while (decLoop(sound) > 0) {}
if (staticPlayingSounds.removeAll(sound))
delete sound;
}
diff --git a/src/gui/kernel/qwidget.cpp b/src/gui/kernel/qwidget.cpp
index cd1c9f0dd7..16f64fffbc 100644
--- a/src/gui/kernel/qwidget.cpp
+++ b/src/gui/kernel/qwidget.cpp
@@ -1690,13 +1690,8 @@ void QWidgetPrivate::setWinId(WId id) // set widget identifier
}
if(oldWinId != id) {
- // Do not emit an event when the old winId is destroyed. This only
- // happens (a) during widget destruction, and (b) immediately prior
- // to creation of a new winId, for example as a result of re-parenting.
- if(id != 0) {
- QEvent e(QEvent::WinIdChange);
- QCoreApplication::sendEvent(q, &e);
- }
+ QEvent e(QEvent::WinIdChange);
+ QCoreApplication::sendEvent(q, &e);
}
}
@@ -8866,7 +8861,7 @@ void QWidget::mousePressEvent(QMouseEvent *event)
QWidget* w;
while ((w = QApplication::activePopupWidget()) && w != this){
w->close();
- if (QApplication::activePopupWidget() == w) // widget does not want to dissappear
+ if (QApplication::activePopupWidget() == w) // widget does not want to disappear
w->hide(); // hide at least
}
if (!rect().contains(event->pos())){
@@ -9335,7 +9330,7 @@ void QWidget::setInputMethodHints(Qt::InputMethodHints hints)
#ifndef QT_NO_IM
Q_D(QWidget);
d->imHints = hints;
- // Optimisation to update input context only it has already been created.
+ // Optimization to update input context only it has already been created.
if (d->ic || qApp->d_func()->inputContext) {
QInputContext *ic = inputContext();
if (ic)
diff --git a/src/gui/kernel/qwidget_mac.mm b/src/gui/kernel/qwidget_mac.mm
index fc94616c7b..bcddae5f80 100644
--- a/src/gui/kernel/qwidget_mac.mm
+++ b/src/gui/kernel/qwidget_mac.mm
@@ -2294,7 +2294,10 @@ void QWidgetPrivate::finishCreateWindow_sys_Cocoa(void * /*NSWindow * */ voidWin
} else {
[windowRef setHidesOnDeactivate:NO];
}
- [windowRef setHasShadow:YES];
+ if (q->testAttribute(Qt::WA_MacNoShadow))
+ [windowRef setHasShadow:NO];
+ else
+ [windowRef setHasShadow:YES];
Q_UNUSED(parentWidget);
Q_UNUSED(dialog);
@@ -2931,7 +2934,7 @@ void QWidgetPrivate::setParent_sys(QWidget *parent, Qt::WindowFlags f)
// unless this is an alien widget. )
const bool nonWindowWithCreatedParent = !q->isWindow() && parent->testAttribute(Qt::WA_WState_Created);
const bool nativeWidget = q->internalWinId() != 0;
- if (wasCreated || nativeWidget && nonWindowWithCreatedParent) {
+ if (wasCreated || (nativeWidget && nonWindowWithCreatedParent)) {
createWinId();
if (q->isWindow()) {
#ifndef QT_MAC_USE_COCOA
diff --git a/src/gui/kernel/qwidget_p.h b/src/gui/kernel/qwidget_p.h
index 4b35238527..6b85391414 100644
--- a/src/gui/kernel/qwidget_p.h
+++ b/src/gui/kernel/qwidget_p.h
@@ -229,6 +229,7 @@ struct QTLWExtra {
#endif
#elif defined(Q_OS_SYMBIAN)
uint inExpose : 1; // Prevents drawing recursion
+ uint nativeWindowTransparencyEnabled : 1; // Tracks native window transparency
#elif defined(Q_WS_QPA)
QPlatformWindow *platformWindow;
QPlatformWindowFormat platformWindowFormat;
diff --git a/src/gui/kernel/qwidget_s60.cpp b/src/gui/kernel/qwidget_s60.cpp
index 636b306e8b..13b48e9df8 100644
--- a/src/gui/kernel/qwidget_s60.cpp
+++ b/src/gui/kernel/qwidget_s60.cpp
@@ -57,7 +57,7 @@
#include <eikbtgpc.h>
#endif
-// This is necessary in order to be able to perform delayed invokation on slots
+// This is necessary in order to be able to perform delayed invocation on slots
// which take arguments of type WId. One example is
// QWidgetPrivate::_q_delayedDestroy, which is used to delay destruction of
// CCoeControl objects until after the CONE event handler has finished running.
@@ -771,17 +771,24 @@ void QWidgetPrivate::s60UpdateIsOpaque()
if (!q->testAttribute(Qt::WA_WState_Created) || !q->testAttribute(Qt::WA_TranslucentBackground))
return;
+ createTLExtra();
+
RWindow *const window = static_cast<RWindow *>(q->effectiveWinId()->DrawableWindow());
#ifdef Q_SYMBIAN_SEMITRANSPARENT_BG_SURFACE
window->SetSurfaceTransparency(!isOpaque);
+ extra->topextra->nativeWindowTransparencyEnabled = !isOpaque;
#else
if (!isOpaque) {
const TDisplayMode displayMode = static_cast<TDisplayMode>(window->SetRequiredDisplayMode(EColor16MA));
- if (window->SetTransparencyAlphaChannel() == KErrNone)
+ if (window->SetTransparencyAlphaChannel() == KErrNone) {
window->SetBackgroundColor(TRgb(255, 255, 255, 0));
- } else
+ extra->topextra->nativeWindowTransparencyEnabled = 1;
+ }
+ } else if (extra->topextra->nativeWindowTransparencyEnabled) {
window->SetTransparentRegion(TRegionFix<1>());
+ extra->topextra->nativeWindowTransparencyEnabled = 0;
+ }
#endif
}
@@ -940,6 +947,7 @@ void QWidgetPrivate::registerDropSite(bool /* on */)
void QWidgetPrivate::createTLSysExtra()
{
extra->topextra->inExpose = 0;
+ extra->topextra->nativeWindowTransparencyEnabled = 0;
}
void QWidgetPrivate::deleteTLSysExtra()
diff --git a/src/gui/kernel/qx11embed_x11.cpp b/src/gui/kernel/qx11embed_x11.cpp
index 9f1b1f8f3c..e6e3bfb9f3 100644
--- a/src/gui/kernel/qx11embed_x11.cpp
+++ b/src/gui/kernel/qx11embed_x11.cpp
@@ -1136,7 +1136,7 @@ void QX11EmbedContainer::paintEvent(QPaintEvent *)
/*! \internal
- Returns wether or not the windows' embedded flag is set.
+ Returns whether or not the windows' embedded flag is set.
*/
bool QX11EmbedContainerPrivate::isEmbedded() const
{
diff --git a/src/gui/painting/qtextureglyphcache.cpp b/src/gui/painting/qtextureglyphcache.cpp
index 4a6c03f09f..de59524d9f 100644
--- a/src/gui/painting/qtextureglyphcache.cpp
+++ b/src/gui/painting/qtextureglyphcache.cpp
@@ -117,7 +117,7 @@ QFixed QTextureGlyphCache::subPixelPositionForX(QFixed x) const
return subPixelPosition;
}
-void QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const glyph_t *glyphs,
+bool QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const glyph_t *glyphs,
const QFixedPoint *positions)
{
#ifdef CACHE_DEBUG
@@ -196,7 +196,7 @@ void QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const
rowHeight = qMax(rowHeight, glyph_height);
}
if (listItemCoordinates.isEmpty())
- return;
+ return true;
rowHeight += margin * 2 + paddingDoubled;
@@ -238,6 +238,8 @@ void QTextureGlyphCache::populate(QFontEngine *fontEngine, int numGlyphs, const
m_cx += c.w + paddingDoubled;
++iter;
}
+ return true;
+
}
void QTextureGlyphCache::fillInPendingGlyphs()
@@ -368,11 +370,14 @@ void QImageTextureGlyphCache::fillTexture(const Coord &c, glyph_t g, QFixed subP
}
#endif
- if (m_type == QFontEngineGlyphCache::Raster_RGBMask) {
- QPainter p(&m_image);
+ if (m_type == QFontEngineGlyphCache::Raster_RGBMask) {
+ QImage ref(m_image.bits() + (c.x * 4 + c.y * m_image.bytesPerLine()),
+ qMax(mask.width(), c.w), qMax(mask.height(), c.h), m_image.bytesPerLine(),
+ m_image.format());
+ QPainter p(&ref);
p.setCompositionMode(QPainter::CompositionMode_Source);
- p.fillRect(c.x, c.y, c.w, c.h, QColor(0,0,0,0)); // TODO optimize this
- p.drawImage(c.x, c.y, mask);
+ p.fillRect(0, 0, c.w, c.h, QColor(0,0,0,0)); // TODO optimize this
+ p.drawImage(0, 0, mask);
p.end();
} else if (m_type == QFontEngineGlyphCache::Raster_Mono) {
if (mask.depth() > 1) {
diff --git a/src/gui/painting/qtextureglyphcache_p.h b/src/gui/painting/qtextureglyphcache_p.h
index 82aaf0de88..4227e9ac84 100644
--- a/src/gui/painting/qtextureglyphcache_p.h
+++ b/src/gui/painting/qtextureglyphcache_p.h
@@ -109,7 +109,7 @@ public:
int baseLineY;
};
- void populate(QFontEngine *fontEngine, int numGlyphs, const glyph_t *glyphs,
+ bool populate(QFontEngine *fontEngine, int numGlyphs, const glyph_t *glyphs,
const QFixedPoint *positions);
void fillInPendingGlyphs();
@@ -137,7 +137,7 @@ public:
QHash<GlyphAndSubPixelPosition, Coord> coords;
virtual int maxTextureWidth() const { return QT_DEFAULT_TEXTURE_GLYPH_CACHE_WIDTH; }
- virtual int maxTextureHeight() const { return 32768; }
+ virtual int maxTextureHeight() const { return -1; }
QImage textureMapForGlyph(glyph_t g, QFixed subPixelPosition) const;
diff --git a/src/gui/styles/qmacstyle_mac.mm b/src/gui/styles/qmacstyle_mac.mm
index a05ec6bd24..9ef2f0271f 100644
--- a/src/gui/styles/qmacstyle_mac.mm
+++ b/src/gui/styles/qmacstyle_mac.mm
@@ -1566,8 +1566,7 @@ void QMacStylePrivate::timerEvent(QTimerEvent *)
progressBars.removeAt(i);
} else {
if (QProgressBar *pb = qobject_cast<QProgressBar *>(maybeProgress)) {
- if (pb->maximum() == 0 || pb->value() > 0
- && pb->value() < pb->maximum()) {
+ if (pb->maximum() == 0 || (pb->value() > 0 && pb->value() < pb->maximum())) {
if (doAnimate(AquaProgressBar))
pb->update();
}
@@ -3608,7 +3607,7 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
break;
}
}
- bool stretchTabs = (!verticalTabs && tabRect.height() > 22 || verticalTabs && tabRect.width() > 22);
+ bool stretchTabs = (!verticalTabs && tabRect.height() > 22) || (verticalTabs && tabRect.width() > 22);
switch (tp) {
case QStyleOptionTab::Beginning:
@@ -4033,7 +4032,6 @@ void QMacStyle::drawControl(ControlElement ce, const QStyleOption *opt, QPainter
bdi.version = qt_mac_hitheme_version;
bdi.state = kThemeMenuBarNormal;
bdi.attributes = 0;
- HIRect hirect = qt_hirectForQRect(mi->rect);
HIThemeDrawMenuBarBackground(&menuRect, &bdi, cg, kHIThemeOrientationNormal);
}
@@ -5335,8 +5333,8 @@ QRect QMacStyle::subControlRect(ComplexControl cc, const QStyleOptionComplex *op
case SC_GroupBoxCheckBox: {
// Cheat and use the smaller font if we need to
bool checkable = groupBox->subControls & SC_GroupBoxCheckBox;
- bool fontIsSet = (widget && widget->testAttribute(Qt::WA_SetFont)
- || !QApplication::desktopSettingsAware());
+ bool fontIsSet = (widget && widget->testAttribute(Qt::WA_SetFont))
+ || !QApplication::desktopSettingsAware();
int tw;
int h;
int margin = flat || hasNoText ? 0 : 12;
diff --git a/src/gui/styles/qs60style.cpp b/src/gui/styles/qs60style.cpp
index 087907fdd9..3326c48632 100644
--- a/src/gui/styles/qs60style.cpp
+++ b/src/gui/styles/qs60style.cpp
@@ -1438,10 +1438,11 @@ void QS60Style::drawControl(ControlElement element, const QStyleOption *option,
const QRect iconRect = subElementRect(SE_ItemViewItemDecoration, &voptAdj, widget);
QRect textRect = subElementRect(SE_ItemViewItemText, &voptAdj, widget);
const QAbstractItemView *itemView = qobject_cast<const QAbstractItemView *>(widget);
- const bool singleSelection =
- (itemView->selectionMode() == QAbstractItemView::SingleSelection ||
- itemView->selectionMode() == QAbstractItemView::NoSelection);
- const bool selectItems = (itemView->selectionBehavior() == QAbstractItemView::SelectItems);
+
+ const bool singleSelection = itemView &&
+ ((itemView->selectionMode() == QAbstractItemView::SingleSelection ||
+ itemView->selectionMode() == QAbstractItemView::NoSelection));
+ const bool selectItems = itemView && (itemView->selectionBehavior() == QAbstractItemView::SelectItems);
// draw themed background for itemview unless background brush has been defined.
if (vopt->backgroundBrush == Qt::NoBrush) {
@@ -2536,6 +2537,56 @@ QSize QS60Style::sizeFromContents(ContentsType ct, const QStyleOption *opt,
if (const QStyleOptionToolButton *toolBtn = qstyleoption_cast<const QStyleOptionToolButton *>(opt))
if (toolBtn->subControls & SC_ToolButtonMenu)
sz += QSize(pixelMetric(PM_MenuButtonIndicator), 0);
+
+ //Make toolbuttons in toolbar stretch the whole screen area
+ if (widget && qobject_cast<const QToolBar *>(widget->parentWidget())) {
+ const QToolBar *tb = qobject_cast<const QToolBar *>(widget->parentWidget());
+ const bool parentCanGrowHorizontally = !(tb->sizePolicy().horizontalPolicy() == QSizePolicy::Fixed ||
+ tb->sizePolicy().horizontalPolicy() == QSizePolicy::Maximum) && tb->orientation() == Qt::Horizontal;
+
+ if (parentCanGrowHorizontally) {
+ int visibleButtons = 0;
+ //Make the auto-stretch to happen only for horizontal orientation
+ if (tb && tb->orientation() == Qt::Horizontal) {
+ QList<QAction*> actionList = tb->actions();
+ for (int i = 0; i < actionList.count(); i++) {
+ if (actionList.at(i)->isVisible())
+ visibleButtons++;
+ }
+ }
+
+ if (widget->parentWidget() && visibleButtons > 0) {
+ QWidget *w = const_cast<QWidget *>(widget);
+ int toolBarMaxWidth = 0;
+ int totalMargin = 0;
+ while (w) {
+ //honor fixed width parents
+ if (w->maximumWidth() == w->minimumWidth())
+ toolBarMaxWidth = qMax(toolBarMaxWidth, w->maximumWidth());
+ if (w->layout() && w->windowType() == Qt::Widget) {
+ totalMargin += w->layout()->contentsMargins().left() +
+ w->layout()->contentsMargins().right();
+ }
+ w = w->parentWidget();
+ }
+ totalMargin += 2 * pixelMetric(QStyle::PM_ToolBarFrameWidth);
+
+ if (toolBarMaxWidth == 0)
+ toolBarMaxWidth =
+ QApplication::desktop()->availableGeometry(widget->parentWidget()).width();
+ //Reduce the margins, toolbar frame, item spacing and internal margin from available area
+ toolBarMaxWidth -= totalMargin;
+
+ //ensure that buttons are side-by-side and not on top of each other
+ const int toolButtonWidth = (toolBarMaxWidth / visibleButtons)
+ - pixelMetric(QStyle::PM_ToolBarItemSpacing)
+ - pixelMetric(QStyle::PM_ToolBarItemMargin)
+ //toolbar frame needs to be reduced again, since QToolBarLayout adds it for each toolbar action
+ - 2 * pixelMetric(QStyle::PM_ToolBarFrameWidth) - 1;
+ sz.setWidth(qMax(toolButtonWidth, sz.width()));
+ }
+ }
+ }
break;
case CT_PushButton:
sz = QCommonStyle::sizeFromContents( ct, opt, csz, widget);
diff --git a/src/gui/styles/qstyle.cpp b/src/gui/styles/qstyle.cpp
index 3ebfab2a2e..be8f794da6 100644
--- a/src/gui/styles/qstyle.cpp
+++ b/src/gui/styles/qstyle.cpp
@@ -2456,6 +2456,8 @@ QDebug operator<<(QDebug debug, QStyle::State state)
qSort(states);
debug << states.join(QLatin1String(" | "));
debug << ')';
+#else
+ Q_UNUSED(state);
#endif
return debug;
}
diff --git a/src/gui/styles/qstyleoption.cpp b/src/gui/styles/qstyleoption.cpp
index 4780edfbc0..05ca793327 100644
--- a/src/gui/styles/qstyleoption.cpp
+++ b/src/gui/styles/qstyleoption.cpp
@@ -5483,6 +5483,8 @@ QDebug operator<<(QDebug debug, const QStyleOption::OptionType &optionType)
case QStyleOption::SO_GraphicsItem:
debug << "SO_GraphicsItem"; break;
}
+#else
+ Q_UNUSED(optionType);
#endif
return debug;
}
@@ -5496,6 +5498,8 @@ QDebug operator<<(QDebug debug, const QStyleOption &option)
debug << ',' << option.state;
debug << ',' << option.rect;
debug << ')';
+#else
+ Q_UNUSED(option);
#endif
return debug;
}
diff --git a/src/gui/util/qdesktopservices_s60.cpp b/src/gui/util/qdesktopservices_s60.cpp
index cd023cb360..56c2b983cc 100644
--- a/src/gui/util/qdesktopservices_s60.cpp
+++ b/src/gui/util/qdesktopservices_s60.cpp
@@ -45,32 +45,29 @@
#include <qurl.h>
#include <private/qcore_symbian_p.h>
-#include <txtrich.h> // CRichText
#include <f32file.h> // TDriveUnit etc
+#include <pathinfo.h> // PathInfo
+
+#ifndef USE_SCHEMEHANDLER
+#ifdef Q_WS_S60
+// This flag changes the implementation to use S60 CDcoumentHandler
+// instead of apparc when opening the files
+#define USE_DOCUMENTHANDLER
+#endif
+
+#include <txtrich.h> // CRichText
#include <eikenv.h> // CEikonEnv
#include <apgcli.h> // RApaLsSession
#include <apgtask.h> // TApaTaskList, TApaTask
#include <rsendas.h> // RSendAs
#include <rsendasmessage.h> // RSendAsMessage
-#ifdef Q_WS_S60
-// This flag changes the implementation to use S60 CDcoumentHandler
-// instead of apparch when opening the files
-#define USE_DOCUMENTHANDLER
+#ifdef USE_DOCUMENTHANDLER
+#include <DocumentHandler.h> // CDocumentHandler
+#include <AknServerApp.h>
#endif
-
-// copied from miutset.h, so we don't get a dependency into the app layer
-const TUid KUidMsgTypeSMTP = {0x10001028}; // 268439592
-
-#ifdef Q_OS_SYMBIAN
-# include <pathinfo.h> // PathInfo
-# ifdef USE_DOCUMENTHANDLER
-# include <DocumentHandler.h> // CDocumentHandler
-# include <AknServerApp.h>
-# endif
-#else
-# warning CDocumentHandler requires support for S60
-# undef USE_DOCUMENTHANDLER // Fallback to RApaLsSession based implementation
+#else // USE_SCHEMEHANDLER
+#include <schemehandler.h>
#endif
QT_BEGIN_NAMESPACE
@@ -79,6 +76,10 @@ _LIT(KCacheSubDir, "Cache\\");
_LIT(KSysBin, "\\Sys\\Bin\\");
_LIT(KBrowserPrefix, "4 " );
_LIT(KFontsDir, "z:\\resource\\Fonts\\");
+
+#ifndef USE_SCHEMEHANDLER
+// copied from miutset.h, so we don't get a dependency into the app layer
+const TUid KUidMsgTypeSMTP = {0x10001028}; // 268439592
const TUid KUidBrowser = { 0x10008D39 };
template<class R>
@@ -137,7 +138,6 @@ private:
Q_GLOBAL_STATIC(QS60DocumentHandler, qt_s60_documenthandler);
#endif
-
static void handleMailtoSchemeLX(const QUrl &url)
{
// this function has many intermingled leaves and throws. Qt and Symbian objects do not have
@@ -155,12 +155,10 @@ static void handleMailtoSchemeLX(const QUrl &url)
QStringList ccs = cc.split(QLatin1String(","), QString::SkipEmptyParts);
QStringList bccs = bcc.split(QLatin1String(","), QString::SkipEmptyParts);
-
RSendAs sendAs;
User::LeaveIfError(sendAs.Connect());
QAutoClose<RSendAs> sendAsCleanup(sendAs);
-
CSendAsAccounts* accounts = CSendAsAccounts::NewL();
CleanupStack::PushL(accounts);
sendAs.AvailableAccountsL(KUidMsgTypeSMTP, *accounts);
@@ -249,47 +247,6 @@ static bool handleOtherSchemes(const QUrl &url)
return err ? false : true;
}
-static TDriveUnit exeDrive()
-{
- RProcess me;
- TFileName processFileName = me.FileName();
- TDriveUnit drive(processFileName);
- return drive;
-}
-
-static TDriveUnit writableExeDrive()
-{
- TDriveUnit drive = exeDrive();
- if(drive.operator TInt() == EDriveZ)
- return TDriveUnit(EDriveC);
- return drive;
-}
-
-static TPtrC writableDataRoot()
-{
- TDriveUnit drive = exeDrive();
-#ifdef Q_OS_SYMBIAN
- switch(drive.operator TInt()){
- case EDriveC:
- return PathInfo::PhoneMemoryRootPath();
- break;
- case EDriveE:
- return PathInfo::MemoryCardRootPath();
- break;
- case EDriveZ:
- // It is not possible to write on ROM drive ->
- // return phone mem root path instead
- return PathInfo::PhoneMemoryRootPath();
- break;
- default:
- return PathInfo::PhoneMemoryRootPath();
- break;
- }
-#else
-#warning No fallback implementation of writableDataRoot()
- return 0;
-#endif
-}
static void openDocumentL(const TDesC& aUrl)
{
@@ -314,13 +271,44 @@ static void openDocumentL(const TDesC& aUrl)
#endif
}
-#ifdef USE_SCHEMEHANDLER
+static bool launchWebBrowser(const QUrl &url)
+{
+ if (!url.isValid())
+ return false;
+
+ if (url.scheme() == QLatin1String("mailto")) {
+ return handleMailtoScheme(url);
+ }
+ return handleOtherSchemes( url );
+}
+
+static bool openDocument(const QUrl &file)
+{
+ if (!file.isValid())
+ return false;
+
+ QString filePath = file.toLocalFile();
+ filePath = QDir::toNativeSeparators(filePath);
+ TPtrC filePathPtr(qt_QString2TPtrC(filePath));
+ TRAPD(err, openDocumentL(filePathPtr));
+ return err ? false : true;
+}
+
+#else //USE_SCHEMEHANDLER
// The schemehandler component only exist in private SDK. This implementation
// exist here just for convenience in case that we need to use it later on
// The schemehandle based implementation is not yet tested.
// The biggest advantage of schemehandler is that it can handle
// wide range of schemes and is extensible by plugins
+static void handleUrlL(const TDesC& aUrl)
+{
+ CSchemeHandler* schemeHandler = CSchemeHandler::NewL(aUrl);
+ CleanupStack::PushL(schemeHandler);
+ schemeHandler->HandleUrlStandaloneL(); // Process the Url in standalone mode
+ CleanupStack::PopAndDestroy();
+}
+
static bool handleUrl(const QUrl &url)
{
if (!url.isValid())
@@ -332,13 +320,6 @@ static bool handleUrl(const QUrl &url)
return err ? false : true;
}
-static void handleUrlL(const TDesC& aUrl)
-{
- CSchemeHandler* schemeHandler = CSchemeHandler::NewL(aUrl);
- CleanupStack::PushL(schemeHandler);
- schemeHandler->HandleUrlStandaloneL(); // Process the Url in standalone mode
- CleanupStack::PopAndDestroy();
-}
static bool launchWebBrowser(const QUrl &url)
{
return handleUrl(url);
@@ -346,31 +327,48 @@ static bool launchWebBrowser(const QUrl &url)
static bool openDocument(const QUrl &file)
{
- return handleUrl(url);
+ return handleUrl(file);
}
-#endif
-static bool launchWebBrowser(const QUrl &url)
-{
- if (!url.isValid())
- return false;
+#endif //USE_SCHEMEHANDLER
- if (url.scheme() == QLatin1String("mailto")) {
- return handleMailtoScheme(url);
- }
- return handleOtherSchemes( url );
+// Common functions to all implementations
+
+static TDriveUnit exeDrive()
+{
+ RProcess me;
+ TFileName processFileName = me.FileName();
+ TDriveUnit drive(processFileName);
+ return drive;
}
-static bool openDocument(const QUrl &file)
+static TDriveUnit writableExeDrive()
{
- if (!file.isValid())
- return false;
+ TDriveUnit drive = exeDrive();
+ if (drive.operator TInt() == EDriveZ)
+ return TDriveUnit(EDriveC);
+ return drive;
+}
- QString filePath = file.toLocalFile();
- filePath = QDir::toNativeSeparators(filePath);
- TPtrC filePathPtr(qt_QString2TPtrC(filePath));
- TRAPD(err, openDocumentL(filePathPtr));
- return err ? false : true;
+static TPtrC writableDataRoot()
+{
+ TDriveUnit drive = exeDrive();
+ switch (drive.operator TInt()){
+ case EDriveC:
+ return PathInfo::PhoneMemoryRootPath();
+ break;
+ case EDriveE:
+ return PathInfo::MemoryCardRootPath();
+ break;
+ case EDriveZ:
+ // It is not possible to write on ROM drive ->
+ // return phone mem root path instead
+ return PathInfo::PhoneMemoryRootPath();
+ break;
+ default:
+ return PathInfo::PhoneMemoryRootPath();
+ break;
+ }
}
QString QDesktopServices::storageLocation(StandardLocation type)
@@ -395,21 +393,15 @@ QString QDesktopServices::storageLocation(StandardLocation type)
break;
case MusicLocation:
path.Append(writableDataRoot());
-#ifdef Q_OS_SYMBIAN
path.Append(PathInfo::SoundsPath());
-#endif
break;
case MoviesLocation:
path.Append(writableDataRoot());
-#ifdef Q_OS_SYMBIAN
path.Append(PathInfo::VideosPath());
-#endif
break;
case PicturesLocation:
path.Append(writableDataRoot());
-#ifdef Q_OS_SYMBIAN
path.Append(PathInfo::ImagesPath());
-#endif
break;
case TempLocation:
return QDir::tempPath();
diff --git a/src/gui/util/qundostack.cpp b/src/gui/util/qundostack.cpp
index 919ac3cc67..04cfca9c0d 100644
--- a/src/gui/util/qundostack.cpp
+++ b/src/gui/util/qundostack.cpp
@@ -441,7 +441,7 @@ bool QUndoStackPrivate::checkUndoLimit()
/*!
Constructs an empty undo stack with the parent \a parent. The
- stack will initally be in the clean state. If \a parent is a
+ stack will initially be in the clean state. If \a parent is a
QUndoGroup object, the stack is automatically added to the group.
\sa push()
diff --git a/src/gui/util/util.pri b/src/gui/util/util.pri
index af6218ada5..f125f82131 100644
--- a/src/gui/util/util.pri
+++ b/src/gui/util/util.pri
@@ -43,12 +43,17 @@ embedded|qpa {
}
symbian {
- LIBS += -lsendas2 -letext -lapmime -lplatformenv
- contains(QT_CONFIG, s60) {
- contains(CONFIG, is_using_gnupoc) {
- LIBS += -lcommonui
- } else {
- LIBS += -lCommonUI
+ LIBS += -letext -lplatformenv
+ contains(S60_VERSION, 3.1)|contains(S60_VERSION, 3.2)|contains(S60_VERSION, 5.0) {
+ LIBS += -lsendas2 -lapmime
+ contains(QT_CONFIG, s60) {
+ contains(CONFIG, is_using_gnupoc) {
+ LIBS += -lcommonui
+ } else {
+ LIBS += -lCommonUI
+ }
}
+ } else {
+ DEFINES += USE_SCHEMEHANDLER
}
}
diff --git a/src/gui/widgets/qabstractslider_p.h b/src/gui/widgets/qabstractslider_p.h
index 19d1fca84f..d044131ac7 100644
--- a/src/gui/widgets/qabstractslider_p.h
+++ b/src/gui/widgets/qabstractslider_p.h
@@ -117,7 +117,7 @@ public:
;
}
- inline int bound(int val) const { return qMax(minimum, qMin(maximum, val)); }
+ virtual int bound(int val) const { return qMax(minimum, qMin(maximum, val)); }
inline int overflowSafeAdd(int add) const
{
int newValue = value + add;
diff --git a/src/gui/widgets/qcocoamenu_mac.mm b/src/gui/widgets/qcocoamenu_mac.mm
index b670186790..8e7223f693 100644
--- a/src/gui/widgets/qcocoamenu_mac.mm
+++ b/src/gui/widgets/qcocoamenu_mac.mm
@@ -44,6 +44,7 @@
#ifdef QT_MAC_USE_COCOA
#import <private/qcocoamenu_mac_p.h>
#import <private/qcocoamenuloader_mac_p.h>
+#import <private/qcocoaapplication_mac_p.h>
#include <private/qt_cocoa_helpers_mac_p.h>
#include <private/qapplication_p.h>
#include <private/qaction_p.h>
@@ -60,6 +61,7 @@ QT_FORWARD_DECLARE_CLASS(QEvent)
QT_BEGIN_NAMESPACE
extern bool qt_sendSpontaneousEvent(QObject*, QEvent*); //qapplication.cpp
+extern NSString *qt_mac_removePrivateUnicode(NSString* string);
QT_END_NAMESPACE
QT_USE_NAMESPACE
@@ -78,7 +80,7 @@ QT_USE_NAMESPACE
return self;
}
-- (void)menu:(NSMenu*)menu willHighlightItem:(NSMenuItem*)item;
+- (void)menu:(NSMenu*)menu willHighlightItem:(NSMenuItem*)item
{
Q_UNUSED(menu);
@@ -99,7 +101,7 @@ QT_USE_NAMESPACE
}
}
-- (void)menuWillOpen:(NSMenu*)menu;
+- (void)menuWillOpen:(NSMenu*)menu
{
while (QWidget *popup
= QApplication::activePopupWidget())
@@ -109,7 +111,7 @@ QT_USE_NAMESPACE
qt_mac_menu_collapseSeparators(menu, qtmenu->separatorsCollapsible());
}
-- (void)menuDidClose:(NSMenu*)menu;
+- (void)menuDidClose:(NSMenu*)menu
{
qt_mac_emit_menuSignals(((QT_MANGLE_NAMESPACE(QCocoaMenu) *)menu)->qmenu, false);
if (previousAction) {
@@ -157,7 +159,6 @@ QT_USE_NAMESPACE
// (i.e., fire the menu action).
NSMenuItem *whichItem;
// Change the private unicode keys to the ones used in setting the "Key Equivalents"
- extern NSString *qt_mac_removePrivateUnicode(NSString* string);
NSString *characters = qt_mac_removePrivateUnicode([event characters]);
if ([self hasShortcut:menu
forKey:characters
diff --git a/src/gui/widgets/qdial.cpp b/src/gui/widgets/qdial.cpp
index a8d739fd87..bca50196af 100644
--- a/src/gui/widgets/qdial.cpp
+++ b/src/gui/widgets/qdial.cpp
@@ -83,6 +83,7 @@ public:
int valueFromPoint(const QPoint &) const;
double angle(const QPoint &, const QPoint &) const;
void init();
+ virtual int bound(int val) const;
};
void QDialPrivate::init()
@@ -97,6 +98,20 @@ void QDialPrivate::init()
#endif
}
+int QDialPrivate::bound(int val) const
+{
+ if (wrapping) {
+ if ((val >= minimum) && (val <= maximum))
+ return val;
+ val = minimum + ((val - minimum) % (maximum - minimum));
+ if (val < minimum)
+ val += maximum - minimum;
+ return val;
+ } else {
+ return QAbstractSliderPrivate::bound(val);
+ }
+}
+
/*!
Initialize \a option with the values from this QDial. This method
is useful for subclasses when they need a QStyleOptionSlider, but don't want
diff --git a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp
index 25622a49e3..3617d24333 100644
--- a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp
+++ b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.cpp
@@ -63,7 +63,9 @@ QAudioDeviceInfoInternal::QAudioDeviceInfoInternal(QByteArray dev, QAudio::Mode
device = QLatin1String(dev);
this->mode = mode;
+#if (SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14)
checkSurround();
+#endif
}
QAudioDeviceInfoInternal::~QAudioDeviceInfoInternal()
@@ -394,9 +396,11 @@ void QAudioDeviceInfoInternal::updateLists()
}
channelz.append(1);
channelz.append(2);
+#if (SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14)
if (surround40) channelz.append(4);
if (surround51) channelz.append(6);
if (surround71) channelz.append(8);
+#endif
sizez.append(8);
sizez.append(16);
sizez.append(32);
@@ -494,6 +498,7 @@ QByteArray QAudioDeviceInfoInternal::defaultOutputDevice()
return devices.first();
}
+#if (SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14)
void QAudioDeviceInfoInternal::checkSurround()
{
QList<QByteArray> devices;
@@ -534,5 +539,6 @@ void QAudioDeviceInfoInternal::checkSurround()
}
snd_device_name_free_hint(hints);
}
+#endif
QT_END_NAMESPACE
diff --git a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.h b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.h
index 8525980e05..5f7e5e8317 100644
--- a/src/multimedia/audio/qaudiodeviceinfo_alsa_p.h
+++ b/src/multimedia/audio/qaudiodeviceinfo_alsa_p.h
@@ -98,10 +98,12 @@ private:
bool open();
void close();
+#if (SND_LIB_MAJOR == 1 && SND_LIB_MINOR == 0 && SND_LIB_SUBMINOR >= 14)
void checkSurround();
bool surround40;
bool surround51;
bool surround71;
+#endif
QString device;
QAudio::Mode mode;
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp
index 70ef7ba84b..99b5a95e5d 100644
--- a/src/network/ssl/qsslsocket_openssl.cpp
+++ b/src/network/ssl/qsslsocket_openssl.cpp
@@ -656,8 +656,16 @@ TInt CSymbianCertificateRetriever::ThreadEntryPoint(TAny* aParams)
void CSymbianCertificateRetriever::ConstructL()
{
- User::LeaveIfError(iThread.Create(_L("CertWorkerThread"),
- CSymbianCertificateRetriever::ThreadEntryPoint, 16384, NULL, this));
+ TInt err;
+ int i=0;
+ QString name(QLatin1String("CertWorkerThread-%1"));
+ //recently closed thread names remain in use for a while until all handles have been closed
+ //including users of RUndertaker
+ do {
+ err = iThread.Create(qt_QString2TPtrC(name.arg(i++)),
+ CSymbianCertificateRetriever::ThreadEntryPoint, 16384, NULL, this);
+ } while (err == KErrAlreadyExists);
+ User::LeaveIfError(err);
}
void CSymbianCertificateRetriever::DoCancel()
@@ -728,7 +736,7 @@ void CSymbianCertificateRetriever::RunL()
if (iStatus.Int() == KErrNone)
iCertificates->append(iCertificateData);
else
- qWarning() << "CSymbianCertificateRetriever: failed to retreive a certificate, error " << iStatus.Int();
+ qWarning() << "CSymbianCertificateRetriever: failed to retrieve a certificate, error " << iStatus.Int();
GetCertificateL();
break;
}
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index 85e4eabac5..735aab1875 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -1241,6 +1241,9 @@ void QGL2PaintEngineExPrivate::stroke(const QVectorPath &path, const QPen &pen)
stroker.process(dashStroke, pen, clip);
}
+ if (!stroker.vertexCount())
+ return;
+
if (opaque) {
prepareForDraw(opaque);
setVertexAttributePointer(QT_VERTEX_COORDS_ATTR, stroker.vertices());
@@ -1510,6 +1513,8 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp
cache = new QGLTextureGlyphCache(ctx, glyphType, QTransform());
staticTextItem->fontEngine()->setGlyphCache(cacheKey, cache);
cache->insert(ctx, cache);
+ } else if (cache->context() == 0) { // Old context has been destroyed, new context has same ptr value
+ cache->setContext(ctx);
}
bool recreateVertexArrays = false;
diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
index 7954d77f37..538b09e90d 100644
--- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
+++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
@@ -55,7 +55,7 @@ extern Q_GUI_EXPORT bool qt_cleartype_enabled;
QGLTextureGlyphCache::QGLTextureGlyphCache(const QGLContext *context, QFontEngineGlyphCache::Type type, const QTransform &matrix)
: QImageTextureGlyphCache(type, matrix), QGLContextGroupResourceBase()
- , ctx(context)
+ , ctx(0)
, pex(0)
, m_blitProgram(0)
, m_filterMode(Nearest)
@@ -89,7 +89,6 @@ QGLTextureGlyphCache::~QGLTextureGlyphCache()
#ifdef QT_GL_TEXTURE_GLYPH_CACHE_DEBUG
qDebug(" -> ~QGLTextureGlyphCache() %p.", this);
#endif
-
delete m_blitProgram;
}
diff --git a/src/opengl/gl2paintengineex/qtriangulator.cpp b/src/opengl/gl2paintengineex/qtriangulator.cpp
index 85f604a4bf..75d5ce2412 100644
--- a/src/opengl/gl2paintengineex/qtriangulator.cpp
+++ b/src/opengl/gl2paintengineex/qtriangulator.cpp
@@ -339,7 +339,7 @@ static inline qint64 qPointDistanceFromLine(const QPodPoint &p, const QPodPoint
static inline bool qPointIsLeftOfLine(const QPodPoint &p, const QPodPoint &v1, const QPodPoint &v2)
{
- return qPointDistanceFromLine(p, v1, v2) < 0;
+ return QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(p, v1, v2) < 0;
}
// Return:
@@ -1741,7 +1741,7 @@ bool QTriangulator<T>::ComplexToSimple::calculateIntersection(int left, int righ
Intersection intersection;
intersection.leftEdge = left;
intersection.rightEdge = right;
- intersection.intersectionPoint = qIntersectionPoint(u1, u2, v1, v2);
+ intersection.intersectionPoint = QT_PREPEND_NAMESPACE(qIntersectionPoint)(u1, u2, v1, v2);
if (!intersection.intersectionPoint.isValid())
return false;
@@ -1767,10 +1767,10 @@ bool QTriangulator<T>::ComplexToSimple::edgeIsLeftOfEdge(int leftEdgeIndex, int
return true;
if (upper.x > qMax(l.x, u.x))
return false;
- qint64 d = qPointDistanceFromLine(upper, l, u);
+ qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(upper, l, u);
// d < 0: left, d > 0: right, d == 0: on top
if (d == 0)
- d = qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.lower()), l, u);
+ d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(m_parent->m_vertices.at(leftEdge.lower()), l, u);
return d < 0;
}
@@ -1814,7 +1814,7 @@ QPair<QRBTree<int>::Node *, QRBTree<int>::Node *> QTriangulator<T>::ComplexToSim
while (current) {
const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower());
const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper());
- qint64 d = qPointDistanceFromLine(point, v1, v2);
+ qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2);
if (d == 0) {
result.first = result.second = current;
break;
@@ -1828,7 +1828,7 @@ QPair<QRBTree<int>::Node *, QRBTree<int>::Node *> QTriangulator<T>::ComplexToSim
while (current) {
const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower());
const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper());
- qint64 d = qPointDistanceFromLine(point, v1, v2);
+ qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2);
Q_ASSERT(d >= 0);
if (d == 0) {
result.first = current;
@@ -1842,7 +1842,7 @@ QPair<QRBTree<int>::Node *, QRBTree<int>::Node *> QTriangulator<T>::ComplexToSim
while (current) {
const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower());
const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper());
- qint64 d = qPointDistanceFromLine(point, v1, v2);
+ qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2);
Q_ASSERT(d <= 0);
if (d == 0) {
result.second = current;
@@ -1864,7 +1864,7 @@ QPair<QRBTree<int>::Node *, QRBTree<int>::Node *> QTriangulator<T>::ComplexToSim
while (current) {
const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower());
const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper());
- qint64 d = qPointDistanceFromLine(point, v1, v2);
+ qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2);
if (d == 0)
break;
if (d < 0) {
@@ -1885,7 +1885,7 @@ QPair<QRBTree<int>::Node *, QRBTree<int>::Node *> QTriangulator<T>::ComplexToSim
while (current) {
const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower());
const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper());
- qint64 d = qPointDistanceFromLine(point, v1, v2);
+ qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2);
Q_ASSERT(d >= 0);
if (d == 0) {
current = current->left;
@@ -1899,7 +1899,7 @@ QPair<QRBTree<int>::Node *, QRBTree<int>::Node *> QTriangulator<T>::ComplexToSim
while (current) {
const QPodPoint &v1 = m_parent->m_vertices.at(m_edges.at(current->data).lower());
const QPodPoint &v2 = m_parent->m_vertices.at(m_edges.at(current->data).upper());
- qint64 d = qPointDistanceFromLine(point, v1, v2);
+ qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(point, v1, v2);
Q_ASSERT(d <= 0);
if (d == 0) {
current = current->right;
@@ -1962,7 +1962,7 @@ void QTriangulator<T>::ComplexToSimple::reorderEdgeListRange(QRBTree<int>::Node
template <typename T>
void QTriangulator<T>::ComplexToSimple::sortEdgeList(const QPodPoint eventPoint)
{
- QIntersectionPoint eventPoint2 = qIntersectionPoint(eventPoint);
+ QIntersectionPoint eventPoint2 = QT_PREPEND_NAMESPACE(qIntersectionPoint)(eventPoint);
while (!m_topIntersection.isEmpty() && m_topIntersection.top().intersectionPoint < eventPoint2) {
Intersection intersection = m_topIntersection.pop();
@@ -2056,7 +2056,7 @@ void QTriangulator<T>::ComplexToSimple::calculateIntersections()
QPair<QRBTree<int>::Node *, QRBTree<int>::Node *> range = bounds(event.point);
QRBTree<int>::Node *leftNode = range.first ? m_edgeList.previous(range.first) : 0;
int vertex = (event.type == Event::Upper ? m_edges.at(event.edge).upper() : m_edges.at(event.edge).lower());
- QIntersectionPoint eventPoint = qIntersectionPoint(event.point);
+ QIntersectionPoint eventPoint = QT_PREPEND_NAMESPACE(qIntersectionPoint)(event.point);
if (range.first != 0) {
splitEdgeListRange(range.first, range.second, vertex, eventPoint);
@@ -2213,7 +2213,7 @@ void QTriangulator<T>::ComplexToSimple::removeUnwantedEdgesAndConnect()
while (current != b.second) {
Q_ASSERT(current);
Q_ASSERT(m_edges.at(current->data).node == current);
- Q_ASSERT(qIntersectionPoint(event.point).isOnLine(m_parent->m_vertices.at(m_edges.at(current->data).from), m_parent->m_vertices.at(m_edges.at(current->data).to)));
+ Q_ASSERT(QT_PREPEND_NAMESPACE(qIntersectionPoint)(event.point).isOnLine(m_parent->m_vertices.at(m_edges.at(current->data).from), m_parent->m_vertices.at(m_edges.at(current->data).to)));
Q_ASSERT(m_parent->m_vertices.at(m_edges.at(current->data).from) == event.point || m_parent->m_vertices.at(m_edges.at(current->data).to) == event.point);
insertEdgeIntoVectorIfWanted(orderedEdges, current->data);
current = m_edgeList.next(current);
@@ -2612,10 +2612,10 @@ bool QTriangulator<T>::SimpleToMonotone::edgeIsLeftOfEdge(int leftEdgeIndex, int
const Edge &rightEdge = m_edges.at(rightEdgeIndex);
const QPodPoint &u = m_parent->m_vertices.at(rightEdge.upper());
const QPodPoint &l = m_parent->m_vertices.at(rightEdge.lower());
- qint64 d = qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.upper()), l, u);
+ qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(m_parent->m_vertices.at(leftEdge.upper()), l, u);
// d < 0: left, d > 0: right, d == 0: on top
if (d == 0)
- d = qPointDistanceFromLine(m_parent->m_vertices.at(leftEdge.lower()), l, u);
+ d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(m_parent->m_vertices.at(leftEdge.lower()), l, u);
return d < 0;
}
@@ -2645,7 +2645,7 @@ QRBTree<int>::Node *QTriangulator<T>::SimpleToMonotone::searchEdgeLeftOfPoint(in
while (current) {
const QPodPoint &p1 = m_parent->m_vertices.at(m_edges.at(current->data).lower());
const QPodPoint &p2 = m_parent->m_vertices.at(m_edges.at(current->data).upper());
- qint64 d = qPointDistanceFromLine(m_parent->m_vertices.at(pointIndex), p1, p2);
+ qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(m_parent->m_vertices.at(pointIndex), p1, p2);
if (d <= 0) {
current = current->left;
} else {
@@ -2668,7 +2668,7 @@ void QTriangulator<T>::SimpleToMonotone::classifyVertex(int i)
const QPodPoint &p1 = m_parent->m_vertices.at(e1.from);
const QPodPoint &p2 = m_parent->m_vertices.at(e2.from);
const QPodPoint &p3 = m_parent->m_vertices.at(e2.to);
- qint64 d = qPointDistanceFromLine(p1, p2, p3);
+ qint64 d = QT_PREPEND_NAMESPACE(qPointDistanceFromLine)(p1, p2, p3);
Q_ASSERT(d != 0 || (!startOrSplit && !endOrMerge));
e2.type = RegularVertex;
diff --git a/src/opengl/qgl_p.h b/src/opengl/qgl_p.h
index 8285f06379..547e457ac3 100644
--- a/src/opengl/qgl_p.h
+++ b/src/opengl/qgl_p.h
@@ -519,7 +519,8 @@ private slots:
// when you come to delete the context.
QGLContextPrivate::unbindPixmapFromTexture(boundPixmap);
glDeleteTextures(1, &id);
- oldContext->makeCurrent();
+ if (oldContext)
+ oldContext->makeCurrent();
return;
}
#endif
diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp
index aea203f9c8..b8e8badccb 100644
--- a/src/openvg/qpaintengine_vg.cpp
+++ b/src/openvg/qpaintengine_vg.cpp
@@ -1502,7 +1502,10 @@ void QVGPaintEnginePrivate::fill(VGPath path, const QBrush& brush, VGint rule)
return;
ensureBrush(brush);
setFillRule(rule);
+ QPen savedPen = currentPen;
+ currentPen = Qt::NoPen;
ensurePathTransform();
+ currentPen = savedPen;
vgDrawPath(path, VG_FILL_PATH);
}
@@ -3543,8 +3546,8 @@ void QVGPaintEngine::drawStaticTextItem(QStaticTextItem *textItem)
// Set the glyph drawing origin.
VGfloat origin[2];
- origin[0] = positions[0].x.toReal();
- origin[1] = positions[0].y.toReal();
+ origin[0] = positions[0].x.round().toReal();
+ origin[1] = positions[0].y.round().toReal();
vgSetfv(VG_GLYPH_ORIGIN, 2, origin);
// Fast anti-aliasing for paths, better for images.
diff --git a/src/openvg/qpixmapdata_vg.cpp b/src/openvg/qpixmapdata_vg.cpp
index 509882bf8c..c3c7def54b 100644
--- a/src/openvg/qpixmapdata_vg.cpp
+++ b/src/openvg/qpixmapdata_vg.cpp
@@ -214,7 +214,7 @@ void QVGPixmapData::createPixmapForImage(QImage &image, Qt::ImageConversionFlags
else if (!(flags & Qt::NoOpaqueDetection) && const_cast<QImage &>(image).data_ptr()->checkForAlphaPixels())
format = sourceFormat();
else
- format = QImage::Format_RGB32;
+ format = image.hasAlphaChannel() ? sourceFormat() : QImage::Format_RGB32;
if (inPlace && image.data_ptr()->convertInPlace(format, flags))
source = image;
diff --git a/src/plugins/bearer/symbian/symbianengine.cpp b/src/plugins/bearer/symbian/symbianengine.cpp
index 33fa50852b..f025d865f4 100644
--- a/src/plugins/bearer/symbian/symbianengine.cpp
+++ b/src/plugins/bearer/symbian/symbianengine.cpp
@@ -981,7 +981,7 @@ void SymbianEngine::RunL()
QMutexLocker locker(&mutex);
if (iStatus != KErrCancel) {
- // By default, start relistening notifications. Stop only if interesting event occured.
+ // By default, start relistening notifications. Stop only if interesting event occurred.
iWaitingCommsDatabaseNotifications = true;
RDbNotifier::TEvent event = STATIC_CAST(RDbNotifier::TEvent, iStatus.Int());
switch (event) {
diff --git a/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp b/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp
index 2eeee24b6a..fbc539b021 100644
--- a/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp
+++ b/src/plugins/gfxdrivers/directfb/qdirectfbwindowsurface.cpp
@@ -344,9 +344,11 @@ void QDirectFBWindowSurface::flush(QWidget *widget, const QRegion &region,
if (!win)
return;
+#ifndef QT_NO_QWS_PROXYSCREEN
QWExtra *extra = qt_widget_private(widget)->extraData();
if (extra && extra->proxyWidget)
return;
+#endif
const quint8 windowOpacity = quint8(win->windowOpacity() * 0xff);
const QRect windowGeometry = geometry();
diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp
index 063af135e4..507f70b082 100644
--- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp
+++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp
@@ -83,7 +83,7 @@ QWindowSurface* QMeeGoGraphicsSystem::createWindowSurface(QWidget *widget) const
QPixmapData *QMeeGoGraphicsSystem::createPixmapData(QPixmapData::PixelType type) const
{
// Long story short: without this it's possible to hit an
- // unitialized paintDevice due to a Qt bug too complex to even
+ // uninitialized paintDevice due to a Qt bug too complex to even
// explain here... not to mention fix without going crazy.
// MDK
QGLShareContextScope ctx(qt_gl_share_widget()->context());
diff --git a/src/plugins/s60/feedback/feedback.pro b/src/plugins/s60/feedback/feedback.pro
index 1069220442..5e577ec593 100644
--- a/src/plugins/s60/feedback/feedback.pro
+++ b/src/plugins/s60/feedback/feedback.pro
@@ -6,7 +6,7 @@ QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/s60/feedback
INCLUDEPATH += $$APP_LAYER_SYSTEMINCLUDE
-contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) {
+!contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
HEADERS += qtactileFeedback.h
SOURCES += qtactileFeedback_s60.cpp
diff --git a/src/plugins/s60/s60.pro b/src/plugins/s60/s60.pro
index ffcd170f46..1ddf3261dc 100644
--- a/src/plugins/s60/s60.pro
+++ b/src/plugins/s60/s60.pro
@@ -6,7 +6,7 @@ symbian {
SUBDIRS += 3_1 3_2
}
- contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) {
+ !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
SUBDIRS += feedback
}
diff --git a/src/qbase.pri b/src/qbase.pri
index 76079f2d43..d3fa426ed7 100644
--- a/src/qbase.pri
+++ b/src/qbase.pri
@@ -35,7 +35,7 @@ CONFIG += qt warn_on depend_includepath
CONFIG += qmake_cache target_qt
CONFIG -= fix_output_dirs
win32|mac:!macx-xcode:CONFIG += debug_and_release
-linux*-g++*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
+linux*:QMAKE_LFLAGS += $$QMAKE_LFLAGS_NOUNDEF
contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols
unix:contains(QT_CONFIG, reduce_relocations):CONFIG += bsymbolic_functions
diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index c91b22cbe5..6a33fc331e 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -12852,7 +12852,7 @@ EXPORTS
?drawStaticText@QPainter@@QAEXABVQPointF@@ABVQStaticText@@@Z @ 12851 NONAME ; void QPainter::drawStaticText(class QPointF const &, class QStaticText const &)
?updateAll@QGraphicsViewPrivate@@QAEXXZ @ 12852 NONAME ; void QGraphicsViewPrivate::updateAll(void)
?updateMicroFocus@QGraphicsItem@@IAEXXZ @ 12853 NONAME ; void QGraphicsItem::updateMicroFocus(void)
- ?populate@QTextureGlyphCache@@QAEXPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12854 NONAME ; void QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *)
+ ?populate@QTextureGlyphCache@@QAEXPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12854 NONAME ABSENT ; void QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *)
?hasPartialUpdateSupport@QWindowSurface@@QBE_NXZ @ 12855 NONAME ; bool QWindowSurface::hasPartialUpdateSupport(void) const
?scroll@QRuntimePixmapData@@UAE_NHHABVQRect@@@Z @ 12856 NONAME ; bool QRuntimePixmapData::scroll(int, int, class QRect const &)
?qt_draw_glyphs@@YAXPAVQPainter@@PBIPBVQPointF@@H@Z @ 12857 NONAME ; void qt_draw_glyphs(class QPainter *, unsigned int const *, class QPointF const *, int)
@@ -12898,4 +12898,11 @@ EXPORTS
?qmljsDebugArgumentsString@QApplicationPrivate@@SA?AVQString@@XZ @ 12897 NONAME ; class QString QApplicationPrivate::qmljsDebugArgumentsString(void)
?convertToPostscriptFontFamilyName@QFontEngine@@SA?AVQByteArray@@ABV2@@Z @ 12898 NONAME ; class QByteArray QFontEngine::convertToPostscriptFontFamilyName(class QByteArray const &)
?lastResortFont@QFont@@QBE?AVQString@@XZ @ 12899 NONAME ; class QString QFont::lastResortFont(void) const
+ ?setFontEngine@QStaticTextItem@@QAEXPAVQFontEngine@@@Z @ 12900 NONAME ; void QStaticTextItem::setFontEngine(class QFontEngine *)
+ ??0QStaticTextItem@@QAE@ABV0@@Z @ 12901 NONAME ; QStaticTextItem::QStaticTextItem(class QStaticTextItem const &)
+ ??4QStaticTextItem@@QAEXABV0@@Z @ 12902 NONAME ; void QStaticTextItem::operator=(class QStaticTextItem const &)
+ ?fontEngine@QStaticTextItem@@QBEPAVQFontEngine@@XZ @ 12903 NONAME ; class QFontEngine * QStaticTextItem::fontEngine(void) const
+ ?reactivateDeferredActiveObjects@QEventDispatcherS60@@UAEXXZ @ 12904 NONAME ; void QEventDispatcherS60::reactivateDeferredActiveObjects(void)
+ ?userData@QStaticTextItem@@QBEPAVQStaticTextUserData@@XZ @ 12905 NONAME ; class QStaticTextUserData * QStaticTextItem::userData(void) const
+ ?populate@QTextureGlyphCache@@QAE_NPAVQFontEngine@@HPBIPBUQFixedPoint@@@Z @ 12906 NONAME ; bool QTextureGlyphCache::populate(class QFontEngine *, int, unsigned int const *, struct QFixedPoint const *)
diff --git a/src/s60installs/bwins/QtOpenGLu.def b/src/s60installs/bwins/QtOpenGLu.def
index fa340e4e44..620fcb9b72 100644
--- a/src/s60installs/bwins/QtOpenGLu.def
+++ b/src/s60installs/bwins/QtOpenGLu.def
@@ -8,7 +8,7 @@ EXPORTS
?d_func@QGLShader@@AAEPAVQGLShaderPrivate@@XZ @ 7 NONAME ; class QGLShaderPrivate * QGLShader::d_func(void)
?bindToDynamicTexture@QGLPixelBuffer@@QAE_NI@Z @ 8 NONAME ; bool QGLPixelBuffer::bindToDynamicTexture(unsigned int)
??0QGLWidget@@QAE@PAVQGLContext@@PAVQWidget@@PBV0@V?$QFlags@W4WindowType@Qt@@@@@Z @ 9 NONAME ; QGLWidget::QGLWidget(class QGLContext *, class QWidget *, class QGLWidget const *, class QFlags<enum Qt::WindowType>)
- ??_EQGLFormat@@QAE@I@Z @ 10 NONAME ; QGLFormat::~QGLFormat(unsigned int)
+ ??_EQGLFormat@@QAE@I@Z @ 10 NONAME ABSENT ; QGLFormat::~QGLFormat(unsigned int)
?drawPixmapFragments@QGL2PaintEngineEx@@UAEXPBVPixmapFragment@QPainter@@HABVQPixmap@@V?$QFlags@W4PixmapFragmentHint@QPainter@@@@@Z @ 11 NONAME ; void QGL2PaintEngineEx::drawPixmapFragments(class QPainter::PixmapFragment const *, int, class QPixmap const &, class QFlags<enum QPainter::PixmapFragmentHint>)
?paintEngine@QGLWidget@@UBEPAVQPaintEngine@@XZ @ 12 NONAME ; class QPaintEngine * QGLWidget::paintEngine(void) const
?setPreferredPaintEngine@QGL@@YAXW4Type@QPaintEngine@@@Z @ 13 NONAME ; void QGL::setPreferredPaintEngine(enum QPaintEngine::Type)
@@ -107,7 +107,7 @@ EXPORTS
??0QGLContext@@QAE@ABVQGLFormat@@@Z @ 106 NONAME ; QGLContext::QGLContext(class QGLFormat const &)
?geometryOutputVertexCount@QGLShaderProgram@@QBEHXZ @ 107 NONAME ; int QGLShaderProgram::geometryOutputVertexCount(void) const
?setAccum@QGLFormat@@QAEX_N@Z @ 108 NONAME ; void QGLFormat::setAccum(bool)
- ??0QGLSignalProxy@@QAE@XZ @ 109 NONAME ; QGLSignalProxy::QGLSignalProxy(void)
+ ??0QGLSignalProxy@@QAE@XZ @ 109 NONAME ABSENT ; QGLSignalProxy::QGLSignalProxy(void)
?isUninitialized@QGLPixmapData@@ABE_NXZ @ 110 NONAME ; bool QGLPixmapData::isUninitialized(void) const
??0QGLFramebufferObjectFormat@@QAE@XZ @ 111 NONAME ; QGLFramebufferObjectFormat::QGLFramebufferObjectFormat(void)
??8@YA_NABVQGLFormat@@0@Z @ 112 NONAME ; bool operator==(class QGLFormat const &, class QGLFormat const &)
@@ -496,7 +496,7 @@ EXPORTS
?setUniformValue@QGLShaderProgram@@QAEXPBDABVQSize@@@Z @ 495 NONAME ; void QGLShaderProgram::setUniformValue(char const *, class QSize const &)
?convertToGLFormat@QGLWidget@@SA?AVQImage@@ABV2@@Z @ 496 NONAME ; class QImage QGLWidget::convertToGLFormat(class QImage const &)
?staticMetaObject@QGLTextureGlyphCache@@2UQMetaObject@@B @ 497 NONAME ; struct QMetaObject const QGLTextureGlyphCache::staticMetaObject
- ??_EQGLContextResource@@QAE@I@Z @ 498 NONAME ; QGLContextResource::~QGLContextResource(unsigned int)
+ ??_EQGLContextResource@@QAE@I@Z @ 498 NONAME ABSENT ; QGLContextResource::~QGLContextResource(unsigned int)
?handle@QGLColormap@@IAEKXZ @ 499 NONAME ; unsigned long QGLColormap::handle(void)
?isCreated@QGLBuffer@@QBE_NXZ @ 500 NONAME ; bool QGLBuffer::isCreated(void) const
?setColormap@QGLWidget@@QAEXABVQGLColormap@@@Z @ 501 NONAME ; void QGLWidget::setColormap(class QGLColormap const &)
@@ -698,4 +698,9 @@ EXPORTS
?setProfile@QGLFormat@@QAEXW4OpenGLContextProfile@1@@Z @ 697 NONAME ; void QGLFormat::setProfile(enum QGLFormat::OpenGLContextProfile)
?updateDynamicTexture@QGLPixelBuffer@@QBEXI@Z @ 698 NONAME ; void QGLPixelBuffer::updateDynamicTexture(unsigned int) const
?setUniformValue@QGLShaderProgram@@QAEXHH@Z @ 699 NONAME ; void QGLShaderProgram::setUniformValue(int, int)
+ ?maxTextureHeight@QGLTextureGlyphCache@@UBEHXZ @ 700 NONAME ; int QGLTextureGlyphCache::maxTextureHeight(void) const
+ ?initializeOffscreenTexture@QGLWindowSurface@@AAE_NABVQSize@@@Z @ 701 NONAME ; bool QGLWindowSurface::initializeOffscreenTexture(class QSize const &)
+ ?maxTextureWidth@QGLTextureGlyphCache@@UBEHXZ @ 702 NONAME ; int QGLTextureGlyphCache::maxTextureWidth(void) const
+ ?filterMode@QGLTextureGlyphCache@@QBE?AW4FilterMode@1@XZ @ 703 NONAME ; enum QGLTextureGlyphCache::FilterMode QGLTextureGlyphCache::filterMode(void) const
+ ?setFilterMode@QGLTextureGlyphCache@@QAEXW4FilterMode@1@@Z @ 704 NONAME ; void QGLTextureGlyphCache::setFilterMode(enum QGLTextureGlyphCache::FilterMode)
diff --git a/src/s60installs/eabi/QtOpenGLu.def b/src/s60installs/eabi/QtOpenGLu.def
index 7ceade4a55..c92d99ecc6 100644
--- a/src/s60installs/eabi/QtOpenGLu.def
+++ b/src/s60installs/eabi/QtOpenGLu.def
@@ -702,4 +702,9 @@ EXPORTS
_ZeqRK9QGLFormatS1_ @ 701 NONAME
_Zls6QDebugRK9QGLFormat @ 702 NONAME
_ZneRK9QGLFormatS1_ @ 703 NONAME
+ _ZN16QGLWindowSurface26initializeOffscreenTextureERK5QSize @ 704 NONAME
+ _ZNK20QGLTextureGlyphCache15maxTextureWidthEv @ 705 NONAME
+ _ZNK20QGLTextureGlyphCache16maxTextureHeightEv @ 706 NONAME
+ _ZThn8_NK20QGLTextureGlyphCache15maxTextureWidthEv @ 707 NONAME
+ _ZThn8_NK20QGLTextureGlyphCache16maxTextureHeightEv @ 708 NONAME
diff --git a/src/s60installs/s60installs.pro b/src/s60installs/s60installs.pro
index 2b3229ecd9..fc364bccc9 100644
--- a/src/s60installs/s60installs.pro
+++ b/src/s60installs/s60installs.pro
@@ -87,7 +87,7 @@ symbian: {
DEPLOYMENT += bearer_plugin
}
- contains(S60_VERSION, 5.0)|contains(S60_VERSION, symbian3) {
+ !contains(S60_VERSION, 3.1):!contains(S60_VERSION, 3.2) {
feedback_plugin.sources = $$QT_BUILD_TREE/plugins/s60/feedback/qtactilefeedback$${QT_LIBINFIX}.dll
feedback_plugin.path = c:$$QT_PLUGINS_BASE_DIR/feedback
DEPLOYMENT += feedback_plugin
@@ -191,11 +191,9 @@ symbian: {
qtlibraries.files += $$QMAKE_LIBDIR_QT/QtOpenVG$${QT_LIBINFIX}.dll
graphicssystems_plugins.files += $$QT_BUILD_TREE/plugins/graphicssystems/qvggraphicssystem$${QT_LIBINFIX}.dll
# OpenVG requires Symbian^3 or later
- pkg_platform_dependencies -= \
- "[0x101F7961],0,0,0,{\"S60ProductID\"}" \
- "[0x102032BE],0,0,0,{\"S60ProductID\"}" \
- "[0x102752AE],0,0,0,{\"S60ProductID\"}" \
- "[0x1028315F],0,0,0,{\"S60ProductID\"}"
+ pkg_platform_dependencies = \
+ "[0x20022E6D],0,0,0,{\"S60ProductID\"}" \
+ "[0x20032DE7],0,0,0,{\"S60ProductID\"}"
}
contains(QT_CONFIG, opengl) {
diff --git a/src/script/api/qscriptcontextinfo.cpp b/src/script/api/qscriptcontextinfo.cpp
index a90e0146af..8528decd61 100644
--- a/src/script/api/qscriptcontextinfo.cpp
+++ b/src/script/api/qscriptcontextinfo.cpp
@@ -177,7 +177,7 @@ QScriptContextInfoPrivate::QScriptContextInfoPrivate(const QScriptContext *conte
fileName = source->url();
}
- // Get the others informations:
+ // Get the others information:
JSC::JSObject *callee = frame->callee();
if (callee && callee->inherits(&JSC::InternalFunction::info))
functionName = JSC::asInternalFunction(callee)->name(frame);
diff --git a/src/script/api/qscriptengine.cpp b/src/script/api/qscriptengine.cpp
index 69abcadb2a..1fcbd738d9 100644
--- a/src/script/api/qscriptengine.cpp
+++ b/src/script/api/qscriptengine.cpp
@@ -1744,7 +1744,9 @@ QVariant QScriptEnginePrivate::toVariant(JSC::ExecState *exec, JSC::JSValue valu
else if (QScriptDeclarativeClass *dc = declarativeClass(value))
return dc->toVariant(declarativeObject(value));
return variantMapFromObject(exec, JSC::asObject(value));
- } else if (value.isNumber()) {
+ } else if (value.isInt32()) {
+ return QVariant(toInt32(exec, value));
+ } else if (value.isDouble()) {
return QVariant(toNumber(exec, value));
} else if (value.isString()) {
return QVariant(toString(exec, value));
diff --git a/src/xmlpatterns/expr/qarithmeticexpression_p.h b/src/xmlpatterns/expr/qarithmeticexpression_p.h
index 66c1f136f2..6ff82191a9 100644
--- a/src/xmlpatterns/expr/qarithmeticexpression_p.h
+++ b/src/xmlpatterns/expr/qarithmeticexpression_p.h
@@ -62,7 +62,7 @@ QT_BEGIN_NAMESPACE
namespace QPatternist
{
/**
- * @short Implements arithmetics, such as multiplication and substraction.
+ * @short Implements arithmetics, such as multiplication and subtraction.
*
*
* Optimizations: there's some operator/value combos that are no ops. For
diff --git a/tests/arthur/baselineserver/src/baselineserver.cpp b/tests/arthur/baselineserver/src/baselineserver.cpp
index 7679f13c4a..0399224de0 100644
--- a/tests/arthur/baselineserver/src/baselineserver.cpp
+++ b/tests/arthur/baselineserver/src/baselineserver.cpp
@@ -51,6 +51,7 @@
#include <QHostInfo>
#include <QTextStream>
#include <QProcess>
+#include <QDirIterator>
QString BaselineServer::storage;
@@ -97,8 +98,8 @@ void BaselineServer::heartbeat()
if (me.lastModified() == meLastMod)
return;
- // (could close() here to avoid accepting new connections, to avoid livelock)
- // also, could check for a timeout to force exit, to avoid hung threads blocking
+ //# (could close() here to avoid accepting new connections, to avoid livelock)
+ //# also, could check for a timeout to force exit, to avoid hung threads blocking
bool isServing = false;
foreach(BaselineThread *thread, findChildren<BaselineThread *>()) {
if (thread->isRunning()) {
@@ -304,10 +305,13 @@ void BaselineHandler::mapPlatformInfo()
if (host.isEmpty() || host == QLS("localhost")) {
host = plat.value(PI_HostAddress);
} else {
- // remove index postfix typical of vm hostnames
- host.remove(QRegExp(QLS("\\d+$")));
- if (host.endsWith(QLC('-')))
- host.chop(1);
+ //# Site specific, should be in a config file
+ if (!host.startsWith(QLS("oldhcp"))) {
+ // remove index postfix typical of vm hostnames
+ host.remove(QRegExp(QLS("\\d+$")));
+ if (host.endsWith(QLC('-')))
+ host.chop(1);
+ }
}
if (host.isEmpty())
host = QLS("unknownhost");
@@ -349,43 +353,18 @@ QString BaselineHandler::pathForItem(const ImageItem &item, bool isBaseline, boo
}
-QString BaselineHandler::updateAllBaselines(const QString &host, const QString &id,
- const QString &engine, const QString &format)
+QString BaselineHandler::clearAllBaselines(const QString &context)
{
-#if 0
- QString basePath(BaselineServer::storagePath());
- QString srcDir(basePath + host + QLC('/') + itemSubPath(engine, format, false) + id);
- QString dstDir(basePath + host + QLC('/') + itemSubPath(engine, format));
-
- QDir dir(srcDir);
- QStringList nameFilter;
- nameFilter << "*.metadata" << "*.png";
- QStringList fileList = dir.entryList(nameFilter, QDir::Files | QDir::NoDotAndDotDot);
-
- // remove the generated _fuzzycompared.png and _compared.png files from the list
- QMutableStringListIterator it(fileList);
+ int tot = 0;
+ int failed = 0;
+ QDirIterator it(BaselineServer::storagePath() + QLC('/') + context,
+ QStringList() << QLS("*.png") << QLS("*.metadata"));
while (it.hasNext()) {
- it.next();
- if (it.value().endsWith(QLS("compared.png")))
- it.remove();
+ tot++;
+ if (!QFile::remove(it.next()))
+ failed++;
}
-
- QString res;
- QProcess proc;
- proc.setWorkingDirectory(srcDir);
- proc.setProcessChannelMode(QProcess::MergedChannels);
- proc.start(QLS("cp"), QStringList() << QLS("-f") << fileList << dstDir);
- proc.waitForFinished();
- if (proc.exitCode() == 0)
- res = QLS("Successfully updated baseline for all failed tests.");
- else
- res = QString("Error updating baseline: %1<br>"
- "Command output: <pre>%2</pre>").arg(proc.errorString(), proc.readAll().constData());
-
- return res;
-#else
- return QString();
-#endif
+ return QString(QLS("%1 of %2 baselines cleared from context ")).arg((tot-failed)/2).arg(tot/2) + context;
}
QString BaselineHandler::updateSingleBaseline(const QString &oldBaseline, const QString &newBaseline)
diff --git a/tests/arthur/baselineserver/src/baselineserver.h b/tests/arthur/baselineserver/src/baselineserver.h
index d49aedb9cd..c5cb45e43f 100644
--- a/tests/arthur/baselineserver/src/baselineserver.h
+++ b/tests/arthur/baselineserver/src/baselineserver.h
@@ -100,8 +100,7 @@ public:
BaselineHandler(int socketDescriptor = -1);
void testPathMapping();
- static QString updateAllBaselines(const QString &host, const QString &id,
- const QString &engine, const QString &format);
+ static QString clearAllBaselines(const QString &context);
static QString updateSingleBaseline(const QString &oldBaseline, const QString &newBaseline);
static QString blacklistTest(const QString &context, const QString &itemId, bool removeFromBlacklist = false);
diff --git a/tests/arthur/baselineserver/src/htmlpage.cpp b/tests/arthur/baselineserver/src/htmlpage.cpp
index f75da88143..9659505aef 100644
--- a/tests/arthur/baselineserver/src/htmlpage.cpp
+++ b/tests/arthur/baselineserver/src/htmlpage.cpp
@@ -69,7 +69,8 @@ void HTMLPage::start(const QString &storagepath, const QString &runId, const Pla
ctx = context;
root = storagepath + QLC('/');
imageItems = itemList;
- QString dir = root + QLS("reports/");
+ reportDir = pinfo.value(PI_PulseGitBranch).isEmpty() ? QLS("reports/adhoc/") : QLS("reports/pulse/");
+ QString dir = root + reportDir;
QDir cwd;
if (!cwd.exists(dir))
cwd.mkpath(dir);
@@ -78,7 +79,7 @@ void HTMLPage::start(const QString &storagepath, const QString &runId, const Pla
void HTMLPage::writeHeader(const ImageItem &item)
{
- path = QLS("reports/") + id + QLC('_') + item.engineAsString()
+ path = reportDir + id + QLC('_') + item.engineAsString()
+ QLC('_') + item.formatAsString() + QLS(".html");
QString pageUrl = BaselineServer::baseUrl() + path;
@@ -89,24 +90,21 @@ void HTMLPage::writeHeader(const ImageItem &item)
out.setDevice(&file);
out << "<html><body><h1>Lancelot results from run " << id << "</h1>\n\n";
- out << "<h3>Platform Info:</h3>\n";
+ out << "<p><h3>Platform Info:</h3>\n";
out << "<table>\n";
foreach (QString key, plat.keys())
out << "<tr><td>" << key << "</td><td>" << plat.value(key) << "</td></tr>\n";
- out << "</table>\n";
-
-#if 0
- out << "<h3><a href=\"/cgi-bin/server.cgi?cmd=updateAllBaselines&id="<< id << "&host=" << plat.hostName
- << "&engine=" << item.engineAsString() << "&format=" << item.formatAsString()
- << "&url=" << pageUrl
- << "\">Update all baselines</a><br>";
-#endif
- out << "<table border=\"2\">\n"
+ out << "</table></p>\n\n";
+
+ out << "<p><a href=\"/cgi-bin/server.cgi?cmd=clearAllBaselines&context=" << ctx << "&url=" << pageUrl
+ << "\"><b><big>Clear all baselines</big></b></a></h3> (They will be recreated by the next run)</p>\n\n";
+
+ out << "<p><table border=\"2\">\n"
"<tr>\n"
"<td><b>Script</b></td>\n"
"<td><b>Baseline</b></td>\n"
"<td><b>Rendered</b></td>\n"
- "<td><b>Comparison</b></td>\n"
+ "<td><b>Comparison</b> (diffs are <span style=\"color:red\">RED</span>)</td>\n"
"<td><b>Info/Action</b></td>\n"
"</b></tr><br>";
}
@@ -114,7 +112,7 @@ void HTMLPage::writeHeader(const ImageItem &item)
void HTMLPage::writeFooter()
{
- out << "</table>\n</body></html>\n";
+ out << "</table></p>\n</body></html>\n";
}
@@ -131,7 +129,7 @@ void HTMLPage::addItem(const QString &baseline, const QString &rendered, const I
out << "<td>" << item.scriptName << "</td>\n";
QStringList images = QStringList() << baseline << rendered << compared;
foreach(const QString& img, images)
- out << "<td><a href=\"/" << img << "\"><img src=\"/" << img << "\" width=240 height=240></a></td>\n";
+ out << "<td><a href=\"/" << img << "\"><img src=\"/" << generateThumbnail(img) << "\" width=240 height=240></a></td>\n";
out << "<td><p><a href=\"/cgi-bin/server.cgi?cmd=updateSingleBaseline&oldBaseline=" << baseline
<< "&newBaseline=" << rendered << "&url=" << pageUrl << "\">Replace baseline with rendered</a></p>"
@@ -193,6 +191,22 @@ QString HTMLPage::generateCompared(const QString &baseline, const QString &rende
}
+QString HTMLPage::generateThumbnail(const QString &image)
+{
+ QString res = image;
+ QFileInfo imgFI(root+image);
+ res.chop(imgFI.suffix().length() + 1);
+ res += QLS("_thumbnail.jpg");
+ QFileInfo resFI(root+res);
+ if (resFI.exists() && resFI.lastModified() > imgFI.lastModified())
+ return res;
+ QStringList args;
+ args << root+image << QLS("-resize") << QLS("240x240") << QLS("-quality") << QLS("50") << root+res;
+ QProcess::execute(QLS("convert"), args);
+ return res;
+}
+
+
void HTMLPage::handleCGIQuery(const QString &query)
{
QUrl cgiUrl(QLS("http://dummy/cgi-bin/dummy.cgi?") + query);
@@ -207,11 +221,8 @@ void HTMLPage::handleCGIQuery(const QString &query)
if (command == QLS("updateSingleBaseline")) {
s << BaselineHandler::updateSingleBaseline(cgiUrl.queryItemValue(QLS("oldBaseline")),
cgiUrl.queryItemValue(QLS("newBaseline")));
- } else if (command == QLS("updateAllBaselines")) {
- s << BaselineHandler::updateAllBaselines(cgiUrl.queryItemValue(QLS("host")),
- cgiUrl.queryItemValue(QLS("id")),
- cgiUrl.queryItemValue(QLS("engine")),
- cgiUrl.queryItemValue(QLS("format")));
+ } else if (command == QLS("clearAllBaselines")) {
+ s << BaselineHandler::clearAllBaselines(cgiUrl.queryItemValue(QLS("context")));
} else if (command == QLS("blacklist")) {
// blacklist a test
s << BaselineHandler::blacklistTest(cgiUrl.queryItemValue(QLS("context")),
diff --git a/tests/arthur/baselineserver/src/htmlpage.h b/tests/arthur/baselineserver/src/htmlpage.h
index fa4d1ed4aa..5f1e051826 100644
--- a/tests/arthur/baselineserver/src/htmlpage.h
+++ b/tests/arthur/baselineserver/src/htmlpage.h
@@ -62,9 +62,11 @@ private:
void writeHeader(const ImageItem &item);
void writeFooter();
QString generateCompared(const QString &baseline, const QString &rendered, bool fuzzy = false);
+ QString generateThumbnail(const QString &image);
QString root;
QString path;
+ QString reportDir;
QFile file;
QTextStream out;
QString id;
diff --git a/tests/arthur/common/baselineprotocol.cpp b/tests/arthur/common/baselineprotocol.cpp
index 6d26e9a0e0..5ed58b48e9 100644
--- a/tests/arthur/common/baselineprotocol.cpp
+++ b/tests/arthur/common/baselineprotocol.cpp
@@ -206,10 +206,52 @@ QString ImageItem::formatAsString() const
return QLS(formatNames[renderFormat]);
}
+void ImageItem::writeImageToStream(QDataStream &out) const
+{
+ if (image.isNull() || image.format() == QImage::Format_Invalid) {
+ out << quint8(0);
+ return;
+ }
+ out << quint8('Q') << quint8(image.format());
+ out << quint8(QSysInfo::ByteOrder) << quint8(0); // pad to multiple of 4 bytes
+ out << quint32(image.width()) << quint32(image.height()) << quint32(image.bytesPerLine());
+ out << qCompress((const uchar *)image.constBits(), image.byteCount());
+ //# can be followed by colormap for formats that use it
+}
+
+void ImageItem::readImageFromStream(QDataStream &in)
+{
+ quint8 hdr, fmt, endian, pad;
+ quint32 width, height, bpl;
+ QByteArray data;
+
+ in >> hdr;
+ if (hdr != 'Q') {
+ image = QImage();
+ return;
+ }
+ in >> fmt >> endian >> pad;
+ if (!fmt || fmt >= QImage::NImageFormats) {
+ image = QImage();
+ return;
+ }
+ if (endian != QSysInfo::ByteOrder) {
+ qWarning("ImageItem cannot read streamed image with different endianness");
+ image = QImage();
+ return;
+ }
+ in >> width >> height >> bpl;
+ in >> data;
+ data = qUncompress(data);
+ QImage res((const uchar *)data.constData(), width, height, bpl, QImage::Format(fmt));
+ image = res.copy(); //# yuck, seems there is currently no way to avoid data copy
+}
+
QDataStream & operator<< (QDataStream &stream, const ImageItem &ii)
{
stream << ii.scriptName << ii.scriptChecksum << quint8(ii.status) << quint8(ii.renderFormat)
- << quint8(ii.engine) << ii.image << ii.imageChecksums;
+ << quint8(ii.engine) << ii.imageChecksums;
+ ii.writeImageToStream(stream);
return stream;
}
@@ -217,10 +259,11 @@ QDataStream & operator>> (QDataStream &stream, ImageItem &ii)
{
quint8 encFormat, encStatus, encEngine;
stream >> ii.scriptName >> ii.scriptChecksum >> encStatus >> encFormat
- >> encEngine >> ii.image >> ii.imageChecksums;
+ >> encEngine >> ii.imageChecksums;
ii.renderFormat = QImage::Format(encFormat);
ii.status = ImageItem::ItemStatus(encStatus);
ii.engine = ImageItem::GraphicsEngine(encEngine);
+ ii.readImageFromStream(stream);
return stream;
}
diff --git a/tests/arthur/common/baselineprotocol.h b/tests/arthur/common/baselineprotocol.h
index 9f59454efc..baffb4af03 100644
--- a/tests/arthur/common/baselineprotocol.h
+++ b/tests/arthur/common/baselineprotocol.h
@@ -84,6 +84,9 @@ public:
QString engineAsString() const;
QString formatAsString() const;
+ void writeImageToStream(QDataStream &stream) const;
+ void readImageFromStream(QDataStream &stream);
+
enum ItemStatus {
Ok = 0,
BaselineNotFound = 1,
@@ -105,7 +108,7 @@ public:
quint16 scriptChecksum;
};
QDataStream & operator<< (QDataStream &stream, const ImageItem &ii);
-QDataStream & operator>> (QDataStream& stream, ImageItem& ii);
+QDataStream & operator>> (QDataStream &stream, ImageItem& ii);
Q_DECLARE_METATYPE(ImageItem);
@@ -121,7 +124,7 @@ public:
// Important constants here
// ****************************************************
enum Constant {
- ProtocolVersion = 2,
+ ProtocolVersion = 3,
ServerPort = 54129,
Timeout = 5000
};
diff --git a/tests/auto/collections/tst_collections.cpp b/tests/auto/collections/tst_collections.cpp
index 7c705054b5..cf9fa536b8 100644
--- a/tests/auto/collections/tst_collections.cpp
+++ b/tests/auto/collections/tst_collections.cpp
@@ -1225,7 +1225,7 @@ void tst_Collections::vector()
}
}
- // this used to trigger an unitialized read in valgrind
+ // this used to trigger an uninitialized read in valgrind
QVector<char> foo;
foo.resize(144);
diff --git a/tests/auto/declarative/qdeclarativelistview/data/qtbug14821.qml b/tests/auto/declarative/qdeclarativelistview/data/qtbug14821.qml
new file mode 100644
index 0000000000..e0303ecaa3
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelistview/data/qtbug14821.qml
@@ -0,0 +1,31 @@
+import QtQuick 1.0
+
+ListView {
+ id: view
+ width: 300; height: 200
+ focus: true
+ keyNavigationWraps: true
+
+ model: 100
+
+ preferredHighlightBegin: 90
+ preferredHighlightEnd: 110
+
+ highlightRangeMode: ListView.StrictlyEnforceRange
+ highlight: Component {
+ Rectangle {
+ border.color: "blue"
+ border.width: 3
+ color: "transparent"
+ width: 300; height: 15
+ }
+ }
+
+ delegate: Component {
+ Item {
+ height: 15 + (view.currentIndex == index ? 20 : 0)
+ width: 200
+ Text { text: 'Index: ' + index; anchors.verticalCenter: parent.verticalCenter }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
index a4b4f219c5..37d836de59 100644
--- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
+++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
@@ -101,6 +101,7 @@ private slots:
void footer();
void resizeView();
void sizeLessThan1();
+ void QTBUG_14821();
private:
template <class T> void items();
@@ -1768,6 +1769,26 @@ void tst_QDeclarativeListView::sizeLessThan1()
delete canvas;
}
+void tst_QDeclarativeListView::QTBUG_14821()
+{
+ QDeclarativeView *canvas = createView();
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/qtbug14821.qml"));
+ qApp->processEvents();
+
+ QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(canvas->rootObject());
+ QVERIFY(listview != 0);
+
+ QDeclarativeItem *contentItem = listview->contentItem();
+ QVERIFY(contentItem != 0);
+
+ listview->decrementCurrentIndex();
+ QCOMPARE(listview->currentIndex(), 99);
+
+ listview->incrementCurrentIndex();
+ QCOMPARE(listview->currentIndex(), 0);
+}
+
void tst_QDeclarativeListView::qListModelInterface_items()
{
items<TestModel>();
diff --git a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
index 57a58e9478..9d7cc055f9 100644
--- a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
+++ b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
@@ -216,7 +216,14 @@ void tst_QDeclarativeMouseArea::dragging()
QCOMPARE(blackRect->x(), 50.0);
QCOMPARE(blackRect->y(), 50.0);
+ // First move event triggers drag, second is acted upon.
+ // This is due to possibility of higher stacked area taking precedence.
QGraphicsSceneMouseEvent moveEvent(QEvent::GraphicsSceneMouseMove);
+ moveEvent.setScenePos(QPointF(106, 106));
+ moveEvent.setButton(Qt::LeftButton);
+ moveEvent.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &moveEvent);
+
moveEvent.setScenePos(QPointF(110, 110));
moveEvent.setButton(Qt::LeftButton);
moveEvent.setButtons(Qt::LeftButton);
diff --git a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
index 1c1c04bf64..21c719730e 100644
--- a/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
+++ b/tests/auto/declarative/qdeclarativeviewer/tst_qdeclarativeviewer.cpp
@@ -45,6 +45,7 @@
#include <QtDeclarative/qdeclarativeitem.h>
#include <QtDeclarative/qdeclarativecontext.h>
#include <QtGui/qmenubar.h>
+#include <QSignalSpy>
#include "../../../shared/util.h"
#include "qmlruntime.h"
#include "deviceorientation.h"
@@ -194,7 +195,9 @@ void tst_QDeclarativeViewer::loading()
QCOMPARE(viewer->size(), QSize(250, 350));
QCOMPARE(viewer->size(), viewer->sizeHint());
+ QSignalSpy statusSpy(viewer->view(), SIGNAL(statusChanged(QDeclarativeView::Status)));
viewer->reload();
+ QTRY_VERIFY(statusSpy.count() == 1);
rootItem = qobject_cast<QDeclarativeItem*>(viewer->view()->rootObject());
QVERIFY(rootItem);
diff --git a/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp b/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp
index 31402650e7..5a6cf3c887 100644
--- a/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp
+++ b/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp
@@ -137,6 +137,11 @@ void tst_QDeclarativeWorkerScript::messaging_data()
QTest::newRow("real") << qVariantFromValue(10334.375);
QTest::newRow("string") << qVariantFromValue(QString("More cheeeese, Gromit!"));
QTest::newRow("variant list") << qVariantFromValue((QVariantList() << "a" << "b" << "c"));
+ QTest::newRow("date time") << qVariantFromValue(QDateTime::currentDateTime());
+#ifndef QT_NO_REGEXP
+ // QtScript's QScriptValue -> QRegExp uses RegExp2 pattern syntax
+ QTest::newRow("regexp") << qVariantFromValue(QRegExp("^\\d\\d?$", Qt::CaseInsensitive, QRegExp::RegExp2));
+#endif
}
void tst_QDeclarativeWorkerScript::messaging_sendQObjectList()
diff --git a/tests/auto/declarative/qmlvisual/TEST_GUIDELINES b/tests/auto/declarative/qmlvisual/TEST_GUIDELINES
index cb53b6ebca..469832f501 100644
--- a/tests/auto/declarative/qmlvisual/TEST_GUIDELINES
+++ b/tests/auto/declarative/qmlvisual/TEST_GUIDELINES
@@ -4,4 +4,4 @@ Guidelines for creating new visual tests:
2. Keep it short. It is hoped that these tests can be run regularly, perhaps even for every commit, and if you add up ten seconds for every time someone commits a change to QML then we'll be sitting here for a long time. Completeness is more important than haste, but consider the most time efficient ways to achieve said completeness. Do not forget about snapshot mode (tst_qmlvisual -help for details on -recordsnapshot) when testing that a static scene looks right.
-3. Avoid text. Text is relatively unstable due to platform specific peculiarities. If you need to identify an area, consider a unique color as opposed to a unique text label. If you must use Text, TextEdit, or TextInput, use the test-friendlier versions in the 'shared' directory.
+3. Avoid text. Text is relatively unstable due to platform specific peculiarities. If you need to identify an area, consider a unique color as opposed to a unique text label. If you must use Text, TextEdit, or TextInput, use the test-friendlier versions in the 'shared' directory. Also keep in mind that text anti-aliasing is disabled during tests for greater consistency, and you should never use point sizes in tests. Text autotests can thus only test some aspects of the elements.
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png
deleted file mode 100644
index 99748a7a3c..0000000000
--- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png
deleted file mode 100644
index 5393dd83c9..0000000000
--- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png
deleted file mode 100644
index 8c17bf7679..0000000000
--- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml
deleted file mode 100644
index dd2aeb4da4..0000000000
--- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml
+++ /dev/null
@@ -1,951 +0,0 @@
-import Qt.VisualTest 4.7
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- image: "colorAnimation-visual.0.png"
- }
- Frame {
- msec: 32
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 48
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 64
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 80
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 96
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 112
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 128
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 144
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 160
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 176
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 192
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 208
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 224
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 240
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 256
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 272
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 288
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 304
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 320
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 336
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 352
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 368
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 384
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 400
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 416
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 432
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 448
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 464
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 480
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 496
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 512
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 93; y: 136
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 528
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 544
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 560
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 576
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 592
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 93; y: 136
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 608
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- Frame {
- msec: 624
- hash: "e5bda0daf98288ce18db6ce06eda3ba0"
- }
- Frame {
- msec: 640
- hash: "d35008f75b8c992f80fb16ba7203649d"
- }
- Frame {
- msec: 656
- hash: "14f43e0784ddf42ea8550db88c501bf1"
- }
- Frame {
- msec: 672
- hash: "02276e158b5391480b1bdeaadf1fb903"
- }
- Frame {
- msec: 688
- hash: "35d9513eb97a2c482b7cd197de910934"
- }
- Frame {
- msec: 704
- hash: "faf0fd681e60bb2489099f5df772b6cd"
- }
- Frame {
- msec: 720
- hash: "a863d3e346f94785a3a392fdc91526eb"
- }
- Frame {
- msec: 736
- hash: "fdf328d3f6eb8410da59a91345e41a44"
- }
- Frame {
- msec: 752
- hash: "83514a3b10d5be8f6c3b128d0f3e0b1c"
- }
- Frame {
- msec: 768
- hash: "ead0eae76cd00189075964671effbaea"
- }
- Frame {
- msec: 784
- hash: "24d2457fcd51490fda23071bf9929d12"
- }
- Frame {
- msec: 800
- hash: "1478683446cf543dacbe31d0b76a98a6"
- }
- Frame {
- msec: 816
- hash: "99f7da1f31fe920f6c02add4042ae925"
- }
- Frame {
- msec: 832
- hash: "22def892006cf66667770b0f17baf6c0"
- }
- Frame {
- msec: 848
- hash: "6a36d5a77099bfd58baf285478ff04e4"
- }
- Frame {
- msec: 864
- hash: "6258150666b59b20ab476724c07fc20c"
- }
- Frame {
- msec: 880
- hash: "f1636315bc950a6dd400d9c7ed263b88"
- }
- Frame {
- msec: 896
- hash: "18447ea8dc2e8da956788e5b3cf3790a"
- }
- Frame {
- msec: 912
- hash: "1d2a6e65997a73e9e670356c8e8b63b2"
- }
- Frame {
- msec: 928
- hash: "bed0242c0f9ef229d1392835286d5782"
- }
- Frame {
- msec: 944
- hash: "88923c190e9e5beadef8a409c06df9d6"
- }
- Frame {
- msec: 960
- hash: "2d133e7ee60c97386f57838b3f0976c7"
- }
- Frame {
- msec: 976
- image: "colorAnimation-visual.1.png"
- }
- Frame {
- msec: 992
- hash: "395195716d76bc0be7b2033ed37a7a1c"
- }
- Frame {
- msec: 1008
- hash: "243dbffcf416926242bbcb7348974c4c"
- }
- Frame {
- msec: 1024
- hash: "a755068679616d8ac65c2aa7431f2a19"
- }
- Frame {
- msec: 1040
- hash: "e8249b35a47eb492cbdf2d91cc8426f0"
- }
- Frame {
- msec: 1056
- hash: "15f3da1c0e6f0779b96859d51171dd27"
- }
- Frame {
- msec: 1072
- hash: "258c0c756aac3de743b43051f2aace6b"
- }
- Frame {
- msec: 1088
- hash: "a58b9fdf301d72b2cc5c93934cc8927b"
- }
- Frame {
- msec: 1104
- hash: "a9181d30870d472521f8904818ce520f"
- }
- Frame {
- msec: 1120
- hash: "7f9e94069ccf3897c26a71bd7becd903"
- }
- Frame {
- msec: 1136
- hash: "bdf305c2f46cdb86dbf57b1e0cc5a65b"
- }
- Frame {
- msec: 1152
- hash: "fe5b6865d7e4fc7d1d42c1e74f8666f7"
- }
- Frame {
- msec: 1168
- hash: "734f0de45a6e34c9eab7ef606196f96a"
- }
- Frame {
- msec: 1184
- hash: "02a361c4534fdf7f286dc3e6dc23275c"
- }
- Frame {
- msec: 1200
- hash: "e649155ad69999c14b92f6561e4d1185"
- }
- Frame {
- msec: 1216
- hash: "01af177084fab755d622973f64b92018"
- }
- Frame {
- msec: 1232
- hash: "097cc4a082dfab995d213a3a73883c97"
- }
- Frame {
- msec: 1248
- hash: "d7b4239a3280b1eb8e885e3f422df8e9"
- }
- Frame {
- msec: 1264
- hash: "59893977994e34e83f91e7ce3ad65d6d"
- }
- Frame {
- msec: 1280
- hash: "b68e3fbb5cdcd6bd96df7dec558db42b"
- }
- Frame {
- msec: 1296
- hash: "94ad0580648f36a1e18a9ea7e249b04d"
- }
- Frame {
- msec: 1312
- hash: "750a4c01d2f5806a89a1c6cc6a9b9a68"
- }
- Frame {
- msec: 1328
- hash: "4f109f50f388f1bfa4bc6b03b3e6e514"
- }
- Frame {
- msec: 1344
- hash: "c6168d5cf27a533e8ee636637667be47"
- }
- Frame {
- msec: 1360
- hash: "f8120547bed987aa34c00da5a01a4d1e"
- }
- Frame {
- msec: 1376
- hash: "cbff526136fa2c128c8b898fbbef9e5c"
- }
- Frame {
- msec: 1392
- hash: "f29e52398fab1a239a63df4c32f2fc69"
- }
- Frame {
- msec: 1408
- hash: "7178bfe86fd2fd513218b33760460f8d"
- }
- Frame {
- msec: 1424
- hash: "ca83285bc8ac633403896fe976896eb0"
- }
- Frame {
- msec: 1440
- hash: "96ba486c09cc69d5aa38c46c00df1181"
- }
- Frame {
- msec: 1456
- hash: "b88eab335842787869f4a14824c19dd8"
- }
- Frame {
- msec: 1472
- hash: "065aa59012729e1e1a246a2083142690"
- }
- Frame {
- msec: 1488
- hash: "dd0e98c8398861002c5f178c5f9f612d"
- }
- Frame {
- msec: 1504
- hash: "04192c2b545948048eccf4d81bbde198"
- }
- Frame {
- msec: 1520
- hash: "bb7502c7208281ef9fd41714ab88a1a8"
- }
- Frame {
- msec: 1536
- hash: "5397195471890d08b703dca101e5bc7c"
- }
- Frame {
- msec: 1552
- hash: "4c678cdbebb2ffd2cbf012ca77800cde"
- }
- Frame {
- msec: 1568
- hash: "0d7a34ecd0c7f52b2c015037bf1902c6"
- }
- Frame {
- msec: 1584
- hash: "fd9d5048be749ac4369fda2d018b43ae"
- }
- Frame {
- msec: 1600
- hash: "93ee03795cd57ae6f7fe3a020b039ad4"
- }
- Frame {
- msec: 1616
- hash: "5e1118963f219c39761ca7fbf564a9ca"
- }
- Frame {
- msec: 1632
- hash: "8f40038741903150136170503649d941"
- }
- Frame {
- msec: 1648
- hash: "b087b7d0aa6224821f8e18718ff5e77d"
- }
- Frame {
- msec: 1664
- hash: "aa46b04a3c67dc772265ed2901955565"
- }
- Frame {
- msec: 1680
- hash: "ac024bf2aeb4becdf31a09fe0a6db8f3"
- }
- Frame {
- msec: 1696
- hash: "13745a174e4d06e2108a5bf125ba50cc"
- }
- Frame {
- msec: 1712
- hash: "bd972f0d8e230eca0b3fea1b8c960c08"
- }
- Frame {
- msec: 1728
- hash: "cbdbec802a58e7ced0cf45b3ab0bc0ba"
- }
- Frame {
- msec: 1744
- hash: "5128584c50305c7d218b81b8367fa3d5"
- }
- Frame {
- msec: 1760
- hash: "a71461d3593f3685620668916de870bd"
- }
- Frame {
- msec: 1776
- hash: "74ebac8f32cf044b58d9883dbcd9a722"
- }
- Frame {
- msec: 1792
- hash: "fedc5b638f339b90fe59b478721e65b7"
- }
- Frame {
- msec: 1808
- hash: "8593a81be812edf54ec94da8ae9c1314"
- }
- Frame {
- msec: 1824
- hash: "4e9b083075bc5e9287a8abc982778b56"
- }
- Frame {
- msec: 1840
- hash: "1d6f02aa99afa47d77fc49ab894b365a"
- }
- Frame {
- msec: 1856
- hash: "a204feec783b3b05de4c209c21745826"
- }
- Frame {
- msec: 1872
- hash: "665a2a8ff00b9663157802767f504754"
- }
- Frame {
- msec: 1888
- hash: "624fb09ebe60cb87d767faf8d2420b1e"
- }
- Frame {
- msec: 1904
- hash: "e5af0cdc33f3275a25abb09e9165f310"
- }
- Frame {
- msec: 1920
- hash: "02bafb5a81ca66f7670ac93de5123860"
- }
- Frame {
- msec: 1936
- image: "colorAnimation-visual.2.png"
- }
- Frame {
- msec: 1952
- hash: "b5abd0dff1ab076faac7cc226e83f5d0"
- }
- Frame {
- msec: 1968
- hash: "b759acc35bccff8efc2e6fe276ddc0f7"
- }
- Frame {
- msec: 1984
- hash: "ce52e18c1f7732768779863b45314ff5"
- }
- Frame {
- msec: 2000
- hash: "99d30652559dd6931e0c95543eeaa149"
- }
- Frame {
- msec: 2016
- hash: "ffbd9a00e05e085b89296d19d5caec57"
- }
- Frame {
- msec: 2032
- hash: "9c9d658b9c25602816b8066bf19105db"
- }
- Frame {
- msec: 2048
- hash: "2b7fd058e6601e22a30bb7106b1c683b"
- }
- Frame {
- msec: 2064
- hash: "f4c7e26b19ee0a3e7c9688685eb7bd05"
- }
- Frame {
- msec: 2080
- hash: "0dc6d593bceff56b7f81f2a49d37fefb"
- }
- Frame {
- msec: 2096
- hash: "9bfd7ad5091ccbdde43c593e133a7b10"
- }
- Frame {
- msec: 2112
- hash: "2703b617937914a90ea42ebf249d79ee"
- }
- Frame {
- msec: 2128
- hash: "b77e2983138254016c4cca53100f46fa"
- }
- Frame {
- msec: 2144
- hash: "60c4dd24187d1281081479e586f02b37"
- }
- Frame {
- msec: 2160
- hash: "62f2511abd99ef1231c9fa4b91d4abfe"
- }
- Frame {
- msec: 2176
- hash: "e309b3353fd174e883d309571caddc98"
- }
- Frame {
- msec: 2192
- hash: "1e2d6a134c7b12dde551b148ef4f088c"
- }
- Frame {
- msec: 2208
- hash: "e5dc5450604a491cc24a0dcf5c278b58"
- }
- Frame {
- msec: 2224
- hash: "c8dae97c10e1962c1e6a51ab3ab8579e"
- }
- Frame {
- msec: 2240
- hash: "4e1b7e06f55fb084080689b474f1fe1d"
- }
- Frame {
- msec: 2256
- hash: "b4639c907fa937bf15fac62421170cd8"
- }
- Frame {
- msec: 2272
- hash: "c250208a0caeb5f6cb4d3aac3d7d350b"
- }
- Frame {
- msec: 2288
- hash: "a73351eabecf0d71149efe31f197413e"
- }
- Frame {
- msec: 2304
- hash: "479425f1b7aff79e4dfb7fca534af018"
- }
- Frame {
- msec: 2320
- hash: "046d0f0040a52d1f26ba9f7c5de06ef4"
- }
- Frame {
- msec: 2336
- hash: "655778bf13c6080903150b0eb43a7edc"
- }
- Frame {
- msec: 2352
- hash: "72da0bbe81514870655fdd3354adac60"
- }
- Frame {
- msec: 2368
- hash: "defe0bdf675c65fff55aaaced1e4dae7"
- }
- Frame {
- msec: 2384
- hash: "c988628b6c3d3780e9a865c7694926cd"
- }
- Frame {
- msec: 2400
- hash: "5ab17563655231089edd986ff13d6012"
- }
- Frame {
- msec: 2416
- hash: "c1adff1d2e5800ed466d1691d3b17382"
- }
- Frame {
- msec: 2432
- hash: "70129ba01fbb19592b9dc0d0a3b3e7df"
- }
- Frame {
- msec: 2448
- hash: "0000829ef7ed908bf430d42904d59cc2"
- }
- Frame {
- msec: 2464
- hash: "843d2927f50ab87b4a86b7a6aaeed91f"
- }
- Frame {
- msec: 2480
- hash: "da86d21756025e7de8050586d5e2a1f8"
- }
- Frame {
- msec: 2496
- hash: "48dd1bd6580133b0793fee327ea4f1e6"
- }
- Frame {
- msec: 2512
- hash: "f0618193dcd0ba2837249515a1898b1c"
- }
- Frame {
- msec: 2528
- hash: "a530184e57251065286c0cbba7301e9c"
- }
- Frame {
- msec: 2544
- hash: "64a1d7203973d65dd342793007a61c58"
- }
- Frame {
- msec: 2560
- hash: "5b830dfc6ba442772de87d75d5a578de"
- }
- Frame {
- msec: 2576
- hash: "5563b056b0409b65f60dd16dd0dd890e"
- }
- Frame {
- msec: 2592
- hash: "b8bcf9ad2ca8720c11563a23d8280804"
- }
- Frame {
- msec: 2608
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2624
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2640
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2656
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2672
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2688
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2704
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2720
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2736
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2752
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2768
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2784
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2800
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2816
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2832
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2848
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2864
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2880
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2896
- image: "colorAnimation-visual.3.png"
- }
- Frame {
- msec: 2912
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2928
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2944
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2960
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2976
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2992
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3008
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3024
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3040
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3056
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3072
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3088
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3104
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3120
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3136
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3152
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3168
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3184
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3200
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3216
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3232
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3248
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3264
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3280
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3296
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3312
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3328
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3344
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3360
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3376
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3392
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3408
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3424
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3440
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3456
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3472
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3488
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3504
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3520
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3536
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3552
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3568
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3584
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3600
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3616
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3632
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3648
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3664
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3680
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
-}
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png
index e6ea16d16b..2a79113d0b 100644
--- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png
index b75ba616fe..ebd1802325 100644
--- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png
index 4320f6f568..9b8ecbbe55 100644
--- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.3.png
index 1317eef8a7..277cb9e513 100644
--- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml
index 9611d279de..2b664d44e6 100644
--- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml
@@ -6,7 +6,7 @@ VisualTest {
}
Frame {
msec: 16
- hash: "acc736435c9f84aa82941ba561bc5dbc"
+ image: "colorAnimation-visual.0.png"
}
Frame {
msec: 32
@@ -258,11 +258,11 @@ VisualTest {
}
Frame {
msec: 960
- image: "colorAnimation-visual.0.png"
+ hash: "2d133e7ee60c97386f57838b3f0976c7"
}
Frame {
msec: 976
- hash: "85b1821cc50f2a9f3ed6944f792b7a2f"
+ image: "colorAnimation-visual.1.png"
}
Frame {
msec: 992
@@ -498,11 +498,11 @@ VisualTest {
}
Frame {
msec: 1920
- image: "colorAnimation-visual.1.png"
+ hash: "02bafb5a81ca66f7670ac93de5123860"
}
Frame {
msec: 1936
- hash: "e7aa6374c73832e57ceb2427a1e258aa"
+ image: "colorAnimation-visual.2.png"
}
Frame {
msec: 1952
@@ -738,11 +738,11 @@ VisualTest {
}
Frame {
msec: 2880
- image: "colorAnimation-visual.2.png"
+ hash: "8c0fcda4f8956394c53fc4ba18caa850"
}
Frame {
msec: 2896
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
+ image: "colorAnimation-visual.3.png"
}
Frame {
msec: 2912
@@ -931,7 +931,7 @@ VisualTest {
Key {
type: 6
key: 16777249
- modifiers: 67108864
+ modifiers: 0
text: ""
autorep: false
count: 1
diff --git a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.png
deleted file mode 100644
index e469a7999f..0000000000
--- a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.png
deleted file mode 100644
index 905603f020..0000000000
--- a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.png
deleted file mode 100644
index 5cbd3bdf91..0000000000
--- a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.png
deleted file mode 100644
index 851c1ba582..0000000000
--- a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml
deleted file mode 100644
index 0c9747e5f9..0000000000
--- a/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml
+++ /dev/null
@@ -1,1327 +0,0 @@
-import Qt.VisualTest 4.7
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 32
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 48
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 64
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 80
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 96
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 112
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 128
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 144
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 160
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 176
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 192
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 208
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 224
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 240
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 256
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 272
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 288
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 304
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 320
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 336
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 352
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 368
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 384
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 400
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 416
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 432
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 448
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 464
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 480
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 496
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 512
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 528
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 544
- hash: "be06cc567f08fbc0cd60d753a19df162"
- }
- Frame {
- msec: 560
- hash: "c4cf6807b423553872e848146e79efb3"
- }
- Frame {
- msec: 576
- hash: "b83923f1eef68a4a8dd36acad0f4b592"
- }
- Frame {
- msec: 592
- hash: "5599829a04f2c2a6c6181c5857762ba0"
- }
- Frame {
- msec: 608
- hash: "95da52b5add95150dd446bc5055a2b60"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 624
- hash: "9bb2757c3b1bbc051edd9ebd240611f8"
- }
- Frame {
- msec: 640
- hash: "25213fbced4c67f42ce35d07db93bb32"
- }
- Frame {
- msec: 656
- hash: "2a9ded25ed2dbb9563f9c14084234a22"
- }
- Frame {
- msec: 672
- hash: "2f532511a50d743aa1c7ebcc9b2b7350"
- }
- Frame {
- msec: 688
- hash: "2f532511a50d743aa1c7ebcc9b2b7350"
- }
- Frame {
- msec: 704
- hash: "2f532511a50d743aa1c7ebcc9b2b7350"
- }
- Frame {
- msec: 720
- hash: "2f532511a50d743aa1c7ebcc9b2b7350"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 736
- hash: "8c9f7d72e077a7e75d185a2ecbdcc77c"
- }
- Frame {
- msec: 752
- hash: "55a417e91f182ebd28dd7264d8b76363"
- }
- Frame {
- msec: 768
- hash: "01a637de9f60c82bfd9140e852e17574"
- }
- Frame {
- msec: 784
- hash: "01194b2c3489ea7298e961979064aab3"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 800
- hash: "f6126328d483536d3f161f71d40821df"
- }
- Frame {
- msec: 816
- hash: "b99dd9793a63bbdab37cfe236d56c589"
- }
- Frame {
- msec: 832
- hash: "825f39b42d0b2e0d894874713b731cfc"
- }
- Frame {
- msec: 848
- hash: "7729b9c2133c52e50f43d6100a24e9c2"
- }
- Frame {
- msec: 864
- hash: "e2f3bec9571b08b451309221b34ace5e"
- }
- Frame {
- msec: 880
- hash: "e2f3bec9571b08b451309221b34ace5e"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 896
- hash: "8e59b002437ec17043d11c92556365fd"
- }
- Frame {
- msec: 912
- hash: "3809a54af9c9a4b15aa8b82caa5b703f"
- }
- Frame {
- msec: 928
- hash: "96cb1ab7123c54d4fa0d93b6501a439d"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 944
- hash: "de74cd5be709954522dd02945d6da9c9"
- }
- Frame {
- msec: 960
- image: "test3.0.png"
- }
- Frame {
- msec: 976
- hash: "d3ff94471da3620701d62b87f37fca8b"
- }
- Frame {
- msec: 992
- hash: "15bccb078b9061ef50c73a974e2f43fa"
- }
- Frame {
- msec: 1008
- hash: "ea2059d511fdab60e77e9261f81aadfb"
- }
- Frame {
- msec: 1024
- hash: "ea2059d511fdab60e77e9261f81aadfb"
- }
- Frame {
- msec: 1040
- hash: "ea2059d511fdab60e77e9261f81aadfb"
- }
- Frame {
- msec: 1056
- hash: "ea2059d511fdab60e77e9261f81aadfb"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 1072
- hash: "5b68568968d0de3a9bad8d053045f45c"
- }
- Frame {
- msec: 1088
- hash: "6b6da385fbc00e3542d7007524ff87f6"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 1104
- hash: "bba5021ad78a5a142cf54d4db8d8689e"
- }
- Frame {
- msec: 1120
- hash: "5c223d5dcf028cd3bac18b21359253f3"
- }
- Frame {
- msec: 1136
- hash: "c5b09a11d466fd90e1014f58755ec77b"
- }
- Frame {
- msec: 1152
- hash: "f4ba8fcc4f955e25c2364d8ee1054d0d"
- }
- Frame {
- msec: 1168
- hash: "2a6009e790cd98e3a67c107b0f08e00b"
- }
- Frame {
- msec: 1184
- hash: "caa1b5ee40dc20c87516b7292a86f79b"
- }
- Frame {
- msec: 1200
- hash: "200dd4ac9c40c6eb32ad43570995f17d"
- }
- Frame {
- msec: 1216
- hash: "200dd4ac9c40c6eb32ad43570995f17d"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 1232
- hash: "2333dcdf0f46ade554e036caa5e3cb31"
- }
- Frame {
- msec: 1248
- hash: "9b09c65db96f483dec7ba3a55b5a91e6"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 1264
- hash: "49fc76245e741968095ab689195da40c"
- }
- Frame {
- msec: 1280
- hash: "4e991b92348d813f5a3a1080270a88a3"
- }
- Frame {
- msec: 1296
- hash: "1e4a07fc966dab9ee0d39b25a4c43c09"
- }
- Frame {
- msec: 1312
- hash: "ade33b908f2a5e6916a74bc00b08414e"
- }
- Frame {
- msec: 1328
- hash: "481b41b7bc8fafcb40b7d09fcfc2e86e"
- }
- Frame {
- msec: 1344
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Frame {
- msec: 1360
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Frame {
- msec: 1376
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Frame {
- msec: 1392
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Frame {
- msec: 1408
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Frame {
- msec: 1424
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Frame {
- msec: 1440
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Frame {
- msec: 1456
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Frame {
- msec: 1472
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Frame {
- msec: 1488
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 1504
- hash: "2a8a2867f38ff05a9ef5fa50fe7de229"
- }
- Frame {
- msec: 1520
- hash: "824ec4f9e596a67fe6ca17ea03529c1f"
- }
- Frame {
- msec: 1536
- hash: "bf7d9c49d0a0ff4d03ceadf8d797a774"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 1552
- hash: "3e3c62601c2965e851e8b5c0adb73651"
- }
- Frame {
- msec: 1568
- hash: "ed7357b2596da4683bb19cbf1dcd6458"
- }
- Frame {
- msec: 1584
- hash: "32ed0774f926341af504b716bd9394e1"
- }
- Frame {
- msec: 1600
- hash: "2d4ffbd7cf53ca4824d206d4a4608ebb"
- }
- Frame {
- msec: 1616
- hash: "a7a0b6bd336f00a10818bdd9992a29bb"
- }
- Frame {
- msec: 1632
- hash: "55801794958126a1890bc0122084ee20"
- }
- Frame {
- msec: 1648
- hash: "55801794958126a1890bc0122084ee20"
- }
- Frame {
- msec: 1664
- hash: "55801794958126a1890bc0122084ee20"
- }
- Frame {
- msec: 1680
- hash: "55801794958126a1890bc0122084ee20"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 1696
- hash: "49573efd5a0bc65107a074fb35d67f63"
- }
- Frame {
- msec: 1712
- hash: "c9bf07bc12f97c6d0eef816ce4423f5b"
- }
- Frame {
- msec: 1728
- hash: "ab91f24c27d52123502815381e926cdc"
- }
- Frame {
- msec: 1744
- hash: "32ca7e06569a63d56ab71c67c9f82d60"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 1760
- hash: "9e5f04f019ccd1f27b511faeb7470e10"
- }
- Frame {
- msec: 1776
- hash: "5544186a3338dd788367fa4262815204"
- }
- Frame {
- msec: 1792
- hash: "c01aa7b7363faf99f69b90be8843f059"
- }
- Frame {
- msec: 1808
- hash: "6bd1ec848b817ef978b4dfae4eb23c1e"
- }
- Frame {
- msec: 1824
- hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b"
- }
- Frame {
- msec: 1840
- hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b"
- }
- Frame {
- msec: 1856
- hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b"
- }
- Frame {
- msec: 1872
- hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b"
- }
- Key {
- type: 6
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 1888
- hash: "04a3efd4b810417632726048bdffa904"
- }
- Frame {
- msec: 1904
- hash: "c347e7d3dccba41102e2b669c9e9c0a0"
- }
- Frame {
- msec: 1920
- image: "test3.1.png"
- }
- Frame {
- msec: 1936
- hash: "47c9794374c383e1f595e60ea6890e11"
- }
- Frame {
- msec: 1952
- hash: "73cdfe34edab93baea779896169b4195"
- }
- Key {
- type: 7
- key: 16777236
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 1968
- hash: "53add51d9e11a1fc4d0f6e3d1c6a70bc"
- }
- Frame {
- msec: 1984
- hash: "90143346b171faf5bdb7d4d0c0556b24"
- }
- Frame {
- msec: 2000
- hash: "e4e642507d3a631f5813a11cb7673c91"
- }
- Frame {
- msec: 2016
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2032
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2048
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2064
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2080
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2096
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2112
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2128
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2144
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2160
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2176
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2192
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2208
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2224
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2240
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2256
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2272
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2288
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2304
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2320
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2336
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2352
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2368
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2384
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2400
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2416
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2432
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2448
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Frame {
- msec: 2464
- hash: "f5f1725edd19f1735139d178955533f8"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 2480
- hash: "512e992c6d621225735c37e2626714ad"
- }
- Frame {
- msec: 2496
- hash: "1a708d62af48302e93dda0ef0822aebb"
- }
- Frame {
- msec: 2512
- hash: "220660969092ba1b17addc6ba7148e06"
- }
- Frame {
- msec: 2528
- hash: "9dcdd42efc9beb957abdeaf2ee01fc43"
- }
- Frame {
- msec: 2544
- hash: "5995ac01ee680d6747dc78c36f70b577"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 2560
- hash: "c6eb964d8f4bf849df63eebdfbf6e286"
- }
- Frame {
- msec: 2576
- hash: "cff1925a172e278a36068886f0efbcbf"
- }
- Frame {
- msec: 2592
- hash: "4c725a05332806387713ab54302c559f"
- }
- Frame {
- msec: 2608
- hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b"
- }
- Frame {
- msec: 2624
- hash: "b75bd8d4e4f3fb5067b05ebf37f92e9b"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 2640
- hash: "0cb7eeb24a6845d43ce0662c91b72bd3"
- }
- Frame {
- msec: 2656
- hash: "6dedbf7dc59b05dc57355141de0b660d"
- }
- Frame {
- msec: 2672
- hash: "5f82259afdabef688dd76729b5f847c7"
- }
- Frame {
- msec: 2688
- hash: "b67d418427db34726ddada60f76178a6"
- }
- Frame {
- msec: 2704
- hash: "780c9551f55fd46d294a1eef3b34aa34"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 2720
- hash: "521efe1778b2d2031071b55f30999de9"
- }
- Frame {
- msec: 2736
- hash: "49539356de68b7cd2cea52986ed2bb67"
- }
- Frame {
- msec: 2752
- hash: "55801794958126a1890bc0122084ee20"
- }
- Frame {
- msec: 2768
- hash: "55801794958126a1890bc0122084ee20"
- }
- Frame {
- msec: 2784
- hash: "55801794958126a1890bc0122084ee20"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 2800
- hash: "b08ee15bfd1916b9619a0a3eeeec90b6"
- }
- Frame {
- msec: 2816
- hash: "3b4e65a0d4ee764d418d82a055ba9c87"
- }
- Frame {
- msec: 2832
- hash: "269d37497b0cd292a5b03124d1687ff6"
- }
- Frame {
- msec: 2848
- hash: "59fecd7ec62bf8c89e2222744d36e194"
- }
- Frame {
- msec: 2864
- hash: "71deceeac8b42a70868bb3ff788543b5"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 2880
- image: "test3.2.png"
- }
- Frame {
- msec: 2896
- hash: "ad790d242e84fec0bd75e1d7771682d7"
- }
- Frame {
- msec: 2912
- hash: "c09f4fca4ae14e0e41d9b58c1b83096f"
- }
- Frame {
- msec: 2928
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Frame {
- msec: 2944
- hash: "68b528414ba662f14ea71511a01f8d33"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 2960
- hash: "015bf8203d45e5d477242055a3f19bfb"
- }
- Frame {
- msec: 2976
- hash: "ba2fb1258a2f3a81882780d3c7d5320a"
- }
- Frame {
- msec: 2992
- hash: "3637ffd219d403ed433fd72cd68a9b23"
- }
- Frame {
- msec: 3008
- hash: "b0d858f1d51872969022f717c12480ed"
- }
- Frame {
- msec: 3024
- hash: "0504b13a8f7cd68a1d64a22e46ea8654"
- }
- Frame {
- msec: 3040
- hash: "d07cffa36609433e4a677e373ee7a3ff"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3056
- hash: "c1fd98ebc22e512f7199e0f319e88728"
- }
- Frame {
- msec: 3072
- hash: "200dd4ac9c40c6eb32ad43570995f17d"
- }
- Frame {
- msec: 3088
- hash: "200dd4ac9c40c6eb32ad43570995f17d"
- }
- Frame {
- msec: 3104
- hash: "200dd4ac9c40c6eb32ad43570995f17d"
- }
- Frame {
- msec: 3120
- hash: "200dd4ac9c40c6eb32ad43570995f17d"
- }
- Frame {
- msec: 3136
- hash: "200dd4ac9c40c6eb32ad43570995f17d"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3152
- hash: "5822b744b64944c515e8a01f52c7429f"
- }
- Frame {
- msec: 3168
- hash: "7d4ab5a17e7d6184f124299053cf94e3"
- }
- Frame {
- msec: 3184
- hash: "253cfd5001e4e4541d9cfd6370291cd2"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3200
- hash: "1b1cab9d331c613dde896829027110f5"
- }
- Frame {
- msec: 3216
- hash: "8127f681a5c475133cfca95483fef2ce"
- }
- Frame {
- msec: 3232
- hash: "1a944877735fe3531d95b418dd75d576"
- }
- Frame {
- msec: 3248
- hash: "47ddcfaed130bf7dd539d965ebebedc1"
- }
- Frame {
- msec: 3264
- hash: "d0c37d1a7e97034d0f41ea6c2fff8f34"
- }
- Frame {
- msec: 3280
- hash: "ea2059d511fdab60e77e9261f81aadfb"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3296
- hash: "11a907436350afa5ff592880303b4344"
- }
- Frame {
- msec: 3312
- hash: "39801aef92c2b1e0ca39bede36840911"
- }
- Frame {
- msec: 3328
- hash: "93463b61a00078f488f3941bc4729100"
- }
- Frame {
- msec: 3344
- hash: "f8d9cbe20b87017d81fbf627f3a3b2cd"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3360
- hash: "2b8d37e7dcfb14394caf19aa8bc4b956"
- }
- Frame {
- msec: 3376
- hash: "bf91006930a3f22f12b62787c57bb91b"
- }
- Frame {
- msec: 3392
- hash: "7ce1d106e9d78a4a64f35f5982d32298"
- }
- Frame {
- msec: 3408
- hash: "e2f3bec9571b08b451309221b34ace5e"
- }
- Frame {
- msec: 3424
- hash: "e2f3bec9571b08b451309221b34ace5e"
- }
- Frame {
- msec: 3440
- hash: "e2f3bec9571b08b451309221b34ace5e"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3456
- hash: "71cd749e039a54aaaa05e1d3ccc738b4"
- }
- Frame {
- msec: 3472
- hash: "39e7afb00d53e098c005a1d96a8cc727"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3488
- hash: "a9d2fa99fc70919e55293c07427147a2"
- }
- Frame {
- msec: 3504
- hash: "96bb62cd9ebc2eba9797605190820349"
- }
- Frame {
- msec: 3520
- hash: "111b0d230c44d5d156e082a50c2a2a66"
- }
- Frame {
- msec: 3536
- hash: "1085cebcc8fdaefb2ec03392763c7657"
- }
- Frame {
- msec: 3552
- hash: "451d670f44ae42d8cbb6a12cc6469d61"
- }
- Frame {
- msec: 3568
- hash: "5c65a7b6ed7b4e85bb883c671aae5136"
- }
- Frame {
- msec: 3584
- hash: "2f532511a50d743aa1c7ebcc9b2b7350"
- }
- Key {
- type: 6
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3600
- hash: "41424200cb76a0d5d64f8919645f6afb"
- }
- Frame {
- msec: 3616
- hash: "7a910e4b17fb7f5d10308e07ea8ce0a3"
- }
- Frame {
- msec: 3632
- hash: "4d9cc5670105acf3bc080cba8e100376"
- }
- Frame {
- msec: 3648
- hash: "a09d3b45bef532ed86d737839592ffc8"
- }
- Key {
- type: 7
- key: 16777234
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3664
- hash: "70179b7be24acd6d5d0d0de9d8fff74d"
- }
- Frame {
- msec: 3680
- hash: "95964eef01bfc86216a8e91261b867ed"
- }
- Frame {
- msec: 3696
- hash: "12b5e2bbfd573b2b8e33a745cd5af5a6"
- }
- Frame {
- msec: 3712
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3728
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3744
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3760
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3776
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3792
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3808
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3824
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3840
- image: "test3.3.png"
- }
- Frame {
- msec: 3856
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3872
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3888
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3904
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3920
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3936
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3952
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3968
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 3984
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4000
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4016
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4032
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4048
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4064
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4080
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4096
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4112
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4128
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4144
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4160
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4176
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4192
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4208
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4224
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4240
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
- Frame {
- msec: 4256
- hash: "cb8a5743fd3c5093740bb2a4f57ade81"
- }
-}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.0.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.0.png
new file mode 100644
index 0000000000..793fb0f974
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.1.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.1.png
new file mode 100644
index 0000000000..5935b4539a
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.2.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.2.png
new file mode 100644
index 0000000000..a20526640d
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.3.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.3.png
new file mode 100644
index 0000000000..3d81ff25ee
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.4.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.4.png
new file mode 100644
index 0000000000..ee2076e137
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.5.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.5.png
new file mode 100644
index 0000000000..9017124d7f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.6.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.6.png
new file mode 100644
index 0000000000..216dd7e93c
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.7.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.7.png
new file mode 100644
index 0000000000..27e8480bd9
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.8.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.8.png
new file mode 100644
index 0000000000..6b911c5973
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.8.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.9.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.9.png
new file mode 100644
index 0000000000..01858a5578
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.9.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.qml
new file mode 100644
index 0000000000..cec1558abd
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/nested.qml
@@ -0,0 +1,5039 @@
+import Qt.VisualTest 4.7
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ image: "nested.0.png"
+ }
+ Frame {
+ msec: 32
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 48
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 64
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 80
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 96
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 112
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 128
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 144
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 160
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 176
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 192
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 208
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 224
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 240
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 256
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 272
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 288
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 304
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 320
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 336
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 352
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 368
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 384
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 400
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 416
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 432
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 448
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 464
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 480
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 496
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 512
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 528
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 544
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 560
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 576
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 592
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 608
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 624
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 640
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 656
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 672
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 688
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 704
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 720
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 736
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 752
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 768
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 784
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 800
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 816
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 832
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 848
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Frame {
+ msec: 864
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 25; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 880
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 26; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 896
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 27; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 912
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 28; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 29; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 928
+ hash: "2400cadaaa467cbfb0c7d2ace8137179"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 30; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 33; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 944
+ hash: "f5aa6257fd80c1e383bc2db84e41c354"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 35; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 40; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 960
+ hash: "e96076794d3efc62a8fe2d2e543e97c7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 42; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 976
+ image: "nested.1.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 58; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 992
+ hash: "ab955f6c6b210b66b27e244dc2150860"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 66; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 70; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1008
+ hash: "b655247e73b0b8357dc9d355ba6f49a0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 79; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 83; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1024
+ hash: "08b67b7e28990cac8c9bd354b7d87698"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 91; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 95; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1040
+ hash: "69cecfb41899e13c0bc5acb6f9bc666d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 104; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 107; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1056
+ hash: "8d1f0cd85fd3f2654f7c30a6d9ec2b99"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 115; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 122; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1072
+ hash: "f8ddda87cfcf5dc9d8c6e940fbd295f3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 126; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 133; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1088
+ hash: "ab9d942c47a2cca5531f7b67df034161"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 136; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 143; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1104
+ hash: "7ca5a03fdfac44c389315c3928631a2a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 146; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 151; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1120
+ hash: "ade955ed9d85fbbe72cf18bbc541c8bf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 153; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 158; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1136
+ hash: "6ad4afa3e3fcb578946fccbf4896761c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 162; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1152
+ hash: "3ebe78e37c1c66d0b8fc86c8191e39de"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 165; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 166; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1168
+ hash: "6450917cc89a553cf509265eaf318efb"
+ }
+ Frame {
+ msec: 1184
+ hash: "6450917cc89a553cf509265eaf318efb"
+ }
+ Frame {
+ msec: 1200
+ hash: "6450917cc89a553cf509265eaf318efb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 166; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1216
+ hash: "6450917cc89a553cf509265eaf318efb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 164; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 161; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1232
+ hash: "adfe54d5d28f7caf9ace117fd3573444"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 159; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 156; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1248
+ hash: "f4963636cc4fbd8bfe6baf10540ed7e7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 154; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 149; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1264
+ hash: "1c2d2edb9214cc3857aa221330ee28ba"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 143; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 139; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1280
+ hash: "750226c90e6c6cd0b3bdd3c3dc8da18f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 131; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 126; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1296
+ hash: "b6b5d177ab531460dc125afa82489a1d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 115; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1312
+ hash: "62d411a7b6c404393e4bfafab9c638a3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 91; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1328
+ hash: "e355997b3decd4deb686fece59c33c7c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 86; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 76; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1344
+ hash: "2ab73c8aac6a0e321686e97c9bb28f28"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 71; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 61; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1360
+ hash: "55a887f9f45f71beb6b723191eb60a2f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 56; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 50; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1376
+ hash: "b2d49e34362994739d14fb8231ff82d6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 47; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 43; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1392
+ hash: "3964796876870035794b41501991b527"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 41; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 40; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1408
+ hash: "e96076794d3efc62a8fe2d2e543e97c7"
+ }
+ Frame {
+ msec: 1424
+ hash: "e96076794d3efc62a8fe2d2e543e97c7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 41; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1440
+ hash: "7e524b3c43a987503ef102bdb9f11701"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 42; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1456
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1472
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1488
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1504
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1520
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1536
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1552
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 42; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1568
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1584
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1600
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1616
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1632
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1648
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1664
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1680
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1696
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1712
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1728
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1744
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1760
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1776
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1792
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1808
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1824
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1840
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1856
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1872
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1888
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1904
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1920
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Frame {
+ msec: 1936
+ image: "nested.2.png"
+ }
+ Frame {
+ msec: 1952
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 38; y: 56
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1968
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 39; y: 57
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1984
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 39; y: 59
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 39; y: 60
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2000
+ hash: "2a7c13e97c21e298541bb5ab8169ff13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 40; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 40; y: 65
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2016
+ hash: "9178754b825d60b2174ed9431ea80586"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 41; y: 68
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 41; y: 70
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 45; y: 79
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2032
+ hash: "89eff8fa9f8710d7cbc50b8d4b751148"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 47; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2048
+ hash: "cdae8b46ecfc2b0c90264c120156cc46"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 50; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 93
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2064
+ hash: "cf35919630eab647a28eb91d8a441704"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2080
+ hash: "283256d50da8c855c50d5f8813d37afd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 107
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 109
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2096
+ hash: "2560cd67d507bc24c1000187f645531c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2112
+ hash: "6f6f7c299c4516c5231f5bfcd39b6db3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 122
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2128
+ hash: "e7989524238996cf59f420f4edf8f982"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 126
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2144
+ hash: "34d8d456848807e854bcb25ffbde37d4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 127
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 130
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2160
+ hash: "433bd3983804b07484d38af2723f519e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 132
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 134
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2176
+ hash: "510e534a8a7b88041f7544e7e4992b8f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 137
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 52; y: 139
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2192
+ hash: "25f43c457a5bf2b70a66ce91685ad4dc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 141
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 142
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2208
+ hash: "4119ab90627359420e25220618b76a69"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 145
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 50; y: 146
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2224
+ hash: "8a3cc888e96cf3e26e369723b442baf1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 147
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 150
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2240
+ hash: "980552e8ff9d87ccb40127b06b0f846f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 151
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 153
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2256
+ hash: "9ee23fc7cbca4467f984073d2af7cdf6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 154
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 155
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2272
+ hash: "032d65792ac867c9b9acef05bd993c54"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 156
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2288
+ hash: "be2f8d5a64034e75e23527c486e33029"
+ }
+ Frame {
+ msec: 2304
+ hash: "be2f8d5a64034e75e23527c486e33029"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 155
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2320
+ hash: "3f65505e4d1f8534c9123b3dea15d43e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 154
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 152
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2336
+ hash: "e8b1799cf1926cb3b6cbf3adee80cffe"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 149
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 147
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2352
+ hash: "31155b14cc0d3d47bbef4e199fdfcb46"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 140
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 52; y: 132
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2368
+ hash: "b89745a9a60a7ebeb1de0a7f96ad2ac3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 128
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 57; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2384
+ hash: "7e99fa1eba369d45f10778fe02356f09"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 59; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 64; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2400
+ hash: "cd123f6b332f38f43abbf01469a41301"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 67; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 71; y: 90
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2416
+ hash: "353c0602dd2b670e19988117172855fc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 76; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 78; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2432
+ hash: "20df9d19fd2113fa8f8023d5b4328dc5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 81; y: 70
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 82; y: 67
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2448
+ hash: "10b34a758d5b3790dd36c9d95c47b157"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 84; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 60
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2464
+ hash: "98a483e1eaa9145fd277fd85a9b0cf03"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 87; y: 57
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 88; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2480
+ hash: "e92edd52ff1ee78456fa1947a46e6570"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 89; y: 53
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 91; y: 52
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2496
+ hash: "877384496d967f5f0ab1c817a2b316d6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 92; y: 51
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 93; y: 51
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2512
+ hash: "15673570ffe9a391f9214601ac9dc86c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 94; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 95; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2528
+ hash: "4b7f0094b19a4495bf913d2994889497"
+ }
+ Frame {
+ msec: 2544
+ hash: "4b7f0094b19a4495bf913d2994889497"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 95; y: 49
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2560
+ hash: "4b7f0094b19a4495bf913d2994889497"
+ }
+ Frame {
+ msec: 2576
+ hash: "4b7f0094b19a4495bf913d2994889497"
+ }
+ Frame {
+ msec: 2592
+ hash: "4b7f0094b19a4495bf913d2994889497"
+ }
+ Frame {
+ msec: 2608
+ hash: "4b7f0094b19a4495bf913d2994889497"
+ }
+ Frame {
+ msec: 2624
+ hash: "4b7f0094b19a4495bf913d2994889497"
+ }
+ Frame {
+ msec: 2640
+ hash: "4b7f0094b19a4495bf913d2994889497"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 95; y: 49
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2656
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2672
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2688
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2704
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2720
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2736
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2752
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2768
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2784
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2800
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2816
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2832
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2848
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2864
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2880
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2896
+ image: "nested.3.png"
+ }
+ Frame {
+ msec: 2912
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2928
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2944
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2960
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2976
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 2992
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3008
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3024
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3040
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3056
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3072
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3088
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3104
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3120
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3136
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3152
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3168
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3184
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3200
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3216
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3232
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 156; y: 74
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3248
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Frame {
+ msec: 3264
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 156; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 157; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3280
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 158; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 160; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3296
+ hash: "2994e98b8ea9a6883a7324e7e848345c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 161; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3312
+ hash: "df6cf21e99177a436e356f818996070c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 166; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 171; y: 74
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3328
+ hash: "86f5e3fee147f47edd4a6d042aff0301"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 178; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 181; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3344
+ hash: "589c1418a9179c868d904b1a5169a11b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 189; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 193; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3360
+ hash: "3141ad77d193e145b749759070e1e6ef"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3376
+ hash: "5e34d4deeb6d80b336cacea39797e0ca"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 217; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3392
+ hash: "b8795d844982bcf60a6713f91717648f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 220; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 224; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3408
+ hash: "857c63b24057ee0186c5136eddb71cb1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 226; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 227; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3424
+ hash: "49222ed0d1ebc8759d0a1dc65c3beec6"
+ }
+ Frame {
+ msec: 3440
+ hash: "49222ed0d1ebc8759d0a1dc65c3beec6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 227; y: 77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 226; y: 77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3456
+ hash: "751847708a468f4f3e64e7cb5ebd1351"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 225; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 224; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3472
+ hash: "4016f80a5219fcba6480645f71998d71"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 221; y: 80
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 220; y: 80
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3488
+ hash: "beef05cd2a3d20bc66978fa4f0ac1d12"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 216; y: 82
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 214; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3504
+ hash: "e50a2661e93d34b55c8d2d39abc77e5a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3520
+ hash: "7beccbc2f091350bb5d9de1e2443021d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 89
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3536
+ hash: "1d39570bf07392f56b6dd24b0bf9e7bc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 188; y: 90
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 180; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3552
+ hash: "62565b3e5aad3979b408207bbf36e615"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 176; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 167; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3568
+ hash: "d9c6004921847fef16bb8c2f5d6b3b7d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 162; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 152; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3584
+ hash: "53da27301ad97ae52c65928615ec0cd7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 142; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 137; y: 90
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3600
+ hash: "9772a776e84515984b4eec70dbd1c5a7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 125; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 119; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3616
+ hash: "9caa6583a716443c13e8fef3f2923d6e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 109; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 104; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3632
+ hash: "f162a18b2d3f0d5f6f01fc373c016f68"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 98; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 96; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3648
+ hash: "58976e8e31beddf881c7cfa3ede54c09"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 94; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 92; y: 83
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3664
+ hash: "6625f7adb097bc170024083c42d74b4b"
+ }
+ Frame {
+ msec: 3680
+ hash: "6625f7adb097bc170024083c42d74b4b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 92; y: 82
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3696
+ hash: "1d63f09ca27e9d70c3c0ea923a6cfba4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 93; y: 82
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3712
+ hash: "1d63f09ca27e9d70c3c0ea923a6cfba4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 94; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 96; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3728
+ hash: "a23c75fcaa0a28adb944bf192af65bff"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 98; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3744
+ hash: "2b90fe8937dcc39d1d6add305cf36043"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 107; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3760
+ hash: "7da82cfaf0f826ca9a41128278b6b09c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 118; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 122; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3776
+ hash: "a3f69d13d38b336fda33a86899564996"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 129; y: 80
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 135; y: 79
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3792
+ hash: "dc562319e1d332ba34ac94bfc0c39c5e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 138; y: 79
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 140; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3808
+ hash: "756482bee292668f56d813847b0ccd53"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 141; y: 77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 142; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3824
+ hash: "06d250c4d18a70f8f7b1c10e22a1bc4c"
+ }
+ Frame {
+ msec: 3840
+ hash: "06d250c4d18a70f8f7b1c10e22a1bc4c"
+ }
+ Frame {
+ msec: 3856
+ image: "nested.4.png"
+ }
+ Frame {
+ msec: 3872
+ hash: "06d250c4d18a70f8f7b1c10e22a1bc4c"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 142; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3888
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 3904
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 3920
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 3936
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 3952
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 3968
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 3984
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4000
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4016
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4032
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4048
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4064
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4080
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4096
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4112
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4128
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4144
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4160
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4176
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4192
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4208
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4224
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4240
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4256
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4272
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4288
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4304
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4320
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4336
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4352
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4368
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4384
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4400
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4416
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4432
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4448
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4464
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4480
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4496
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4512
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4528
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4544
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 16; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4560
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 4576
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 16; y: 47
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 16; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4592
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 16; y: 49
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 17; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4608
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 17; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 18; y: 56
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4624
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 20; y: 61
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 20; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4640
+ hash: "ff1f86b47e0d1db5db7d939df8349931"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 22; y: 70
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 23; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4656
+ hash: "f13393a4556e9e73c33f2bb74d8f7794"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 26; y: 80
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 28; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4672
+ hash: "8c9aa01516437184eb17d89348cca004"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 33; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 40; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4688
+ hash: "8b6848cb722ff5ec02d957da1ee687e5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 44; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 109
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4704
+ hash: "552fde584d128f511788670031d79dd2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 58; y: 112
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 64; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4720
+ hash: "55dc3a4242b46e602f823c0305e67ad2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 68; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 71; y: 120
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4736
+ hash: "603b9b2ed6ff4273c3ab1cbe32afb19e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 73; y: 120
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 73; y: 120
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4752
+ hash: "157eda24ea8452a208aa7a6a22639c73"
+ }
+ Frame {
+ msec: 4768
+ hash: "157eda24ea8452a208aa7a6a22639c73"
+ }
+ Frame {
+ msec: 4784
+ hash: "c5005b83816c18b67448dfbccd0ab0b2"
+ }
+ Frame {
+ msec: 4800
+ hash: "878512df863e5d60437b85fbd2a32eb1"
+ }
+ Frame {
+ msec: 4816
+ image: "nested.5.png"
+ }
+ Frame {
+ msec: 4832
+ hash: "02ab69b67b746ec0021295992a03ada1"
+ }
+ Frame {
+ msec: 4848
+ hash: "c621382766d7bacab87055a73623a8ce"
+ }
+ Frame {
+ msec: 4864
+ hash: "a8d1be78741d9afd88363bd19f1cbc6b"
+ }
+ Frame {
+ msec: 4880
+ hash: "5a70275ff656766d73638d4dd4db4492"
+ }
+ Frame {
+ msec: 4896
+ hash: "892ea0a00553524b79889d437eac9b6f"
+ }
+ Frame {
+ msec: 4912
+ hash: "d818258bffc065430902ffa8f5668f86"
+ }
+ Frame {
+ msec: 4928
+ hash: "6b844523522ace7545705ffb8ffe1da3"
+ }
+ Frame {
+ msec: 4944
+ hash: "3906097bc49bad199b52c99dbf87f98f"
+ }
+ Frame {
+ msec: 4960
+ hash: "a2bd859b5ca7f4fac8d62b1c9ab76aad"
+ }
+ Frame {
+ msec: 4976
+ hash: "f374673e3511b1df8b50ff7ef6002b3a"
+ }
+ Frame {
+ msec: 4992
+ hash: "c2eecfadd19418f469b1ab53a3ecae70"
+ }
+ Frame {
+ msec: 5008
+ hash: "2b481965ece0f2e1795ef56aa5d6a752"
+ }
+ Frame {
+ msec: 5024
+ hash: "c294f28000348365a2c37265132efdb5"
+ }
+ Frame {
+ msec: 5040
+ hash: "c294f28000348365a2c37265132efdb5"
+ }
+ Frame {
+ msec: 5056
+ hash: "4e9c18eab469b2da0cb92526d3d54501"
+ }
+ Frame {
+ msec: 5072
+ hash: "4e9c18eab469b2da0cb92526d3d54501"
+ }
+ Frame {
+ msec: 5088
+ hash: "4e9c18eab469b2da0cb92526d3d54501"
+ }
+ Frame {
+ msec: 5104
+ hash: "4e9c18eab469b2da0cb92526d3d54501"
+ }
+ Frame {
+ msec: 5120
+ hash: "3836449b99d88e2dea9a0eb9417faca5"
+ }
+ Frame {
+ msec: 5136
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5152
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5168
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5184
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5200
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5216
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5232
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5248
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5264
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5280
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5296
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5312
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5328
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5344
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5360
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5376
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5392
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5408
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5424
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5440
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5456
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5472
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5488
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5504
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5520
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5536
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5552
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5568
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5584
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5600
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5616
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Frame {
+ msec: 5632
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 20; y: 238
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 21; y: 238
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5648
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 22; y: 239
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 23; y: 239
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5664
+ hash: "42dc501eb5a34843ef0a8977ff029054"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 27; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 29; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5680
+ hash: "b56d132ac881e27d308009fb9a9d2d50"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 33; y: 241
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 36; y: 241
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5696
+ hash: "6c65fca03ea127d554f15c80da76f21f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 42; y: 242
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 45; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5712
+ hash: "e5d8939135d0e964609a09a437af58bc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 61; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5728
+ hash: "ab60a45ac475ef8d1177d831a6572d1f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 66; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 75; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5744
+ hash: "78b2e0c7dd8b8bcbd573dac79ff815e4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 79; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 89; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5760
+ hash: "ef9e89650d8e3d572285e2a2e2b09166"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 95; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 106; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5776
+ image: "nested.6.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 118; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 126; y: 243
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5792
+ hash: "b83136fa3769e30ea47097b489e8f1dc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 137; y: 241
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 143; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5808
+ hash: "fb892905b790a061ce5985c927db3cf5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 154; y: 238
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 159; y: 237
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5824
+ hash: "bc4358e21d2d31942e776adfd32ef1c6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 170; y: 235
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 184; y: 234
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5840
+ hash: "b42380a7fcf5e2fbfe4dddbe86ad7287"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 232
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 201; y: 231
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5856
+ hash: "4b3c12beb43a77ebaf458804b03c7b52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 231
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 230
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5872
+ hash: "a18be4d4ab28c0fd0c16696c4ecc03ef"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 230
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 229
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5888
+ hash: "c5f100bc4b14e958c7d9bbff84e0a934"
+ }
+ Frame {
+ msec: 5904
+ hash: "c5f100bc4b14e958c7d9bbff84e0a934"
+ }
+ Frame {
+ msec: 5920
+ hash: "c5f100bc4b14e958c7d9bbff84e0a934"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 208; y: 229
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5936
+ hash: "a18be4d4ab28c0fd0c16696c4ecc03ef"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 229
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 207; y: 230
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5952
+ hash: "a8b23e7dad1bdbaa3452335be0f07658"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 230
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 231
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5968
+ hash: "4c1feb559a11912b06ed521bebba43d0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 200; y: 232
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 232
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5984
+ hash: "ffb97bcedf72e02616272c1cad5c38d7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 190; y: 232
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 181; y: 231
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6000
+ hash: "99498ed9b4d519a2f842d407abdef90a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 175; y: 230
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 229
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6016
+ hash: "1ca3f012adab899eba1dcb63d048345f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 158; y: 228
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 145; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6032
+ hash: "8a81d49de887f314f67976a65f469169"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 132; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 126; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6048
+ hash: "b83136fa3769e30ea47097b489e8f1dc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 116; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 112; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6064
+ hash: "12cdd297407257ae4bb13c87e24537fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 103; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 99; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6080
+ hash: "a51ac0a1e9432671c88f7649c38d265d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 90; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 86; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6096
+ hash: "4ba4f854659161c765395cdee35594f2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 77; y: 226
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 70; y: 225
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6112
+ hash: "9907add9e28b4a8976f3727f99a4b6d4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 66; y: 224
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 60; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6128
+ hash: "c2cb865c4a766b9c08328b374e940f29"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 59; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 56; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6144
+ hash: "c97981263572ded23b328da45cf88012"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 55; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6160
+ hash: "f4bae51c866ba1158f44529208514d6f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 52; y: 222
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 50; y: 222
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6176
+ hash: "35b4f1f9bb343f2b22bd7cdad6f28249"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6192
+ hash: "84eba4cb400e5622463f5a1fa79be72b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 47; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 46; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6208
+ hash: "d38e882728c7efc906befe69b416082a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 45; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6224
+ hash: "e5d8939135d0e964609a09a437af58bc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 44; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 43; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6240
+ hash: "6b6e06e8473d5703e217accd824b08d5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 42; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 40; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6256
+ hash: "8e38bc5b00e33e24f931b181dc77d3c1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 39; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 38; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6272
+ hash: "a173708b5380f42a2bdbf6ae69cdca20"
+ }
+ Frame {
+ msec: 6288
+ hash: "a173708b5380f42a2bdbf6ae69cdca20"
+ }
+ Frame {
+ msec: 6304
+ hash: "a173708b5380f42a2bdbf6ae69cdca20"
+ }
+ Frame {
+ msec: 6320
+ hash: "a173708b5380f42a2bdbf6ae69cdca20"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 38; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6336
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6352
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6368
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6384
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6400
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6416
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6432
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6448
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6464
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6480
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6496
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6512
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6528
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6544
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6560
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6576
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6592
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6608
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6624
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6640
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6656
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6672
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6688
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6704
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6720
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6736
+ image: "nested.7.png"
+ }
+ Frame {
+ msec: 6752
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6768
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6784
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6800
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6816
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6832
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6848
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6864
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6880
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6896
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6912
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6928
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6944
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6960
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6976
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 6992
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 7008
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 7024
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 7040
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 7056
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 7072
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 46; y: 225
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7088
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 7104
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 46; y: 226
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 46; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7120
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 46; y: 228
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 46; y: 231
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7136
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 46; y: 233
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 46; y: 238
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7152
+ hash: "35dd0f784c356be0050936ff75b0cdf7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 47; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 245
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7168
+ hash: "9ac066a700eae45edf9b2f1ba12f0324"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 248
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 255
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7184
+ hash: "22a2a8bf257918820b0ab55ecb14b479"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 50; y: 259
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 266
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7200
+ hash: "eb98237e06cde8ed2f18040ce9197d16"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 52; y: 272
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 52; y: 276
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7216
+ hash: "f0c7afe1bd25b9b573cbc69154c25862"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 282
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 285
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7232
+ hash: "d6a681b6de867db47f889e6f1ec03dcf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 291
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 293
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7248
+ hash: "0ee281281c7654567a1debae7a13abe0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 304
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7264
+ hash: "9d5f1c8cb0953c14bdd49aa88d2b225f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 306
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 310
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7280
+ hash: "ae1c2a3ed67c5c10fc9d19de4de7b7eb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 312
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 315
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7296
+ hash: "8505f9d060fc17fef2e91eb2add206bb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 316
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 318
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7312
+ hash: "c32a6d546a3e4f2ee5349a7dad4b30af"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 319
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 52; y: 320
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7328
+ hash: "222f6e8e8deab567f1e7d0aaf7035b60"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 321
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 322
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7344
+ hash: "f7011629f44015187849daad6a53cebf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 323
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 324
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7360
+ hash: "56b00d9116a51c041483dd00db0aca90"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 50; y: 325
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 50; y: 326
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7376
+ hash: "93232fbcafe8e279b37781f51dfb923a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 328
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 329
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7392
+ hash: "9fcf62eaacfc3477a4550c31f03c4782"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 330
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 331
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7408
+ hash: "dd669865fd36e42eec1d69860b29e7ce"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 47; y: 331
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7424
+ hash: "9247af334483b219ca9bbe98d8fc362e"
+ }
+ Frame {
+ msec: 7440
+ hash: "9247af334483b219ca9bbe98d8fc362e"
+ }
+ Frame {
+ msec: 7456
+ hash: "9247af334483b219ca9bbe98d8fc362e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 47; y: 330
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7472
+ hash: "9247af334483b219ca9bbe98d8fc362e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 47; y: 329
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 47; y: 328
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7488
+ hash: "69ef9255a29d65f26e5441594ea1bad9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 325
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 323
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7504
+ hash: "055f73dd085d2f65a055ba4d9a8a7539"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 318
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 316
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7520
+ hash: "384da5b6a948a52d0519935a8e33f014"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 309
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 54; y: 303
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7536
+ hash: "1caa0049be4033db45f0d2debb25268f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 55; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 55; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7552
+ hash: "76b8d00b3a2a68fec277050a442c18ca"
+ }
+ Frame {
+ msec: 7568
+ hash: "0ee281281c7654567a1debae7a13abe0"
+ }
+ Frame {
+ msec: 7584
+ hash: "df1dbb027a8542aa6120cce7b69724a7"
+ }
+ Frame {
+ msec: 7600
+ hash: "06a4d9b1d73362b3e29c6cf52fdb515c"
+ }
+ Frame {
+ msec: 7616
+ hash: "876c0dc8a68a4c1253b7aed6316cb892"
+ }
+ Frame {
+ msec: 7632
+ hash: "b46c74b1a2535099f0cdb8093bd49a4e"
+ }
+ Frame {
+ msec: 7648
+ hash: "0ad09a7638aa6f2affe47db2a810196f"
+ }
+ Frame {
+ msec: 7664
+ hash: "3710dde54d7e4a10a2c3ca2f891da7f5"
+ }
+ Frame {
+ msec: 7680
+ hash: "8426a607c92fbfa508e81c620d90e919"
+ }
+ Frame {
+ msec: 7696
+ image: "nested.8.png"
+ }
+ Frame {
+ msec: 7712
+ hash: "1f38e34787c909d93d567f983a425257"
+ }
+ Frame {
+ msec: 7728
+ hash: "7b09913793d4c79d948fdff1b72c7124"
+ }
+ Frame {
+ msec: 7744
+ hash: "8a0d1484c073d8107b4bf9949edcdb18"
+ }
+ Frame {
+ msec: 7760
+ hash: "4bad25465dfdcc41995216b0f6a5191b"
+ }
+ Frame {
+ msec: 7776
+ hash: "6d39bbeb5f74273c1ed0231ac34fe094"
+ }
+ Frame {
+ msec: 7792
+ hash: "8ccc2e33b8d6c67162326d229e9c17ab"
+ }
+ Frame {
+ msec: 7808
+ hash: "3561eaa9124b96b2a0afa022bc0fe581"
+ }
+ Frame {
+ msec: 7824
+ hash: "b87d739e49f0427d9da577ac5147fd21"
+ }
+ Frame {
+ msec: 7840
+ hash: "7d0efbfceec35e591f9fae650288809b"
+ }
+ Frame {
+ msec: 7856
+ hash: "7d0efbfceec35e591f9fae650288809b"
+ }
+ Frame {
+ msec: 7872
+ hash: "ff5d2037d3cc7bb6930cabc3d53f0196"
+ }
+ Frame {
+ msec: 7888
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 7904
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 7920
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 7936
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 7952
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 7968
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 7984
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8000
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8016
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8032
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8048
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8064
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8080
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8096
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8112
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8128
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8144
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8160
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8176
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8192
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8208
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8224
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8240
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8256
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8272
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8288
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8304
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8320
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8336
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8352
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8368
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8384
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8400
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8416
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8432
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8448
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8464
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8480
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8496
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8512
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8528
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8544
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8560
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8576
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8592
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8608
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8624
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8640
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8656
+ image: "nested.9.png"
+ }
+ Frame {
+ msec: 8672
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8688
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8704
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8720
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8736
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8752
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8768
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8784
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8800
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8816
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8832
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8848
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8864
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8880
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8896
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8912
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8928
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8944
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8960
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8976
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 8992
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 9008
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+ Frame {
+ msec: 9024
+ hash: "76624c57195c25b8abd4297e11c55980"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/nested.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/nested.qml
new file mode 100644
index 0000000000..b2d88d2ca9
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/nested.qml
@@ -0,0 +1,62 @@
+import QtQuick 1.0
+
+/*
+ Test nested MouseArea with different drag axes.
+*/
+
+Rectangle{
+ width:400
+ height:360
+ color: "white"
+ Flickable {
+ anchors.fill: parent
+ contentWidth: 600
+ contentHeight: 600
+ Rectangle{
+ id: draggable
+ width:200; height:200; color: "lightsteelblue"
+ opacity: ma1.drag.active ? 0.5 : 1.0
+ y:20
+ MouseArea{
+ id: ma1
+ objectName: "one"
+ anchors.fill: parent
+ drag.target: draggable
+ drag.axis: "XandYAxis"
+ drag.filterChildren: true
+ drag.minimumX: 0
+ drag.maximumX: 200
+ drag.minimumY: 20
+ drag.maximumY: 220
+ Rectangle{
+ id: draggable_inner
+ width:40; height:40; color: "red"
+ y:20
+ MouseArea{
+ objectName: "two"
+ anchors.fill: parent
+ drag.target: draggable_inner
+ drag.axis: "XAxis"
+ drag.minimumX: 0
+ drag.maximumX: 360
+ }
+ }
+ }
+ }
+ Rectangle{
+ id: draggable3
+ width:40; height:40; color: "green"
+ opacity: ma3.drag.active ? 0.5 : 1.0
+ y:210
+ MouseArea{
+ id: ma3
+ objectName: "three"
+ anchors.fill: parent
+ drag.target: draggable3
+ drag.axis: "XAxis"
+ drag.minimumX: 0
+ drag.maximumX: 360
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png
index 8b6329d95f..87bc640719 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml
index 85c0cce795..f56f498df2 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.qml
@@ -6,242 +6,242 @@ VisualTest {
}
Frame {
msec: 16
- hash: "75c15f88551f961727b547082216d0bb"
+ image: "multilineAlign.0.png"
}
Frame {
msec: 32
- hash: "75c15f88551f961727b547082216d0bb"
+ hash: "7fb2062f5786da9323db4286688682a0"
}
Frame {
msec: 48
- hash: "75c15f88551f961727b547082216d0bb"
+ hash: "7fb2062f5786da9323db4286688682a0"
}
Frame {
msec: 64
- hash: "75c15f88551f961727b547082216d0bb"
+ hash: "7fb2062f5786da9323db4286688682a0"
}
Frame {
msec: 80
- hash: "75c15f88551f961727b547082216d0bb"
+ hash: "7fb2062f5786da9323db4286688682a0"
}
Frame {
msec: 96
- hash: "75c15f88551f961727b547082216d0bb"
+ hash: "7fb2062f5786da9323db4286688682a0"
}
Frame {
msec: 112
- hash: "75c15f88551f961727b547082216d0bb"
+ hash: "7fb2062f5786da9323db4286688682a0"
}
Frame {
msec: 128
- hash: "75c15f88551f961727b547082216d0bb"
+ hash: "7fb2062f5786da9323db4286688682a0"
}
Frame {
msec: 144
- hash: "75c15f88551f961727b547082216d0bb"
+ hash: "7fb2062f5786da9323db4286688682a0"
}
Frame {
msec: 160
- hash: "75c15f88551f961727b547082216d0bb"
+ hash: "7fb2062f5786da9323db4286688682a0"
}
Frame {
msec: 176
- hash: "1a58de7b864ae75e65f69461155cbfb2"
+ hash: "c67a5ae840827487ab618ff2d4e9a056"
}
Frame {
msec: 192
- hash: "1a58de7b864ae75e65f69461155cbfb2"
+ hash: "c67a5ae840827487ab618ff2d4e9a056"
}
Frame {
msec: 208
- hash: "1a58de7b864ae75e65f69461155cbfb2"
+ hash: "c67a5ae840827487ab618ff2d4e9a056"
}
Frame {
msec: 224
- hash: "1a58de7b864ae75e65f69461155cbfb2"
+ hash: "c67a5ae840827487ab618ff2d4e9a056"
}
Frame {
msec: 240
- hash: "1a58de7b864ae75e65f69461155cbfb2"
+ hash: "c67a5ae840827487ab618ff2d4e9a056"
}
Frame {
msec: 256
- hash: "1a58de7b864ae75e65f69461155cbfb2"
+ hash: "c67a5ae840827487ab618ff2d4e9a056"
}
Frame {
msec: 272
- hash: "1a58de7b864ae75e65f69461155cbfb2"
+ hash: "c67a5ae840827487ab618ff2d4e9a056"
}
Frame {
msec: 288
- hash: "1a58de7b864ae75e65f69461155cbfb2"
+ hash: "c67a5ae840827487ab618ff2d4e9a056"
}
Frame {
msec: 304
- hash: "1a58de7b864ae75e65f69461155cbfb2"
+ hash: "c67a5ae840827487ab618ff2d4e9a056"
}
Frame {
msec: 320
- hash: "1a58de7b864ae75e65f69461155cbfb2"
+ hash: "c67a5ae840827487ab618ff2d4e9a056"
}
Frame {
msec: 336
- hash: "8a6b615ce522e7aa1011bc1d16193871"
+ hash: "c7986aca05835e238ee95be063bdd032"
}
Frame {
msec: 352
- hash: "8a6b615ce522e7aa1011bc1d16193871"
+ hash: "c7986aca05835e238ee95be063bdd032"
}
Frame {
msec: 368
- hash: "8a6b615ce522e7aa1011bc1d16193871"
+ hash: "c7986aca05835e238ee95be063bdd032"
}
Frame {
msec: 384
- hash: "8a6b615ce522e7aa1011bc1d16193871"
+ hash: "c7986aca05835e238ee95be063bdd032"
}
Frame {
msec: 400
- hash: "8a6b615ce522e7aa1011bc1d16193871"
+ hash: "c7986aca05835e238ee95be063bdd032"
}
Frame {
msec: 416
- hash: "8a6b615ce522e7aa1011bc1d16193871"
+ hash: "c7986aca05835e238ee95be063bdd032"
}
Frame {
msec: 432
- hash: "8a6b615ce522e7aa1011bc1d16193871"
+ hash: "c7986aca05835e238ee95be063bdd032"
}
Frame {
msec: 448
- hash: "8a6b615ce522e7aa1011bc1d16193871"
+ hash: "c7986aca05835e238ee95be063bdd032"
}
Frame {
msec: 464
- hash: "8a6b615ce522e7aa1011bc1d16193871"
+ hash: "c7986aca05835e238ee95be063bdd032"
}
Frame {
msec: 480
- hash: "8a6b615ce522e7aa1011bc1d16193871"
+ hash: "c7986aca05835e238ee95be063bdd032"
}
Frame {
msec: 496
- hash: "17141b7167d2249238c15cf751b3d8b6"
+ hash: "dd8ee9c060450beef6cc2494fa463e0a"
}
Frame {
msec: 512
- hash: "17141b7167d2249238c15cf751b3d8b6"
+ hash: "dd8ee9c060450beef6cc2494fa463e0a"
}
Frame {
msec: 528
- hash: "17141b7167d2249238c15cf751b3d8b6"
+ hash: "dd8ee9c060450beef6cc2494fa463e0a"
}
Frame {
msec: 544
- hash: "17141b7167d2249238c15cf751b3d8b6"
+ hash: "dd8ee9c060450beef6cc2494fa463e0a"
}
Frame {
msec: 560
- hash: "17141b7167d2249238c15cf751b3d8b6"
+ hash: "dd8ee9c060450beef6cc2494fa463e0a"
}
Frame {
msec: 576
- hash: "17141b7167d2249238c15cf751b3d8b6"
+ hash: "dd8ee9c060450beef6cc2494fa463e0a"
}
Frame {
msec: 592
- hash: "17141b7167d2249238c15cf751b3d8b6"
+ hash: "dd8ee9c060450beef6cc2494fa463e0a"
}
Frame {
msec: 608
- hash: "17141b7167d2249238c15cf751b3d8b6"
+ hash: "dd8ee9c060450beef6cc2494fa463e0a"
}
Frame {
msec: 624
- hash: "17141b7167d2249238c15cf751b3d8b6"
+ hash: "dd8ee9c060450beef6cc2494fa463e0a"
}
Frame {
msec: 640
- hash: "17141b7167d2249238c15cf751b3d8b6"
+ hash: "dd8ee9c060450beef6cc2494fa463e0a"
}
Frame {
msec: 656
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 672
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 688
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 704
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 720
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 736
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 752
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 768
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 784
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 800
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 816
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 832
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 848
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 864
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 880
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 896
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 912
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 928
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 944
- hash: "92e4f7c09e41b5fb97feb0093e8d9c1f"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
Frame {
msec: 960
- image: "multilineAlign.0.png"
+ hash: "f55ebe08f1b538d085cda157f566859e"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png
new file mode 100644
index 0000000000..4b78165013
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml
index d7428dd31b..7c557e0ba2 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-MAC/parentanchor.qml
@@ -6,126 +6,126 @@ VisualTest {
}
Frame {
msec: 16
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ image: "parentanchor.0.png"
}
Frame {
msec: 32
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 48
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 64
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 80
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 96
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 112
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 128
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 144
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 160
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 176
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 192
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 208
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 224
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 240
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 256
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 272
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 288
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 304
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 320
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 336
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 352
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 368
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 384
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 400
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 416
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 432
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 448
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 464
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 480
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
Frame {
msec: 496
- hash: "80e9ca4c4ffac9c032334a3369ef9db6"
+ hash: "455caf06270992e3367c2a5a4371b6ac"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png
index 75478566ad..804a44388f 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png
index 84430bb7ac..804a44388f 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml
index 6b9986f019..efdb91620b 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.qml
@@ -6,442 +6,442 @@ VisualTest {
}
Frame {
msec: 16
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ image: "qtbug_14865.0.png"
}
Frame {
msec: 32
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 48
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 64
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 80
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 96
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 112
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 128
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 144
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 160
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 176
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 192
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 208
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 224
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 240
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 256
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 272
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 288
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 304
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 320
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 336
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 352
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 368
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 384
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 400
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 416
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 432
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 448
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 464
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 480
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 496
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 512
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 528
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 544
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 560
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 576
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 592
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 608
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 624
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 640
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 656
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 672
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 688
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 704
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 720
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 736
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 752
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 768
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 784
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 800
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 816
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 832
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 848
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 864
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 880
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 896
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 912
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 928
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 944
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 960
- image: "qtbug_14865.0.png"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 976
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ image: "qtbug_14865.1.png"
}
Frame {
msec: 992
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 1008
- hash: "35c278720fd30e14dce9cf8684dd2cd7"
+ hash: "9886d2b883d236bd0a346c6763c1f245"
}
Frame {
msec: 1024
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1040
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1056
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1072
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1088
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1104
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1120
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1136
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1152
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1168
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1184
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1200
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1216
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1232
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1248
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1264
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1280
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1296
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1312
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1328
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1344
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1360
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1376
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1392
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1408
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1424
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1440
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1456
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1472
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1488
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1504
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1520
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1536
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1552
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1568
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1584
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1600
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1616
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1632
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1648
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1664
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1680
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1696
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1712
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1728
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1744
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
Frame {
msec: 1760
- hash: "eee4600ac08b458ac7ac2320e225674c"
+ hash: "3ccd3d26158a50d8f0567bafd7a23e06"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png
index 88e065b8b4..99f0eb75da 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png
new file mode 100644
index 0000000000..99f0eb75da
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml
index 96144e114e..6dc7f4ffa8 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml
@@ -6,274 +6,274 @@ VisualTest {
}
Frame {
msec: 16
- hash: "7d056af7620fe8387955a1401a4f088a"
+ image: "elide.0.png"
}
Frame {
msec: 32
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 48
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 64
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 80
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 96
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 112
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 128
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 144
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 160
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 176
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 192
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 208
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 224
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 240
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 256
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 272
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 288
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 304
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 320
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 336
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 352
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 368
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 384
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 400
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 416
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 432
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 448
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 464
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 480
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 496
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 512
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 528
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 544
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 560
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 576
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 592
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 608
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 624
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 640
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 656
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 672
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 688
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 704
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 720
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 736
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 752
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 768
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 784
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 800
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 816
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 832
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 848
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 864
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 880
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 896
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 912
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 928
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 944
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 960
- image: "elide.0.png"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 976
- hash: "7d056af7620fe8387955a1401a4f088a"
+ image: "elide.1.png"
}
Key {
type: 6
key: 16777249
- modifiers: 0
+ modifiers: 67108864
text: ""
autorep: false
count: 1
}
Frame {
msec: 992
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 1008
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 1024
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 1040
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
Frame {
msec: 1056
- hash: "7d056af7620fe8387955a1401a4f088a"
+ hash: "8401ef19b1e07ca917b8b061888d4e70"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png
index 4df514af97..0b08fba601 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png
index e752fec6fa..dbf8cd3d65 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png
index d2f8633295..09646f88ba 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png
index 016232161d..b6734b4aea 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png
new file mode 100644
index 0000000000..861f6b040c
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml
index b5319428e6..026f8807da 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml
@@ -6,986 +6,986 @@ VisualTest {
}
Frame {
msec: 16
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ image: "elide2.0.png"
}
Frame {
msec: 32
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "d482dd54c0f3876a11d80979ada91fa9"
}
Frame {
msec: 48
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "d482dd54c0f3876a11d80979ada91fa9"
}
Frame {
msec: 64
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "d482dd54c0f3876a11d80979ada91fa9"
}
Frame {
msec: 80
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "d482dd54c0f3876a11d80979ada91fa9"
}
Frame {
msec: 96
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "d482dd54c0f3876a11d80979ada91fa9"
}
Frame {
msec: 112
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "3eb1cc8fa11ae88a3bf5004263805264"
}
Frame {
msec: 128
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "3eb1cc8fa11ae88a3bf5004263805264"
}
Frame {
msec: 144
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "3eb1cc8fa11ae88a3bf5004263805264"
}
Frame {
msec: 160
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "3eb1cc8fa11ae88a3bf5004263805264"
}
Frame {
msec: 176
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "3eb1cc8fa11ae88a3bf5004263805264"
}
Frame {
msec: 192
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "b169f3828fafa79245bd5886d94a33b2"
}
Frame {
msec: 208
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "b169f3828fafa79245bd5886d94a33b2"
}
Frame {
msec: 224
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "b169f3828fafa79245bd5886d94a33b2"
}
Frame {
msec: 240
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "b169f3828fafa79245bd5886d94a33b2"
}
Frame {
msec: 256
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "c9a22f77cce333ea041730bc76d9bb96"
}
Frame {
msec: 272
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "c9a22f77cce333ea041730bc76d9bb96"
}
Frame {
msec: 288
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "c9a22f77cce333ea041730bc76d9bb96"
}
Frame {
msec: 304
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "c9a22f77cce333ea041730bc76d9bb96"
}
Frame {
msec: 320
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "958e5805b2bc2ffeaf8a6c8c24721dd5"
}
Frame {
msec: 336
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "958e5805b2bc2ffeaf8a6c8c24721dd5"
}
Frame {
msec: 352
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "958e5805b2bc2ffeaf8a6c8c24721dd5"
}
Frame {
msec: 368
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "958e5805b2bc2ffeaf8a6c8c24721dd5"
}
Frame {
msec: 384
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "958e5805b2bc2ffeaf8a6c8c24721dd5"
}
Frame {
msec: 400
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "ed14c796dc2980f7a1bdedb15698ae01"
}
Frame {
msec: 416
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "ed14c796dc2980f7a1bdedb15698ae01"
}
Frame {
msec: 432
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "ed14c796dc2980f7a1bdedb15698ae01"
}
Frame {
msec: 448
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "ed14c796dc2980f7a1bdedb15698ae01"
}
Frame {
msec: 464
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "ed14c796dc2980f7a1bdedb15698ae01"
}
Frame {
msec: 480
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "24d811c9b98b0cb140e7e82090e793ab"
}
Frame {
msec: 496
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "24d811c9b98b0cb140e7e82090e793ab"
}
Frame {
msec: 512
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "24d811c9b98b0cb140e7e82090e793ab"
}
Frame {
msec: 528
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "24d811c9b98b0cb140e7e82090e793ab"
}
Frame {
msec: 544
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "afa28a6a682128b1b44df31c78b63b04"
}
Frame {
msec: 560
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "afa28a6a682128b1b44df31c78b63b04"
}
Frame {
msec: 576
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "afa28a6a682128b1b44df31c78b63b04"
}
Frame {
msec: 592
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "afa28a6a682128b1b44df31c78b63b04"
}
Frame {
msec: 608
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "c43bba2d3406fabdafac344102d7d72c"
}
Frame {
msec: 624
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "c43bba2d3406fabdafac344102d7d72c"
}
Frame {
msec: 640
- hash: "90a45871fcfc509e60d4ee01527cde3b"
+ hash: "c43bba2d3406fabdafac344102d7d72c"
}
Frame {
msec: 656
- hash: "c73bf21c0c9946e123372c660c78e7dd"
+ hash: "c43bba2d3406fabdafac344102d7d72c"
}
Frame {
msec: 672
- hash: "c73bf21c0c9946e123372c660c78e7dd"
+ hash: "c43bba2d3406fabdafac344102d7d72c"
}
Frame {
msec: 688
- hash: "c73bf21c0c9946e123372c660c78e7dd"
+ hash: "0e1fb18acb72ca1da6fd619e31dd2c86"
}
Frame {
msec: 704
- hash: "bba29f9ce1a1d7dafdfe34b0ab952658"
+ hash: "0e1fb18acb72ca1da6fd619e31dd2c86"
}
Frame {
msec: 720
- hash: "bba29f9ce1a1d7dafdfe34b0ab952658"
+ hash: "0e1fb18acb72ca1da6fd619e31dd2c86"
}
Frame {
msec: 736
- hash: "bba29f9ce1a1d7dafdfe34b0ab952658"
+ hash: "0e1fb18acb72ca1da6fd619e31dd2c86"
}
Frame {
msec: 752
- hash: "bba29f9ce1a1d7dafdfe34b0ab952658"
+ hash: "0e1fb18acb72ca1da6fd619e31dd2c86"
}
Frame {
msec: 768
- hash: "bba29f9ce1a1d7dafdfe34b0ab952658"
+ hash: "d5780e5b30828f33d18c1f4e32ba8c3f"
}
Frame {
msec: 784
- hash: "26f95496c4f1fa217d681a1ae79eff86"
+ hash: "d5780e5b30828f33d18c1f4e32ba8c3f"
}
Frame {
msec: 800
- hash: "26f95496c4f1fa217d681a1ae79eff86"
+ hash: "d5780e5b30828f33d18c1f4e32ba8c3f"
}
Frame {
msec: 816
- hash: "26f95496c4f1fa217d681a1ae79eff86"
+ hash: "d5780e5b30828f33d18c1f4e32ba8c3f"
}
Frame {
msec: 832
- hash: "26f95496c4f1fa217d681a1ae79eff86"
+ hash: "28bdd1ab1c1af1b39a2f9d11be456682"
}
Frame {
msec: 848
- hash: "96a83eae50a073573ace90239a64d326"
+ hash: "28bdd1ab1c1af1b39a2f9d11be456682"
}
Frame {
msec: 864
- hash: "96a83eae50a073573ace90239a64d326"
+ hash: "28bdd1ab1c1af1b39a2f9d11be456682"
}
Frame {
msec: 880
- hash: "7b15d75c611f24977f2a1b44ef9e16d8"
+ hash: "28bdd1ab1c1af1b39a2f9d11be456682"
}
Frame {
msec: 896
- hash: "7b15d75c611f24977f2a1b44ef9e16d8"
+ hash: "28bdd1ab1c1af1b39a2f9d11be456682"
}
Frame {
msec: 912
- hash: "7b15d75c611f24977f2a1b44ef9e16d8"
+ hash: "e34a9080716cebc0260e682960cc7c6e"
}
Frame {
msec: 928
- hash: "7b15d75c611f24977f2a1b44ef9e16d8"
+ hash: "e34a9080716cebc0260e682960cc7c6e"
}
Frame {
msec: 944
- hash: "7b15d75c611f24977f2a1b44ef9e16d8"
+ hash: "e34a9080716cebc0260e682960cc7c6e"
}
Frame {
msec: 960
- image: "elide2.0.png"
+ hash: "e34a9080716cebc0260e682960cc7c6e"
}
Frame {
msec: 976
- hash: "7b15d75c611f24977f2a1b44ef9e16d8"
+ image: "elide2.1.png"
}
Frame {
msec: 992
- hash: "7b000cccb4e4cdaa53b025d235478b1c"
+ hash: "61959fc3d6f84a9fe88ec1a2979da9af"
}
Frame {
msec: 1008
- hash: "7b000cccb4e4cdaa53b025d235478b1c"
+ hash: "61959fc3d6f84a9fe88ec1a2979da9af"
}
Frame {
msec: 1024
- hash: "18366b01550fdd4a7dc7305a6289ac9b"
+ hash: "61959fc3d6f84a9fe88ec1a2979da9af"
}
Frame {
msec: 1040
- hash: "18366b01550fdd4a7dc7305a6289ac9b"
+ hash: "47794b18771d6d558ebbca881de92377"
}
Frame {
msec: 1056
- hash: "18366b01550fdd4a7dc7305a6289ac9b"
+ hash: "47794b18771d6d558ebbca881de92377"
}
Frame {
msec: 1072
- hash: "18366b01550fdd4a7dc7305a6289ac9b"
+ hash: "47794b18771d6d558ebbca881de92377"
}
Frame {
msec: 1088
- hash: "18366b01550fdd4a7dc7305a6289ac9b"
+ hash: "47794b18771d6d558ebbca881de92377"
}
Frame {
msec: 1104
- hash: "cde86069e7f9809ef2c88cc6ea83910b"
+ hash: "47794b18771d6d558ebbca881de92377"
}
Frame {
msec: 1120
- hash: "cde86069e7f9809ef2c88cc6ea83910b"
+ hash: "ba34b024ddb4e701d1d7f0c19e24d6cf"
}
Frame {
msec: 1136
- hash: "cde86069e7f9809ef2c88cc6ea83910b"
+ hash: "ba34b024ddb4e701d1d7f0c19e24d6cf"
}
Frame {
msec: 1152
- hash: "cde86069e7f9809ef2c88cc6ea83910b"
+ hash: "ba34b024ddb4e701d1d7f0c19e24d6cf"
}
Frame {
msec: 1168
- hash: "b8c7416944cb741ceb4ee0e8545037b1"
+ hash: "ba34b024ddb4e701d1d7f0c19e24d6cf"
}
Frame {
msec: 1184
- hash: "b8c7416944cb741ceb4ee0e8545037b1"
+ hash: "ba34b024ddb4e701d1d7f0c19e24d6cf"
}
Frame {
msec: 1200
- hash: "b8c7416944cb741ceb4ee0e8545037b1"
+ hash: "e94344268d2a118053ecc3aef278d91d"
}
Frame {
msec: 1216
- hash: "74a03bf98bb205d7962e0fcc025c4ed3"
+ hash: "e94344268d2a118053ecc3aef278d91d"
}
Frame {
msec: 1232
- hash: "74a03bf98bb205d7962e0fcc025c4ed3"
+ hash: "e94344268d2a118053ecc3aef278d91d"
}
Frame {
msec: 1248
- hash: "74a03bf98bb205d7962e0fcc025c4ed3"
+ hash: "e94344268d2a118053ecc3aef278d91d"
}
Frame {
msec: 1264
- hash: "74a03bf98bb205d7962e0fcc025c4ed3"
+ hash: "df1959605d3bd74e84e51cbd4d322235"
}
Frame {
msec: 1280
- hash: "0d286d7e274868e87f7de4367b69386e"
+ hash: "df1959605d3bd74e84e51cbd4d322235"
}
Frame {
msec: 1296
- hash: "0d286d7e274868e87f7de4367b69386e"
+ hash: "df1959605d3bd74e84e51cbd4d322235"
}
Frame {
msec: 1312
- hash: "892e9e8feeb15bbad5f38cb354aa7290"
+ hash: "df1959605d3bd74e84e51cbd4d322235"
}
Frame {
msec: 1328
- hash: "892e9e8feeb15bbad5f38cb354aa7290"
+ hash: "26e1c8d13f0dd3713dce24211a8d26c1"
}
Frame {
msec: 1344
- hash: "892e9e8feeb15bbad5f38cb354aa7290"
+ hash: "26e1c8d13f0dd3713dce24211a8d26c1"
}
Frame {
msec: 1360
- hash: "06d6ad94b01af5b441fd64536f7740ff"
+ hash: "26e1c8d13f0dd3713dce24211a8d26c1"
}
Frame {
msec: 1376
- hash: "06d6ad94b01af5b441fd64536f7740ff"
+ hash: "26e1c8d13f0dd3713dce24211a8d26c1"
}
Frame {
msec: 1392
- hash: "06d6ad94b01af5b441fd64536f7740ff"
+ hash: "26e1c8d13f0dd3713dce24211a8d26c1"
}
Frame {
msec: 1408
- hash: "0552844f7915835d3a35a01137d4c310"
+ hash: "fd1344db48093182eb2c2872ceb887df"
}
Frame {
msec: 1424
- hash: "0552844f7915835d3a35a01137d4c310"
+ hash: "fd1344db48093182eb2c2872ceb887df"
}
Frame {
msec: 1440
- hash: "0552844f7915835d3a35a01137d4c310"
+ hash: "fd1344db48093182eb2c2872ceb887df"
}
Frame {
msec: 1456
- hash: "0552844f7915835d3a35a01137d4c310"
+ hash: "fd1344db48093182eb2c2872ceb887df"
}
Frame {
msec: 1472
- hash: "0552844f7915835d3a35a01137d4c310"
+ hash: "fd1344db48093182eb2c2872ceb887df"
}
Frame {
msec: 1488
- hash: "afdf5d4d9e49a82a395afad6b3fe4f86"
+ hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81"
}
Frame {
msec: 1504
- hash: "afdf5d4d9e49a82a395afad6b3fe4f86"
+ hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81"
}
Frame {
msec: 1520
- hash: "afdf5d4d9e49a82a395afad6b3fe4f86"
+ hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81"
}
Frame {
msec: 1536
- hash: "afdf5d4d9e49a82a395afad6b3fe4f86"
+ hash: "a4bf54bbb5bcbf54de6a7a2be9b73b81"
}
Frame {
msec: 1552
- hash: "bb434e586d40ae0ebcb89cde55a4ca11"
+ hash: "072a6c0e64853f57487845f2ff376c12"
}
Frame {
msec: 1568
- hash: "bb434e586d40ae0ebcb89cde55a4ca11"
+ hash: "072a6c0e64853f57487845f2ff376c12"
}
Frame {
msec: 1584
- hash: "bb434e586d40ae0ebcb89cde55a4ca11"
+ hash: "072a6c0e64853f57487845f2ff376c12"
}
Frame {
msec: 1600
- hash: "bb434e586d40ae0ebcb89cde55a4ca11"
+ hash: "072a6c0e64853f57487845f2ff376c12"
}
Frame {
msec: 1616
- hash: "bb434e586d40ae0ebcb89cde55a4ca11"
+ hash: "072a6c0e64853f57487845f2ff376c12"
}
Frame {
msec: 1632
- hash: "771561a07b3eb2396231b17343da7125"
+ hash: "d4183aba9cd5607ea1ff1572c78d33cc"
}
Frame {
msec: 1648
- hash: "771561a07b3eb2396231b17343da7125"
+ hash: "d4183aba9cd5607ea1ff1572c78d33cc"
}
Frame {
msec: 1664
- hash: "771561a07b3eb2396231b17343da7125"
+ hash: "d4183aba9cd5607ea1ff1572c78d33cc"
}
Frame {
msec: 1680
- hash: "771561a07b3eb2396231b17343da7125"
+ hash: "d4183aba9cd5607ea1ff1572c78d33cc"
}
Frame {
msec: 1696
- hash: "771561a07b3eb2396231b17343da7125"
+ hash: "31cb8e151b34187f712b269b38a317a7"
}
Frame {
msec: 1712
- hash: "771561a07b3eb2396231b17343da7125"
+ hash: "31cb8e151b34187f712b269b38a317a7"
}
Frame {
msec: 1728
- hash: "d3d23db79c5f2a374b267bcda8919d1e"
+ hash: "31cb8e151b34187f712b269b38a317a7"
}
Frame {
msec: 1744
- hash: "d3d23db79c5f2a374b267bcda8919d1e"
+ hash: "31cb8e151b34187f712b269b38a317a7"
}
Key {
type: 6
key: 16777249
- modifiers: 0
+ modifiers: 67108864
text: ""
autorep: false
count: 1
}
Frame {
msec: 1760
- hash: "36a40dbdbb39122d30c26643e5924548"
+ hash: "31cb8e151b34187f712b269b38a317a7"
}
Frame {
msec: 1776
- hash: "36a40dbdbb39122d30c26643e5924548"
+ hash: "e24ad0aed6a071d6da9f51af00c69300"
}
Frame {
msec: 1792
- hash: "36a40dbdbb39122d30c26643e5924548"
+ hash: "e24ad0aed6a071d6da9f51af00c69300"
}
Frame {
msec: 1808
- hash: "36a40dbdbb39122d30c26643e5924548"
+ hash: "e24ad0aed6a071d6da9f51af00c69300"
}
Frame {
msec: 1824
- hash: "36a40dbdbb39122d30c26643e5924548"
+ hash: "e24ad0aed6a071d6da9f51af00c69300"
}
Frame {
msec: 1840
- hash: "6a202f32d3d7a7c9edc97e55c2fe7aca"
+ hash: "760eea420a5eb52ccd1f6a29d6701338"
}
Frame {
msec: 1856
- hash: "6a202f32d3d7a7c9edc97e55c2fe7aca"
+ hash: "760eea420a5eb52ccd1f6a29d6701338"
}
Frame {
msec: 1872
- hash: "6a202f32d3d7a7c9edc97e55c2fe7aca"
+ hash: "760eea420a5eb52ccd1f6a29d6701338"
}
Frame {
msec: 1888
- hash: "765b11a4fff9a7295440568899107159"
+ hash: "760eea420a5eb52ccd1f6a29d6701338"
}
Frame {
msec: 1904
- hash: "765b11a4fff9a7295440568899107159"
+ hash: "760eea420a5eb52ccd1f6a29d6701338"
}
Frame {
msec: 1920
- image: "elide2.1.png"
+ hash: "07cdcdb9b551750c4a742ee6dff9f3f9"
}
Frame {
msec: 1936
- hash: "765b11a4fff9a7295440568899107159"
+ image: "elide2.2.png"
}
Frame {
msec: 1952
- hash: "765b11a4fff9a7295440568899107159"
+ hash: "07cdcdb9b551750c4a742ee6dff9f3f9"
}
Frame {
msec: 1968
- hash: "e2726e028d0a17a918a28d248a087d71"
+ hash: "07cdcdb9b551750c4a742ee6dff9f3f9"
}
Frame {
msec: 1984
- hash: "e2726e028d0a17a918a28d248a087d71"
+ hash: "ec4dada16fb19fb4cf24367c9f25f161"
}
Frame {
msec: 2000
- hash: "e2726e028d0a17a918a28d248a087d71"
+ hash: "ec4dada16fb19fb4cf24367c9f25f161"
}
Frame {
msec: 2016
- hash: "e2726e028d0a17a918a28d248a087d71"
+ hash: "ec4dada16fb19fb4cf24367c9f25f161"
}
Frame {
msec: 2032
- hash: "94243dc2a8013e86250c993103b2d789"
+ hash: "ec4dada16fb19fb4cf24367c9f25f161"
}
Frame {
msec: 2048
- hash: "94243dc2a8013e86250c993103b2d789"
+ hash: "ec4dada16fb19fb4cf24367c9f25f161"
}
Frame {
msec: 2064
- hash: "94243dc2a8013e86250c993103b2d789"
+ hash: "f5ef19dc69f8b6060056f7005f613ca3"
}
Frame {
msec: 2080
- hash: "94243dc2a8013e86250c993103b2d789"
+ hash: "f5ef19dc69f8b6060056f7005f613ca3"
}
Frame {
msec: 2096
- hash: "94243dc2a8013e86250c993103b2d789"
+ hash: "f5ef19dc69f8b6060056f7005f613ca3"
}
Frame {
msec: 2112
- hash: "d8fdababa06e1cafa9047de16d5a07b5"
+ hash: "f5ef19dc69f8b6060056f7005f613ca3"
}
Frame {
msec: 2128
- hash: "d8fdababa06e1cafa9047de16d5a07b5"
+ hash: "6bd00519ea14f0dd34d45de4deaaa65e"
}
Frame {
msec: 2144
- hash: "d8fdababa06e1cafa9047de16d5a07b5"
+ hash: "6bd00519ea14f0dd34d45de4deaaa65e"
}
Frame {
msec: 2160
- hash: "d8fdababa06e1cafa9047de16d5a07b5"
+ hash: "6bd00519ea14f0dd34d45de4deaaa65e"
}
Frame {
msec: 2176
- hash: "d8fdababa06e1cafa9047de16d5a07b5"
+ hash: "6bd00519ea14f0dd34d45de4deaaa65e"
}
Frame {
msec: 2192
- hash: "f31d3f99faff3289b38ec91a43108707"
+ hash: "6bd00519ea14f0dd34d45de4deaaa65e"
}
Frame {
msec: 2208
- hash: "f31d3f99faff3289b38ec91a43108707"
+ hash: "1c3e491e889e408f705477f060103243"
}
Frame {
msec: 2224
- hash: "f31d3f99faff3289b38ec91a43108707"
+ hash: "1c3e491e889e408f705477f060103243"
}
Frame {
msec: 2240
- hash: "60468f768e70c91cd28dca9479ed7738"
+ hash: "1c3e491e889e408f705477f060103243"
}
Frame {
msec: 2256
- hash: "60468f768e70c91cd28dca9479ed7738"
+ hash: "1c3e491e889e408f705477f060103243"
}
Frame {
msec: 2272
- hash: "fd5e8714cdd406f5626682c15a6efa38"
+ hash: "80bc59211ffab64820e306e6eb13d2fc"
}
Frame {
msec: 2288
- hash: "fd5e8714cdd406f5626682c15a6efa38"
+ hash: "80bc59211ffab64820e306e6eb13d2fc"
}
Frame {
msec: 2304
- hash: "fd5e8714cdd406f5626682c15a6efa38"
+ hash: "80bc59211ffab64820e306e6eb13d2fc"
}
Frame {
msec: 2320
- hash: "20f37569f7f3b374753b991b28d98e74"
+ hash: "80bc59211ffab64820e306e6eb13d2fc"
}
Frame {
msec: 2336
- hash: "20f37569f7f3b374753b991b28d98e74"
+ hash: "80bc59211ffab64820e306e6eb13d2fc"
}
Frame {
msec: 2352
- hash: "20f37569f7f3b374753b991b28d98e74"
+ hash: "7765c76dd2ef99e4d7286fcb3a172a07"
}
Frame {
msec: 2368
- hash: "20f37569f7f3b374753b991b28d98e74"
+ hash: "7765c76dd2ef99e4d7286fcb3a172a07"
}
Frame {
msec: 2384
- hash: "20f37569f7f3b374753b991b28d98e74"
+ hash: "7765c76dd2ef99e4d7286fcb3a172a07"
}
Frame {
msec: 2400
- hash: "8ab72206d4ba87effd44844c67ab4d53"
+ hash: "7765c76dd2ef99e4d7286fcb3a172a07"
}
Frame {
msec: 2416
- hash: "8ab72206d4ba87effd44844c67ab4d53"
+ hash: "7765c76dd2ef99e4d7286fcb3a172a07"
}
Frame {
msec: 2432
- hash: "65fccdd3a8803ec1d70a12407366fb57"
+ hash: "8fedc4d5d4161922c1d9d50adcf67e4a"
}
Frame {
msec: 2448
- hash: "65fccdd3a8803ec1d70a12407366fb57"
+ hash: "8fedc4d5d4161922c1d9d50adcf67e4a"
}
Frame {
msec: 2464
- hash: "65fccdd3a8803ec1d70a12407366fb57"
+ hash: "8fedc4d5d4161922c1d9d50adcf67e4a"
}
Frame {
msec: 2480
- hash: "65fccdd3a8803ec1d70a12407366fb57"
+ hash: "8fedc4d5d4161922c1d9d50adcf67e4a"
}
Frame {
msec: 2496
- hash: "65fccdd3a8803ec1d70a12407366fb57"
+ hash: "4f26d7ab05e6d39a869be1259e33c739"
}
Frame {
msec: 2512
- hash: "ea98cc56d2f402814d8c1b952c8bd9a0"
+ hash: "4f26d7ab05e6d39a869be1259e33c739"
}
Frame {
msec: 2528
- hash: "ea98cc56d2f402814d8c1b952c8bd9a0"
+ hash: "4f26d7ab05e6d39a869be1259e33c739"
}
Frame {
msec: 2544
- hash: "ea98cc56d2f402814d8c1b952c8bd9a0"
+ hash: "4f26d7ab05e6d39a869be1259e33c739"
}
Frame {
msec: 2560
- hash: "ea98cc56d2f402814d8c1b952c8bd9a0"
+ hash: "d4ead42bcc2e283e513f1ab4f8a89f27"
}
Frame {
msec: 2576
- hash: "6dd6532db6afba17d36930bfd71abb5d"
+ hash: "d4ead42bcc2e283e513f1ab4f8a89f27"
}
Frame {
msec: 2592
- hash: "6dd6532db6afba17d36930bfd71abb5d"
+ hash: "d4ead42bcc2e283e513f1ab4f8a89f27"
}
Frame {
msec: 2608
- hash: "6dd6532db6afba17d36930bfd71abb5d"
+ hash: "d4ead42bcc2e283e513f1ab4f8a89f27"
}
Frame {
msec: 2624
- hash: "6dd6532db6afba17d36930bfd71abb5d"
+ hash: "d4ead42bcc2e283e513f1ab4f8a89f27"
}
Frame {
msec: 2640
- hash: "6dd6532db6afba17d36930bfd71abb5d"
+ hash: "6d91b100f369381b24052e5a4466e24d"
}
Frame {
msec: 2656
- hash: "70989ac02176a37beb2cf259cd2d9770"
+ hash: "6d91b100f369381b24052e5a4466e24d"
}
Frame {
msec: 2672
- hash: "70989ac02176a37beb2cf259cd2d9770"
+ hash: "6d91b100f369381b24052e5a4466e24d"
}
Frame {
msec: 2688
- hash: "70989ac02176a37beb2cf259cd2d9770"
+ hash: "6d91b100f369381b24052e5a4466e24d"
}
Frame {
msec: 2704
- hash: "70989ac02176a37beb2cf259cd2d9770"
+ hash: "2d6082b41e3cfdc3be9c130311ac854a"
}
Frame {
msec: 2720
- hash: "1c6d8786cb42afa2af611dec5ebdcda7"
+ hash: "2d6082b41e3cfdc3be9c130311ac854a"
}
Frame {
msec: 2736
- hash: "1c6d8786cb42afa2af611dec5ebdcda7"
+ hash: "2d6082b41e3cfdc3be9c130311ac854a"
}
Frame {
msec: 2752
- hash: "3e8215d2cb61404230284ddd0041a79c"
+ hash: "2d6082b41e3cfdc3be9c130311ac854a"
}
Frame {
msec: 2768
- hash: "3e8215d2cb61404230284ddd0041a79c"
+ hash: "2d6082b41e3cfdc3be9c130311ac854a"
}
Frame {
msec: 2784
- hash: "3e8215d2cb61404230284ddd0041a79c"
+ hash: "78732b58812f202768fa224aefce187d"
}
Frame {
msec: 2800
- hash: "3e8215d2cb61404230284ddd0041a79c"
+ hash: "78732b58812f202768fa224aefce187d"
}
Frame {
msec: 2816
- hash: "3e8215d2cb61404230284ddd0041a79c"
+ hash: "78732b58812f202768fa224aefce187d"
}
Frame {
msec: 2832
- hash: "a4ed37665222950eab7fcb53dbe22bcf"
+ hash: "78732b58812f202768fa224aefce187d"
}
Frame {
msec: 2848
- hash: "a4ed37665222950eab7fcb53dbe22bcf"
+ hash: "54d728d677cf3a07c4da7727a75e6c59"
}
Frame {
msec: 2864
- hash: "a4ed37665222950eab7fcb53dbe22bcf"
+ hash: "54d728d677cf3a07c4da7727a75e6c59"
}
Frame {
msec: 2880
- image: "elide2.2.png"
+ hash: "54d728d677cf3a07c4da7727a75e6c59"
}
Frame {
msec: 2896
- hash: "a4ed37665222950eab7fcb53dbe22bcf"
+ image: "elide2.3.png"
}
Frame {
msec: 2912
- hash: "a4ed37665222950eab7fcb53dbe22bcf"
+ hash: "54d728d677cf3a07c4da7727a75e6c59"
}
Frame {
msec: 2928
- hash: "a7f26f5fbcc97f408974e4bc23fd0b70"
+ hash: "45ec3534077f6fa66d7710010cceb332"
}
Frame {
msec: 2944
- hash: "a7f26f5fbcc97f408974e4bc23fd0b70"
+ hash: "45ec3534077f6fa66d7710010cceb332"
}
Frame {
msec: 2960
- hash: "913478b8d5d05967efd1c83e80e773e2"
+ hash: "45ec3534077f6fa66d7710010cceb332"
}
Frame {
msec: 2976
- hash: "913478b8d5d05967efd1c83e80e773e2"
+ hash: "45ec3534077f6fa66d7710010cceb332"
}
Frame {
msec: 2992
- hash: "913478b8d5d05967efd1c83e80e773e2"
+ hash: "ef909728fa59292ffed1d047835439d6"
}
Frame {
msec: 3008
- hash: "130749caf262b3055e7ac229b6b89548"
+ hash: "ef909728fa59292ffed1d047835439d6"
}
Frame {
msec: 3024
- hash: "130749caf262b3055e7ac229b6b89548"
+ hash: "ef909728fa59292ffed1d047835439d6"
}
Frame {
msec: 3040
- hash: "130749caf262b3055e7ac229b6b89548"
+ hash: "ef909728fa59292ffed1d047835439d6"
}
Frame {
msec: 3056
- hash: "130749caf262b3055e7ac229b6b89548"
+ hash: "ef909728fa59292ffed1d047835439d6"
}
Frame {
msec: 3072
- hash: "130749caf262b3055e7ac229b6b89548"
+ hash: "454741313d087e5d13ddeaf02663746f"
}
Frame {
msec: 3088
- hash: "d7260d913c58065a671ff6b931bb2fb6"
+ hash: "454741313d087e5d13ddeaf02663746f"
}
Frame {
msec: 3104
- hash: "d7260d913c58065a671ff6b931bb2fb6"
+ hash: "454741313d087e5d13ddeaf02663746f"
}
Frame {
msec: 3120
- hash: "d7260d913c58065a671ff6b931bb2fb6"
+ hash: "454741313d087e5d13ddeaf02663746f"
}
Frame {
msec: 3136
- hash: "d7260d913c58065a671ff6b931bb2fb6"
+ hash: "454741313d087e5d13ddeaf02663746f"
}
Frame {
msec: 3152
- hash: "9059402dce5cb1813af8f7ebbd831bca"
+ hash: "02928f0a8f8f1011028114487b8dccf8"
}
Frame {
msec: 3168
- hash: "9059402dce5cb1813af8f7ebbd831bca"
+ hash: "02928f0a8f8f1011028114487b8dccf8"
}
Frame {
msec: 3184
- hash: "9059402dce5cb1813af8f7ebbd831bca"
+ hash: "02928f0a8f8f1011028114487b8dccf8"
}
Frame {
msec: 3200
- hash: "80387fc8aedc0c490c689c3a1711fe9f"
+ hash: "02928f0a8f8f1011028114487b8dccf8"
}
Frame {
msec: 3216
- hash: "80387fc8aedc0c490c689c3a1711fe9f"
+ hash: "e0fca67bb095c9891831cd9355b4880d"
}
Frame {
msec: 3232
- hash: "80387fc8aedc0c490c689c3a1711fe9f"
+ hash: "e0fca67bb095c9891831cd9355b4880d"
}
Frame {
msec: 3248
- hash: "f461bf58cbfd345a3f4e087cfcb0e9f0"
+ hash: "e0fca67bb095c9891831cd9355b4880d"
}
Frame {
msec: 3264
- hash: "f461bf58cbfd345a3f4e087cfcb0e9f0"
+ hash: "e0fca67bb095c9891831cd9355b4880d"
}
Frame {
msec: 3280
- hash: "d41a792b81cb891a91f2bff6dbee3bdd"
+ hash: "f5ae54931d953fc95cfbdbde1993bebe"
}
Frame {
msec: 3296
- hash: "d41a792b81cb891a91f2bff6dbee3bdd"
+ hash: "f5ae54931d953fc95cfbdbde1993bebe"
}
Frame {
msec: 3312
- hash: "d41a792b81cb891a91f2bff6dbee3bdd"
+ hash: "f5ae54931d953fc95cfbdbde1993bebe"
}
Frame {
msec: 3328
- hash: "d41a792b81cb891a91f2bff6dbee3bdd"
+ hash: "f5ae54931d953fc95cfbdbde1993bebe"
}
Frame {
msec: 3344
- hash: "d41a792b81cb891a91f2bff6dbee3bdd"
+ hash: "f5ae54931d953fc95cfbdbde1993bebe"
}
Frame {
msec: 3360
- hash: "664ac430dd416e6d1ed7e001458202cf"
+ hash: "9afb0b2a185e2f825e9fad1c3644f6cb"
}
Frame {
msec: 3376
- hash: "664ac430dd416e6d1ed7e001458202cf"
+ hash: "9afb0b2a185e2f825e9fad1c3644f6cb"
}
Frame {
msec: 3392
- hash: "664ac430dd416e6d1ed7e001458202cf"
+ hash: "9afb0b2a185e2f825e9fad1c3644f6cb"
}
Frame {
msec: 3408
- hash: "664ac430dd416e6d1ed7e001458202cf"
+ hash: "9afb0b2a185e2f825e9fad1c3644f6cb"
}
Frame {
msec: 3424
- hash: "664ac430dd416e6d1ed7e001458202cf"
+ hash: "9afb0b2a185e2f825e9fad1c3644f6cb"
}
Frame {
msec: 3440
- hash: "c7a9e47b613745858a76a57e1782b566"
+ hash: "f3f5a81d3b5f644a00cea6203f38994c"
}
Frame {
msec: 3456
- hash: "c7a9e47b613745858a76a57e1782b566"
+ hash: "f3f5a81d3b5f644a00cea6203f38994c"
}
Frame {
msec: 3472
- hash: "b90d46cbd9d7d1d82cb9abfbe27fc549"
+ hash: "f3f5a81d3b5f644a00cea6203f38994c"
}
Frame {
msec: 3488
- hash: "b90d46cbd9d7d1d82cb9abfbe27fc549"
+ hash: "f3f5a81d3b5f644a00cea6203f38994c"
}
Frame {
msec: 3504
- hash: "b90d46cbd9d7d1d82cb9abfbe27fc549"
+ hash: "bd9884712fd5afe67a3622c809bf4e76"
}
Frame {
msec: 3520
- hash: "59c03ceae9b13576bd0e285234dfe264"
+ hash: "bd9884712fd5afe67a3622c809bf4e76"
}
Frame {
msec: 3536
- hash: "59c03ceae9b13576bd0e285234dfe264"
+ hash: "bd9884712fd5afe67a3622c809bf4e76"
}
Frame {
msec: 3552
- hash: "59c03ceae9b13576bd0e285234dfe264"
+ hash: "bd9884712fd5afe67a3622c809bf4e76"
}
Frame {
msec: 3568
- hash: "59c03ceae9b13576bd0e285234dfe264"
+ hash: "c9324386954380a72ef4084d13e623b5"
}
Frame {
msec: 3584
- hash: "59c03ceae9b13576bd0e285234dfe264"
+ hash: "c9324386954380a72ef4084d13e623b5"
}
Frame {
msec: 3600
- hash: "b883d12eea2ec596cb6ee81f2d1db35f"
+ hash: "c9324386954380a72ef4084d13e623b5"
}
Frame {
msec: 3616
- hash: "b883d12eea2ec596cb6ee81f2d1db35f"
+ hash: "c9324386954380a72ef4084d13e623b5"
}
Frame {
msec: 3632
- hash: "b883d12eea2ec596cb6ee81f2d1db35f"
+ hash: "c9324386954380a72ef4084d13e623b5"
}
Frame {
msec: 3648
- hash: "b883d12eea2ec596cb6ee81f2d1db35f"
+ hash: "6d05fd8e8690e44293af1809f359aa72"
}
Frame {
msec: 3664
- hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0"
+ hash: "6d05fd8e8690e44293af1809f359aa72"
}
Frame {
msec: 3680
- hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0"
+ hash: "6d05fd8e8690e44293af1809f359aa72"
}
Frame {
msec: 3696
- hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0"
+ hash: "6d05fd8e8690e44293af1809f359aa72"
}
Frame {
msec: 3712
- hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0"
+ hash: "6d05fd8e8690e44293af1809f359aa72"
}
Frame {
msec: 3728
- hash: "9bd66e03c36c8cc279c9cfb1ea9e96a0"
+ hash: "2d7350a79f5a68d3e3dfc994c6e002ed"
}
Frame {
msec: 3744
- hash: "ee357c3850d0f328db859e7b790bed83"
+ hash: "2d7350a79f5a68d3e3dfc994c6e002ed"
}
Frame {
msec: 3760
- hash: "ee357c3850d0f328db859e7b790bed83"
+ hash: "2d7350a79f5a68d3e3dfc994c6e002ed"
}
Frame {
msec: 3776
- hash: "f706095272153c1e9fc4a4825ba54d91"
+ hash: "2d7350a79f5a68d3e3dfc994c6e002ed"
}
Frame {
msec: 3792
- hash: "f706095272153c1e9fc4a4825ba54d91"
+ hash: "edb5d50f23a293a7791122fc159aaaa0"
}
Frame {
msec: 3808
- hash: "34f4d03164469f99bb7bcb365041cf8e"
+ hash: "edb5d50f23a293a7791122fc159aaaa0"
}
Frame {
msec: 3824
- hash: "34f4d03164469f99bb7bcb365041cf8e"
+ hash: "edb5d50f23a293a7791122fc159aaaa0"
}
Frame {
msec: 3840
- image: "elide2.3.png"
+ hash: "edb5d50f23a293a7791122fc159aaaa0"
}
Frame {
msec: 3856
- hash: "34f4d03164469f99bb7bcb365041cf8e"
+ image: "elide2.4.png"
}
Frame {
msec: 3872
- hash: "34f4d03164469f99bb7bcb365041cf8e"
+ hash: "a863480fec9abf817752c5eb62a2ddf4"
}
Frame {
msec: 3888
- hash: "97cb5f52e1a5e82a15542b7e5f772fba"
+ hash: "a863480fec9abf817752c5eb62a2ddf4"
}
Frame {
msec: 3904
- hash: "97cb5f52e1a5e82a15542b7e5f772fba"
+ hash: "a863480fec9abf817752c5eb62a2ddf4"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png
index 8caaf5f19a..e1d3b75d4a 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png
new file mode 100644
index 0000000000..8013dc9c20
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml
index 30df3facf5..77a7b2ff61 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml
@@ -6,298 +6,298 @@ VisualTest {
}
Frame {
msec: 16
- hash: "2e258ad7cb0a2cd7c6c47a0b0a9563c1"
+ image: "multilength.0.png"
}
Frame {
msec: 32
- hash: "d818e0f4f1011a2a8f1d0d803fa18bc0"
+ hash: "ef2b4cc93e5bf5e64d3338921fe36336"
}
Frame {
msec: 48
- hash: "44b37be97bbd1f0e26d81f76d9643e51"
+ hash: "3ddbd1a53a36b0f8b36d87e742f3b1bd"
}
Frame {
msec: 64
- hash: "3079a5cf6b8277ae3e1b29ae09d04adc"
+ hash: "f7acfdaf29a3d7bd179b30db784ca01b"
}
Frame {
msec: 80
- hash: "ba899e6f18abb7105f915cef4e60f1e1"
+ hash: "b5277d02ed63180e845c60e1dd4da7d0"
}
Frame {
msec: 96
- hash: "6d2d2b3dc8afa60e32a39449ba90f78d"
+ hash: "a7964577d77943d5a62c02ea1e689eb7"
}
Frame {
msec: 112
- hash: "965af350a8fc20c7bcffb370802bc9d9"
+ hash: "fc597a07209bfea49227ec491b033af1"
}
Frame {
msec: 128
- hash: "8e088db1ff0eb9f5c28268dee929928c"
+ hash: "429a7dd5a23a5012f1985bcddd27ba0c"
}
Frame {
msec: 144
- hash: "a0ba6c6bd1e491778294346eeabd8138"
+ hash: "fbf845e137e0b389babdcd71a95c3060"
}
Frame {
msec: 160
- hash: "068a018a5c017cb76ebf3721e0acdb35"
+ hash: "1d1272df3a53cb9860d23be3343a143e"
}
Frame {
msec: 176
- hash: "efa65cae0a4d027c2ec508deecef8aa5"
+ hash: "cef05f6564b21fd2cbd02f6def604c0b"
}
Frame {
msec: 192
- hash: "9c224e97aa56c6b203a48fb689d72c9a"
+ hash: "be0ca54bc7aa23c2b9c56e3a0444197a"
}
Frame {
msec: 208
- hash: "4f78af1e82a2dd46bab2d237d4f574e5"
+ hash: "5372a7052d10b8c6c2204efdc88c2f48"
}
Frame {
msec: 224
- hash: "7d022c13e3ef07ca0b6618ae8865dbf1"
+ hash: "43b775c558843c1334e86ca4fcf07ae2"
}
Frame {
msec: 240
- hash: "1dc2ecf6cb92cd7d9e467de0049a8598"
+ hash: "10daf71511454ef4db3692a19ecbcbaa"
}
Frame {
msec: 256
- hash: "262174926ac657c3cd788e2383b5842b"
+ hash: "5c545ecb0ddfaa5d6cde266be6fae35c"
}
Frame {
msec: 272
- hash: "984c40aaa927f9e9e73ad228f057d3d9"
+ hash: "1a3c05b189c3adf87710eeb03296aec2"
}
Frame {
msec: 288
- hash: "0c74101beaeb0a59c1e6b1bf751ca71d"
+ hash: "de2c6f4d3bf4d245e45e47a743808f5d"
}
Frame {
msec: 304
- hash: "1c2dd6a6675014255e83c2ae734d717b"
+ hash: "7c71dcbd8e2be19ac2d090ab3e012a62"
}
Frame {
msec: 320
- hash: "f6ac3e9e82a9a710f500f8053b6030ac"
+ hash: "3bd42257fe4a5d941a8755e66db94870"
}
Frame {
msec: 336
- hash: "9676fdc060e5784e96534a962992c024"
+ hash: "d52f57a1f289d2c697fd1db2086a4df3"
}
Frame {
msec: 352
- hash: "c46634183e4bde82419bf757bd674a72"
+ hash: "5d9e22ca6b6f8e4805a49fcf9c6a4dd6"
}
Frame {
msec: 368
- hash: "d04d082f4a1602a308da7f373cbb4094"
+ hash: "cbafada44b434ac7fe64fdebef7a816e"
}
Frame {
msec: 384
- hash: "a4178c9ffbb74f3f221fc63bee26ca35"
+ hash: "4ac900c005cfedb9e3367a4612334cc1"
}
Frame {
msec: 400
- hash: "0667b13789a501995b2846f7d93fb973"
+ hash: "3dbe30edac497ca316bf39e55ff9580a"
}
Frame {
msec: 416
- hash: "fda46bf0beecbb4326b2fc6f6926f0a7"
+ hash: "e892891c063172d513f4f8c0a0b2644f"
}
Frame {
msec: 432
- hash: "85cbdea027d76dee1dad376679a40a22"
+ hash: "7c214a442c8f37d22f74343fdb7f7faa"
}
Frame {
msec: 448
- hash: "0fd56200749ea5882e1bd714e9803d44"
+ hash: "c4461c6c26eb9689e640149b7755bf14"
}
Frame {
msec: 464
- hash: "10bf5c477f64f442990716b7eec8fd70"
+ hash: "e7be611f007716a80698558d0600f5b6"
}
Frame {
msec: 480
- hash: "7cbd8ba3f09c3d00051cd33006381afb"
+ hash: "5a3abaa7b36fcd7e2279318671597386"
}
Frame {
msec: 496
- hash: "dca10161836025808cddce9fd93f2412"
+ hash: "2dba1fcba5bdce948fa56ffc02a7f80c"
}
Frame {
msec: 512
- hash: "b949ec6303ccaafc203066c7f9b33ef2"
+ hash: "55043bcce83e4f8899b1a692fe30fa67"
}
Frame {
msec: 528
- hash: "853c521bad75c08c0dfe3a00bed01136"
+ hash: "f92df1fb28a7da39ed907dd2bc177ab8"
}
Frame {
msec: 544
- hash: "dd76c440dc8cfcb7305409483d21d65d"
+ hash: "7dcf90cd5f81999359ed389c7050d934"
}
Frame {
msec: 560
- hash: "c9b70db4b94e4b0cc855102f43b8e731"
+ hash: "021014366809103b76bd5d472c43b062"
}
Frame {
msec: 576
- hash: "d196057b8aa1e11ec9cf11032b57ca03"
+ hash: "fff5b2c8d63083d132c0f106fad84fa1"
}
Frame {
msec: 592
- hash: "0fae715746a8a340a8f3c4428cf96783"
+ hash: "ab3a6a6c646d31be97884484a6647330"
}
Frame {
msec: 608
- hash: "dd2e89d00ce85b167fbc822fedbfb449"
+ hash: "d46a168f89d94a32496b75ee5d3794e4"
}
Frame {
msec: 624
- hash: "a5228adf745f580364eafcbbdd994178"
+ hash: "f7b62e86595a4d2c7f5a2cd52e0938b9"
}
Frame {
msec: 640
- hash: "f750f588ee00805bc3757940f95de9ae"
+ hash: "df95a29a101889c50537cfb1b027f9a6"
}
Frame {
msec: 656
- hash: "55a79fefc2bf6d42b442e68150e3a9bc"
+ hash: "4c6691ef37222260dce72868ae809d68"
}
Frame {
msec: 672
- hash: "7b932e7585e66cc7cd31f858ce78a6e1"
+ hash: "ad816534dcf446a1456894ff2b1afa33"
}
Frame {
msec: 688
- hash: "10f204c59a5bff0c49dfc7691c35cef8"
+ hash: "bfa9f9f833f38aedf766e061f3a18c48"
}
Frame {
msec: 704
- hash: "cf901c80729eb0b83b46777e727d43e2"
+ hash: "f4a6786e9db58cf3fd3f3b896d3cf84f"
}
Frame {
msec: 720
- hash: "f6bf6e11ef6a71d7e746fae1d0a44531"
+ hash: "e51e8b766e5d4a0f061dc6885fcf8eb3"
}
Frame {
msec: 736
- hash: "4a8795196ece8c0ef18319008dbc0f2f"
+ hash: "eab6d261429c36c4e37005f37b7823d5"
}
Frame {
msec: 752
- hash: "44d32f0b5377ad3b08928413f20e95e1"
+ hash: "3cc5db209a98daef06127bae53b1929d"
}
Frame {
msec: 768
- hash: "9e0dd160a465573cbac831a14e36ba6d"
+ hash: "230cd6e6ca18a921a21379dd85e24822"
}
Frame {
msec: 784
- hash: "fb2e2522cee569632d9682aa04e7ca08"
+ hash: "e3a877e8f01bf17fe6ea8b9fbb780f14"
}
Frame {
msec: 800
- hash: "71b0e8d7671cee10f4f71a80abcde7ec"
+ hash: "a19f504a81409dea775481f21f992ba6"
}
Frame {
msec: 816
- hash: "4affee92d320d6eca9995ddd8989627f"
+ hash: "e77cc3ab14551638e704a1493189d5d1"
}
Frame {
msec: 832
- hash: "b3e5e26a34cd491d3cd23f4e611266e2"
+ hash: "613bdf9d32358ab0db310ae1e2246d52"
}
Frame {
msec: 848
- hash: "aa185efe8d0c4c61d4df55266830cfd8"
+ hash: "d4fab0193f567cce4ad1e1cf6b156ce5"
}
Frame {
msec: 864
- hash: "19c01ead1135f84b4b3a32583815fd10"
+ hash: "03ce3083411d10b14ac0bb85b22bfbd1"
}
Frame {
msec: 880
- hash: "a231a722225c26ff764f16570d1e6beb"
+ hash: "4be10fb14abf82705d8071cf75956ece"
}
Frame {
msec: 896
- hash: "466fce12d10bd4b714d4ead14d1c5839"
+ hash: "4c1f150fb5ba1194ad198eb32f705af6"
}
Frame {
msec: 912
- hash: "158650554c8467ed7d93c3c11177e041"
+ hash: "5ddfd98c8a49eefe08ae33d0c0ea52ff"
}
Frame {
msec: 928
- hash: "ac16910bc816ca6c76a78160dda8380d"
+ hash: "f2018d16f38e113c9477c19431e3d1e4"
}
Frame {
msec: 944
- hash: "23ac6eeb0c9bd48dbc844b1263a18cbb"
+ hash: "9fe6406d65978dba74716f1ba02bdf76"
}
Frame {
msec: 960
- image: "multilength.0.png"
+ hash: "265d92edca113f465e624079c266b213"
}
Frame {
msec: 976
- hash: "3da0b9d963113cfb58152bac1c757065"
+ image: "multilength.1.png"
}
Frame {
msec: 992
- hash: "e1a33345ee1372069d9282406f1e5605"
+ hash: "6beb60f7645be5f1d07449610b5e13b0"
}
Frame {
msec: 1008
- hash: "da872c570bccf17e88ac7db1d6d076ae"
+ hash: "55c34cb290732a1fa94b5037477fd882"
}
Frame {
msec: 1024
- hash: "6feea54c6a7f9895001efeff177f9be9"
+ hash: "4d6ed8044e3ac5da61cf61f4d08c5a19"
}
Frame {
msec: 1040
- hash: "09049b33ca46a2fc2d06855e29ae66bf"
+ hash: "83657cfa447060a01d5fbdb890ad3fb9"
}
Frame {
msec: 1056
- hash: "cd96d789f57ac1d425942416337174f1"
+ hash: "b04b6cb7e5e464ecee15a2c9803a857f"
}
Frame {
msec: 1072
- hash: "0a763dd626e27ad14963aecfb8d7673c"
+ hash: "ea4f1707e49527f6cae0a3df1b75137b"
}
Frame {
msec: 1088
- hash: "3d81f68bb7aac95b66b0cd0defbb3657"
+ hash: "ae4893aca919be2d89f1107185b5fe9a"
}
Frame {
msec: 1104
- hash: "469b862006f99dfefcca803bc49287e3"
+ hash: "d991c469947a94ffcfb63716226fa912"
}
Frame {
msec: 1120
- hash: "c3f698102bd46231430ab9e8029b8192"
+ hash: "df63c1dba0399d1fe5e7b9c9c794b598"
}
Frame {
msec: 1136
- hash: "421a9b4848a59281aea73c08a7219a33"
+ hash: "305d263f68b4ccd78bffccd887870f97"
}
Frame {
msec: 1152
- hash: "0066eaa302678a4be35dca0c3ed33b1c"
+ hash: "f4d1f7245b519d623defdc12e76285d2"
}
Frame {
msec: 1168
- hash: "4cceb05bfeb231189b66f1fbdfaeccd3"
+ hash: "5a47e6498ddf8a02cb1df7a3510bac37"
}
Frame {
msec: 1184
- hash: "ccf229cdd6fde7ef663791d27a008bee"
+ hash: "358b9b6be7f8379815d8ee828eed3e43"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png
index cd436b5ffb..591c1ef054 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png
index e47b47954a..dc90e0d91b 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png
index 0d3c672804..c787029058 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png
index ba833a26dd..fdd64ac69d 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png
new file mode 100644
index 0000000000..1286e54ec8
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.qml
new file mode 100644
index 0000000000..afae3f89bc
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext2.qml
@@ -0,0 +1,11 @@
+import Qt.VisualTest 4.7
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ image: "richtext2.0.png"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png
index f41c16574c..adbdfa74eb 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png
index 539e4df892..d3fbdc6edd 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png
index 47ceaac762..9a96d462c5 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png
index e24a4535c0..2026aca78c 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png
index ecf8335c19..c43502941b 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png
index 3d8709fd16..70f273dff6 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml
index ff5db4179b..0f3bd2cf50 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml
@@ -6,87 +6,87 @@ VisualTest {
}
Frame {
msec: 16
- hash: "c1bb09480464b7813bc10b0093d14745"
+ image: "cursorDelegate.0.png"
}
Frame {
msec: 32
- hash: "9d0e449506ce93052216b7a952af3dea"
+ hash: "b742ebe441dde1f30dab6d19954a9e8c"
}
Frame {
msec: 48
- hash: "52641f9d6dfba8bf2b94aa37ade140d1"
+ hash: "d3be942cfb93c4a5d5aa906410125d02"
}
Frame {
msec: 64
- hash: "7610775f69a461d5487e8bc3db6b6e1f"
+ hash: "062574e74354b104db2ee6d3c3af5802"
}
Frame {
msec: 80
- hash: "afe0c3fdcb498f1f6b877c5d808b2555"
+ hash: "575dd420067e4ebe5733eb4e35a447ab"
}
Frame {
msec: 96
- hash: "97dabf3984492d2f868b36c3e7bfce50"
+ hash: "4213f35c4cd233a08d98ba0380b7ab0a"
}
Frame {
msec: 112
- hash: "869624c2ae63b0a447401a955a6fefb1"
+ hash: "505e740aacf4ca7e6ad24367ddad8678"
}
Frame {
msec: 128
- hash: "7031966f014d4acd5b00c46c89f61403"
+ hash: "007e76fb247e11a442802c7cfb4e6a24"
}
Frame {
msec: 144
- hash: "bd5395e7e0aa0d50cb30504f9961c954"
+ hash: "5cf6cb0afffb791da1c4d0fe00cf6326"
}
Frame {
msec: 160
- hash: "a7142c3c1eb9c934e0b258c163fcdfec"
+ hash: "aff4097bd39c87c5d1459d99f314dade"
}
Frame {
msec: 176
- hash: "373c57edb812db59f40710305d80e9e9"
+ hash: "009dc0c6ff28333ac2fdfa3d79ad2fd6"
}
Frame {
msec: 192
- hash: "78b16507899c3c8de04b55389ea0ad49"
+ hash: "4bf8e82220ea0d0c4298d5374e149de2"
}
Frame {
msec: 208
- hash: "b0fd95dc2ac09a1cbd67ad0f86682666"
+ hash: "938a6eea45c4412e847a8700172d80ac"
}
Frame {
msec: 224
- hash: "5f073a4a89413b6a6c5d6ff52717bb2f"
+ hash: "6502416042993d05dd514119512ed61f"
}
Frame {
msec: 240
- hash: "82e61a4d3f58ee5104893e254a77f13e"
+ hash: "5d6702b9475e69bda2ed38f6e2d583d9"
}
Frame {
msec: 256
- hash: "a8fe05178e6339454d57575692fa3df3"
+ hash: "8e5fdc8e6cc38089d1e8ff5e91a5c894"
}
Frame {
msec: 272
- hash: "192f80add5f612b07dcb8d69f2161648"
+ hash: "c0249d07bcf25af69bf929b4d5ac00a3"
}
Frame {
msec: 288
- hash: "cfd85885f59ea80b0b0152446a829fec"
+ hash: "efe333c2b8cccea0bd7135484049db06"
}
Frame {
msec: 304
- hash: "a7295dcc92f80a5f343bf05076a03748"
+ hash: "57e49e9094691a204f7507b0231352b3"
}
Frame {
msec: 320
- hash: "2b0b30cfb1c1e4ed8a51d36fb7ccdf57"
+ hash: "d0a45bd3cfc5e4e6f9a48534c768daba"
}
Frame {
msec: 336
- hash: "419c538908d0226ff4485f1094eaa08e"
+ hash: "6960ab817c67a61af31cc187efe65016"
}
Key {
type: 6
@@ -98,27 +98,27 @@ VisualTest {
}
Frame {
msec: 352
- hash: "8afe64448d42419f97ca207487b3b0f8"
+ hash: "3b0d483ff765f36a196411967b6dfd70"
}
Frame {
msec: 368
- hash: "86091218d2d066d8f95a460426266369"
+ hash: "559713749d65246b185c0c91eb7ad39e"
}
Frame {
msec: 384
- hash: "fc45978cac92b6cdeeecc2dd4c29aa53"
+ hash: "9aea32722fd4f8b0cde3c06c61cecde6"
}
Frame {
msec: 400
- hash: "03a90ae5cbe68cc210e303c78a14e065"
+ hash: "25dfa32ce92b6044f5ea68411ab5de5b"
}
Frame {
msec: 416
- hash: "15603a997aa02afb688aa74cd930f3b4"
+ hash: "dab689ed2bbe663df309548e615e8621"
}
Frame {
msec: 432
- hash: "90bf6b2bf89e1440f0c4d1044c1bd22c"
+ hash: "26ad44cef380ff9f64c12180fb54c695"
}
Key {
type: 6
@@ -130,19 +130,19 @@ VisualTest {
}
Frame {
msec: 448
- hash: "4dbdc16538cbbf1a87c6a54e09e02b16"
+ hash: "5e8bbcd46b5692e66963387b80971e90"
}
Frame {
msec: 464
- hash: "2011ee59d2ec4bb0ae0d63727f091648"
+ hash: "747df5357daa951fbedeadf909f9dbf3"
}
Frame {
msec: 480
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 496
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Key {
type: 6
@@ -154,35 +154,35 @@ VisualTest {
}
Frame {
msec: 512
- hash: "7fc65284b99fc548de0985d94a145fa7"
+ hash: "cb6ca047657a99dbbb037c1c45b40866"
}
Frame {
msec: 528
- hash: "7fc65284b99fc548de0985d94a145fa7"
+ hash: "cb6ca047657a99dbbb037c1c45b40866"
}
Frame {
msec: 544
- hash: "7fc65284b99fc548de0985d94a145fa7"
+ hash: "cb6ca047657a99dbbb037c1c45b40866"
}
Frame {
msec: 560
- hash: "7fc65284b99fc548de0985d94a145fa7"
+ hash: "cb6ca047657a99dbbb037c1c45b40866"
}
Frame {
msec: 576
- hash: "b4205f141a7a6b646cf641ba922d588b"
+ hash: "1684711d2c492de2093357168b8726c6"
}
Frame {
msec: 592
- hash: "94c3adf5da700bb63ed6eaf0adf8d037"
+ hash: "6d960ca89faec6e3d81f78911b9b5ecf"
}
Frame {
msec: 608
- hash: "62c4757a2e26341655e27417f85ba6d8"
+ hash: "1fdd91b57f5832d5c4d797d150892156"
}
Frame {
msec: 624
- hash: "9de2ce48334b088c0a0960a581f43a36"
+ hash: "4e0f1ec936cacf3ab6fbc7899a6bc92d"
}
Key {
type: 7
@@ -194,15 +194,15 @@ VisualTest {
}
Frame {
msec: 640
- hash: "9ca827d4812521d1590ca6e7117bd788"
+ hash: "9e67145b58051fd7dc4a18ee0e6a72ad"
}
Frame {
msec: 656
- hash: "66f65cd7215ea89e60d8f60337fffe97"
+ hash: "14dfb4b356ec851275ddd8e93f04e2d2"
}
Frame {
msec: 672
- hash: "05caae5e0d092c4d0595286aa4baa6a0"
+ hash: "e9b8f691ad62d10877aacb94f98ea308"
}
Key {
type: 6
@@ -214,31 +214,31 @@ VisualTest {
}
Frame {
msec: 688
- hash: "2282153f3ae493aa6ad5377b12d88043"
+ hash: "a44b5f63ec1f98b6bc34e95214c9d79e"
}
Frame {
msec: 704
- hash: "aee2503a5d4ec61795b0486da5c53867"
+ hash: "6bc0e035c90b74de024d379388fd7014"
}
Frame {
msec: 720
- hash: "f564e1ae90bc6b1ea4bc84f1729eb487"
+ hash: "61d8f417f7ca5cba2e98a7a7427ea635"
}
Frame {
msec: 736
- hash: "f5c70adef5725a0574b63dd5ab7d7b12"
+ hash: "f50adb10f55bcd4c2eb0955f6e1ff78e"
}
Frame {
msec: 752
- hash: "74ed3230417c69b0dc82ce9cfe4b6cd0"
+ hash: "9e160aefac79a9804f6cb8622e45ba71"
}
Frame {
msec: 768
- hash: "374270279bcc00167d2b63bf9a658785"
+ hash: "6555a0bd60dbbad66283fe37b2f0c362"
}
Frame {
msec: 784
- hash: "68445a2b5470e44baf7af95efc20ba33"
+ hash: "0cacc38d86ebf497d31b01556b8a5924"
}
Key {
type: 7
@@ -250,63 +250,63 @@ VisualTest {
}
Frame {
msec: 800
- hash: "5add6c9527edf6bbdb3a79b8a524db70"
+ hash: "b2fe1d5cb5e0a5f07d84ff7a494ae07a"
}
Frame {
msec: 816
- hash: "01a96c8407fa2c0f9e7a822249ac9adc"
+ hash: "2c6dbd777bba27b481a8a6ef34d213f9"
}
Frame {
msec: 832
- hash: "6b9af295d8f2fb5ba8d9c234596d0a88"
+ hash: "989e53620edc6b9b0990545459e7f787"
}
Frame {
msec: 848
- hash: "3837442e90c2a1534e21d21bfc3b46e1"
+ hash: "a89686a7802da3fd07a265a5814255f4"
}
Frame {
msec: 864
- hash: "afd7d2494dae8e7ef40a165ccc627313"
+ hash: "9f707497eb0c224c8b0a3bba1533217a"
}
Frame {
msec: 880
- hash: "6e7058d540b26d3c5f15804f2f93b835"
+ hash: "29df155c0b75de8e1bd6361372a51797"
}
Frame {
msec: 896
- hash: "ffa489a15db741d8b835d998336bc1b3"
+ hash: "fb7cbeb1e3689cc38acf7a02d671a955"
}
Frame {
msec: 912
- hash: "5a0308d1d2a6a36e16ddb312294fcbf8"
+ hash: "9045ada282ec37b1681cef89dfcc8f67"
}
Frame {
msec: 928
- hash: "bd56ed24908c7e8ec4e5ebc75a19ca86"
+ hash: "b3816b225eaf5ab49bb31f86ecdd52cb"
}
Frame {
msec: 944
- hash: "7bd56b12087226100da27776f8943427"
+ hash: "0956fccb8e1bf2c218a9e39947846aaa"
}
Frame {
msec: 960
- image: "cursorDelegate.0.png"
+ hash: "01f4ba2e0b4eb018c620efa5e92ec9fe"
}
Frame {
msec: 976
- hash: "f48a56350bba266c2f19deb46d39e174"
+ image: "cursorDelegate.1.png"
}
Frame {
msec: 992
- hash: "9587bb118f2eb2bf8bb3cfc40ed18310"
+ hash: "c19ec2d067d30a6d42056c9799b0c0c3"
}
Frame {
msec: 1008
- hash: "0f9e9622427ebaf85369b3013ae9aaf0"
+ hash: "43a9d066887a89372136619ae8eec100"
}
Frame {
msec: 1024
- hash: "0f9e9622427ebaf85369b3013ae9aaf0"
+ hash: "43a9d066887a89372136619ae8eec100"
}
Key {
type: 7
@@ -318,39 +318,39 @@ VisualTest {
}
Frame {
msec: 1040
- hash: "9587bb118f2eb2bf8bb3cfc40ed18310"
+ hash: "c19ec2d067d30a6d42056c9799b0c0c3"
}
Frame {
msec: 1056
- hash: "f48a56350bba266c2f19deb46d39e174"
+ hash: "8303d8b19e6e5b249aaf2ffbb6d29f91"
}
Frame {
msec: 1072
- hash: "8234f16d07e76aeedb6ca14d622453cb"
+ hash: "01f4ba2e0b4eb018c620efa5e92ec9fe"
}
Frame {
msec: 1088
- hash: "7bd56b12087226100da27776f8943427"
+ hash: "0956fccb8e1bf2c218a9e39947846aaa"
}
Frame {
msec: 1104
- hash: "bd56ed24908c7e8ec4e5ebc75a19ca86"
+ hash: "b3816b225eaf5ab49bb31f86ecdd52cb"
}
Frame {
msec: 1120
- hash: "5a0308d1d2a6a36e16ddb312294fcbf8"
+ hash: "9045ada282ec37b1681cef89dfcc8f67"
}
Frame {
msec: 1136
- hash: "ffa489a15db741d8b835d998336bc1b3"
+ hash: "fb7cbeb1e3689cc38acf7a02d671a955"
}
Frame {
msec: 1152
- hash: "6e7058d540b26d3c5f15804f2f93b835"
+ hash: "29df155c0b75de8e1bd6361372a51797"
}
Frame {
msec: 1168
- hash: "afd7d2494dae8e7ef40a165ccc627313"
+ hash: "9f707497eb0c224c8b0a3bba1533217a"
}
Key {
type: 6
@@ -362,31 +362,31 @@ VisualTest {
}
Frame {
msec: 1184
- hash: "1d5c9458d568df773dbff4e333e14de0"
+ hash: "9f712a688504fff9719b38c067b32c50"
}
Frame {
msec: 1200
- hash: "8eef242d89b7e2eff7678030f9fd808e"
+ hash: "24f1467e3be5f4d0509800bef97f4401"
}
Frame {
msec: 1216
- hash: "97dc6ebbf64a19f5026c02ea4c79d63b"
+ hash: "d56e5fd86addad3bc53417b82ff68829"
}
Frame {
msec: 1232
- hash: "52d2135428c3c2bf85f0fa7c2ba01a25"
+ hash: "f1c60934ef284840e61fd46c758dd14b"
}
Frame {
msec: 1248
- hash: "c713bd1d1ab2df81292020e6e822546c"
+ hash: "7be9fc54278572116f9bd9be8f6994a4"
}
Frame {
msec: 1264
- hash: "0c61ff34510168e324c53786720dd953"
+ hash: "0e0ea7ca1b8479d62ae81fb53a1ec264"
}
Frame {
msec: 1280
- hash: "ba1488f2d9d4482cdf41c40af7642030"
+ hash: "f8b19dbaeec469896a081687d80a2ac4"
}
Key {
type: 7
@@ -398,95 +398,95 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "91d2da369579bb72641d4e7e7cd696f5"
+ hash: "a28665925ec121a2bf01733e0a20e18b"
}
Frame {
msec: 1312
- hash: "1cf1d30d6def868a60f434fe84c23c47"
+ hash: "baa0c601f3d84e344847dcb7f3bd18cf"
}
Frame {
msec: 1328
- hash: "ba5b3005af3c44caaf7272cbb56e60da"
+ hash: "a80d59a1e5af45bc799c19200a3c44ec"
}
Frame {
msec: 1344
- hash: "116ab7576b5e45e6009920854ff87f39"
+ hash: "2a6f833e2fd2930c8ec49016809d8cf6"
}
Frame {
msec: 1360
- hash: "294c76d6f63c230af666b0b86e0c9844"
+ hash: "efdc2daad00aaec2c39541261d6d1a98"
}
Frame {
msec: 1376
- hash: "c721a5b17b1eb4a063fa3b727d13ba62"
+ hash: "65b75f2a074d4ac5d84fb762d1762231"
}
Frame {
msec: 1392
- hash: "a98bd750b67a0ef8831c9c66a0b06a28"
+ hash: "2a170e51a83e902d2699501877225ee3"
}
Frame {
msec: 1408
- hash: "7739509b0f5e62207ba62262d8822388"
+ hash: "1e4c78e279ff4ab7a875e4d67f68f8ca"
}
Frame {
msec: 1424
- hash: "62d70a7e3ce290c52d37090bf899377c"
+ hash: "fd515cf3ec7b987e0e36c02f1da5b8a7"
}
Frame {
msec: 1440
- hash: "3f3c1137c02e14796c3a4537337d1dd8"
+ hash: "54126910ea7a303ea3e7726309d8bf39"
}
Frame {
msec: 1456
- hash: "4997a45af699c1face114c72a9ce067d"
+ hash: "89263867df0cfa623f80e1578532d98d"
}
Frame {
msec: 1472
- hash: "093cce71722904a32b030478f3af49bb"
+ hash: "1bf04aafab1177182eec9a0ff459cd7b"
}
Frame {
msec: 1488
- hash: "093cce71722904a32b030478f3af49bb"
+ hash: "1bf04aafab1177182eec9a0ff459cd7b"
}
Frame {
msec: 1504
- hash: "093cce71722904a32b030478f3af49bb"
+ hash: "1bf04aafab1177182eec9a0ff459cd7b"
}
Frame {
msec: 1520
- hash: "093cce71722904a32b030478f3af49bb"
+ hash: "1bf04aafab1177182eec9a0ff459cd7b"
}
Frame {
msec: 1536
- hash: "093cce71722904a32b030478f3af49bb"
+ hash: "1bf04aafab1177182eec9a0ff459cd7b"
}
Frame {
msec: 1552
- hash: "093cce71722904a32b030478f3af49bb"
+ hash: "1bf04aafab1177182eec9a0ff459cd7b"
}
Frame {
msec: 1568
- hash: "a4810a97e51259350bb1543dffc156af"
+ hash: "c824a8bbf60514c20713b1fa583451b2"
}
Frame {
msec: 1584
- hash: "838871072acbefc1c8c488f47312da9b"
+ hash: "f6282cd20d7f3f64415a0a24df578964"
}
Frame {
msec: 1600
- hash: "8cfe8847729878519669caa8b702d910"
+ hash: "a4633c7dc825f20a7ada2079712f7b5e"
}
Frame {
msec: 1616
- hash: "a2fd8e049d03b87a306bb5b81e3f7311"
+ hash: "240c839fc986573523b30567afe05623"
}
Frame {
msec: 1632
- hash: "29bd4d5e36cb6b232f513b6bb0c00b28"
+ hash: "9e3098ea355a80e7e439f3cdecd15b77"
}
Frame {
msec: 1648
- hash: "9637f14efb2e355bfe886d7c5f2a8d38"
+ hash: "d8ec7fd807f345509703f4ecf94b583d"
}
Key {
type: 6
@@ -498,35 +498,35 @@ VisualTest {
}
Frame {
msec: 1664
- hash: "0365fa8845c3c1e53ef35d22423eb973"
+ hash: "5b6e0bedeca1784610081762850813a1"
}
Frame {
msec: 1680
- hash: "bf88d5d2cd2ff062c1cc8a391a238b1d"
+ hash: "13a596d7aefa3c8ce61660dd5ce27627"
}
Frame {
msec: 1696
- hash: "46b22f33eb80f013e44da11153441864"
+ hash: "295bbee587f2fdbadab7aa4e3900b6e0"
}
Frame {
msec: 1712
- hash: "05ae42e3a0296a569dec147c76be273d"
+ hash: "645da4001b1489b12e0bb5dd1b5c114b"
}
Frame {
msec: 1728
- hash: "1a8cc65973d08bb949f7a71b0bb8be1a"
+ hash: "8e7e4f5b8eb437ab92e466b1d79aee01"
}
Frame {
msec: 1744
- hash: "ca3bde8cd8de81c4210fcfd000fe0f5e"
+ hash: "1a7ec33aa8a19a36a7fc99c3040e427a"
}
Frame {
msec: 1760
- hash: "e06d104d1ed451eea4c1d9bdae9d10f4"
+ hash: "85f6c7d9f86910e7cceeaf9efc375355"
}
Frame {
msec: 1776
- hash: "c95153ae401ad8a2e839905841c074f3"
+ hash: "8e54b0699d681cfbfc3b605b010c6b76"
}
Key {
type: 6
@@ -538,35 +538,35 @@ VisualTest {
}
Frame {
msec: 1792
- hash: "82e61a4d3f58ee5104893e254a77f13e"
+ hash: "5d6702b9475e69bda2ed38f6e2d583d9"
}
Frame {
msec: 1808
- hash: "5f073a4a89413b6a6c5d6ff52717bb2f"
+ hash: "6502416042993d05dd514119512ed61f"
}
Frame {
msec: 1824
- hash: "b0fd95dc2ac09a1cbd67ad0f86682666"
+ hash: "938a6eea45c4412e847a8700172d80ac"
}
Frame {
msec: 1840
- hash: "78b16507899c3c8de04b55389ea0ad49"
+ hash: "4bf8e82220ea0d0c4298d5374e149de2"
}
Frame {
msec: 1856
- hash: "373c57edb812db59f40710305d80e9e9"
+ hash: "009dc0c6ff28333ac2fdfa3d79ad2fd6"
}
Frame {
msec: 1872
- hash: "a7142c3c1eb9c934e0b258c163fcdfec"
+ hash: "aff4097bd39c87c5d1459d99f314dade"
}
Frame {
msec: 1888
- hash: "bd5395e7e0aa0d50cb30504f9961c954"
+ hash: "5cf6cb0afffb791da1c4d0fe00cf6326"
}
Frame {
msec: 1904
- hash: "7031966f014d4acd5b00c46c89f61403"
+ hash: "007e76fb247e11a442802c7cfb4e6a24"
}
Key {
type: 7
@@ -578,83 +578,83 @@ VisualTest {
}
Frame {
msec: 1920
- image: "cursorDelegate.1.png"
+ hash: "505e740aacf4ca7e6ad24367ddad8678"
}
Frame {
msec: 1936
- hash: "97dabf3984492d2f868b36c3e7bfce50"
+ image: "cursorDelegate.2.png"
}
Frame {
msec: 1952
- hash: "afe0c3fdcb498f1f6b877c5d808b2555"
+ hash: "575dd420067e4ebe5733eb4e35a447ab"
}
Frame {
msec: 1968
- hash: "7610775f69a461d5487e8bc3db6b6e1f"
+ hash: "062574e74354b104db2ee6d3c3af5802"
}
Frame {
msec: 1984
- hash: "52641f9d6dfba8bf2b94aa37ade140d1"
+ hash: "d3be942cfb93c4a5d5aa906410125d02"
}
Frame {
msec: 2000
- hash: "9d0e449506ce93052216b7a952af3dea"
+ hash: "b742ebe441dde1f30dab6d19954a9e8c"
}
Frame {
msec: 2016
- hash: "c1bb09480464b7813bc10b0093d14745"
+ hash: "bbe3a292c59e2f7ae6b8877f6736c96e"
}
Frame {
msec: 2032
- hash: "9d0e449506ce93052216b7a952af3dea"
+ hash: "b742ebe441dde1f30dab6d19954a9e8c"
}
Frame {
msec: 2048
- hash: "52641f9d6dfba8bf2b94aa37ade140d1"
+ hash: "d3be942cfb93c4a5d5aa906410125d02"
}
Frame {
msec: 2064
- hash: "7610775f69a461d5487e8bc3db6b6e1f"
+ hash: "062574e74354b104db2ee6d3c3af5802"
}
Frame {
msec: 2080
- hash: "afe0c3fdcb498f1f6b877c5d808b2555"
+ hash: "575dd420067e4ebe5733eb4e35a447ab"
}
Frame {
msec: 2096
- hash: "97dabf3984492d2f868b36c3e7bfce50"
+ hash: "4213f35c4cd233a08d98ba0380b7ab0a"
}
Frame {
msec: 2112
- hash: "869624c2ae63b0a447401a955a6fefb1"
+ hash: "505e740aacf4ca7e6ad24367ddad8678"
}
Frame {
msec: 2128
- hash: "7031966f014d4acd5b00c46c89f61403"
+ hash: "007e76fb247e11a442802c7cfb4e6a24"
}
Frame {
msec: 2144
- hash: "bd5395e7e0aa0d50cb30504f9961c954"
+ hash: "5cf6cb0afffb791da1c4d0fe00cf6326"
}
Frame {
msec: 2160
- hash: "a7142c3c1eb9c934e0b258c163fcdfec"
+ hash: "aff4097bd39c87c5d1459d99f314dade"
}
Frame {
msec: 2176
- hash: "373c57edb812db59f40710305d80e9e9"
+ hash: "009dc0c6ff28333ac2fdfa3d79ad2fd6"
}
Frame {
msec: 2192
- hash: "78b16507899c3c8de04b55389ea0ad49"
+ hash: "4bf8e82220ea0d0c4298d5374e149de2"
}
Frame {
msec: 2208
- hash: "b0fd95dc2ac09a1cbd67ad0f86682666"
+ hash: "938a6eea45c4412e847a8700172d80ac"
}
Frame {
msec: 2224
- hash: "5f073a4a89413b6a6c5d6ff52717bb2f"
+ hash: "6502416042993d05dd514119512ed61f"
}
Key {
type: 7
@@ -666,35 +666,35 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "82e61a4d3f58ee5104893e254a77f13e"
+ hash: "5d6702b9475e69bda2ed38f6e2d583d9"
}
Frame {
msec: 2256
- hash: "a8fe05178e6339454d57575692fa3df3"
+ hash: "8e5fdc8e6cc38089d1e8ff5e91a5c894"
}
Frame {
msec: 2272
- hash: "192f80add5f612b07dcb8d69f2161648"
+ hash: "c0249d07bcf25af69bf929b4d5ac00a3"
}
Frame {
msec: 2288
- hash: "cfd85885f59ea80b0b0152446a829fec"
+ hash: "efe333c2b8cccea0bd7135484049db06"
}
Frame {
msec: 2304
- hash: "a7295dcc92f80a5f343bf05076a03748"
+ hash: "57e49e9094691a204f7507b0231352b3"
}
Frame {
msec: 2320
- hash: "2b0b30cfb1c1e4ed8a51d36fb7ccdf57"
+ hash: "d0a45bd3cfc5e4e6f9a48534c768daba"
}
Frame {
msec: 2336
- hash: "419c538908d0226ff4485f1094eaa08e"
+ hash: "6960ab817c67a61af31cc187efe65016"
}
Frame {
msec: 2352
- hash: "8afe64448d42419f97ca207487b3b0f8"
+ hash: "3b0d483ff765f36a196411967b6dfd70"
}
Key {
type: 6
@@ -706,35 +706,35 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "86091218d2d066d8f95a460426266369"
+ hash: "559713749d65246b185c0c91eb7ad39e"
}
Frame {
msec: 2384
- hash: "fc45978cac92b6cdeeecc2dd4c29aa53"
+ hash: "9aea32722fd4f8b0cde3c06c61cecde6"
}
Frame {
msec: 2400
- hash: "03a90ae5cbe68cc210e303c78a14e065"
+ hash: "25dfa32ce92b6044f5ea68411ab5de5b"
}
Frame {
msec: 2416
- hash: "15603a997aa02afb688aa74cd930f3b4"
+ hash: "dab689ed2bbe663df309548e615e8621"
}
Frame {
msec: 2432
- hash: "90bf6b2bf89e1440f0c4d1044c1bd22c"
+ hash: "26ad44cef380ff9f64c12180fb54c695"
}
Frame {
msec: 2448
- hash: "4dbdc16538cbbf1a87c6a54e09e02b16"
+ hash: "5e8bbcd46b5692e66963387b80971e90"
}
Frame {
msec: 2464
- hash: "2011ee59d2ec4bb0ae0d63727f091648"
+ hash: "747df5357daa951fbedeadf909f9dbf3"
}
Frame {
msec: 2480
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Key {
type: 7
@@ -746,95 +746,95 @@ VisualTest {
}
Frame {
msec: 2496
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 2512
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 2528
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 2544
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 2560
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 2576
- hash: "02996bef06c74f34cf8be4cf4d1392d5"
+ hash: "1568d4b93d2a284c46f23a0cb17acc24"
}
Frame {
msec: 2592
- hash: "2d8cb2d213ce22132ba63a829c07f768"
+ hash: "0665a6cfc09981cd8a7ffd0d02e6fbdc"
}
Frame {
msec: 2608
- hash: "0a16c282a18fdc657ea48fb208dea494"
+ hash: "49892aa44c8e3584239d245a7ca98af3"
}
Frame {
msec: 2624
- hash: "86baec52ccb8ae818439c637c5be1514"
+ hash: "c9def393bb5d6c447c45b127d32b5e50"
}
Frame {
msec: 2640
- hash: "72e2415581ba2a96b8f23cf8f5985afb"
+ hash: "679d94007b33197ce7decb4df6e8343c"
}
Frame {
msec: 2656
- hash: "7776d964b2b5f80bac51a29d298a067f"
+ hash: "817987bcd9f1147ba047333b42ed289d"
}
Frame {
msec: 2672
- hash: "3b5d0a9f961c2102a4118a8e2d2793ae"
+ hash: "fdd9331015c289b8e33b094999b11dce"
}
Frame {
msec: 2688
- hash: "048b5e51d9bcf8d1b24c8f8f98b7b4e4"
+ hash: "e4fa13ba2770c0d390945ee4505fea9b"
}
Frame {
msec: 2704
- hash: "d30e5d7c27b72ec95c41a87741061a3f"
+ hash: "69965c88d2273acf680af243610efcf3"
}
Frame {
msec: 2720
- hash: "0374cc41cdb6528e212f678e0e049f2b"
+ hash: "6cbeb6787a0a7fb7f654f877e41eed57"
}
Frame {
msec: 2736
- hash: "c80bc90c90b02d1d42176f16fa992f27"
+ hash: "e7528c074b3c65afe3873a3cdf96f041"
}
Frame {
msec: 2752
- hash: "70182707dbdf87a2c8db556f030bec17"
+ hash: "c06c72abe46087f0db87a84fdcbcf601"
}
Frame {
msec: 2768
- hash: "0c6c0c3d27d87128d65b40789714dd6b"
+ hash: "b6840f1d7cf2caed17d763b782553071"
}
Frame {
msec: 2784
- hash: "46e1debee4ca606492a36de6191f4594"
+ hash: "71fdb77c4133f37180d581e4b1fe9c83"
}
Frame {
msec: 2800
- hash: "f327bb2ea12b2baffc0a98d44a0ded16"
+ hash: "f5e2075ed86f146e0162ae4f0a9c6b90"
}
Frame {
msec: 2816
- hash: "15bc04b65bde5e8ca69b6a1f88647c16"
+ hash: "5e76b741f49bd279b9f62ae3f474e5b5"
}
Frame {
msec: 2832
- hash: "27156c3309835ec20a02877f1188e14a"
+ hash: "28c8003699352c3c9563556939d49cd8"
}
Frame {
msec: 2848
- hash: "a163019c9feff0f4d1bb4aaedcd2ecd4"
+ hash: "15ab751c8463326c870dc9ee1af3c1d7"
}
Key {
type: 6
@@ -846,35 +846,35 @@ VisualTest {
}
Frame {
msec: 2864
- hash: "c5569c3c06bcf01b7e69e7f7ad6203ef"
+ hash: "6035ef1252d4f28b965b0bf4771540e4"
}
Frame {
msec: 2880
- image: "cursorDelegate.2.png"
+ hash: "7c79170b07db90ca94f5642f3c0d3998"
}
Frame {
msec: 2896
- hash: "5d1c41e371b1a95426882b3991383b6b"
+ image: "cursorDelegate.3.png"
}
Frame {
msec: 2912
- hash: "4b9581a767fc1c94451780c044baf003"
+ hash: "3b4d1f5e1506c851887c86883eb1a6ac"
}
Frame {
msec: 2928
- hash: "39978ba9bb1a535d7735228c650add38"
+ hash: "5aff09b0e9078ca6d4ed93694d1fa6f9"
}
Frame {
msec: 2944
- hash: "1a2afe394227dcf2da118559e2e58fd7"
+ hash: "16813ebf88f881a4cebf75a2325dc064"
}
Frame {
msec: 2960
- hash: "2f6bdb7af9bf9334231180b6113b125f"
+ hash: "5b901505bb1ab80cd4d5bc85b73ae8ad"
}
Frame {
msec: 2976
- hash: "85017ca5ca286830e2745abf2f1f963a"
+ hash: "04c7f2e959c31bf6d3e7bea25d27eb87"
}
Key {
type: 7
@@ -886,63 +886,63 @@ VisualTest {
}
Frame {
msec: 2992
- hash: "3760b42a25e332c6df49bd92109dae98"
+ hash: "408bb423b93cb48afb97a7744848fc5e"
}
Frame {
msec: 3008
- hash: "7c0347f97f9e4d7fcf47a90b336d264a"
+ hash: "1a58d66b4d42736eea49a602923a0941"
}
Frame {
msec: 3024
- hash: "7c0347f97f9e4d7fcf47a90b336d264a"
+ hash: "1a58d66b4d42736eea49a602923a0941"
}
Frame {
msec: 3040
- hash: "3760b42a25e332c6df49bd92109dae98"
+ hash: "408bb423b93cb48afb97a7744848fc5e"
}
Frame {
msec: 3056
- hash: "85017ca5ca286830e2745abf2f1f963a"
+ hash: "04c7f2e959c31bf6d3e7bea25d27eb87"
}
Frame {
msec: 3072
- hash: "2f6bdb7af9bf9334231180b6113b125f"
+ hash: "5b901505bb1ab80cd4d5bc85b73ae8ad"
}
Frame {
msec: 3088
- hash: "1a2afe394227dcf2da118559e2e58fd7"
+ hash: "16813ebf88f881a4cebf75a2325dc064"
}
Frame {
msec: 3104
- hash: "39978ba9bb1a535d7735228c650add38"
+ hash: "5aff09b0e9078ca6d4ed93694d1fa6f9"
}
Frame {
msec: 3120
- hash: "4b9581a767fc1c94451780c044baf003"
+ hash: "3b4d1f5e1506c851887c86883eb1a6ac"
}
Frame {
msec: 3136
- hash: "5d1c41e371b1a95426882b3991383b6b"
+ hash: "6a0a21ed890b475ce506714cc0501381"
}
Frame {
msec: 3152
- hash: "73c771b964becb418289e0674571eb6f"
+ hash: "7c79170b07db90ca94f5642f3c0d3998"
}
Frame {
msec: 3168
- hash: "c5569c3c06bcf01b7e69e7f7ad6203ef"
+ hash: "6035ef1252d4f28b965b0bf4771540e4"
}
Frame {
msec: 3184
- hash: "7c55078e04b56c9aba7d227917323021"
+ hash: "9529b5b70b76541ec82be173deedadfb"
}
Frame {
msec: 3200
- hash: "01c6b78b296c00e4597ae1bd36a65f3a"
+ hash: "174bbd347422c46923d6a5831cb5cd94"
}
Frame {
msec: 3216
- hash: "67e9271f71b2d6d9eb2e230953db06c5"
+ hash: "1eb95daf505b817161f1a251cdde1b3c"
}
Key {
type: 6
@@ -954,31 +954,31 @@ VisualTest {
}
Frame {
msec: 3232
- hash: "642a6f4d7b3f467263b8e033578927af"
+ hash: "10f59fadaa27f78b7a1fb25d3a30adf7"
}
Frame {
msec: 3248
- hash: "9f000f97b33427860cb5daeb259c72ea"
+ hash: "b87417c77b43bdbfdc3d8293c9a23216"
}
Frame {
msec: 3264
- hash: "d74e3f977b5decb89dda46ea608a933a"
+ hash: "64345c713d61638bcc32f277208f2665"
}
Frame {
msec: 3280
- hash: "f4e446cd96a3eb1a0df83cf032e7a0b2"
+ hash: "753dbe02fa95ee2b1387b98d7d456dcf"
}
Frame {
msec: 3296
- hash: "abe715855a79a8ced43000884c4bf04b"
+ hash: "fce9a58aaf8d5cadbb029194317dcae3"
}
Frame {
msec: 3312
- hash: "29fd5c17b9a169c1850aa538b4006084"
+ hash: "367083bd88443558002601acbc355b1a"
}
Frame {
msec: 3328
- hash: "cefdcaebb9c319ac358b0d7fc9424327"
+ hash: "8e6ffccf321fa30faec432a4b4138967"
}
Key {
type: 7
@@ -990,103 +990,103 @@ VisualTest {
}
Frame {
msec: 3344
- hash: "85bfa23957bb5cd947e0819ffa442ea3"
+ hash: "4dd4e0dafeed0fc11790145d39f7c85f"
}
Frame {
msec: 3360
- hash: "48f18d9d12331dc8725ea9e4b7f79823"
+ hash: "d612765c6b43035ea4e4683f968a18d3"
}
Frame {
msec: 3376
- hash: "63cde59ffbbe2b9087ca228733de18dd"
+ hash: "fa77d4d8d339b78e5a28dcf69336c116"
}
Frame {
msec: 3392
- hash: "73f5d4594f23ff4aac5e42aee00dce81"
+ hash: "34cf572a432bdd6dcfcc4fdfa032a800"
}
Frame {
msec: 3408
- hash: "51a1b8e79d209643d55d4cecc6a70ed0"
+ hash: "150b5a2f2e916b7023764c481c768492"
}
Frame {
msec: 3424
- hash: "7f2ae476246b23d79997a2545723ff62"
+ hash: "fbc93f511d6f3093c2ecf624a2c63749"
}
Frame {
msec: 3440
- hash: "996da2eff9302908a55308dbcc8fb3c2"
+ hash: "f9e0bd08b722c16493a8886a19920dda"
}
Frame {
msec: 3456
- hash: "264f34128dfe563126b9f187c65df61e"
+ hash: "f499f4b3017c88c63f0a2035ad527a0e"
}
Frame {
msec: 3472
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 3488
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 3504
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 3520
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 3536
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 3552
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 3568
- hash: "70d6b73499c36138bee63e07afb0b186"
+ hash: "68d331f508b43e756d6e30ba9b60f9aa"
}
Frame {
msec: 3584
- hash: "66500c2cc3d69b9fb48dc46e384aca6d"
+ hash: "c9147c159aebb7aa51d4bac28f96cb57"
}
Frame {
msec: 3600
- hash: "6ccc70f6120acb53152b71bcf95514ca"
+ hash: "0636b7c5cc215882c60b50f62133c715"
}
Frame {
msec: 3616
- hash: "5c10e6b0e541fe913b589601a55ea6ce"
+ hash: "10b52296e40380a915f7538d21d321a4"
}
Frame {
msec: 3632
- hash: "2c62584e4c09c1d22f9016aa6fa74e10"
+ hash: "9c56e2c5e04e8767b70d357558e179de"
}
Frame {
msec: 3648
- hash: "fd8f53e36a86ae22deb4f7af5aa1eb81"
+ hash: "0b1538af23c78cc779174df9fd01f60b"
}
Frame {
msec: 3664
- hash: "e33226eb0e81a64bed7bcdb50e99cd13"
+ hash: "1632c7df93f1a735236eaa2464e75ba6"
}
Frame {
msec: 3680
- hash: "a7053a2b7bc9f4749c290bace6b55634"
+ hash: "a08e8b921e61c79d57c0bc4fa5e79914"
}
Frame {
msec: 3696
- hash: "782cb4e647e849ac7299d41f04bc89e3"
+ hash: "8220951034b6f1a5755bedd53b947b4a"
}
Frame {
msec: 3712
- hash: "0f7d04fe594ae027364a7c2b570c5a27"
+ hash: "f4c18c333796ff10218fa9145781ea7f"
}
Frame {
msec: 3728
- hash: "dfb00adcdc2f68bfb691bce47845b0e7"
+ hash: "7547d3bb0f9c4a53396cfe0252436395"
}
Key {
type: 6
@@ -1098,31 +1098,31 @@ VisualTest {
}
Frame {
msec: 3744
- hash: "cfd85885f59ea80b0b0152446a829fec"
+ hash: "efe333c2b8cccea0bd7135484049db06"
}
Frame {
msec: 3760
- hash: "192f80add5f612b07dcb8d69f2161648"
+ hash: "c0249d07bcf25af69bf929b4d5ac00a3"
}
Frame {
msec: 3776
- hash: "a8fe05178e6339454d57575692fa3df3"
+ hash: "8e5fdc8e6cc38089d1e8ff5e91a5c894"
}
Frame {
msec: 3792
- hash: "82e61a4d3f58ee5104893e254a77f13e"
+ hash: "5d6702b9475e69bda2ed38f6e2d583d9"
}
Frame {
msec: 3808
- hash: "5f073a4a89413b6a6c5d6ff52717bb2f"
+ hash: "6502416042993d05dd514119512ed61f"
}
Frame {
msec: 3824
- hash: "b0fd95dc2ac09a1cbd67ad0f86682666"
+ hash: "938a6eea45c4412e847a8700172d80ac"
}
Frame {
msec: 3840
- image: "cursorDelegate.3.png"
+ hash: "4bf8e82220ea0d0c4298d5374e149de2"
}
Key {
type: 7
@@ -1134,59 +1134,59 @@ VisualTest {
}
Frame {
msec: 3856
- hash: "373c57edb812db59f40710305d80e9e9"
+ image: "cursorDelegate.4.png"
}
Frame {
msec: 3872
- hash: "a7142c3c1eb9c934e0b258c163fcdfec"
+ hash: "aff4097bd39c87c5d1459d99f314dade"
}
Frame {
msec: 3888
- hash: "bd5395e7e0aa0d50cb30504f9961c954"
+ hash: "5cf6cb0afffb791da1c4d0fe00cf6326"
}
Frame {
msec: 3904
- hash: "7031966f014d4acd5b00c46c89f61403"
+ hash: "007e76fb247e11a442802c7cfb4e6a24"
}
Frame {
msec: 3920
- hash: "869624c2ae63b0a447401a955a6fefb1"
+ hash: "505e740aacf4ca7e6ad24367ddad8678"
}
Frame {
msec: 3936
- hash: "97dabf3984492d2f868b36c3e7bfce50"
+ hash: "4213f35c4cd233a08d98ba0380b7ab0a"
}
Frame {
msec: 3952
- hash: "afe0c3fdcb498f1f6b877c5d808b2555"
+ hash: "575dd420067e4ebe5733eb4e35a447ab"
}
Frame {
msec: 3968
- hash: "7610775f69a461d5487e8bc3db6b6e1f"
+ hash: "062574e74354b104db2ee6d3c3af5802"
}
Frame {
msec: 3984
- hash: "52641f9d6dfba8bf2b94aa37ade140d1"
+ hash: "d3be942cfb93c4a5d5aa906410125d02"
}
Frame {
msec: 4000
- hash: "9d0e449506ce93052216b7a952af3dea"
+ hash: "b742ebe441dde1f30dab6d19954a9e8c"
}
Frame {
msec: 4016
- hash: "c1bb09480464b7813bc10b0093d14745"
+ hash: "bbe3a292c59e2f7ae6b8877f6736c96e"
}
Frame {
msec: 4032
- hash: "9d0e449506ce93052216b7a952af3dea"
+ hash: "b742ebe441dde1f30dab6d19954a9e8c"
}
Frame {
msec: 4048
- hash: "52641f9d6dfba8bf2b94aa37ade140d1"
+ hash: "d3be942cfb93c4a5d5aa906410125d02"
}
Frame {
msec: 4064
- hash: "7610775f69a461d5487e8bc3db6b6e1f"
+ hash: "062574e74354b104db2ee6d3c3af5802"
}
Key {
type: 7
@@ -1198,302 +1198,302 @@ VisualTest {
}
Frame {
msec: 4080
- hash: "afe0c3fdcb498f1f6b877c5d808b2555"
+ hash: "575dd420067e4ebe5733eb4e35a447ab"
}
Frame {
msec: 4096
- hash: "97dabf3984492d2f868b36c3e7bfce50"
+ hash: "4213f35c4cd233a08d98ba0380b7ab0a"
}
Frame {
msec: 4112
- hash: "869624c2ae63b0a447401a955a6fefb1"
+ hash: "505e740aacf4ca7e6ad24367ddad8678"
}
Frame {
msec: 4128
- hash: "7031966f014d4acd5b00c46c89f61403"
+ hash: "007e76fb247e11a442802c7cfb4e6a24"
}
Frame {
msec: 4144
- hash: "bd5395e7e0aa0d50cb30504f9961c954"
+ hash: "5cf6cb0afffb791da1c4d0fe00cf6326"
}
Frame {
msec: 4160
- hash: "a7142c3c1eb9c934e0b258c163fcdfec"
+ hash: "aff4097bd39c87c5d1459d99f314dade"
}
Frame {
msec: 4176
- hash: "373c57edb812db59f40710305d80e9e9"
+ hash: "009dc0c6ff28333ac2fdfa3d79ad2fd6"
}
Frame {
msec: 4192
- hash: "78b16507899c3c8de04b55389ea0ad49"
+ hash: "4bf8e82220ea0d0c4298d5374e149de2"
}
Frame {
msec: 4208
- hash: "b0fd95dc2ac09a1cbd67ad0f86682666"
+ hash: "938a6eea45c4412e847a8700172d80ac"
}
Frame {
msec: 4224
- hash: "5f073a4a89413b6a6c5d6ff52717bb2f"
+ hash: "6502416042993d05dd514119512ed61f"
}
Frame {
msec: 4240
- hash: "82e61a4d3f58ee5104893e254a77f13e"
+ hash: "5d6702b9475e69bda2ed38f6e2d583d9"
}
Frame {
msec: 4256
- hash: "a8fe05178e6339454d57575692fa3df3"
+ hash: "8e5fdc8e6cc38089d1e8ff5e91a5c894"
}
Frame {
msec: 4272
- hash: "192f80add5f612b07dcb8d69f2161648"
+ hash: "c0249d07bcf25af69bf929b4d5ac00a3"
}
Frame {
msec: 4288
- hash: "cfd85885f59ea80b0b0152446a829fec"
+ hash: "efe333c2b8cccea0bd7135484049db06"
}
Frame {
msec: 4304
- hash: "a7295dcc92f80a5f343bf05076a03748"
+ hash: "57e49e9094691a204f7507b0231352b3"
}
Frame {
msec: 4320
- hash: "2b0b30cfb1c1e4ed8a51d36fb7ccdf57"
+ hash: "d0a45bd3cfc5e4e6f9a48534c768daba"
}
Frame {
msec: 4336
- hash: "419c538908d0226ff4485f1094eaa08e"
+ hash: "6960ab817c67a61af31cc187efe65016"
}
Frame {
msec: 4352
- hash: "8afe64448d42419f97ca207487b3b0f8"
+ hash: "3b0d483ff765f36a196411967b6dfd70"
}
Frame {
msec: 4368
- hash: "86091218d2d066d8f95a460426266369"
+ hash: "559713749d65246b185c0c91eb7ad39e"
}
Frame {
msec: 4384
- hash: "fc45978cac92b6cdeeecc2dd4c29aa53"
+ hash: "9aea32722fd4f8b0cde3c06c61cecde6"
}
Frame {
msec: 4400
- hash: "03a90ae5cbe68cc210e303c78a14e065"
+ hash: "25dfa32ce92b6044f5ea68411ab5de5b"
}
Frame {
msec: 4416
- hash: "15603a997aa02afb688aa74cd930f3b4"
+ hash: "dab689ed2bbe663df309548e615e8621"
}
Frame {
msec: 4432
- hash: "90bf6b2bf89e1440f0c4d1044c1bd22c"
+ hash: "26ad44cef380ff9f64c12180fb54c695"
}
Frame {
msec: 4448
- hash: "4dbdc16538cbbf1a87c6a54e09e02b16"
+ hash: "5e8bbcd46b5692e66963387b80971e90"
}
Frame {
msec: 4464
- hash: "2011ee59d2ec4bb0ae0d63727f091648"
+ hash: "747df5357daa951fbedeadf909f9dbf3"
}
Frame {
msec: 4480
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4496
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4512
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4528
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4544
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4560
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4576
- hash: "02996bef06c74f34cf8be4cf4d1392d5"
+ hash: "1568d4b93d2a284c46f23a0cb17acc24"
}
Frame {
msec: 4592
- hash: "2d8cb2d213ce22132ba63a829c07f768"
+ hash: "0665a6cfc09981cd8a7ffd0d02e6fbdc"
}
Frame {
msec: 4608
- hash: "0a16c282a18fdc657ea48fb208dea494"
+ hash: "49892aa44c8e3584239d245a7ca98af3"
}
Frame {
msec: 4624
- hash: "86baec52ccb8ae818439c637c5be1514"
+ hash: "c9def393bb5d6c447c45b127d32b5e50"
}
Frame {
msec: 4640
- hash: "72e2415581ba2a96b8f23cf8f5985afb"
+ hash: "679d94007b33197ce7decb4df6e8343c"
}
Frame {
msec: 4656
- hash: "7776d964b2b5f80bac51a29d298a067f"
+ hash: "817987bcd9f1147ba047333b42ed289d"
}
Frame {
msec: 4672
- hash: "3b5d0a9f961c2102a4118a8e2d2793ae"
+ hash: "fdd9331015c289b8e33b094999b11dce"
}
Frame {
msec: 4688
- hash: "048b5e51d9bcf8d1b24c8f8f98b7b4e4"
+ hash: "e4fa13ba2770c0d390945ee4505fea9b"
}
Frame {
msec: 4704
- hash: "d30e5d7c27b72ec95c41a87741061a3f"
+ hash: "69965c88d2273acf680af243610efcf3"
}
Frame {
msec: 4720
- hash: "0374cc41cdb6528e212f678e0e049f2b"
+ hash: "6cbeb6787a0a7fb7f654f877e41eed57"
}
Frame {
msec: 4736
- hash: "c80bc90c90b02d1d42176f16fa992f27"
+ hash: "e7528c074b3c65afe3873a3cdf96f041"
}
Frame {
msec: 4752
- hash: "70182707dbdf87a2c8db556f030bec17"
+ hash: "c06c72abe46087f0db87a84fdcbcf601"
}
Frame {
msec: 4768
- hash: "0c6c0c3d27d87128d65b40789714dd6b"
+ hash: "b6840f1d7cf2caed17d763b782553071"
}
Frame {
msec: 4784
- hash: "46e1debee4ca606492a36de6191f4594"
+ hash: "71fdb77c4133f37180d581e4b1fe9c83"
}
Frame {
msec: 4800
- image: "cursorDelegate.4.png"
+ hash: "f5e2075ed86f146e0162ae4f0a9c6b90"
}
Frame {
msec: 4816
- hash: "15bc04b65bde5e8ca69b6a1f88647c16"
+ image: "cursorDelegate.5.png"
}
Frame {
msec: 4832
- hash: "27156c3309835ec20a02877f1188e14a"
+ hash: "28c8003699352c3c9563556939d49cd8"
}
Frame {
msec: 4848
- hash: "a163019c9feff0f4d1bb4aaedcd2ecd4"
+ hash: "15ab751c8463326c870dc9ee1af3c1d7"
}
Frame {
msec: 4864
- hash: "35f243da98f9934d5ac0a7cc1fde73ef"
+ hash: "b745b2aee5ec623163ea22614b8ab54b"
}
Frame {
msec: 4880
- hash: "42d393d75e0c1d5aea0e1694190e4507"
+ hash: "b3f3b8e325dcd56b696eab7228c3db09"
}
Frame {
msec: 4896
- hash: "0ec47c6c74efd66d339d9be13148e334"
+ hash: "12ba65e0f70a670b2832235391d3ed05"
}
Frame {
msec: 4912
- hash: "2e7597e8d03f0a05cf96fe7e2a3ee540"
+ hash: "9dfac03113b662a63bddcac9c7ae8f64"
}
Frame {
msec: 4928
- hash: "093c9e5ac431284de7e81e082868c5db"
+ hash: "085bbc44102ae0d1d62531f6b6dbda98"
}
Frame {
msec: 4944
- hash: "60ae71c4a6c905f47b2b457d9167153b"
+ hash: "007887862e2234f4c308778ecac5e16b"
}
Frame {
msec: 4960
- hash: "e4be7897b1b30ab916a53df2998282d7"
+ hash: "61e8e34755db1fb99b44830676ad95ad"
}
Frame {
msec: 4976
- hash: "c082b97799dffdb73ad65b2920507e9c"
+ hash: "48c8b1b0d549f7b6d85a81803b9fe31d"
}
Frame {
msec: 4992
- hash: "aadaab0547a4f15c533589b531f39504"
+ hash: "834cf51445f88394e33a3f3f0a5569f4"
}
Frame {
msec: 5008
- hash: "847f0a1faf094e73d533692fa47a030a"
+ hash: "a43224f77583bb7235895506f49daee6"
}
Frame {
msec: 5024
- hash: "847f0a1faf094e73d533692fa47a030a"
+ hash: "a43224f77583bb7235895506f49daee6"
}
Frame {
msec: 5040
- hash: "aadaab0547a4f15c533589b531f39504"
+ hash: "834cf51445f88394e33a3f3f0a5569f4"
}
Frame {
msec: 5056
- hash: "c082b97799dffdb73ad65b2920507e9c"
+ hash: "48c8b1b0d549f7b6d85a81803b9fe31d"
}
Frame {
msec: 5072
- hash: "e4be7897b1b30ab916a53df2998282d7"
+ hash: "61e8e34755db1fb99b44830676ad95ad"
}
Frame {
msec: 5088
- hash: "60ae71c4a6c905f47b2b457d9167153b"
+ hash: "007887862e2234f4c308778ecac5e16b"
}
Frame {
msec: 5104
- hash: "093c9e5ac431284de7e81e082868c5db"
+ hash: "085bbc44102ae0d1d62531f6b6dbda98"
}
Frame {
msec: 5120
- hash: "2e7597e8d03f0a05cf96fe7e2a3ee540"
+ hash: "9dfac03113b662a63bddcac9c7ae8f64"
}
Frame {
msec: 5136
- hash: "0ec47c6c74efd66d339d9be13148e334"
+ hash: "12ba65e0f70a670b2832235391d3ed05"
}
Frame {
msec: 5152
- hash: "42d393d75e0c1d5aea0e1694190e4507"
+ hash: "b3f3b8e325dcd56b696eab7228c3db09"
}
Frame {
msec: 5168
- hash: "35f243da98f9934d5ac0a7cc1fde73ef"
+ hash: "b745b2aee5ec623163ea22614b8ab54b"
}
Frame {
msec: 5184
- hash: "a163019c9feff0f4d1bb4aaedcd2ecd4"
+ hash: "15ab751c8463326c870dc9ee1af3c1d7"
}
Frame {
msec: 5200
- hash: "27156c3309835ec20a02877f1188e14a"
+ hash: "28c8003699352c3c9563556939d49cd8"
}
Frame {
msec: 5216
- hash: "15bc04b65bde5e8ca69b6a1f88647c16"
+ hash: "5e76b741f49bd279b9f62ae3f474e5b5"
}
Frame {
msec: 5232
- hash: "f327bb2ea12b2baffc0a98d44a0ded16"
+ hash: "f5e2075ed86f146e0162ae4f0a9c6b90"
}
Frame {
msec: 5248
- hash: "46e1debee4ca606492a36de6191f4594"
+ hash: "71fdb77c4133f37180d581e4b1fe9c83"
}
Frame {
msec: 5264
- hash: "0c6c0c3d27d87128d65b40789714dd6b"
+ hash: "b6840f1d7cf2caed17d763b782553071"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png
index dfd30f65bc..852fc66a11 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png
index 9d4eb9b8b7..4b283d01a9 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png
index 968517edb9..342fe05644 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png
index eb62c19cde..fb4a774c93 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.4.png
new file mode 100644
index 0000000000..852fc66a11
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml
index a7df61f252..d7b26cb34b 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml
@@ -6,99 +6,99 @@ VisualTest {
}
Frame {
msec: 16
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ image: "qt-669.0.png"
}
Frame {
msec: 32
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 48
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 64
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 80
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 96
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 112
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 128
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 144
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 160
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 176
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 192
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 208
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 224
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 240
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 256
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 272
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 288
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 304
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 320
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 336
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 352
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 368
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 384
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Key {
type: 6
@@ -110,15 +110,15 @@ VisualTest {
}
Frame {
msec: 400
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 416
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 432
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Key {
type: 7
@@ -130,27 +130,27 @@ VisualTest {
}
Frame {
msec: 448
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 464
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 480
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 496
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 512
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 528
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Key {
type: 6
@@ -162,15 +162,15 @@ VisualTest {
}
Frame {
msec: 544
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 560
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 576
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Key {
type: 7
@@ -182,27 +182,27 @@ VisualTest {
}
Frame {
msec: 592
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 608
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 624
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 640
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 656
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 672
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Key {
type: 6
@@ -214,19 +214,19 @@ VisualTest {
}
Frame {
msec: 688
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 704
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 720
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 736
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Key {
type: 7
@@ -238,23 +238,23 @@ VisualTest {
}
Frame {
msec: 752
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 768
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 784
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 800
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 816
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Key {
type: 6
@@ -266,19 +266,19 @@ VisualTest {
}
Frame {
msec: 832
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 848
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 864
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 880
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Key {
type: 7
@@ -290,19 +290,19 @@ VisualTest {
}
Frame {
msec: 896
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 912
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 928
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 944
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Key {
type: 6
@@ -314,19 +314,19 @@ VisualTest {
}
Frame {
msec: 960
- image: "qt-669.0.png"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 976
- hash: "0873eebe3bbcb864644811670642028e"
+ image: "qt-669.1.png"
}
Frame {
msec: 992
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 1008
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Key {
type: 7
@@ -338,23 +338,23 @@ VisualTest {
}
Frame {
msec: 1024
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 1040
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 1056
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 1072
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 1088
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Key {
type: 6
@@ -366,15 +366,15 @@ VisualTest {
}
Frame {
msec: 1104
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 1120
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 1136
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Key {
type: 7
@@ -386,23 +386,23 @@ VisualTest {
}
Frame {
msec: 1152
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 1168
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 1184
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 1200
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 1216
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Key {
type: 6
@@ -414,19 +414,19 @@ VisualTest {
}
Frame {
msec: 1232
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 1248
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 1264
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 1280
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Key {
type: 7
@@ -438,19 +438,19 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 1312
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 1328
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 1344
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Key {
type: 6
@@ -462,19 +462,19 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1376
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1392
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1408
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Key {
type: 7
@@ -486,23 +486,23 @@ VisualTest {
}
Frame {
msec: 1424
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1440
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1456
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1472
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1488
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Key {
type: 6
@@ -514,15 +514,15 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1520
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1536
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Key {
type: 7
@@ -534,79 +534,79 @@ VisualTest {
}
Frame {
msec: 1552
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1568
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1584
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1600
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1616
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1632
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1648
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1664
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1680
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1696
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1712
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1728
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1744
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1760
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1776
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1792
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1808
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1824
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Frame {
msec: 1840
- hash: "ab021c71945620eba0b0cd70c7cffe5d"
+ hash: "389d0ac399e709482600181b4869be43"
}
Key {
type: 6
@@ -618,39 +618,39 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1872
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1888
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1904
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1920
- image: "qt-669.1.png"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1936
- hash: "2ce295d30754b14d889795d2192fef41"
+ image: "qt-669.2.png"
}
Frame {
msec: 1952
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1968
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 1984
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Key {
type: 7
@@ -662,23 +662,23 @@ VisualTest {
}
Frame {
msec: 2000
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 2016
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 2032
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 2048
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Frame {
msec: 2064
- hash: "2ce295d30754b14d889795d2192fef41"
+ hash: "9ec7c9965d3ce810553b1182b746d148"
}
Key {
type: 6
@@ -690,23 +690,23 @@ VisualTest {
}
Frame {
msec: 2080
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 2096
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 2112
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 2128
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 2144
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Key {
type: 7
@@ -718,23 +718,23 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 2176
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 2192
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 2208
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Frame {
msec: 2224
- hash: "22bdd816325b5466ca937cf2535a3ef8"
+ hash: "fca9d1748195f0d4388694baf901c498"
}
Key {
type: 6
@@ -746,11 +746,11 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 2256
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Key {
type: 7
@@ -762,23 +762,23 @@ VisualTest {
}
Frame {
msec: 2272
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 2288
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 2304
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 2320
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Frame {
msec: 2336
- hash: "a88ac2f56d3d75a277b0855e2baeda33"
+ hash: "f531e8dd89482e3d7c501d0b3a8b3392"
}
Key {
type: 6
@@ -790,15 +790,15 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2368
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2384
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Key {
type: 7
@@ -810,55 +810,55 @@ VisualTest {
}
Frame {
msec: 2400
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2416
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2432
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2448
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2464
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2480
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2496
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2512
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2528
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2544
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2560
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2576
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Frame {
msec: 2592
- hash: "0873eebe3bbcb864644811670642028e"
+ hash: "a719560bf7912aa6cf4e8e5bfc13cb06"
}
Key {
type: 6
@@ -870,23 +870,23 @@ VisualTest {
}
Frame {
msec: 2608
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 2624
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 2640
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 2656
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 2672
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Key {
type: 7
@@ -898,23 +898,23 @@ VisualTest {
}
Frame {
msec: 2688
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 2704
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 2720
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 2736
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Frame {
msec: 2752
- hash: "94d3da7909c84467c62deb2861104d21"
+ hash: "86e1ba72951c0c193bfd2cd2162c500e"
}
Key {
type: 6
@@ -926,15 +926,15 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 2784
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 2800
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Key {
type: 7
@@ -946,19 +946,19 @@ VisualTest {
}
Frame {
msec: 2816
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 2832
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 2848
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Frame {
msec: 2864
- hash: "5a7abe3d30f7dc66c2cda37b03ff339f"
+ hash: "e5fd0e8d81d75fb53e21b6daa8e0fc7f"
}
Key {
type: 6
@@ -970,19 +970,19 @@ VisualTest {
}
Frame {
msec: 2880
- image: "qt-669.2.png"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 2896
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ image: "qt-669.3.png"
}
Frame {
msec: 2912
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 2928
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Key {
type: 7
@@ -994,23 +994,23 @@ VisualTest {
}
Frame {
msec: 2944
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 2960
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 2976
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 2992
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Frame {
msec: 3008
- hash: "ddf97bfd6216415dd2a56871f19c2d49"
+ hash: "e2a49d72741ba08c258bb70d3a13c7f6"
}
Key {
type: 6
@@ -1022,23 +1022,23 @@ VisualTest {
}
Frame {
msec: 3024
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3040
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3056
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3072
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3088
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Key {
type: 7
@@ -1050,155 +1050,155 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3120
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3136
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3152
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3168
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3184
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3200
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3216
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3232
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3248
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3264
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3280
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3296
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3312
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3328
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3344
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3360
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3376
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3392
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3408
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3424
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3440
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3456
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3472
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3488
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3504
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3520
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3536
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3552
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3568
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3584
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3600
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3616
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3632
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3648
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3664
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3680
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Frame {
msec: 3696
- hash: "5db508bc5a66018d9732cf8427461ef2"
+ hash: "1d69ccdf88fa78b44a77147190bf1dfc"
}
Key {
type: 6
@@ -1210,27 +1210,27 @@ VisualTest {
}
Frame {
msec: 3712
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3728
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3744
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3760
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3776
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3792
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Key {
type: 7
@@ -1242,130 +1242,130 @@ VisualTest {
}
Frame {
msec: 3808
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3824
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3840
- image: "qt-669.3.png"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3856
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ image: "qt-669.4.png"
}
Frame {
msec: 3872
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3888
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3904
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3920
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3936
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3952
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3968
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 3984
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4000
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4016
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4032
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4048
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4064
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4080
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4096
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4112
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4128
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4144
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4160
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4176
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4192
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4208
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4224
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4240
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4256
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4272
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4288
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
Frame {
msec: 4304
- hash: "9d4f0f25239a53ed9ac917df0c4a5f8e"
+ hash: "32c2b08a6123015ca72f283f89ee1663"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png
index 5049c3f81e..0b4ca4ef01 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png
index ee6e16a3e1..251beb672e 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png
index d9d22520a4..5cd2d7d469 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png
index d9d22520a4..5cd2d7d469 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.12.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.12.png
new file mode 100644
index 0000000000..5cd2d7d469
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.12.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png
index cf99d98c15..bf6a44e7f2 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png
index e3937f03db..1089578575 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png
index 2fe33379c2..c9113def81 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png
index 97b99134d5..47b47443ff 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png
index 08e059f865..c518204a6e 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png
index bbc5ba24df..9f1c26a15a 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png
index 465b64e8ed..cd8d0a51e9 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png
index d9d22520a4..8f5f872b22 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml
index a8173be17e..a064bf3747 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.qml
@@ -6,83 +6,83 @@ VisualTest {
}
Frame {
msec: 16
- hash: "e742c08c259034e879b95eea60794e77"
+ image: "usingMultilineEdit.0.png"
}
Frame {
msec: 32
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 48
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 64
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 80
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 96
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 112
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 128
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 144
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 160
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 176
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 192
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 208
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 224
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 240
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 256
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 272
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 288
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 304
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 320
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Mouse {
type: 2
@@ -94,23 +94,23 @@ VisualTest {
}
Frame {
msec: 336
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 352
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 368
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 384
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 400
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Mouse {
type: 3
@@ -122,63 +122,63 @@ VisualTest {
}
Frame {
msec: 416
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 432
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 448
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 464
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 480
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 496
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 512
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 528
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 544
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 560
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 576
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 592
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 608
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 624
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Frame {
msec: 640
- hash: "e742c08c259034e879b95eea60794e77"
+ hash: "9d5bfe023a03fde612678d000e7d4135"
}
Mouse {
type: 2
@@ -190,11 +190,11 @@ VisualTest {
}
Frame {
msec: 656
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 672
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Mouse {
type: 3
@@ -206,159 +206,159 @@ VisualTest {
}
Frame {
msec: 688
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 704
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 720
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 736
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 752
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 768
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 784
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 800
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 816
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 832
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 848
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 864
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 880
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 896
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 912
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 928
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 944
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 960
- image: "usingMultilineEdit.0.png"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 976
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ image: "usingMultilineEdit.1.png"
}
Frame {
msec: 992
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1008
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1024
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1040
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1056
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1072
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1088
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1104
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1120
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1136
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1152
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1168
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1184
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1200
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1216
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1232
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1248
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1264
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1280
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Frame {
msec: 1296
- hash: "3eaecb73d32414207c898a36c9c41da3"
+ hash: "73232e1c199b5dda158a7e765386a716"
}
Key {
type: 6
@@ -370,23 +370,23 @@ VisualTest {
}
Frame {
msec: 1312
- hash: "c101a1d74691605f2740452950693e43"
+ hash: "75aa32bf4bfdda0dfcf04768bf931da6"
}
Frame {
msec: 1328
- hash: "c101a1d74691605f2740452950693e43"
+ hash: "75aa32bf4bfdda0dfcf04768bf931da6"
}
Frame {
msec: 1344
- hash: "c101a1d74691605f2740452950693e43"
+ hash: "75aa32bf4bfdda0dfcf04768bf931da6"
}
Frame {
msec: 1360
- hash: "c101a1d74691605f2740452950693e43"
+ hash: "75aa32bf4bfdda0dfcf04768bf931da6"
}
Frame {
msec: 1376
- hash: "c101a1d74691605f2740452950693e43"
+ hash: "75aa32bf4bfdda0dfcf04768bf931da6"
}
Key {
type: 7
@@ -398,7 +398,7 @@ VisualTest {
}
Frame {
msec: 1392
- hash: "c101a1d74691605f2740452950693e43"
+ hash: "75aa32bf4bfdda0dfcf04768bf931da6"
}
Key {
type: 6
@@ -410,19 +410,19 @@ VisualTest {
}
Frame {
msec: 1408
- hash: "e3e33c9f73352079db2f5e96c0069974"
+ hash: "7243b903b5b7d8c323a233ae13a2ddf3"
}
Frame {
msec: 1424
- hash: "e3e33c9f73352079db2f5e96c0069974"
+ hash: "7243b903b5b7d8c323a233ae13a2ddf3"
}
Frame {
msec: 1440
- hash: "e3e33c9f73352079db2f5e96c0069974"
+ hash: "7243b903b5b7d8c323a233ae13a2ddf3"
}
Frame {
msec: 1456
- hash: "e3e33c9f73352079db2f5e96c0069974"
+ hash: "7243b903b5b7d8c323a233ae13a2ddf3"
}
Key {
type: 7
@@ -434,27 +434,27 @@ VisualTest {
}
Frame {
msec: 1472
- hash: "e3e33c9f73352079db2f5e96c0069974"
+ hash: "7243b903b5b7d8c323a233ae13a2ddf3"
}
Frame {
msec: 1488
- hash: "e3e33c9f73352079db2f5e96c0069974"
+ hash: "7243b903b5b7d8c323a233ae13a2ddf3"
}
Frame {
msec: 1504
- hash: "e3e33c9f73352079db2f5e96c0069974"
+ hash: "7243b903b5b7d8c323a233ae13a2ddf3"
}
Frame {
msec: 1520
- hash: "e3e33c9f73352079db2f5e96c0069974"
+ hash: "7243b903b5b7d8c323a233ae13a2ddf3"
}
Frame {
msec: 1536
- hash: "e3e33c9f73352079db2f5e96c0069974"
+ hash: "7243b903b5b7d8c323a233ae13a2ddf3"
}
Frame {
msec: 1552
- hash: "e3e33c9f73352079db2f5e96c0069974"
+ hash: "7243b903b5b7d8c323a233ae13a2ddf3"
}
Key {
type: 6
@@ -466,15 +466,15 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "0e79208365ec4b5a609d13b9e6c5c8d8"
+ hash: "676834a4ee84cb251c6ed102be89ea2e"
}
Frame {
msec: 1584
- hash: "0e79208365ec4b5a609d13b9e6c5c8d8"
+ hash: "676834a4ee84cb251c6ed102be89ea2e"
}
Frame {
msec: 1600
- hash: "0e79208365ec4b5a609d13b9e6c5c8d8"
+ hash: "676834a4ee84cb251c6ed102be89ea2e"
}
Key {
type: 7
@@ -486,7 +486,7 @@ VisualTest {
}
Frame {
msec: 1616
- hash: "0e79208365ec4b5a609d13b9e6c5c8d8"
+ hash: "676834a4ee84cb251c6ed102be89ea2e"
}
Key {
type: 6
@@ -498,23 +498,23 @@ VisualTest {
}
Frame {
msec: 1632
- hash: "5485c9cf4050ef8c1dda227d27326f78"
+ hash: "74a81081cd0547624cc4168e824b48b8"
}
Frame {
msec: 1648
- hash: "5485c9cf4050ef8c1dda227d27326f78"
+ hash: "74a81081cd0547624cc4168e824b48b8"
}
Frame {
msec: 1664
- hash: "5485c9cf4050ef8c1dda227d27326f78"
+ hash: "74a81081cd0547624cc4168e824b48b8"
}
Frame {
msec: 1680
- hash: "5485c9cf4050ef8c1dda227d27326f78"
+ hash: "74a81081cd0547624cc4168e824b48b8"
}
Frame {
msec: 1696
- hash: "5485c9cf4050ef8c1dda227d27326f78"
+ hash: "74a81081cd0547624cc4168e824b48b8"
}
Key {
type: 7
@@ -526,11 +526,11 @@ VisualTest {
}
Frame {
msec: 1712
- hash: "5485c9cf4050ef8c1dda227d27326f78"
+ hash: "74a81081cd0547624cc4168e824b48b8"
}
Frame {
msec: 1728
- hash: "5485c9cf4050ef8c1dda227d27326f78"
+ hash: "74a81081cd0547624cc4168e824b48b8"
}
Key {
type: 6
@@ -542,15 +542,15 @@ VisualTest {
}
Frame {
msec: 1744
- hash: "1063a2e6164b372ba364c15c1c8b6ade"
+ hash: "4c736b2bffb38df898478e3d0ce37fb0"
}
Frame {
msec: 1760
- hash: "1063a2e6164b372ba364c15c1c8b6ade"
+ hash: "4c736b2bffb38df898478e3d0ce37fb0"
}
Frame {
msec: 1776
- hash: "1063a2e6164b372ba364c15c1c8b6ade"
+ hash: "4c736b2bffb38df898478e3d0ce37fb0"
}
Key {
type: 7
@@ -562,15 +562,15 @@ VisualTest {
}
Frame {
msec: 1792
- hash: "1063a2e6164b372ba364c15c1c8b6ade"
+ hash: "4c736b2bffb38df898478e3d0ce37fb0"
}
Frame {
msec: 1808
- hash: "1063a2e6164b372ba364c15c1c8b6ade"
+ hash: "4c736b2bffb38df898478e3d0ce37fb0"
}
Frame {
msec: 1824
- hash: "1063a2e6164b372ba364c15c1c8b6ade"
+ hash: "4c736b2bffb38df898478e3d0ce37fb0"
}
Key {
type: 6
@@ -582,23 +582,23 @@ VisualTest {
}
Frame {
msec: 1840
- hash: "213c0057171a86bd4e2d898fac4d6642"
+ hash: "fd070c77e33e1498bacf0076903d33d7"
}
Frame {
msec: 1856
- hash: "213c0057171a86bd4e2d898fac4d6642"
+ hash: "fd070c77e33e1498bacf0076903d33d7"
}
Frame {
msec: 1872
- hash: "213c0057171a86bd4e2d898fac4d6642"
+ hash: "fd070c77e33e1498bacf0076903d33d7"
}
Frame {
msec: 1888
- hash: "213c0057171a86bd4e2d898fac4d6642"
+ hash: "fd070c77e33e1498bacf0076903d33d7"
}
Frame {
msec: 1904
- hash: "213c0057171a86bd4e2d898fac4d6642"
+ hash: "fd070c77e33e1498bacf0076903d33d7"
}
Key {
type: 7
@@ -618,19 +618,19 @@ VisualTest {
}
Frame {
msec: 1920
- image: "usingMultilineEdit.1.png"
+ hash: "2ce31e62bfe5c1a62621fe4ea6bb07ab"
}
Frame {
msec: 1936
- hash: "df9766751a5698f84f98faa0ac0e6f1a"
+ image: "usingMultilineEdit.2.png"
}
Frame {
msec: 1952
- hash: "df9766751a5698f84f98faa0ac0e6f1a"
+ hash: "2ce31e62bfe5c1a62621fe4ea6bb07ab"
}
Frame {
msec: 1968
- hash: "df9766751a5698f84f98faa0ac0e6f1a"
+ hash: "2ce31e62bfe5c1a62621fe4ea6bb07ab"
}
Key {
type: 6
@@ -642,11 +642,11 @@ VisualTest {
}
Frame {
msec: 1984
- hash: "47cb63f13c81ac6557ecc68d4e6f9c99"
+ hash: "77f7b91dba63e20e92b47575ae2f1a85"
}
Frame {
msec: 2000
- hash: "47cb63f13c81ac6557ecc68d4e6f9c99"
+ hash: "77f7b91dba63e20e92b47575ae2f1a85"
}
Key {
type: 7
@@ -658,7 +658,7 @@ VisualTest {
}
Frame {
msec: 2016
- hash: "47cb63f13c81ac6557ecc68d4e6f9c99"
+ hash: "77f7b91dba63e20e92b47575ae2f1a85"
}
Key {
type: 6
@@ -670,11 +670,11 @@ VisualTest {
}
Frame {
msec: 2032
- hash: "4f39251d7a0071a67435d088f46fc4fe"
+ hash: "6c881ac1c94b6648ce1a2c39e477906c"
}
Frame {
msec: 2048
- hash: "4f39251d7a0071a67435d088f46fc4fe"
+ hash: "6c881ac1c94b6648ce1a2c39e477906c"
}
Key {
type: 7
@@ -686,19 +686,19 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "4f39251d7a0071a67435d088f46fc4fe"
+ hash: "6c881ac1c94b6648ce1a2c39e477906c"
}
Frame {
msec: 2080
- hash: "4f39251d7a0071a67435d088f46fc4fe"
+ hash: "6c881ac1c94b6648ce1a2c39e477906c"
}
Frame {
msec: 2096
- hash: "4f39251d7a0071a67435d088f46fc4fe"
+ hash: "6c881ac1c94b6648ce1a2c39e477906c"
}
Frame {
msec: 2112
- hash: "4f39251d7a0071a67435d088f46fc4fe"
+ hash: "6c881ac1c94b6648ce1a2c39e477906c"
}
Key {
type: 7
@@ -710,11 +710,11 @@ VisualTest {
}
Frame {
msec: 2128
- hash: "4f39251d7a0071a67435d088f46fc4fe"
+ hash: "6c881ac1c94b6648ce1a2c39e477906c"
}
Frame {
msec: 2144
- hash: "4f39251d7a0071a67435d088f46fc4fe"
+ hash: "6c881ac1c94b6648ce1a2c39e477906c"
}
Key {
type: 6
@@ -726,27 +726,27 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "722715a78e99d0f1f9a2830090c98f3c"
+ hash: "8799a9ee6ae4334c0e595c75160cbb35"
}
Frame {
msec: 2176
- hash: "722715a78e99d0f1f9a2830090c98f3c"
+ hash: "8799a9ee6ae4334c0e595c75160cbb35"
}
Frame {
msec: 2192
- hash: "722715a78e99d0f1f9a2830090c98f3c"
+ hash: "8799a9ee6ae4334c0e595c75160cbb35"
}
Frame {
msec: 2208
- hash: "722715a78e99d0f1f9a2830090c98f3c"
+ hash: "8799a9ee6ae4334c0e595c75160cbb35"
}
Frame {
msec: 2224
- hash: "722715a78e99d0f1f9a2830090c98f3c"
+ hash: "8799a9ee6ae4334c0e595c75160cbb35"
}
Frame {
msec: 2240
- hash: "722715a78e99d0f1f9a2830090c98f3c"
+ hash: "8799a9ee6ae4334c0e595c75160cbb35"
}
Key {
type: 7
@@ -766,23 +766,23 @@ VisualTest {
}
Frame {
msec: 2256
- hash: "aa085c20f74a765297f7904680c7591e"
+ hash: "1947b07da95b6fb20dfa0189d2e099f4"
}
Frame {
msec: 2272
- hash: "aa085c20f74a765297f7904680c7591e"
+ hash: "1947b07da95b6fb20dfa0189d2e099f4"
}
Frame {
msec: 2288
- hash: "aa085c20f74a765297f7904680c7591e"
+ hash: "1947b07da95b6fb20dfa0189d2e099f4"
}
Frame {
msec: 2304
- hash: "aa085c20f74a765297f7904680c7591e"
+ hash: "1947b07da95b6fb20dfa0189d2e099f4"
}
Frame {
msec: 2320
- hash: "aa085c20f74a765297f7904680c7591e"
+ hash: "1947b07da95b6fb20dfa0189d2e099f4"
}
Key {
type: 7
@@ -794,11 +794,11 @@ VisualTest {
}
Frame {
msec: 2336
- hash: "aa085c20f74a765297f7904680c7591e"
+ hash: "1947b07da95b6fb20dfa0189d2e099f4"
}
Frame {
msec: 2352
- hash: "aa085c20f74a765297f7904680c7591e"
+ hash: "1947b07da95b6fb20dfa0189d2e099f4"
}
Key {
type: 6
@@ -810,19 +810,19 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "0cc1397ce700d4a84647dddee65241b3"
+ hash: "f4831fddbb6dccd2add6c381abe18ff5"
}
Frame {
msec: 2384
- hash: "0cc1397ce700d4a84647dddee65241b3"
+ hash: "f4831fddbb6dccd2add6c381abe18ff5"
}
Frame {
msec: 2400
- hash: "0cc1397ce700d4a84647dddee65241b3"
+ hash: "f4831fddbb6dccd2add6c381abe18ff5"
}
Frame {
msec: 2416
- hash: "0cc1397ce700d4a84647dddee65241b3"
+ hash: "f4831fddbb6dccd2add6c381abe18ff5"
}
Key {
type: 7
@@ -834,7 +834,7 @@ VisualTest {
}
Frame {
msec: 2432
- hash: "0cc1397ce700d4a84647dddee65241b3"
+ hash: "f4831fddbb6dccd2add6c381abe18ff5"
}
Key {
type: 6
@@ -846,27 +846,27 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "ac693aa9030cc388dce9004916734aed"
+ hash: "c8e601e39d6399c3bcbe99080e10e77b"
}
Frame {
msec: 2464
- hash: "ac693aa9030cc388dce9004916734aed"
+ hash: "c8e601e39d6399c3bcbe99080e10e77b"
}
Frame {
msec: 2480
- hash: "ac693aa9030cc388dce9004916734aed"
+ hash: "c8e601e39d6399c3bcbe99080e10e77b"
}
Frame {
msec: 2496
- hash: "ac693aa9030cc388dce9004916734aed"
+ hash: "c8e601e39d6399c3bcbe99080e10e77b"
}
Frame {
msec: 2512
- hash: "ac693aa9030cc388dce9004916734aed"
+ hash: "c8e601e39d6399c3bcbe99080e10e77b"
}
Frame {
msec: 2528
- hash: "ac693aa9030cc388dce9004916734aed"
+ hash: "c8e601e39d6399c3bcbe99080e10e77b"
}
Key {
type: 7
@@ -878,7 +878,7 @@ VisualTest {
}
Frame {
msec: 2544
- hash: "ac693aa9030cc388dce9004916734aed"
+ hash: "c8e601e39d6399c3bcbe99080e10e77b"
}
Key {
type: 6
@@ -890,19 +890,19 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "e1f1b75892dc186e7f9546661722e259"
+ hash: "895b6084f9cd58d0746270468d037fc3"
}
Frame {
msec: 2576
- hash: "e1f1b75892dc186e7f9546661722e259"
+ hash: "895b6084f9cd58d0746270468d037fc3"
}
Frame {
msec: 2592
- hash: "e1f1b75892dc186e7f9546661722e259"
+ hash: "895b6084f9cd58d0746270468d037fc3"
}
Frame {
msec: 2608
- hash: "e1f1b75892dc186e7f9546661722e259"
+ hash: "895b6084f9cd58d0746270468d037fc3"
}
Key {
type: 7
@@ -914,23 +914,23 @@ VisualTest {
}
Frame {
msec: 2624
- hash: "e1f1b75892dc186e7f9546661722e259"
+ hash: "895b6084f9cd58d0746270468d037fc3"
}
Frame {
msec: 2640
- hash: "e1f1b75892dc186e7f9546661722e259"
+ hash: "895b6084f9cd58d0746270468d037fc3"
}
Frame {
msec: 2656
- hash: "e1f1b75892dc186e7f9546661722e259"
+ hash: "895b6084f9cd58d0746270468d037fc3"
}
Frame {
msec: 2672
- hash: "e1f1b75892dc186e7f9546661722e259"
+ hash: "895b6084f9cd58d0746270468d037fc3"
}
Frame {
msec: 2688
- hash: "e1f1b75892dc186e7f9546661722e259"
+ hash: "895b6084f9cd58d0746270468d037fc3"
}
Key {
type: 6
@@ -942,27 +942,27 @@ VisualTest {
}
Frame {
msec: 2704
- hash: "4c1829c6c263cf290e0e71035f678589"
+ hash: "ded3a272885f24140fb8d21835ae6b3a"
}
Frame {
msec: 2720
- hash: "4c1829c6c263cf290e0e71035f678589"
+ hash: "ded3a272885f24140fb8d21835ae6b3a"
}
Frame {
msec: 2736
- hash: "4c1829c6c263cf290e0e71035f678589"
+ hash: "ded3a272885f24140fb8d21835ae6b3a"
}
Frame {
msec: 2752
- hash: "4c1829c6c263cf290e0e71035f678589"
+ hash: "ded3a272885f24140fb8d21835ae6b3a"
}
Frame {
msec: 2768
- hash: "4c1829c6c263cf290e0e71035f678589"
+ hash: "ded3a272885f24140fb8d21835ae6b3a"
}
Frame {
msec: 2784
- hash: "4c1829c6c263cf290e0e71035f678589"
+ hash: "ded3a272885f24140fb8d21835ae6b3a"
}
Key {
type: 6
@@ -974,7 +974,7 @@ VisualTest {
}
Frame {
msec: 2800
- hash: "fa5cf022b185f178d0121b442af01c00"
+ hash: "9339ea22fd115b8ae025c0b3a588ca1c"
}
Key {
type: 7
@@ -986,19 +986,19 @@ VisualTest {
}
Frame {
msec: 2816
- hash: "fa5cf022b185f178d0121b442af01c00"
+ hash: "9339ea22fd115b8ae025c0b3a588ca1c"
}
Frame {
msec: 2832
- hash: "fa5cf022b185f178d0121b442af01c00"
+ hash: "9339ea22fd115b8ae025c0b3a588ca1c"
}
Frame {
msec: 2848
- hash: "fa5cf022b185f178d0121b442af01c00"
+ hash: "9339ea22fd115b8ae025c0b3a588ca1c"
}
Frame {
msec: 2864
- hash: "fa5cf022b185f178d0121b442af01c00"
+ hash: "9339ea22fd115b8ae025c0b3a588ca1c"
}
Key {
type: 7
@@ -1010,19 +1010,19 @@ VisualTest {
}
Frame {
msec: 2880
- image: "usingMultilineEdit.2.png"
+ hash: "9339ea22fd115b8ae025c0b3a588ca1c"
}
Frame {
msec: 2896
- hash: "fa5cf022b185f178d0121b442af01c00"
+ image: "usingMultilineEdit.3.png"
}
Frame {
msec: 2912
- hash: "fa5cf022b185f178d0121b442af01c00"
+ hash: "9339ea22fd115b8ae025c0b3a588ca1c"
}
Frame {
msec: 2928
- hash: "fa5cf022b185f178d0121b442af01c00"
+ hash: "9339ea22fd115b8ae025c0b3a588ca1c"
}
Key {
type: 6
@@ -1034,15 +1034,15 @@ VisualTest {
}
Frame {
msec: 2944
- hash: "b0748cac94695eb95774e0cdfabf47cc"
+ hash: "1f219781fb7a7682d27cb875900d077a"
}
Frame {
msec: 2960
- hash: "b0748cac94695eb95774e0cdfabf47cc"
+ hash: "1f219781fb7a7682d27cb875900d077a"
}
Frame {
msec: 2976
- hash: "b0748cac94695eb95774e0cdfabf47cc"
+ hash: "1f219781fb7a7682d27cb875900d077a"
}
Key {
type: 7
@@ -1062,19 +1062,19 @@ VisualTest {
}
Frame {
msec: 2992
- hash: "b05fc4c21113146463372b1ea981e265"
+ hash: "20bd65f158440301e6cf14463e498368"
}
Frame {
msec: 3008
- hash: "b05fc4c21113146463372b1ea981e265"
+ hash: "20bd65f158440301e6cf14463e498368"
}
Frame {
msec: 3024
- hash: "b05fc4c21113146463372b1ea981e265"
+ hash: "20bd65f158440301e6cf14463e498368"
}
Frame {
msec: 3040
- hash: "b05fc4c21113146463372b1ea981e265"
+ hash: "20bd65f158440301e6cf14463e498368"
}
Key {
type: 7
@@ -1086,7 +1086,7 @@ VisualTest {
}
Frame {
msec: 3056
- hash: "b05fc4c21113146463372b1ea981e265"
+ hash: "20bd65f158440301e6cf14463e498368"
}
Key {
type: 6
@@ -1098,15 +1098,15 @@ VisualTest {
}
Frame {
msec: 3072
- hash: "01b789845bf308fc896d53bbbfe0dd01"
+ hash: "3e73d53051a3175393f4ecb486645bf9"
}
Frame {
msec: 3088
- hash: "01b789845bf308fc896d53bbbfe0dd01"
+ hash: "3e73d53051a3175393f4ecb486645bf9"
}
Frame {
msec: 3104
- hash: "01b789845bf308fc896d53bbbfe0dd01"
+ hash: "3e73d53051a3175393f4ecb486645bf9"
}
Key {
type: 6
@@ -1118,7 +1118,7 @@ VisualTest {
}
Frame {
msec: 3120
- hash: "01b789845bf308fc896d53bbbfe0dd01"
+ hash: "3e73d53051a3175393f4ecb486645bf9"
}
Key {
type: 7
@@ -1130,11 +1130,11 @@ VisualTest {
}
Frame {
msec: 3136
- hash: "01b789845bf308fc896d53bbbfe0dd01"
+ hash: "3e73d53051a3175393f4ecb486645bf9"
}
Frame {
msec: 3152
- hash: "01b789845bf308fc896d53bbbfe0dd01"
+ hash: "3e73d53051a3175393f4ecb486645bf9"
}
Key {
type: 6
@@ -1146,19 +1146,19 @@ VisualTest {
}
Frame {
msec: 3168
- hash: "433d805d957203918fc4a8edfc93290e"
+ hash: "6f566097d23557bef60969852cd3515e"
}
Frame {
msec: 3184
- hash: "433d805d957203918fc4a8edfc93290e"
+ hash: "6f566097d23557bef60969852cd3515e"
}
Frame {
msec: 3200
- hash: "433d805d957203918fc4a8edfc93290e"
+ hash: "6f566097d23557bef60969852cd3515e"
}
Frame {
msec: 3216
- hash: "433d805d957203918fc4a8edfc93290e"
+ hash: "6f566097d23557bef60969852cd3515e"
}
Key {
type: 7
@@ -1170,7 +1170,7 @@ VisualTest {
}
Frame {
msec: 3232
- hash: "433d805d957203918fc4a8edfc93290e"
+ hash: "6f566097d23557bef60969852cd3515e"
}
Key {
type: 7
@@ -1190,19 +1190,19 @@ VisualTest {
}
Frame {
msec: 3248
- hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d"
+ hash: "4767592fe68e8d32d286cf5eaf4510ff"
}
Frame {
msec: 3264
- hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d"
+ hash: "4767592fe68e8d32d286cf5eaf4510ff"
}
Frame {
msec: 3280
- hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d"
+ hash: "4767592fe68e8d32d286cf5eaf4510ff"
}
Frame {
msec: 3296
- hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d"
+ hash: "4767592fe68e8d32d286cf5eaf4510ff"
}
Key {
type: 7
@@ -1214,7 +1214,7 @@ VisualTest {
}
Frame {
msec: 3312
- hash: "1ebec912ac11b11d2ba7e5abdfb9ef6d"
+ hash: "4767592fe68e8d32d286cf5eaf4510ff"
}
Key {
type: 6
@@ -1226,23 +1226,23 @@ VisualTest {
}
Frame {
msec: 3328
- hash: "b4bc12141255c91630e775fcf4935f22"
+ hash: "d7fd1a19be4f061fc39c4accf18ba0dc"
}
Frame {
msec: 3344
- hash: "b4bc12141255c91630e775fcf4935f22"
+ hash: "d7fd1a19be4f061fc39c4accf18ba0dc"
}
Frame {
msec: 3360
- hash: "b4bc12141255c91630e775fcf4935f22"
+ hash: "d7fd1a19be4f061fc39c4accf18ba0dc"
}
Frame {
msec: 3376
- hash: "b4bc12141255c91630e775fcf4935f22"
+ hash: "d7fd1a19be4f061fc39c4accf18ba0dc"
}
Frame {
msec: 3392
- hash: "b4bc12141255c91630e775fcf4935f22"
+ hash: "d7fd1a19be4f061fc39c4accf18ba0dc"
}
Key {
type: 7
@@ -1254,7 +1254,7 @@ VisualTest {
}
Frame {
msec: 3408
- hash: "b4bc12141255c91630e775fcf4935f22"
+ hash: "d7fd1a19be4f061fc39c4accf18ba0dc"
}
Key {
type: 6
@@ -1266,23 +1266,23 @@ VisualTest {
}
Frame {
msec: 3424
- hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52"
+ hash: "03e74ddf4c94d322c1b1b35419157948"
}
Frame {
msec: 3440
- hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52"
+ hash: "03e74ddf4c94d322c1b1b35419157948"
}
Frame {
msec: 3456
- hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52"
+ hash: "03e74ddf4c94d322c1b1b35419157948"
}
Frame {
msec: 3472
- hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52"
+ hash: "03e74ddf4c94d322c1b1b35419157948"
}
Frame {
msec: 3488
- hash: "8d83a3f76fd8b77c6dd9fdfb573d9c52"
+ hash: "03e74ddf4c94d322c1b1b35419157948"
}
Key {
type: 7
@@ -1302,27 +1302,27 @@ VisualTest {
}
Frame {
msec: 3504
- hash: "3f154d5eace7e0e688fe609d7eebe80d"
+ hash: "32712a89ba577f55319fe90873668138"
}
Frame {
msec: 3520
- hash: "3f154d5eace7e0e688fe609d7eebe80d"
+ hash: "32712a89ba577f55319fe90873668138"
}
Frame {
msec: 3536
- hash: "3f154d5eace7e0e688fe609d7eebe80d"
+ hash: "32712a89ba577f55319fe90873668138"
}
Frame {
msec: 3552
- hash: "3f154d5eace7e0e688fe609d7eebe80d"
+ hash: "32712a89ba577f55319fe90873668138"
}
Frame {
msec: 3568
- hash: "3f154d5eace7e0e688fe609d7eebe80d"
+ hash: "32712a89ba577f55319fe90873668138"
}
Frame {
msec: 3584
- hash: "3f154d5eace7e0e688fe609d7eebe80d"
+ hash: "32712a89ba577f55319fe90873668138"
}
Key {
type: 7
@@ -1334,7 +1334,7 @@ VisualTest {
}
Frame {
msec: 3600
- hash: "3f154d5eace7e0e688fe609d7eebe80d"
+ hash: "32712a89ba577f55319fe90873668138"
}
Key {
type: 6
@@ -1346,19 +1346,19 @@ VisualTest {
}
Frame {
msec: 3616
- hash: "8cecca2b1a586b7121692a8f618a1a50"
+ hash: "9f1cf9784c0659f4902d632542fe9d52"
}
Frame {
msec: 3632
- hash: "8cecca2b1a586b7121692a8f618a1a50"
+ hash: "9f1cf9784c0659f4902d632542fe9d52"
}
Frame {
msec: 3648
- hash: "8cecca2b1a586b7121692a8f618a1a50"
+ hash: "9f1cf9784c0659f4902d632542fe9d52"
}
Frame {
msec: 3664
- hash: "8cecca2b1a586b7121692a8f618a1a50"
+ hash: "9f1cf9784c0659f4902d632542fe9d52"
}
Key {
type: 6
@@ -1370,7 +1370,7 @@ VisualTest {
}
Frame {
msec: 3680
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Key {
type: 7
@@ -1382,15 +1382,15 @@ VisualTest {
}
Frame {
msec: 3696
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3712
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3728
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Key {
type: 7
@@ -1402,63 +1402,63 @@ VisualTest {
}
Frame {
msec: 3744
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3760
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3776
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3792
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3808
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3824
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3840
- image: "usingMultilineEdit.3.png"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3856
- hash: "90bd87209b6d26785689779641b1f506"
+ image: "usingMultilineEdit.4.png"
}
Frame {
msec: 3872
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3888
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3904
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3920
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3936
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3952
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Frame {
msec: 3968
- hash: "90bd87209b6d26785689779641b1f506"
+ hash: "b350f3b710a0d36ba56bdce6c86f902e"
}
Key {
type: 6
@@ -1470,23 +1470,23 @@ VisualTest {
}
Frame {
msec: 3984
- hash: "7fac93ef3184d5a844448c75b0aa8e18"
+ hash: "2b44bf2548bd887f22e5689946e24de5"
}
Frame {
msec: 4000
- hash: "7fac93ef3184d5a844448c75b0aa8e18"
+ hash: "2b44bf2548bd887f22e5689946e24de5"
}
Frame {
msec: 4016
- hash: "7fac93ef3184d5a844448c75b0aa8e18"
+ hash: "2b44bf2548bd887f22e5689946e24de5"
}
Frame {
msec: 4032
- hash: "7fac93ef3184d5a844448c75b0aa8e18"
+ hash: "2b44bf2548bd887f22e5689946e24de5"
}
Frame {
msec: 4048
- hash: "7fac93ef3184d5a844448c75b0aa8e18"
+ hash: "2b44bf2548bd887f22e5689946e24de5"
}
Key {
type: 6
@@ -1498,7 +1498,7 @@ VisualTest {
}
Frame {
msec: 4064
- hash: "591366861f9e23276042250d5b1da7f9"
+ hash: "925c7c96166cc75dc92bd280fd354e43"
}
Key {
type: 7
@@ -1510,19 +1510,19 @@ VisualTest {
}
Frame {
msec: 4080
- hash: "591366861f9e23276042250d5b1da7f9"
+ hash: "925c7c96166cc75dc92bd280fd354e43"
}
Frame {
msec: 4096
- hash: "591366861f9e23276042250d5b1da7f9"
+ hash: "925c7c96166cc75dc92bd280fd354e43"
}
Frame {
msec: 4112
- hash: "591366861f9e23276042250d5b1da7f9"
+ hash: "925c7c96166cc75dc92bd280fd354e43"
}
Frame {
msec: 4128
- hash: "591366861f9e23276042250d5b1da7f9"
+ hash: "925c7c96166cc75dc92bd280fd354e43"
}
Key {
type: 6
@@ -1534,11 +1534,11 @@ VisualTest {
}
Frame {
msec: 4144
- hash: "c5c33e5f4429698b1a1bc084a41d303d"
+ hash: "61d6f7583f143917b86adcad6a5ba909"
}
Frame {
msec: 4160
- hash: "c5c33e5f4429698b1a1bc084a41d303d"
+ hash: "61d6f7583f143917b86adcad6a5ba909"
}
Key {
type: 7
@@ -1550,15 +1550,15 @@ VisualTest {
}
Frame {
msec: 4176
- hash: "c5c33e5f4429698b1a1bc084a41d303d"
+ hash: "61d6f7583f143917b86adcad6a5ba909"
}
Frame {
msec: 4192
- hash: "c5c33e5f4429698b1a1bc084a41d303d"
+ hash: "61d6f7583f143917b86adcad6a5ba909"
}
Frame {
msec: 4208
- hash: "c5c33e5f4429698b1a1bc084a41d303d"
+ hash: "61d6f7583f143917b86adcad6a5ba909"
}
Key {
type: 6
@@ -1570,11 +1570,11 @@ VisualTest {
}
Frame {
msec: 4224
- hash: "36223521c9ab06661239329c14e4fabe"
+ hash: "679e0940be9c40435aebb05a6e0da685"
}
Frame {
msec: 4240
- hash: "36223521c9ab06661239329c14e4fabe"
+ hash: "679e0940be9c40435aebb05a6e0da685"
}
Key {
type: 7
@@ -1586,11 +1586,11 @@ VisualTest {
}
Frame {
msec: 4256
- hash: "36223521c9ab06661239329c14e4fabe"
+ hash: "679e0940be9c40435aebb05a6e0da685"
}
Frame {
msec: 4272
- hash: "36223521c9ab06661239329c14e4fabe"
+ hash: "679e0940be9c40435aebb05a6e0da685"
}
Key {
type: 7
@@ -1602,27 +1602,27 @@ VisualTest {
}
Frame {
msec: 4288
- hash: "36223521c9ab06661239329c14e4fabe"
+ hash: "679e0940be9c40435aebb05a6e0da685"
}
Frame {
msec: 4304
- hash: "36223521c9ab06661239329c14e4fabe"
+ hash: "679e0940be9c40435aebb05a6e0da685"
}
Frame {
msec: 4320
- hash: "36223521c9ab06661239329c14e4fabe"
+ hash: "679e0940be9c40435aebb05a6e0da685"
}
Frame {
msec: 4336
- hash: "36223521c9ab06661239329c14e4fabe"
+ hash: "679e0940be9c40435aebb05a6e0da685"
}
Frame {
msec: 4352
- hash: "36223521c9ab06661239329c14e4fabe"
+ hash: "679e0940be9c40435aebb05a6e0da685"
}
Frame {
msec: 4368
- hash: "36223521c9ab06661239329c14e4fabe"
+ hash: "679e0940be9c40435aebb05a6e0da685"
}
Key {
type: 6
@@ -1634,23 +1634,23 @@ VisualTest {
}
Frame {
msec: 4384
- hash: "22ab171b9805302b729afd314e55a0f4"
+ hash: "e819d25f605ec1347e89de65682edb7d"
}
Frame {
msec: 4400
- hash: "22ab171b9805302b729afd314e55a0f4"
+ hash: "e819d25f605ec1347e89de65682edb7d"
}
Frame {
msec: 4416
- hash: "22ab171b9805302b729afd314e55a0f4"
+ hash: "e819d25f605ec1347e89de65682edb7d"
}
Frame {
msec: 4432
- hash: "22ab171b9805302b729afd314e55a0f4"
+ hash: "e819d25f605ec1347e89de65682edb7d"
}
Frame {
msec: 4448
- hash: "22ab171b9805302b729afd314e55a0f4"
+ hash: "e819d25f605ec1347e89de65682edb7d"
}
Key {
type: 7
@@ -1662,7 +1662,7 @@ VisualTest {
}
Frame {
msec: 4464
- hash: "22ab171b9805302b729afd314e55a0f4"
+ hash: "e819d25f605ec1347e89de65682edb7d"
}
Key {
type: 6
@@ -1674,23 +1674,23 @@ VisualTest {
}
Frame {
msec: 4480
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4496
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4512
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4528
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4544
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Key {
type: 7
@@ -1702,15 +1702,15 @@ VisualTest {
}
Frame {
msec: 4560
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4576
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4592
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Key {
type: 6
@@ -1722,63 +1722,63 @@ VisualTest {
}
Frame {
msec: 4608
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4624
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4640
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4656
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4672
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4688
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4704
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4720
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4736
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4752
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4768
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4784
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4800
- image: "usingMultilineEdit.4.png"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Frame {
msec: 4816
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ image: "usingMultilineEdit.5.png"
}
Frame {
msec: 4832
- hash: "beaad223234484e21f824ceb7f1edc2a"
+ hash: "ef65860a90a96d521a860c4e73e833ee"
}
Key {
type: 6
@@ -1790,31 +1790,31 @@ VisualTest {
}
Frame {
msec: 4848
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 4864
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 4880
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 4896
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 4912
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 4928
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 4944
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Key {
type: 7
@@ -1826,19 +1826,19 @@ VisualTest {
}
Frame {
msec: 4960
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 4976
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 4992
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5008
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Key {
type: 7
@@ -1850,191 +1850,191 @@ VisualTest {
}
Frame {
msec: 5024
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5040
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5056
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5072
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5088
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5104
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5120
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5136
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5152
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5168
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5184
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5200
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5216
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5232
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5248
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5264
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5280
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5296
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5312
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5328
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5344
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5360
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5376
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5392
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5408
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5424
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5440
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5456
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5472
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5488
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5504
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5520
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5536
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5552
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5568
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5584
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5600
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5616
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5632
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5648
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5664
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5680
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5696
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5712
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5728
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5744
- hash: "49b26f36a10d808fdcb8248a384a4da6"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Frame {
msec: 5760
- image: "usingMultilineEdit.5.png"
+ hash: "84497b5307b95f59693b71dc13c838ef"
}
Mouse {
type: 2
@@ -2046,19 +2046,19 @@ VisualTest {
}
Frame {
msec: 5776
- hash: "476040951352f144bda4ed7fb817cd7f"
+ image: "usingMultilineEdit.6.png"
}
Frame {
msec: 5792
- hash: "476040951352f144bda4ed7fb817cd7f"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 5808
- hash: "476040951352f144bda4ed7fb817cd7f"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 5824
- hash: "476040951352f144bda4ed7fb817cd7f"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Mouse {
type: 5
@@ -2078,7 +2078,7 @@ VisualTest {
}
Frame {
msec: 5840
- hash: "476040951352f144bda4ed7fb817cd7f"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Mouse {
type: 5
@@ -2098,7 +2098,7 @@ VisualTest {
}
Frame {
msec: 5856
- hash: "9ecb1e68ab724c6f83b1a37aa1cb15c4"
+ hash: "ee9722d220435828b919fa4d8e314b78"
}
Mouse {
type: 5
@@ -2118,7 +2118,7 @@ VisualTest {
}
Frame {
msec: 5872
- hash: "9ecb1e68ab724c6f83b1a37aa1cb15c4"
+ hash: "ee9722d220435828b919fa4d8e314b78"
}
Mouse {
type: 5
@@ -2138,7 +2138,7 @@ VisualTest {
}
Frame {
msec: 5888
- hash: "9ecb1e68ab724c6f83b1a37aa1cb15c4"
+ hash: "8a06a84965166774ff160984ed05b5ad"
}
Mouse {
type: 5
@@ -2158,7 +2158,7 @@ VisualTest {
}
Frame {
msec: 5904
- hash: "173735fb4be11da603fb8ae8cffc609d"
+ hash: "0a9ec173aa0436b9b9edf3f20946ae5a"
}
Mouse {
type: 5
@@ -2178,7 +2178,7 @@ VisualTest {
}
Frame {
msec: 5920
- hash: "173735fb4be11da603fb8ae8cffc609d"
+ hash: "0a9ec173aa0436b9b9edf3f20946ae5a"
}
Mouse {
type: 5
@@ -2198,7 +2198,7 @@ VisualTest {
}
Frame {
msec: 5936
- hash: "b337a09f359fb2a237731c66ab95c92c"
+ hash: "5511590b6b6826d8e863956220eee2e4"
}
Mouse {
type: 5
@@ -2218,7 +2218,7 @@ VisualTest {
}
Frame {
msec: 5952
- hash: "32719becb40f8c6bd49b5f5754786913"
+ hash: "4d413c13e43c57809af8ee83a165dcb1"
}
Mouse {
type: 5
@@ -2238,7 +2238,7 @@ VisualTest {
}
Frame {
msec: 5968
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2250,7 +2250,7 @@ VisualTest {
}
Frame {
msec: 5984
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2270,7 +2270,7 @@ VisualTest {
}
Frame {
msec: 6000
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2290,7 +2290,7 @@ VisualTest {
}
Frame {
msec: 6016
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2310,7 +2310,7 @@ VisualTest {
}
Frame {
msec: 6032
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2330,7 +2330,7 @@ VisualTest {
}
Frame {
msec: 6048
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2350,7 +2350,7 @@ VisualTest {
}
Frame {
msec: 6064
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2370,7 +2370,7 @@ VisualTest {
}
Frame {
msec: 6080
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2390,7 +2390,7 @@ VisualTest {
}
Frame {
msec: 6096
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2410,7 +2410,7 @@ VisualTest {
}
Frame {
msec: 6112
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2430,7 +2430,7 @@ VisualTest {
}
Frame {
msec: 6128
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2450,7 +2450,7 @@ VisualTest {
}
Frame {
msec: 6144
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2470,7 +2470,7 @@ VisualTest {
}
Frame {
msec: 6160
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2490,7 +2490,7 @@ VisualTest {
}
Frame {
msec: 6176
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2502,23 +2502,23 @@ VisualTest {
}
Frame {
msec: 6192
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Frame {
msec: 6208
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Frame {
msec: 6224
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Frame {
msec: 6240
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Frame {
msec: 6256
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2530,7 +2530,7 @@ VisualTest {
}
Frame {
msec: 6272
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2550,7 +2550,7 @@ VisualTest {
}
Frame {
msec: 6288
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2570,7 +2570,7 @@ VisualTest {
}
Frame {
msec: 6304
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2590,7 +2590,7 @@ VisualTest {
}
Frame {
msec: 6320
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2610,7 +2610,7 @@ VisualTest {
}
Frame {
msec: 6336
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2630,7 +2630,7 @@ VisualTest {
}
Frame {
msec: 6352
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2650,7 +2650,7 @@ VisualTest {
}
Frame {
msec: 6368
- hash: "e6bff88d0a5e2e7df4b3355749ecc902"
+ hash: "cc0c5811bc845540c2c550cefe45ab1c"
}
Mouse {
type: 5
@@ -2670,7 +2670,7 @@ VisualTest {
}
Frame {
msec: 6384
- hash: "5de7bbfdf96d84c8fbe74b4817a3c88a"
+ hash: "b35bc1db0fd5b95bb830a9be9ded1659"
}
Mouse {
type: 5
@@ -2682,7 +2682,7 @@ VisualTest {
}
Frame {
msec: 6400
- hash: "5de7bbfdf96d84c8fbe74b4817a3c88a"
+ hash: "b35bc1db0fd5b95bb830a9be9ded1659"
}
Mouse {
type: 5
@@ -2702,7 +2702,7 @@ VisualTest {
}
Frame {
msec: 6416
- hash: "056d22660f6feedfb453755978aa4c1d"
+ hash: "576bbe32d2b6f582cbb0102d2b0e079b"
}
Mouse {
type: 5
@@ -2722,7 +2722,7 @@ VisualTest {
}
Frame {
msec: 6432
- hash: "9d8568931fdca572dd31ea62ebbaf76a"
+ hash: "15a7ee7f58f286ae22385c2817b9b697"
}
Mouse {
type: 5
@@ -2742,7 +2742,7 @@ VisualTest {
}
Frame {
msec: 6448
- hash: "29aa2da8a830d5605a8d2d2543097177"
+ hash: "5cd516c20c91c407ca9932ea89afd100"
}
Mouse {
type: 5
@@ -2754,7 +2754,7 @@ VisualTest {
}
Frame {
msec: 6464
- hash: "154e312998b32cc09daf1693d07eda2f"
+ hash: "40ce8b3c3588727a37e03dd83cb3d536"
}
Mouse {
type: 5
@@ -2774,7 +2774,7 @@ VisualTest {
}
Frame {
msec: 6480
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Mouse {
type: 5
@@ -2794,7 +2794,7 @@ VisualTest {
}
Frame {
msec: 6496
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -2814,7 +2814,7 @@ VisualTest {
}
Frame {
msec: 6512
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -2834,7 +2834,7 @@ VisualTest {
}
Frame {
msec: 6528
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -2854,7 +2854,7 @@ VisualTest {
}
Frame {
msec: 6544
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -2874,7 +2874,7 @@ VisualTest {
}
Frame {
msec: 6560
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -2894,7 +2894,7 @@ VisualTest {
}
Frame {
msec: 6576
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -2914,27 +2914,27 @@ VisualTest {
}
Frame {
msec: 6592
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Frame {
msec: 6608
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Frame {
msec: 6624
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Frame {
msec: 6640
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Frame {
msec: 6656
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Frame {
msec: 6672
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -2954,7 +2954,7 @@ VisualTest {
}
Frame {
msec: 6688
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -2974,7 +2974,7 @@ VisualTest {
}
Frame {
msec: 6704
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -2994,7 +2994,7 @@ VisualTest {
}
Frame {
msec: 6720
- image: "usingMultilineEdit.6.png"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -3014,7 +3014,7 @@ VisualTest {
}
Frame {
msec: 6736
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ image: "usingMultilineEdit.7.png"
}
Mouse {
type: 5
@@ -3034,7 +3034,7 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -3054,7 +3054,7 @@ VisualTest {
}
Frame {
msec: 6768
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -3074,7 +3074,7 @@ VisualTest {
}
Frame {
msec: 6784
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -3094,7 +3094,7 @@ VisualTest {
}
Frame {
msec: 6800
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -3114,7 +3114,7 @@ VisualTest {
}
Frame {
msec: 6816
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -3134,7 +3134,7 @@ VisualTest {
}
Frame {
msec: 6832
- hash: "5b3a17fd92fe5117aa405d4c737e6673"
+ hash: "384cc9f557dd56079a54c1f0460bf96f"
}
Mouse {
type: 5
@@ -3154,7 +3154,7 @@ VisualTest {
}
Frame {
msec: 6848
- hash: "476040951352f144bda4ed7fb817cd7f"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Mouse {
type: 5
@@ -3174,7 +3174,7 @@ VisualTest {
}
Frame {
msec: 6864
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Mouse {
type: 5
@@ -3194,7 +3194,7 @@ VisualTest {
}
Frame {
msec: 6880
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Mouse {
type: 3
@@ -3206,55 +3206,55 @@ VisualTest {
}
Frame {
msec: 6896
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 6912
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 6928
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 6944
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 6960
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 6976
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 6992
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 7008
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 7024
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 7040
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 7056
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 7072
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Frame {
msec: 7088
- hash: "2cb10cb75beb454df7918b6948c6ad8a"
+ hash: "a3d9bdf8086303458ae5d35294551894"
}
Mouse {
type: 2
@@ -3266,23 +3266,23 @@ VisualTest {
}
Frame {
msec: 7104
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7120
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7136
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7152
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7168
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Mouse {
type: 3
@@ -3294,103 +3294,103 @@ VisualTest {
}
Frame {
msec: 7184
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7200
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7216
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7232
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7248
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7264
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7280
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7296
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7312
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7328
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7344
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7360
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7376
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7392
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7408
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7424
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7440
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7456
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7472
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7488
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7504
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7520
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7536
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7552
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Frame {
msec: 7568
- hash: "eafa794e0c09cc2558575bafa945ecdf"
+ hash: "a5755969d822cae00af992085c419a17"
}
Key {
type: 6
@@ -3402,15 +3402,15 @@ VisualTest {
}
Frame {
msec: 7584
- hash: "0444d714b801f88685df9722390faf4f"
+ hash: "2395700fc4c3080e99b8871518113778"
}
Frame {
msec: 7600
- hash: "0444d714b801f88685df9722390faf4f"
+ hash: "2395700fc4c3080e99b8871518113778"
}
Frame {
msec: 7616
- hash: "0444d714b801f88685df9722390faf4f"
+ hash: "2395700fc4c3080e99b8871518113778"
}
Key {
type: 7
@@ -3422,27 +3422,27 @@ VisualTest {
}
Frame {
msec: 7632
- hash: "0444d714b801f88685df9722390faf4f"
+ hash: "2395700fc4c3080e99b8871518113778"
}
Frame {
msec: 7648
- hash: "0444d714b801f88685df9722390faf4f"
+ hash: "2395700fc4c3080e99b8871518113778"
}
Frame {
msec: 7664
- hash: "0444d714b801f88685df9722390faf4f"
+ hash: "2395700fc4c3080e99b8871518113778"
}
Frame {
msec: 7680
- image: "usingMultilineEdit.7.png"
+ hash: "2395700fc4c3080e99b8871518113778"
}
Frame {
msec: 7696
- hash: "0444d714b801f88685df9722390faf4f"
+ image: "usingMultilineEdit.8.png"
}
Frame {
msec: 7712
- hash: "0444d714b801f88685df9722390faf4f"
+ hash: "2395700fc4c3080e99b8871518113778"
}
Key {
type: 6
@@ -3454,63 +3454,63 @@ VisualTest {
}
Frame {
msec: 7728
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7744
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7760
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7776
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7792
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7808
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7824
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7840
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7856
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7872
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7888
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7904
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7920
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7936
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Frame {
msec: 7952
- hash: "250a49b60ad8e9b901977e01063ec20a"
+ hash: "71e055a9dbd940b3445d5ad9e277b483"
}
Key {
type: 7
@@ -3530,11 +3530,11 @@ VisualTest {
}
Frame {
msec: 7968
- hash: "bec2aea61fef64475e638848b96d28c3"
+ hash: "2ed8cb467e60f2fb253abb37bdc18a9a"
}
Frame {
msec: 7984
- hash: "bec2aea61fef64475e638848b96d28c3"
+ hash: "2ed8cb467e60f2fb253abb37bdc18a9a"
}
Key {
type: 7
@@ -3554,11 +3554,11 @@ VisualTest {
}
Frame {
msec: 8000
- hash: "54177e0d53373636850e18399640fee8"
+ hash: "5783992a07652cfc53bfa0e1f36c1415"
}
Frame {
msec: 8016
- hash: "54177e0d53373636850e18399640fee8"
+ hash: "5783992a07652cfc53bfa0e1f36c1415"
}
Key {
type: 7
@@ -3578,11 +3578,11 @@ VisualTest {
}
Frame {
msec: 8032
- hash: "81c03bd9dfd562e9f13784c906fa0d9e"
+ hash: "0fa5790dcbcb740d530b6333063629d6"
}
Frame {
msec: 8048
- hash: "81c03bd9dfd562e9f13784c906fa0d9e"
+ hash: "0fa5790dcbcb740d530b6333063629d6"
}
Key {
type: 7
@@ -3602,11 +3602,11 @@ VisualTest {
}
Frame {
msec: 8064
- hash: "2547fbe956bab6566c2b9137c0edc841"
+ hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed"
}
Frame {
msec: 8080
- hash: "2547fbe956bab6566c2b9137c0edc841"
+ hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed"
}
Key {
type: 6
@@ -3626,31 +3626,31 @@ VisualTest {
}
Frame {
msec: 8096
- hash: "2547fbe956bab6566c2b9137c0edc841"
+ hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed"
}
Frame {
msec: 8112
- hash: "2547fbe956bab6566c2b9137c0edc841"
+ hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed"
}
Frame {
msec: 8128
- hash: "2547fbe956bab6566c2b9137c0edc841"
+ hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed"
}
Frame {
msec: 8144
- hash: "2547fbe956bab6566c2b9137c0edc841"
+ hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed"
}
Frame {
msec: 8160
- hash: "2547fbe956bab6566c2b9137c0edc841"
+ hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed"
}
Frame {
msec: 8176
- hash: "2547fbe956bab6566c2b9137c0edc841"
+ hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed"
}
Frame {
msec: 8192
- hash: "2547fbe956bab6566c2b9137c0edc841"
+ hash: "00ae3b5d61a83fdd16fc05b7c3fde8ed"
}
Key {
type: 6
@@ -3662,19 +3662,19 @@ VisualTest {
}
Frame {
msec: 8208
- hash: "c757d4e60d18ce16f87c66e42cc81a99"
+ hash: "8f59f9f91dbcf608143925ff1f974151"
}
Frame {
msec: 8224
- hash: "c757d4e60d18ce16f87c66e42cc81a99"
+ hash: "8f59f9f91dbcf608143925ff1f974151"
}
Frame {
msec: 8240
- hash: "c757d4e60d18ce16f87c66e42cc81a99"
+ hash: "8f59f9f91dbcf608143925ff1f974151"
}
Frame {
msec: 8256
- hash: "c757d4e60d18ce16f87c66e42cc81a99"
+ hash: "8f59f9f91dbcf608143925ff1f974151"
}
Key {
type: 7
@@ -3686,19 +3686,19 @@ VisualTest {
}
Frame {
msec: 8272
- hash: "c757d4e60d18ce16f87c66e42cc81a99"
+ hash: "8f59f9f91dbcf608143925ff1f974151"
}
Frame {
msec: 8288
- hash: "c757d4e60d18ce16f87c66e42cc81a99"
+ hash: "8f59f9f91dbcf608143925ff1f974151"
}
Frame {
msec: 8304
- hash: "c757d4e60d18ce16f87c66e42cc81a99"
+ hash: "8f59f9f91dbcf608143925ff1f974151"
}
Frame {
msec: 8320
- hash: "c757d4e60d18ce16f87c66e42cc81a99"
+ hash: "8f59f9f91dbcf608143925ff1f974151"
}
Key {
type: 6
@@ -3710,19 +3710,19 @@ VisualTest {
}
Frame {
msec: 8336
- hash: "2ef578193024153dc85a2a92d10dc6c0"
+ hash: "fc48aa2746eaaf31312de3c37d821ff0"
}
Frame {
msec: 8352
- hash: "2ef578193024153dc85a2a92d10dc6c0"
+ hash: "fc48aa2746eaaf31312de3c37d821ff0"
}
Frame {
msec: 8368
- hash: "2ef578193024153dc85a2a92d10dc6c0"
+ hash: "fc48aa2746eaaf31312de3c37d821ff0"
}
Frame {
msec: 8384
- hash: "2ef578193024153dc85a2a92d10dc6c0"
+ hash: "fc48aa2746eaaf31312de3c37d821ff0"
}
Key {
type: 7
@@ -3734,23 +3734,23 @@ VisualTest {
}
Frame {
msec: 8400
- hash: "2ef578193024153dc85a2a92d10dc6c0"
+ hash: "fc48aa2746eaaf31312de3c37d821ff0"
}
Frame {
msec: 8416
- hash: "2ef578193024153dc85a2a92d10dc6c0"
+ hash: "fc48aa2746eaaf31312de3c37d821ff0"
}
Frame {
msec: 8432
- hash: "2ef578193024153dc85a2a92d10dc6c0"
+ hash: "fc48aa2746eaaf31312de3c37d821ff0"
}
Frame {
msec: 8448
- hash: "2ef578193024153dc85a2a92d10dc6c0"
+ hash: "fc48aa2746eaaf31312de3c37d821ff0"
}
Frame {
msec: 8464
- hash: "2ef578193024153dc85a2a92d10dc6c0"
+ hash: "fc48aa2746eaaf31312de3c37d821ff0"
}
Key {
type: 6
@@ -3762,19 +3762,19 @@ VisualTest {
}
Frame {
msec: 8480
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8496
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8512
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8528
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Key {
type: 7
@@ -3786,35 +3786,35 @@ VisualTest {
}
Frame {
msec: 8544
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8560
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8576
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8592
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8608
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8624
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8640
- image: "usingMultilineEdit.8.png"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8656
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ image: "usingMultilineEdit.9.png"
}
Key {
type: 7
@@ -3826,139 +3826,139 @@ VisualTest {
}
Frame {
msec: 8672
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8688
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8704
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8720
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8736
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8752
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8768
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8784
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8800
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8816
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8832
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8848
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8864
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8880
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8896
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8912
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8928
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8944
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8960
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8976
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 8992
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9008
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9024
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9040
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9056
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9072
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9088
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9104
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9120
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9136
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9152
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9168
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9184
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9200
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Mouse {
type: 2
@@ -3970,11 +3970,11 @@ VisualTest {
}
Frame {
msec: 9216
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9232
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Mouse {
type: 5
@@ -3986,7 +3986,7 @@ VisualTest {
}
Frame {
msec: 9248
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Mouse {
type: 5
@@ -4006,7 +4006,7 @@ VisualTest {
}
Frame {
msec: 9264
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Mouse {
type: 5
@@ -4026,7 +4026,7 @@ VisualTest {
}
Frame {
msec: 9280
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Mouse {
type: 3
@@ -4038,43 +4038,43 @@ VisualTest {
}
Frame {
msec: 9296
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9312
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9328
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9344
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9360
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9376
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9392
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9408
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9424
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Frame {
msec: 9440
- hash: "47e926162c6d695d2bdb7ec9de05f0cc"
+ hash: "61856cf1f8f2ef6d0b365ab3d7eece51"
}
Mouse {
type: 2
@@ -4086,27 +4086,27 @@ VisualTest {
}
Frame {
msec: 9456
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9472
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9488
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9504
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9520
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9536
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Mouse {
type: 3
@@ -4118,35 +4118,35 @@ VisualTest {
}
Frame {
msec: 9552
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9568
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9584
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9600
- image: "usingMultilineEdit.9.png"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9616
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ image: "usingMultilineEdit.10.png"
}
Frame {
msec: 9632
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9648
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9664
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Key {
type: 6
@@ -4158,111 +4158,111 @@ VisualTest {
}
Frame {
msec: 9680
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9696
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9712
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9728
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9744
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9760
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9776
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9792
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9808
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9824
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9840
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9856
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9872
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9888
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9904
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9920
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9936
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9952
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9968
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 9984
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10000
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10016
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10032
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10048
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10064
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10080
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10096
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Key {
type: 6
@@ -4274,35 +4274,35 @@ VisualTest {
}
Frame {
msec: 10112
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10128
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10144
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10160
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10176
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10192
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10208
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10224
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Key {
type: 7
@@ -4314,35 +4314,35 @@ VisualTest {
}
Frame {
msec: 10240
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10256
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10272
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10288
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10304
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10320
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10336
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Frame {
msec: 10352
- hash: "2ef5e7b2c0edc631765ea12d1f7abf33"
+ hash: "2ccfdac58b836aa89d2a75d0bdca6624"
}
Key {
type: 6
@@ -4354,27 +4354,27 @@ VisualTest {
}
Frame {
msec: 10368
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10384
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10400
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10416
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10432
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10448
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Key {
type: 7
@@ -4386,51 +4386,51 @@ VisualTest {
}
Frame {
msec: 10464
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10480
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10496
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10512
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10528
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10544
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10560
- image: "usingMultilineEdit.10.png"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10576
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ image: "usingMultilineEdit.11.png"
}
Frame {
msec: 10592
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10608
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10624
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10640
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Key {
type: 7
@@ -4442,246 +4442,246 @@ VisualTest {
}
Frame {
msec: 10656
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10672
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10688
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10704
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10720
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10736
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10752
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10768
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10784
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10800
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10816
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10832
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10848
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10864
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10880
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10896
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10912
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10928
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10944
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10960
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10976
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 10992
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11008
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11024
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11040
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11056
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11072
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11088
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11104
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11120
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11136
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11152
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11168
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11184
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11200
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11216
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11232
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11248
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11264
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11280
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11296
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11312
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11328
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11344
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11360
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11376
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11392
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11408
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11424
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11440
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11456
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11472
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11488
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11504
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11520
- image: "usingMultilineEdit.11.png"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11536
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ image: "usingMultilineEdit.12.png"
}
Frame {
msec: 11552
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11568
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11584
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11600
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
Frame {
msec: 11616
- hash: "c3914ed0d035a39423a1f2cf9ac6c165"
+ hash: "37a675ab007d0e0a8f3735d4d84505de"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png
index 61606b2bd0..a61ba5a3fe 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png
index a4b28fcd32..2a28c968aa 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png
index 5be6bbb867..d1ddaa6f89 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png
index a220f6545c..493c5cde57 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png
index 6946707f64..2b2ce59597 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png
index 4eeb8ec79f..044eea485f 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png
index 4eeb8ec79f..f0748b2138 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.7.png
new file mode 100644
index 0000000000..f0748b2138
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml
index f1bb5a9094..f5af59f7a5 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.qml
@@ -6,7 +6,7 @@ VisualTest {
}
Frame {
msec: 16
- hash: "b6611676a7d38162d5c0210ea9d0e291"
+ image: "wrap.0.png"
}
Key {
type: 6
@@ -18,7 +18,7 @@ VisualTest {
}
Frame {
msec: 32
- hash: "b7fc43d4344c8d39f4240dadead86b1e"
+ hash: "2b7fa5ced204393f05bf68d33e0ca2ad"
}
Key {
type: 7
@@ -30,11 +30,11 @@ VisualTest {
}
Frame {
msec: 48
- hash: "b7fc43d4344c8d39f4240dadead86b1e"
+ hash: "2b7fa5ced204393f05bf68d33e0ca2ad"
}
Frame {
msec: 64
- hash: "b7fc43d4344c8d39f4240dadead86b1e"
+ hash: "2b7fa5ced204393f05bf68d33e0ca2ad"
}
Key {
type: 7
@@ -46,11 +46,11 @@ VisualTest {
}
Frame {
msec: 80
- hash: "b7fc43d4344c8d39f4240dadead86b1e"
+ hash: "2b7fa5ced204393f05bf68d33e0ca2ad"
}
Frame {
msec: 96
- hash: "b7fc43d4344c8d39f4240dadead86b1e"
+ hash: "2b7fa5ced204393f05bf68d33e0ca2ad"
}
Key {
type: 6
@@ -62,15 +62,15 @@ VisualTest {
}
Frame {
msec: 112
- hash: "23006a07263b8b3240c4080fb1d587e9"
+ hash: "5fe2c4c01922f0b0d3f65152bd80f689"
}
Frame {
msec: 128
- hash: "23006a07263b8b3240c4080fb1d587e9"
+ hash: "5fe2c4c01922f0b0d3f65152bd80f689"
}
Frame {
msec: 144
- hash: "23006a07263b8b3240c4080fb1d587e9"
+ hash: "5fe2c4c01922f0b0d3f65152bd80f689"
}
Key {
type: 6
@@ -82,15 +82,15 @@ VisualTest {
}
Frame {
msec: 160
- hash: "8a60fd38fb9c171a15bf7e6e51bee664"
+ hash: "9645f4ad60570c8a95e9ae6dda3f5060"
}
Frame {
msec: 176
- hash: "8a60fd38fb9c171a15bf7e6e51bee664"
+ hash: "9645f4ad60570c8a95e9ae6dda3f5060"
}
Frame {
msec: 192
- hash: "8a60fd38fb9c171a15bf7e6e51bee664"
+ hash: "9645f4ad60570c8a95e9ae6dda3f5060"
}
Key {
type: 7
@@ -102,11 +102,11 @@ VisualTest {
}
Frame {
msec: 208
- hash: "8a60fd38fb9c171a15bf7e6e51bee664"
+ hash: "9645f4ad60570c8a95e9ae6dda3f5060"
}
Frame {
msec: 224
- hash: "8a60fd38fb9c171a15bf7e6e51bee664"
+ hash: "9645f4ad60570c8a95e9ae6dda3f5060"
}
Key {
type: 6
@@ -118,7 +118,7 @@ VisualTest {
}
Frame {
msec: 240
- hash: "33cdfa214f071848ed374407b4601c5a"
+ hash: "f28f446cb8de8af0a49ae6e728c996fc"
}
Key {
type: 7
@@ -130,19 +130,19 @@ VisualTest {
}
Frame {
msec: 256
- hash: "33cdfa214f071848ed374407b4601c5a"
+ hash: "f28f446cb8de8af0a49ae6e728c996fc"
}
Frame {
msec: 272
- hash: "33cdfa214f071848ed374407b4601c5a"
+ hash: "f28f446cb8de8af0a49ae6e728c996fc"
}
Frame {
msec: 288
- hash: "33cdfa214f071848ed374407b4601c5a"
+ hash: "f28f446cb8de8af0a49ae6e728c996fc"
}
Frame {
msec: 304
- hash: "33cdfa214f071848ed374407b4601c5a"
+ hash: "f28f446cb8de8af0a49ae6e728c996fc"
}
Key {
type: 7
@@ -154,11 +154,11 @@ VisualTest {
}
Frame {
msec: 320
- hash: "33cdfa214f071848ed374407b4601c5a"
+ hash: "f28f446cb8de8af0a49ae6e728c996fc"
}
Frame {
msec: 336
- hash: "33cdfa214f071848ed374407b4601c5a"
+ hash: "f28f446cb8de8af0a49ae6e728c996fc"
}
Key {
type: 6
@@ -170,19 +170,19 @@ VisualTest {
}
Frame {
msec: 352
- hash: "80794c72fe7dda72997122a89f33e6e4"
+ hash: "98c390c519cd0476de17be8bb49b0f65"
}
Frame {
msec: 368
- hash: "80794c72fe7dda72997122a89f33e6e4"
+ hash: "98c390c519cd0476de17be8bb49b0f65"
}
Frame {
msec: 384
- hash: "80794c72fe7dda72997122a89f33e6e4"
+ hash: "98c390c519cd0476de17be8bb49b0f65"
}
Frame {
msec: 400
- hash: "80794c72fe7dda72997122a89f33e6e4"
+ hash: "98c390c519cd0476de17be8bb49b0f65"
}
Key {
type: 7
@@ -194,19 +194,19 @@ VisualTest {
}
Frame {
msec: 416
- hash: "80794c72fe7dda72997122a89f33e6e4"
+ hash: "98c390c519cd0476de17be8bb49b0f65"
}
Frame {
msec: 432
- hash: "80794c72fe7dda72997122a89f33e6e4"
+ hash: "98c390c519cd0476de17be8bb49b0f65"
}
Frame {
msec: 448
- hash: "80794c72fe7dda72997122a89f33e6e4"
+ hash: "98c390c519cd0476de17be8bb49b0f65"
}
Frame {
msec: 464
- hash: "80794c72fe7dda72997122a89f33e6e4"
+ hash: "98c390c519cd0476de17be8bb49b0f65"
}
Key {
type: 6
@@ -218,19 +218,19 @@ VisualTest {
}
Frame {
msec: 480
- hash: "bfcd901aee3d9db796597834bec1f173"
+ hash: "d842a866459f3ecb4fa4fc1426a05411"
}
Frame {
msec: 496
- hash: "bfcd901aee3d9db796597834bec1f173"
+ hash: "d842a866459f3ecb4fa4fc1426a05411"
}
Frame {
msec: 512
- hash: "bfcd901aee3d9db796597834bec1f173"
+ hash: "d842a866459f3ecb4fa4fc1426a05411"
}
Frame {
msec: 528
- hash: "bfcd901aee3d9db796597834bec1f173"
+ hash: "d842a866459f3ecb4fa4fc1426a05411"
}
Key {
type: 6
@@ -250,23 +250,23 @@ VisualTest {
}
Frame {
msec: 544
- hash: "965102cb74dcf695b950616ce5c42875"
+ hash: "4c858bfd2e8ba7a959bbf2d1e17865e7"
}
Frame {
msec: 560
- hash: "965102cb74dcf695b950616ce5c42875"
+ hash: "4c858bfd2e8ba7a959bbf2d1e17865e7"
}
Frame {
msec: 576
- hash: "965102cb74dcf695b950616ce5c42875"
+ hash: "4c858bfd2e8ba7a959bbf2d1e17865e7"
}
Frame {
msec: 592
- hash: "965102cb74dcf695b950616ce5c42875"
+ hash: "4c858bfd2e8ba7a959bbf2d1e17865e7"
}
Frame {
msec: 608
- hash: "965102cb74dcf695b950616ce5c42875"
+ hash: "4c858bfd2e8ba7a959bbf2d1e17865e7"
}
Key {
type: 7
@@ -286,19 +286,19 @@ VisualTest {
}
Frame {
msec: 624
- hash: "73556f0cf2c8d77881a7d3881025e343"
+ hash: "9eed9c764b2c5b73a60df84fc0d68756"
}
Frame {
msec: 640
- hash: "73556f0cf2c8d77881a7d3881025e343"
+ hash: "9eed9c764b2c5b73a60df84fc0d68756"
}
Frame {
msec: 656
- hash: "73556f0cf2c8d77881a7d3881025e343"
+ hash: "9eed9c764b2c5b73a60df84fc0d68756"
}
Frame {
msec: 672
- hash: "73556f0cf2c8d77881a7d3881025e343"
+ hash: "9eed9c764b2c5b73a60df84fc0d68756"
}
Key {
type: 7
@@ -310,11 +310,11 @@ VisualTest {
}
Frame {
msec: 688
- hash: "73556f0cf2c8d77881a7d3881025e343"
+ hash: "9eed9c764b2c5b73a60df84fc0d68756"
}
Frame {
msec: 704
- hash: "73556f0cf2c8d77881a7d3881025e343"
+ hash: "9eed9c764b2c5b73a60df84fc0d68756"
}
Key {
type: 6
@@ -326,23 +326,23 @@ VisualTest {
}
Frame {
msec: 720
- hash: "a75bdb09a48b90936d2d4de647e7323d"
+ hash: "7a1d64574a0a6b90695629fd443274e6"
}
Frame {
msec: 736
- hash: "a75bdb09a48b90936d2d4de647e7323d"
+ hash: "7a1d64574a0a6b90695629fd443274e6"
}
Frame {
msec: 752
- hash: "a75bdb09a48b90936d2d4de647e7323d"
+ hash: "7a1d64574a0a6b90695629fd443274e6"
}
Frame {
msec: 768
- hash: "a75bdb09a48b90936d2d4de647e7323d"
+ hash: "7a1d64574a0a6b90695629fd443274e6"
}
Frame {
msec: 784
- hash: "a75bdb09a48b90936d2d4de647e7323d"
+ hash: "7a1d64574a0a6b90695629fd443274e6"
}
Key {
type: 7
@@ -354,7 +354,7 @@ VisualTest {
}
Frame {
msec: 800
- hash: "a75bdb09a48b90936d2d4de647e7323d"
+ hash: "7a1d64574a0a6b90695629fd443274e6"
}
Key {
type: 6
@@ -366,15 +366,15 @@ VisualTest {
}
Frame {
msec: 816
- hash: "f37ab5f03e7cf86e3589fc0711b23a53"
+ hash: "31e9c4500448142ee2be3171a2bd5385"
}
Frame {
msec: 832
- hash: "f37ab5f03e7cf86e3589fc0711b23a53"
+ hash: "31e9c4500448142ee2be3171a2bd5385"
}
Frame {
msec: 848
- hash: "f37ab5f03e7cf86e3589fc0711b23a53"
+ hash: "31e9c4500448142ee2be3171a2bd5385"
}
Key {
type: 7
@@ -386,15 +386,15 @@ VisualTest {
}
Frame {
msec: 864
- hash: "f37ab5f03e7cf86e3589fc0711b23a53"
+ hash: "31e9c4500448142ee2be3171a2bd5385"
}
Frame {
msec: 880
- hash: "f37ab5f03e7cf86e3589fc0711b23a53"
+ hash: "31e9c4500448142ee2be3171a2bd5385"
}
Frame {
msec: 896
- hash: "f37ab5f03e7cf86e3589fc0711b23a53"
+ hash: "31e9c4500448142ee2be3171a2bd5385"
}
Key {
type: 6
@@ -406,27 +406,27 @@ VisualTest {
}
Frame {
msec: 912
- hash: "219e5edd5f138cd113f0b929460cf074"
+ hash: "7fcfd3706ba11c43ac0a4c2f96b1d80d"
}
Frame {
msec: 928
- hash: "219e5edd5f138cd113f0b929460cf074"
+ hash: "7fcfd3706ba11c43ac0a4c2f96b1d80d"
}
Frame {
msec: 944
- hash: "219e5edd5f138cd113f0b929460cf074"
+ hash: "7fcfd3706ba11c43ac0a4c2f96b1d80d"
}
Frame {
msec: 960
- image: "wrap.0.png"
+ hash: "7fcfd3706ba11c43ac0a4c2f96b1d80d"
}
Frame {
msec: 976
- hash: "219e5edd5f138cd113f0b929460cf074"
+ image: "wrap.1.png"
}
Frame {
msec: 992
- hash: "219e5edd5f138cd113f0b929460cf074"
+ hash: "7fcfd3706ba11c43ac0a4c2f96b1d80d"
}
Key {
type: 6
@@ -446,23 +446,23 @@ VisualTest {
}
Frame {
msec: 1008
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Frame {
msec: 1024
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Frame {
msec: 1040
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Frame {
msec: 1056
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Frame {
msec: 1072
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Key {
type: 7
@@ -474,31 +474,31 @@ VisualTest {
}
Frame {
msec: 1088
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Frame {
msec: 1104
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Frame {
msec: 1120
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Frame {
msec: 1136
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Frame {
msec: 1152
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Frame {
msec: 1168
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Frame {
msec: 1184
- hash: "79cf23a46fbbeddbef10ef2a62533342"
+ hash: "c05191599361c4171c086630f9608cd0"
}
Key {
type: 6
@@ -510,23 +510,23 @@ VisualTest {
}
Frame {
msec: 1200
- hash: "ccb17209d85c7e49fbb0b5f9134fc39c"
+ hash: "088e0567dd568019ccb2114d3108a1dd"
}
Frame {
msec: 1216
- hash: "ccb17209d85c7e49fbb0b5f9134fc39c"
+ hash: "088e0567dd568019ccb2114d3108a1dd"
}
Frame {
msec: 1232
- hash: "ccb17209d85c7e49fbb0b5f9134fc39c"
+ hash: "088e0567dd568019ccb2114d3108a1dd"
}
Frame {
msec: 1248
- hash: "ccb17209d85c7e49fbb0b5f9134fc39c"
+ hash: "088e0567dd568019ccb2114d3108a1dd"
}
Frame {
msec: 1264
- hash: "ccb17209d85c7e49fbb0b5f9134fc39c"
+ hash: "088e0567dd568019ccb2114d3108a1dd"
}
Key {
type: 7
@@ -546,11 +546,11 @@ VisualTest {
}
Frame {
msec: 1280
- hash: "29aaa213e4b146199289b5383528bc88"
+ hash: "35fde81ed66c4804b2b31c0d93fb010a"
}
Frame {
msec: 1296
- hash: "29aaa213e4b146199289b5383528bc88"
+ hash: "35fde81ed66c4804b2b31c0d93fb010a"
}
Key {
type: 6
@@ -562,15 +562,15 @@ VisualTest {
}
Frame {
msec: 1312
- hash: "7f9da386497bca2dc19b1c3ab475f453"
+ hash: "0b212b2b1354e99db328c30d4c8e8b4e"
}
Frame {
msec: 1328
- hash: "7f9da386497bca2dc19b1c3ab475f453"
+ hash: "0b212b2b1354e99db328c30d4c8e8b4e"
}
Frame {
msec: 1344
- hash: "7f9da386497bca2dc19b1c3ab475f453"
+ hash: "0b212b2b1354e99db328c30d4c8e8b4e"
}
Key {
type: 7
@@ -582,11 +582,11 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "7f9da386497bca2dc19b1c3ab475f453"
+ hash: "0b212b2b1354e99db328c30d4c8e8b4e"
}
Frame {
msec: 1376
- hash: "7f9da386497bca2dc19b1c3ab475f453"
+ hash: "0b212b2b1354e99db328c30d4c8e8b4e"
}
Key {
type: 7
@@ -598,19 +598,19 @@ VisualTest {
}
Frame {
msec: 1392
- hash: "7f9da386497bca2dc19b1c3ab475f453"
+ hash: "0b212b2b1354e99db328c30d4c8e8b4e"
}
Frame {
msec: 1408
- hash: "7f9da386497bca2dc19b1c3ab475f453"
+ hash: "0b212b2b1354e99db328c30d4c8e8b4e"
}
Frame {
msec: 1424
- hash: "7f9da386497bca2dc19b1c3ab475f453"
+ hash: "0b212b2b1354e99db328c30d4c8e8b4e"
}
Frame {
msec: 1440
- hash: "7f9da386497bca2dc19b1c3ab475f453"
+ hash: "0b212b2b1354e99db328c30d4c8e8b4e"
}
Key {
type: 6
@@ -622,23 +622,23 @@ VisualTest {
}
Frame {
msec: 1456
- hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2"
+ hash: "1d19bc237d8de1598a629f2aea7e8e97"
}
Frame {
msec: 1472
- hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2"
+ hash: "1d19bc237d8de1598a629f2aea7e8e97"
}
Frame {
msec: 1488
- hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2"
+ hash: "1d19bc237d8de1598a629f2aea7e8e97"
}
Frame {
msec: 1504
- hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2"
+ hash: "1d19bc237d8de1598a629f2aea7e8e97"
}
Frame {
msec: 1520
- hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2"
+ hash: "1d19bc237d8de1598a629f2aea7e8e97"
}
Key {
type: 7
@@ -650,11 +650,11 @@ VisualTest {
}
Frame {
msec: 1536
- hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2"
+ hash: "1d19bc237d8de1598a629f2aea7e8e97"
}
Frame {
msec: 1552
- hash: "eb683a6b2a9ed2cf4ea5cb424670c9d2"
+ hash: "1d19bc237d8de1598a629f2aea7e8e97"
}
Key {
type: 6
@@ -666,23 +666,23 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "c5c789ca287cf673be808f3e10e054a2"
+ hash: "df3025b2de2cf6cee2b918c6d13834c6"
}
Frame {
msec: 1584
- hash: "c5c789ca287cf673be808f3e10e054a2"
+ hash: "df3025b2de2cf6cee2b918c6d13834c6"
}
Frame {
msec: 1600
- hash: "c5c789ca287cf673be808f3e10e054a2"
+ hash: "df3025b2de2cf6cee2b918c6d13834c6"
}
Frame {
msec: 1616
- hash: "c5c789ca287cf673be808f3e10e054a2"
+ hash: "df3025b2de2cf6cee2b918c6d13834c6"
}
Frame {
msec: 1632
- hash: "c5c789ca287cf673be808f3e10e054a2"
+ hash: "df3025b2de2cf6cee2b918c6d13834c6"
}
Key {
type: 6
@@ -702,23 +702,23 @@ VisualTest {
}
Frame {
msec: 1648
- hash: "5e39fc7058b64afa7036002a2dae8976"
+ hash: "b19baef8a5d8efd96d5ec9e729a9d42a"
}
Frame {
msec: 1664
- hash: "5e39fc7058b64afa7036002a2dae8976"
+ hash: "b19baef8a5d8efd96d5ec9e729a9d42a"
}
Frame {
msec: 1680
- hash: "5e39fc7058b64afa7036002a2dae8976"
+ hash: "b19baef8a5d8efd96d5ec9e729a9d42a"
}
Frame {
msec: 1696
- hash: "5e39fc7058b64afa7036002a2dae8976"
+ hash: "b19baef8a5d8efd96d5ec9e729a9d42a"
}
Frame {
msec: 1712
- hash: "5e39fc7058b64afa7036002a2dae8976"
+ hash: "b19baef8a5d8efd96d5ec9e729a9d42a"
}
Key {
type: 6
@@ -730,15 +730,15 @@ VisualTest {
}
Frame {
msec: 1728
- hash: "687e69083430812cd42eff708229a176"
+ hash: "914e61f38d7f2b5a465037d6ef1ddaba"
}
Frame {
msec: 1744
- hash: "687e69083430812cd42eff708229a176"
+ hash: "914e61f38d7f2b5a465037d6ef1ddaba"
}
Frame {
msec: 1760
- hash: "687e69083430812cd42eff708229a176"
+ hash: "914e61f38d7f2b5a465037d6ef1ddaba"
}
Key {
type: 7
@@ -750,7 +750,7 @@ VisualTest {
}
Frame {
msec: 1776
- hash: "687e69083430812cd42eff708229a176"
+ hash: "914e61f38d7f2b5a465037d6ef1ddaba"
}
Key {
type: 6
@@ -762,11 +762,11 @@ VisualTest {
}
Frame {
msec: 1792
- hash: "f33cd379acd2785298aa74f78e22bdfb"
+ hash: "e816134a8fef0bbee8e94c0f9561750b"
}
Frame {
msec: 1808
- hash: "f33cd379acd2785298aa74f78e22bdfb"
+ hash: "e816134a8fef0bbee8e94c0f9561750b"
}
Key {
type: 7
@@ -778,19 +778,19 @@ VisualTest {
}
Frame {
msec: 1824
- hash: "f33cd379acd2785298aa74f78e22bdfb"
+ hash: "e816134a8fef0bbee8e94c0f9561750b"
}
Frame {
msec: 1840
- hash: "f33cd379acd2785298aa74f78e22bdfb"
+ hash: "e816134a8fef0bbee8e94c0f9561750b"
}
Frame {
msec: 1856
- hash: "f33cd379acd2785298aa74f78e22bdfb"
+ hash: "e816134a8fef0bbee8e94c0f9561750b"
}
Frame {
msec: 1872
- hash: "f33cd379acd2785298aa74f78e22bdfb"
+ hash: "e816134a8fef0bbee8e94c0f9561750b"
}
Key {
type: 7
@@ -802,23 +802,23 @@ VisualTest {
}
Frame {
msec: 1888
- hash: "f33cd379acd2785298aa74f78e22bdfb"
+ hash: "e816134a8fef0bbee8e94c0f9561750b"
}
Frame {
msec: 1904
- hash: "f33cd379acd2785298aa74f78e22bdfb"
+ hash: "e816134a8fef0bbee8e94c0f9561750b"
}
Frame {
msec: 1920
- image: "wrap.1.png"
+ hash: "e816134a8fef0bbee8e94c0f9561750b"
}
Frame {
msec: 1936
- hash: "f33cd379acd2785298aa74f78e22bdfb"
+ image: "wrap.2.png"
}
Frame {
msec: 1952
- hash: "f33cd379acd2785298aa74f78e22bdfb"
+ hash: "e816134a8fef0bbee8e94c0f9561750b"
}
Key {
type: 6
@@ -830,27 +830,27 @@ VisualTest {
}
Frame {
msec: 1968
- hash: "205e79eb4a7e515ffa5bd24677408e79"
+ hash: "9552729028c8e129e19c06ff35bb085b"
}
Frame {
msec: 1984
- hash: "205e79eb4a7e515ffa5bd24677408e79"
+ hash: "9552729028c8e129e19c06ff35bb085b"
}
Frame {
msec: 2000
- hash: "205e79eb4a7e515ffa5bd24677408e79"
+ hash: "9552729028c8e129e19c06ff35bb085b"
}
Frame {
msec: 2016
- hash: "205e79eb4a7e515ffa5bd24677408e79"
+ hash: "9552729028c8e129e19c06ff35bb085b"
}
Frame {
msec: 2032
- hash: "205e79eb4a7e515ffa5bd24677408e79"
+ hash: "9552729028c8e129e19c06ff35bb085b"
}
Frame {
msec: 2048
- hash: "205e79eb4a7e515ffa5bd24677408e79"
+ hash: "9552729028c8e129e19c06ff35bb085b"
}
Key {
type: 6
@@ -862,7 +862,7 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "2c1570a63d3eff7346c58356610a2f44"
+ hash: "2dbdfe3bd309b98af7ed8980725f3ee7"
}
Key {
type: 7
@@ -874,15 +874,15 @@ VisualTest {
}
Frame {
msec: 2080
- hash: "2c1570a63d3eff7346c58356610a2f44"
+ hash: "2dbdfe3bd309b98af7ed8980725f3ee7"
}
Frame {
msec: 2096
- hash: "2c1570a63d3eff7346c58356610a2f44"
+ hash: "2dbdfe3bd309b98af7ed8980725f3ee7"
}
Frame {
msec: 2112
- hash: "2c1570a63d3eff7346c58356610a2f44"
+ hash: "2dbdfe3bd309b98af7ed8980725f3ee7"
}
Key {
type: 7
@@ -894,27 +894,27 @@ VisualTest {
}
Frame {
msec: 2128
- hash: "2c1570a63d3eff7346c58356610a2f44"
+ hash: "2dbdfe3bd309b98af7ed8980725f3ee7"
}
Frame {
msec: 2144
- hash: "2c1570a63d3eff7346c58356610a2f44"
+ hash: "2dbdfe3bd309b98af7ed8980725f3ee7"
}
Frame {
msec: 2160
- hash: "2c1570a63d3eff7346c58356610a2f44"
+ hash: "2dbdfe3bd309b98af7ed8980725f3ee7"
}
Frame {
msec: 2176
- hash: "2c1570a63d3eff7346c58356610a2f44"
+ hash: "2dbdfe3bd309b98af7ed8980725f3ee7"
}
Frame {
msec: 2192
- hash: "2c1570a63d3eff7346c58356610a2f44"
+ hash: "2dbdfe3bd309b98af7ed8980725f3ee7"
}
Frame {
msec: 2208
- hash: "2c1570a63d3eff7346c58356610a2f44"
+ hash: "2dbdfe3bd309b98af7ed8980725f3ee7"
}
Key {
type: 6
@@ -926,23 +926,23 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "8202436b4e184adc69cdf7dd735afe33"
+ hash: "28748f90f61954b94377768788f1634d"
}
Frame {
msec: 2240
- hash: "8202436b4e184adc69cdf7dd735afe33"
+ hash: "28748f90f61954b94377768788f1634d"
}
Frame {
msec: 2256
- hash: "8202436b4e184adc69cdf7dd735afe33"
+ hash: "28748f90f61954b94377768788f1634d"
}
Frame {
msec: 2272
- hash: "8202436b4e184adc69cdf7dd735afe33"
+ hash: "28748f90f61954b94377768788f1634d"
}
Frame {
msec: 2288
- hash: "8202436b4e184adc69cdf7dd735afe33"
+ hash: "28748f90f61954b94377768788f1634d"
}
Key {
type: 6
@@ -954,7 +954,7 @@ VisualTest {
}
Frame {
msec: 2304
- hash: "855069b52f6714d54f4005751b8e2930"
+ hash: "2cf8ad2ba8ddcde4dd8549f034a77005"
}
Key {
type: 7
@@ -966,15 +966,15 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "855069b52f6714d54f4005751b8e2930"
+ hash: "2cf8ad2ba8ddcde4dd8549f034a77005"
}
Frame {
msec: 2336
- hash: "855069b52f6714d54f4005751b8e2930"
+ hash: "2cf8ad2ba8ddcde4dd8549f034a77005"
}
Frame {
msec: 2352
- hash: "855069b52f6714d54f4005751b8e2930"
+ hash: "2cf8ad2ba8ddcde4dd8549f034a77005"
}
Key {
type: 6
@@ -986,11 +986,11 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "6e1a97a3e491f24e34d4b24bf3091afc"
+ hash: "95b6ce7c01461847a3f7aff88aa8ad9d"
}
Frame {
msec: 2384
- hash: "6e1a97a3e491f24e34d4b24bf3091afc"
+ hash: "95b6ce7c01461847a3f7aff88aa8ad9d"
}
Key {
type: 7
@@ -1002,15 +1002,15 @@ VisualTest {
}
Frame {
msec: 2400
- hash: "6e1a97a3e491f24e34d4b24bf3091afc"
+ hash: "95b6ce7c01461847a3f7aff88aa8ad9d"
}
Frame {
msec: 2416
- hash: "6e1a97a3e491f24e34d4b24bf3091afc"
+ hash: "95b6ce7c01461847a3f7aff88aa8ad9d"
}
Frame {
msec: 2432
- hash: "6e1a97a3e491f24e34d4b24bf3091afc"
+ hash: "95b6ce7c01461847a3f7aff88aa8ad9d"
}
Key {
type: 7
@@ -1022,15 +1022,15 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "6e1a97a3e491f24e34d4b24bf3091afc"
+ hash: "95b6ce7c01461847a3f7aff88aa8ad9d"
}
Frame {
msec: 2464
- hash: "6e1a97a3e491f24e34d4b24bf3091afc"
+ hash: "95b6ce7c01461847a3f7aff88aa8ad9d"
}
Frame {
msec: 2480
- hash: "6e1a97a3e491f24e34d4b24bf3091afc"
+ hash: "95b6ce7c01461847a3f7aff88aa8ad9d"
}
Key {
type: 6
@@ -1042,19 +1042,19 @@ VisualTest {
}
Frame {
msec: 2496
- hash: "12eb5152181e0bff993dc1be087969f9"
+ hash: "81872138f3cafb1cf06009df77af1461"
}
Frame {
msec: 2512
- hash: "12eb5152181e0bff993dc1be087969f9"
+ hash: "81872138f3cafb1cf06009df77af1461"
}
Frame {
msec: 2528
- hash: "12eb5152181e0bff993dc1be087969f9"
+ hash: "81872138f3cafb1cf06009df77af1461"
}
Frame {
msec: 2544
- hash: "12eb5152181e0bff993dc1be087969f9"
+ hash: "81872138f3cafb1cf06009df77af1461"
}
Key {
type: 7
@@ -1066,27 +1066,27 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "12eb5152181e0bff993dc1be087969f9"
+ hash: "81872138f3cafb1cf06009df77af1461"
}
Frame {
msec: 2576
- hash: "12eb5152181e0bff993dc1be087969f9"
+ hash: "81872138f3cafb1cf06009df77af1461"
}
Frame {
msec: 2592
- hash: "12eb5152181e0bff993dc1be087969f9"
+ hash: "81872138f3cafb1cf06009df77af1461"
}
Frame {
msec: 2608
- hash: "12eb5152181e0bff993dc1be087969f9"
+ hash: "81872138f3cafb1cf06009df77af1461"
}
Frame {
msec: 2624
- hash: "12eb5152181e0bff993dc1be087969f9"
+ hash: "81872138f3cafb1cf06009df77af1461"
}
Frame {
msec: 2640
- hash: "12eb5152181e0bff993dc1be087969f9"
+ hash: "81872138f3cafb1cf06009df77af1461"
}
Key {
type: 6
@@ -1098,19 +1098,19 @@ VisualTest {
}
Frame {
msec: 2656
- hash: "8a77655cae6c04453e6dc8a2321d1a32"
+ hash: "dfa35c08894d7ed748b8846fa3ce8fac"
}
Frame {
msec: 2672
- hash: "8a77655cae6c04453e6dc8a2321d1a32"
+ hash: "dfa35c08894d7ed748b8846fa3ce8fac"
}
Frame {
msec: 2688
- hash: "8a77655cae6c04453e6dc8a2321d1a32"
+ hash: "dfa35c08894d7ed748b8846fa3ce8fac"
}
Frame {
msec: 2704
- hash: "8a77655cae6c04453e6dc8a2321d1a32"
+ hash: "dfa35c08894d7ed748b8846fa3ce8fac"
}
Key {
type: 7
@@ -1122,15 +1122,15 @@ VisualTest {
}
Frame {
msec: 2720
- hash: "8a77655cae6c04453e6dc8a2321d1a32"
+ hash: "dfa35c08894d7ed748b8846fa3ce8fac"
}
Frame {
msec: 2736
- hash: "8a77655cae6c04453e6dc8a2321d1a32"
+ hash: "dfa35c08894d7ed748b8846fa3ce8fac"
}
Frame {
msec: 2752
- hash: "8a77655cae6c04453e6dc8a2321d1a32"
+ hash: "dfa35c08894d7ed748b8846fa3ce8fac"
}
Key {
type: 6
@@ -1142,23 +1142,23 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "c42349fe4b75e5d56a04ec6462cb0780"
+ hash: "9decac3d9243bebdc7699fcb77a31f21"
}
Frame {
msec: 2784
- hash: "c42349fe4b75e5d56a04ec6462cb0780"
+ hash: "9decac3d9243bebdc7699fcb77a31f21"
}
Frame {
msec: 2800
- hash: "c42349fe4b75e5d56a04ec6462cb0780"
+ hash: "9decac3d9243bebdc7699fcb77a31f21"
}
Frame {
msec: 2816
- hash: "c42349fe4b75e5d56a04ec6462cb0780"
+ hash: "9decac3d9243bebdc7699fcb77a31f21"
}
Frame {
msec: 2832
- hash: "c42349fe4b75e5d56a04ec6462cb0780"
+ hash: "9decac3d9243bebdc7699fcb77a31f21"
}
Key {
type: 6
@@ -1178,19 +1178,19 @@ VisualTest {
}
Frame {
msec: 2848
- hash: "973c163b1ea4e6189e788b7f37013185"
+ hash: "6a1bb7dd22f3e090008ba265c30f9c2d"
}
Frame {
msec: 2864
- hash: "973c163b1ea4e6189e788b7f37013185"
+ hash: "6a1bb7dd22f3e090008ba265c30f9c2d"
}
Frame {
msec: 2880
- image: "wrap.2.png"
+ hash: "6a1bb7dd22f3e090008ba265c30f9c2d"
}
Frame {
msec: 2896
- hash: "973c163b1ea4e6189e788b7f37013185"
+ image: "wrap.3.png"
}
Key {
type: 6
@@ -1202,11 +1202,11 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Frame {
msec: 2928
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Key {
type: 7
@@ -1218,11 +1218,11 @@ VisualTest {
}
Frame {
msec: 2944
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Frame {
msec: 2960
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Key {
type: 7
@@ -1234,35 +1234,35 @@ VisualTest {
}
Frame {
msec: 2976
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Frame {
msec: 2992
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Frame {
msec: 3008
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Frame {
msec: 3024
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Frame {
msec: 3040
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Frame {
msec: 3056
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Frame {
msec: 3072
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Frame {
msec: 3088
- hash: "a847abc1ef9a41a741f8dce6bc68e6a1"
+ hash: "ee39b3014e140aff2f974f3b919f85f4"
}
Key {
type: 6
@@ -1274,23 +1274,23 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "93d3b56a5070a84164169ab1869d6ed0"
+ hash: "d448179ec6bba91f3f70be821710a8c7"
}
Frame {
msec: 3120
- hash: "93d3b56a5070a84164169ab1869d6ed0"
+ hash: "d448179ec6bba91f3f70be821710a8c7"
}
Frame {
msec: 3136
- hash: "93d3b56a5070a84164169ab1869d6ed0"
+ hash: "d448179ec6bba91f3f70be821710a8c7"
}
Frame {
msec: 3152
- hash: "93d3b56a5070a84164169ab1869d6ed0"
+ hash: "d448179ec6bba91f3f70be821710a8c7"
}
Frame {
msec: 3168
- hash: "93d3b56a5070a84164169ab1869d6ed0"
+ hash: "d448179ec6bba91f3f70be821710a8c7"
}
Key {
type: 7
@@ -1302,23 +1302,23 @@ VisualTest {
}
Frame {
msec: 3184
- hash: "93d3b56a5070a84164169ab1869d6ed0"
+ hash: "d448179ec6bba91f3f70be821710a8c7"
}
Frame {
msec: 3200
- hash: "93d3b56a5070a84164169ab1869d6ed0"
+ hash: "d448179ec6bba91f3f70be821710a8c7"
}
Frame {
msec: 3216
- hash: "93d3b56a5070a84164169ab1869d6ed0"
+ hash: "d448179ec6bba91f3f70be821710a8c7"
}
Frame {
msec: 3232
- hash: "93d3b56a5070a84164169ab1869d6ed0"
+ hash: "d448179ec6bba91f3f70be821710a8c7"
}
Frame {
msec: 3248
- hash: "93d3b56a5070a84164169ab1869d6ed0"
+ hash: "d448179ec6bba91f3f70be821710a8c7"
}
Key {
type: 6
@@ -1330,15 +1330,15 @@ VisualTest {
}
Frame {
msec: 3264
- hash: "60480b61f29a34c790da8fe1bfd98755"
+ hash: "e30b5aa9b5d08fba758fe781812f096d"
}
Frame {
msec: 3280
- hash: "60480b61f29a34c790da8fe1bfd98755"
+ hash: "e30b5aa9b5d08fba758fe781812f096d"
}
Frame {
msec: 3296
- hash: "60480b61f29a34c790da8fe1bfd98755"
+ hash: "e30b5aa9b5d08fba758fe781812f096d"
}
Key {
type: 7
@@ -1350,15 +1350,15 @@ VisualTest {
}
Frame {
msec: 3312
- hash: "60480b61f29a34c790da8fe1bfd98755"
+ hash: "e30b5aa9b5d08fba758fe781812f096d"
}
Frame {
msec: 3328
- hash: "60480b61f29a34c790da8fe1bfd98755"
+ hash: "e30b5aa9b5d08fba758fe781812f096d"
}
Frame {
msec: 3344
- hash: "60480b61f29a34c790da8fe1bfd98755"
+ hash: "e30b5aa9b5d08fba758fe781812f096d"
}
Key {
type: 6
@@ -1370,23 +1370,23 @@ VisualTest {
}
Frame {
msec: 3360
- hash: "c6f235590c03170581dfabc07bf9c20b"
+ hash: "ba932735c5079ad6562050b6e332d2e7"
}
Frame {
msec: 3376
- hash: "c6f235590c03170581dfabc07bf9c20b"
+ hash: "ba932735c5079ad6562050b6e332d2e7"
}
Frame {
msec: 3392
- hash: "c6f235590c03170581dfabc07bf9c20b"
+ hash: "ba932735c5079ad6562050b6e332d2e7"
}
Frame {
msec: 3408
- hash: "c6f235590c03170581dfabc07bf9c20b"
+ hash: "ba932735c5079ad6562050b6e332d2e7"
}
Frame {
msec: 3424
- hash: "c6f235590c03170581dfabc07bf9c20b"
+ hash: "ba932735c5079ad6562050b6e332d2e7"
}
Key {
type: 7
@@ -1398,15 +1398,15 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "c6f235590c03170581dfabc07bf9c20b"
+ hash: "ba932735c5079ad6562050b6e332d2e7"
}
Frame {
msec: 3456
- hash: "c6f235590c03170581dfabc07bf9c20b"
+ hash: "ba932735c5079ad6562050b6e332d2e7"
}
Frame {
msec: 3472
- hash: "c6f235590c03170581dfabc07bf9c20b"
+ hash: "ba932735c5079ad6562050b6e332d2e7"
}
Key {
type: 6
@@ -1418,19 +1418,19 @@ VisualTest {
}
Frame {
msec: 3488
- hash: "10a29af771a5c17b1443b10abd45c9aa"
+ hash: "01dacbcc21c541e0cbf272ee01292b7c"
}
Frame {
msec: 3504
- hash: "10a29af771a5c17b1443b10abd45c9aa"
+ hash: "01dacbcc21c541e0cbf272ee01292b7c"
}
Frame {
msec: 3520
- hash: "10a29af771a5c17b1443b10abd45c9aa"
+ hash: "01dacbcc21c541e0cbf272ee01292b7c"
}
Frame {
msec: 3536
- hash: "10a29af771a5c17b1443b10abd45c9aa"
+ hash: "01dacbcc21c541e0cbf272ee01292b7c"
}
Key {
type: 7
@@ -1442,11 +1442,11 @@ VisualTest {
}
Frame {
msec: 3552
- hash: "10a29af771a5c17b1443b10abd45c9aa"
+ hash: "01dacbcc21c541e0cbf272ee01292b7c"
}
Frame {
msec: 3568
- hash: "10a29af771a5c17b1443b10abd45c9aa"
+ hash: "01dacbcc21c541e0cbf272ee01292b7c"
}
Key {
type: 6
@@ -1458,27 +1458,27 @@ VisualTest {
}
Frame {
msec: 3584
- hash: "68449dbef331f4bdf4c4bc443ec98e89"
+ hash: "7b493045fb2b7373525ce570d86542d7"
}
Frame {
msec: 3600
- hash: "68449dbef331f4bdf4c4bc443ec98e89"
+ hash: "7b493045fb2b7373525ce570d86542d7"
}
Frame {
msec: 3616
- hash: "68449dbef331f4bdf4c4bc443ec98e89"
+ hash: "7b493045fb2b7373525ce570d86542d7"
}
Frame {
msec: 3632
- hash: "68449dbef331f4bdf4c4bc443ec98e89"
+ hash: "7b493045fb2b7373525ce570d86542d7"
}
Frame {
msec: 3648
- hash: "68449dbef331f4bdf4c4bc443ec98e89"
+ hash: "7b493045fb2b7373525ce570d86542d7"
}
Frame {
msec: 3664
- hash: "68449dbef331f4bdf4c4bc443ec98e89"
+ hash: "7b493045fb2b7373525ce570d86542d7"
}
Key {
type: 6
@@ -1490,7 +1490,7 @@ VisualTest {
}
Frame {
msec: 3680
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Key {
type: 7
@@ -1502,23 +1502,23 @@ VisualTest {
}
Frame {
msec: 3696
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3712
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3728
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3744
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3760
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Key {
type: 7
@@ -1530,39 +1530,39 @@ VisualTest {
}
Frame {
msec: 3776
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3792
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3808
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3824
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3840
- image: "wrap.3.png"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3856
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ image: "wrap.4.png"
}
Frame {
msec: 3872
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3888
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Frame {
msec: 3904
- hash: "5c773045e3ccab933749a3f6a74dc25a"
+ hash: "7c11ac5b8dfee4708b7b49c2a1a7db57"
}
Key {
type: 6
@@ -1574,23 +1574,23 @@ VisualTest {
}
Frame {
msec: 3920
- hash: "f1ef12790a0548cfaa4176680566680d"
+ hash: "46a6db4f63965f019fc1966e2a6caf98"
}
Frame {
msec: 3936
- hash: "f1ef12790a0548cfaa4176680566680d"
+ hash: "46a6db4f63965f019fc1966e2a6caf98"
}
Frame {
msec: 3952
- hash: "f1ef12790a0548cfaa4176680566680d"
+ hash: "46a6db4f63965f019fc1966e2a6caf98"
}
Frame {
msec: 3968
- hash: "f1ef12790a0548cfaa4176680566680d"
+ hash: "46a6db4f63965f019fc1966e2a6caf98"
}
Frame {
msec: 3984
- hash: "f1ef12790a0548cfaa4176680566680d"
+ hash: "46a6db4f63965f019fc1966e2a6caf98"
}
Key {
type: 7
@@ -1602,11 +1602,11 @@ VisualTest {
}
Frame {
msec: 4000
- hash: "f1ef12790a0548cfaa4176680566680d"
+ hash: "46a6db4f63965f019fc1966e2a6caf98"
}
Frame {
msec: 4016
- hash: "f1ef12790a0548cfaa4176680566680d"
+ hash: "46a6db4f63965f019fc1966e2a6caf98"
}
Key {
type: 6
@@ -1618,15 +1618,15 @@ VisualTest {
}
Frame {
msec: 4032
- hash: "22575a03b4c58e4391845d495c2ca48b"
+ hash: "abc8cf4650aa07a9a26ad04a082bc269"
}
Frame {
msec: 4048
- hash: "22575a03b4c58e4391845d495c2ca48b"
+ hash: "abc8cf4650aa07a9a26ad04a082bc269"
}
Frame {
msec: 4064
- hash: "22575a03b4c58e4391845d495c2ca48b"
+ hash: "abc8cf4650aa07a9a26ad04a082bc269"
}
Key {
type: 7
@@ -1638,7 +1638,7 @@ VisualTest {
}
Frame {
msec: 4080
- hash: "22575a03b4c58e4391845d495c2ca48b"
+ hash: "abc8cf4650aa07a9a26ad04a082bc269"
}
Key {
type: 6
@@ -1650,19 +1650,19 @@ VisualTest {
}
Frame {
msec: 4096
- hash: "3243dc4562f073136782415365b7b42d"
+ hash: "23ee54c88cd70b6c66137ce32702cf01"
}
Frame {
msec: 4112
- hash: "3243dc4562f073136782415365b7b42d"
+ hash: "23ee54c88cd70b6c66137ce32702cf01"
}
Frame {
msec: 4128
- hash: "3243dc4562f073136782415365b7b42d"
+ hash: "23ee54c88cd70b6c66137ce32702cf01"
}
Frame {
msec: 4144
- hash: "3243dc4562f073136782415365b7b42d"
+ hash: "23ee54c88cd70b6c66137ce32702cf01"
}
Key {
type: 7
@@ -1674,15 +1674,15 @@ VisualTest {
}
Frame {
msec: 4160
- hash: "3243dc4562f073136782415365b7b42d"
+ hash: "23ee54c88cd70b6c66137ce32702cf01"
}
Frame {
msec: 4176
- hash: "3243dc4562f073136782415365b7b42d"
+ hash: "23ee54c88cd70b6c66137ce32702cf01"
}
Frame {
msec: 4192
- hash: "3243dc4562f073136782415365b7b42d"
+ hash: "23ee54c88cd70b6c66137ce32702cf01"
}
Key {
type: 6
@@ -1694,23 +1694,23 @@ VisualTest {
}
Frame {
msec: 4208
- hash: "44cd04d2a2bf12654cb96ec9af92b9aa"
+ hash: "dc0899573a995421b57a6689d300a421"
}
Frame {
msec: 4224
- hash: "44cd04d2a2bf12654cb96ec9af92b9aa"
+ hash: "dc0899573a995421b57a6689d300a421"
}
Frame {
msec: 4240
- hash: "44cd04d2a2bf12654cb96ec9af92b9aa"
+ hash: "dc0899573a995421b57a6689d300a421"
}
Frame {
msec: 4256
- hash: "44cd04d2a2bf12654cb96ec9af92b9aa"
+ hash: "dc0899573a995421b57a6689d300a421"
}
Frame {
msec: 4272
- hash: "44cd04d2a2bf12654cb96ec9af92b9aa"
+ hash: "dc0899573a995421b57a6689d300a421"
}
Key {
type: 6
@@ -1722,7 +1722,7 @@ VisualTest {
}
Frame {
msec: 4288
- hash: "cf1eb35cb9a793769303abee0a2fcad8"
+ hash: "4d42c63a0324c1573818ebb081d8927f"
}
Key {
type: 7
@@ -1734,15 +1734,15 @@ VisualTest {
}
Frame {
msec: 4304
- hash: "cf1eb35cb9a793769303abee0a2fcad8"
+ hash: "4d42c63a0324c1573818ebb081d8927f"
}
Frame {
msec: 4320
- hash: "cf1eb35cb9a793769303abee0a2fcad8"
+ hash: "4d42c63a0324c1573818ebb081d8927f"
}
Frame {
msec: 4336
- hash: "cf1eb35cb9a793769303abee0a2fcad8"
+ hash: "4d42c63a0324c1573818ebb081d8927f"
}
Key {
type: 7
@@ -1754,23 +1754,23 @@ VisualTest {
}
Frame {
msec: 4352
- hash: "cf1eb35cb9a793769303abee0a2fcad8"
+ hash: "4d42c63a0324c1573818ebb081d8927f"
}
Frame {
msec: 4368
- hash: "cf1eb35cb9a793769303abee0a2fcad8"
+ hash: "4d42c63a0324c1573818ebb081d8927f"
}
Frame {
msec: 4384
- hash: "cf1eb35cb9a793769303abee0a2fcad8"
+ hash: "4d42c63a0324c1573818ebb081d8927f"
}
Frame {
msec: 4400
- hash: "cf1eb35cb9a793769303abee0a2fcad8"
+ hash: "4d42c63a0324c1573818ebb081d8927f"
}
Frame {
msec: 4416
- hash: "cf1eb35cb9a793769303abee0a2fcad8"
+ hash: "4d42c63a0324c1573818ebb081d8927f"
}
Key {
type: 6
@@ -1782,15 +1782,15 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "252838a495502ba5b836ffd1b20711f4"
+ hash: "9d2239e4b71da17a6f8f2ef979f4bf85"
}
Frame {
msec: 4448
- hash: "252838a495502ba5b836ffd1b20711f4"
+ hash: "9d2239e4b71da17a6f8f2ef979f4bf85"
}
Frame {
msec: 4464
- hash: "252838a495502ba5b836ffd1b20711f4"
+ hash: "9d2239e4b71da17a6f8f2ef979f4bf85"
}
Key {
type: 7
@@ -1802,23 +1802,23 @@ VisualTest {
}
Frame {
msec: 4480
- hash: "252838a495502ba5b836ffd1b20711f4"
+ hash: "9d2239e4b71da17a6f8f2ef979f4bf85"
}
Frame {
msec: 4496
- hash: "252838a495502ba5b836ffd1b20711f4"
+ hash: "9d2239e4b71da17a6f8f2ef979f4bf85"
}
Frame {
msec: 4512
- hash: "252838a495502ba5b836ffd1b20711f4"
+ hash: "9d2239e4b71da17a6f8f2ef979f4bf85"
}
Frame {
msec: 4528
- hash: "252838a495502ba5b836ffd1b20711f4"
+ hash: "9d2239e4b71da17a6f8f2ef979f4bf85"
}
Frame {
msec: 4544
- hash: "252838a495502ba5b836ffd1b20711f4"
+ hash: "9d2239e4b71da17a6f8f2ef979f4bf85"
}
Key {
type: 6
@@ -1830,19 +1830,19 @@ VisualTest {
}
Frame {
msec: 4560
- hash: "4010bb0f50630f067974e6ddb3177693"
+ hash: "289059d77547c9ec548b33d8bbe9fca9"
}
Frame {
msec: 4576
- hash: "4010bb0f50630f067974e6ddb3177693"
+ hash: "289059d77547c9ec548b33d8bbe9fca9"
}
Frame {
msec: 4592
- hash: "4010bb0f50630f067974e6ddb3177693"
+ hash: "289059d77547c9ec548b33d8bbe9fca9"
}
Frame {
msec: 4608
- hash: "4010bb0f50630f067974e6ddb3177693"
+ hash: "289059d77547c9ec548b33d8bbe9fca9"
}
Key {
type: 7
@@ -1854,19 +1854,19 @@ VisualTest {
}
Frame {
msec: 4624
- hash: "4010bb0f50630f067974e6ddb3177693"
+ hash: "289059d77547c9ec548b33d8bbe9fca9"
}
Frame {
msec: 4640
- hash: "4010bb0f50630f067974e6ddb3177693"
+ hash: "289059d77547c9ec548b33d8bbe9fca9"
}
Frame {
msec: 4656
- hash: "4010bb0f50630f067974e6ddb3177693"
+ hash: "289059d77547c9ec548b33d8bbe9fca9"
}
Frame {
msec: 4672
- hash: "4010bb0f50630f067974e6ddb3177693"
+ hash: "289059d77547c9ec548b33d8bbe9fca9"
}
Key {
type: 6
@@ -1878,19 +1878,19 @@ VisualTest {
}
Frame {
msec: 4688
- hash: "14dc6ee8cd3b4747650f2a458b42a6e3"
+ hash: "4b60bfb67c5007b4054241e581ce92ac"
}
Frame {
msec: 4704
- hash: "14dc6ee8cd3b4747650f2a458b42a6e3"
+ hash: "4b60bfb67c5007b4054241e581ce92ac"
}
Frame {
msec: 4720
- hash: "14dc6ee8cd3b4747650f2a458b42a6e3"
+ hash: "4b60bfb67c5007b4054241e581ce92ac"
}
Frame {
msec: 4736
- hash: "14dc6ee8cd3b4747650f2a458b42a6e3"
+ hash: "4b60bfb67c5007b4054241e581ce92ac"
}
Key {
type: 7
@@ -1902,15 +1902,15 @@ VisualTest {
}
Frame {
msec: 4752
- hash: "14dc6ee8cd3b4747650f2a458b42a6e3"
+ hash: "4b60bfb67c5007b4054241e581ce92ac"
}
Frame {
msec: 4768
- hash: "14dc6ee8cd3b4747650f2a458b42a6e3"
+ hash: "4b60bfb67c5007b4054241e581ce92ac"
}
Frame {
msec: 4784
- hash: "14dc6ee8cd3b4747650f2a458b42a6e3"
+ hash: "4b60bfb67c5007b4054241e581ce92ac"
}
Key {
type: 6
@@ -1922,11 +1922,11 @@ VisualTest {
}
Frame {
msec: 4800
- image: "wrap.4.png"
+ hash: "dbabce81e44f912d6a30ff4cc3289da8"
}
Frame {
msec: 4816
- hash: "7d4a56854715772c92706522d2dcac56"
+ image: "wrap.5.png"
}
Key {
type: 7
@@ -1938,19 +1938,19 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "7d4a56854715772c92706522d2dcac56"
+ hash: "dbabce81e44f912d6a30ff4cc3289da8"
}
Frame {
msec: 4848
- hash: "7d4a56854715772c92706522d2dcac56"
+ hash: "dbabce81e44f912d6a30ff4cc3289da8"
}
Frame {
msec: 4864
- hash: "7d4a56854715772c92706522d2dcac56"
+ hash: "dbabce81e44f912d6a30ff4cc3289da8"
}
Frame {
msec: 4880
- hash: "7d4a56854715772c92706522d2dcac56"
+ hash: "dbabce81e44f912d6a30ff4cc3289da8"
}
Key {
type: 6
@@ -1962,19 +1962,19 @@ VisualTest {
}
Frame {
msec: 4896
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 4912
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 4928
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 4944
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Key {
type: 7
@@ -1986,482 +1986,482 @@ VisualTest {
}
Frame {
msec: 4960
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 4976
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 4992
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5008
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5024
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5040
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5056
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5072
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5088
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5104
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5120
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5136
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5152
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5168
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5184
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5200
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5216
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5232
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5248
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5264
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5280
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5296
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5312
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5328
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5344
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5360
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5376
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5392
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5408
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5424
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5440
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5456
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5472
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5488
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5504
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5520
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5536
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5552
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5568
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5584
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5600
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5616
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5632
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5648
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5664
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5680
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5696
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5712
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5728
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5744
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5760
- image: "wrap.5.png"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5776
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ image: "wrap.6.png"
}
Frame {
msec: 5792
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5808
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5824
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5840
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5856
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5872
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5888
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5904
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5920
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5936
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5952
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5968
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 5984
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6000
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6016
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6032
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6048
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6064
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6080
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6096
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6112
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6128
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6144
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6160
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6176
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6192
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6208
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6224
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6240
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6256
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6272
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6288
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6304
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6320
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6336
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6352
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6368
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6384
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6400
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6416
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6432
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6448
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6464
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6480
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6496
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6512
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6528
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6544
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6560
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6576
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6592
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6608
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6624
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6640
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6656
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6672
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6688
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6704
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6720
- image: "wrap.6.png"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6736
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ image: "wrap.7.png"
}
Frame {
msec: 6752
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6768
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6784
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6800
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6816
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6832
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6848
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
Frame {
msec: 6864
- hash: "0c75eb65cf70c883ee4dcd2f7ee092ce"
+ hash: "e9633d239e0a9ca008ed033565322c24"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png
index 1d96795608..b65bc372f9 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png
index a3a9bfafd0..ebaa01161b 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png
index b50028c4dc..57ee3706d4 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png
index 1c4876e222..4b70b4a584 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png
index 9d110cbc82..18ae753c8f 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png
index 9289dc028a..2b463f0d92 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml
index bd4af6a804..6b8ba9b1b7 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml
@@ -6,115 +6,115 @@ VisualTest {
}
Frame {
msec: 16
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ image: "cursorDelegate.0.png"
}
Frame {
msec: 32
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 48
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 64
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 80
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 96
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 112
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 128
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 144
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 160
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 176
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 192
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 208
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 224
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 240
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 256
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 272
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 288
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 304
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 320
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 336
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 352
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 368
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 384
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 400
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 416
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 432
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Frame {
msec: 448
- hash: "c0ffaa97d1be341fafafc18762f5cb67"
+ hash: "a7af287992f894f9cf76e834b922f5b3"
}
Key {
type: 6
@@ -126,23 +126,23 @@ VisualTest {
}
Frame {
msec: 464
- hash: "eadbfc95de35a0d1880809b2bbaec562"
+ hash: "74b6ebfbe8246f0b2b43f88d9f6028d1"
}
Frame {
msec: 480
- hash: "eadbfc95de35a0d1880809b2bbaec562"
+ hash: "74b6ebfbe8246f0b2b43f88d9f6028d1"
}
Frame {
msec: 496
- hash: "eadbfc95de35a0d1880809b2bbaec562"
+ hash: "74b6ebfbe8246f0b2b43f88d9f6028d1"
}
Frame {
msec: 512
- hash: "eadbfc95de35a0d1880809b2bbaec562"
+ hash: "74b6ebfbe8246f0b2b43f88d9f6028d1"
}
Frame {
msec: 528
- hash: "227cbfe5fc07906060951e19ebb3ad30"
+ hash: "0f0e9ced5d2f9f20a2b5f1b5bde0be62"
}
Key {
type: 7
@@ -154,19 +154,19 @@ VisualTest {
}
Frame {
msec: 544
- hash: "066256a59ad290b3725193955e3c48a6"
+ hash: "bec7fff73d6d869d2d15b3ea35fa0605"
}
Frame {
msec: 560
- hash: "6709f77cbcde82886d1c5a07f06b55a5"
+ hash: "e3afffc91ed0a78a0022421e6d1bd0d2"
}
Frame {
msec: 576
- hash: "da0028083048837b4756a2d3ff468378"
+ hash: "45f44411121d335ed7a844803313e566"
}
Frame {
msec: 592
- hash: "5f265351bed34357d603794d868dbcbc"
+ hash: "b951279da53fe76ab62ca9837ecbd7a6"
}
Key {
type: 6
@@ -178,19 +178,19 @@ VisualTest {
}
Frame {
msec: 608
- hash: "3b8030849229e90b69842219e8b2d3f1"
+ hash: "b5678202f08099b09ce88cef5eeea20a"
}
Frame {
msec: 624
- hash: "0b08356d9b00313b2d892175dd93095a"
+ hash: "93f6663d083a2bd3b4079241f3fc0159"
}
Frame {
msec: 640
- hash: "4780555b277d65e3e4c0c60817b63eb4"
+ hash: "8c802943d3030214cb7af7fd1db1c813"
}
Frame {
msec: 656
- hash: "6b31c8f0569d01d97a371423a0f379c0"
+ hash: "01396c0332523ba2a8971a99c6962516"
}
Key {
type: 7
@@ -202,19 +202,19 @@ VisualTest {
}
Frame {
msec: 672
- hash: "e9a5695636f7957d33f1c902a37a605d"
+ hash: "fc5dd253219d1a8aca7fcf31be0e7d69"
}
Frame {
msec: 688
- hash: "27a783cd4ef5caab382721a98f7966da"
+ hash: "545071a58d8db4f73e1cb6981e9ec62e"
}
Frame {
msec: 704
- hash: "c50598c0a5f8d501fd3ac9cddecee506"
+ hash: "13bc1aa8ce4fc3d9ba9a6c3046e14c92"
}
Frame {
msec: 720
- hash: "2a2d0e202bc3bf7991409391a2ce2934"
+ hash: "ba7d13545fb7384dcb3edd32979c9442"
}
Key {
type: 6
@@ -226,19 +226,19 @@ VisualTest {
}
Frame {
msec: 736
- hash: "2d97b8503c739b210615971ad08c2714"
+ hash: "8f9e1abd8eb2d072907b910630e93c9a"
}
Frame {
msec: 752
- hash: "f27fd7f1d8c6dfb7393ab0d39ed5cd02"
+ hash: "003d0e4a01909aa51cb1967738383ede"
}
Frame {
msec: 768
- hash: "32d256543e3e1ba722860e5143af9f09"
+ hash: "223cce18cef44b3945d0a1d45554c5c1"
}
Frame {
msec: 784
- hash: "9123b724613ef4d3d8431afde6e9eb6b"
+ hash: "fcd7f862bdce75d7e6df574ff0146ca6"
}
Key {
type: 7
@@ -250,23 +250,23 @@ VisualTest {
}
Frame {
msec: 800
- hash: "be5249a7effc94ec2be3d6053eba7b45"
+ hash: "21f5e3696987222106b00f0efe3bb165"
}
Frame {
msec: 816
- hash: "57f2c119c9eca3d1e4acd2f775af5207"
+ hash: "6380ce26303da8180dff8fcc88caaf1d"
}
Frame {
msec: 832
- hash: "23b79a2630448e99f27a657fd9789354"
+ hash: "52bfa995405a3d6523d97b2c36428d89"
}
Frame {
msec: 848
- hash: "c8faab137cbc014aef5e3212889d00b8"
+ hash: "7169d69c2adb50bf80c075e30eb8e965"
}
Frame {
msec: 864
- hash: "c9616f6fde5d6a8ecf346ece9952f09b"
+ hash: "f5ad55885a4fc2b47a5420e9e0d7c59c"
}
Key {
type: 6
@@ -278,15 +278,15 @@ VisualTest {
}
Frame {
msec: 880
- hash: "11a861ca71d789e3d97d599608a793be"
+ hash: "831081f829df0a226c75389bc457a768"
}
Frame {
msec: 896
- hash: "5a6c57df0c33b83985aeb194f291ad6c"
+ hash: "2306a9c9cb570bc922f120f2f63e26e4"
}
Frame {
msec: 912
- hash: "2c047359db6946cb740462b0d6c695be"
+ hash: "23d6728fe34436e53a449e26962c3ad5"
}
Key {
type: 7
@@ -298,23 +298,23 @@ VisualTest {
}
Frame {
msec: 928
- hash: "d0bb54caf661be021be8fe2691de24e8"
+ hash: "db2de48337701cbb36a14e32f1846683"
}
Frame {
msec: 944
- hash: "80f0a60239f4d81b18b9cb3e80faf346"
+ hash: "04bb83a694d293fd4ba956fc79db79e7"
}
Frame {
msec: 960
- image: "cursorDelegate.0.png"
+ hash: "7a1a71b2d7e42934163990d5c011c464"
}
Frame {
msec: 976
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ image: "cursorDelegate.1.png"
}
Frame {
msec: 992
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Key {
type: 6
@@ -326,15 +326,15 @@ VisualTest {
}
Frame {
msec: 1008
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 1024
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 1040
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Key {
type: 7
@@ -346,23 +346,23 @@ VisualTest {
}
Frame {
msec: 1056
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 1072
- hash: "5f6cc0c97e4748aeeaa4a00c8a8c8928"
+ hash: "20f1db4245d1689e980371d7b1bcb903"
}
Frame {
msec: 1088
- hash: "b1d71160d9a8a8edeb4cf7e00df36cfc"
+ hash: "6a3629223845d352ba02e3ad8569f698"
}
Frame {
msec: 1104
- hash: "5bfd4269145cc0962e0fa9c294e8f5aa"
+ hash: "ee3dd4535fcf24249c41ebebb5f4fca6"
}
Frame {
msec: 1120
- hash: "4e22c95802d83f0099017c6be9d93214"
+ hash: "7bf5df6a807da0c8d316420ced34e267"
}
Key {
type: 6
@@ -374,23 +374,23 @@ VisualTest {
}
Frame {
msec: 1136
- hash: "0f31d8f4867af7c2f4fb8e86aa077afd"
+ hash: "4f5ce98428d5fba11a6322f88cab14c3"
}
Frame {
msec: 1152
- hash: "21a552133320008a4d4f77752a3cfb55"
+ hash: "14406e8d0e120a0f30864fa8793f2e8d"
}
Frame {
msec: 1168
- hash: "3a30a4a785de21da0ff939e303202a81"
+ hash: "6e891d584ce4f636708cee1111193878"
}
Frame {
msec: 1184
- hash: "b0e3ed2468538aacec354cb96d90c362"
+ hash: "cd6bbc72108cfffd043a31d0d3655851"
}
Frame {
msec: 1200
- hash: "56bf6e3fe47e52046b443481fc17a3ec"
+ hash: "d4069e606ab2b10c90e6f567be462c10"
}
Key {
type: 7
@@ -402,27 +402,27 @@ VisualTest {
}
Frame {
msec: 1216
- hash: "ce80807cde9b902ebf33281fce50d9fb"
+ hash: "de8e00d6116b1aa900478a41c7ac78f1"
}
Frame {
msec: 1232
- hash: "ed67b18b5f7b90d3bcd9f662e70dc7b8"
+ hash: "5a0c4e31eb9ecb2ffc9380d474861846"
}
Frame {
msec: 1248
- hash: "930950ce5c6b12da47eea1b92d5176eb"
+ hash: "bbacdb359c6206b50a859169b106ec92"
}
Frame {
msec: 1264
- hash: "5a2eeca0f1533d323cc4d7ffbb7ad6aa"
+ hash: "c4f4ed5a4842f1bbdda67a27d74fd5f4"
}
Frame {
msec: 1280
- hash: "3f7f3ef2d4c1353dfe7027930505f4fd"
+ hash: "4deb6d0a83b14abef80f2bfa0491cbd0"
}
Frame {
msec: 1296
- hash: "1a3a781ac5a1e90a4415944e0c54ea4e"
+ hash: "9caca7068ce5b289d70c39667e87a57f"
}
Key {
type: 6
@@ -434,7 +434,7 @@ VisualTest {
}
Frame {
msec: 1312
- hash: "d11dae0dd461fc82a73bf319905320d4"
+ hash: "e3ca7a8a860efc3811b8befe0a97d7f1"
}
Key {
type: 6
@@ -446,19 +446,19 @@ VisualTest {
}
Frame {
msec: 1328
- hash: "00957049ea51866138cfc33451f12e17"
+ hash: "ddb3dcb40f412c087d0ae21b5a8e47aa"
}
Frame {
msec: 1344
- hash: "386847af9b173db7ef1554d2c85c748e"
+ hash: "325d8356c3e14467c54d03d096a3c1a5"
}
Frame {
msec: 1360
- hash: "4b715060d29d6228a40217bc769fc140"
+ hash: "83f4c541b94180863e538e6c0a0e1ae0"
}
Frame {
msec: 1376
- hash: "e58a9a3623afa08819351c22435ba03f"
+ hash: "16623dc34067800f3c7d6aabe1076927"
}
Key {
type: 6
@@ -470,31 +470,31 @@ VisualTest {
}
Frame {
msec: 1392
- hash: "6378e3faf5578818fc282de2a077da59"
+ hash: "e7319b080b621c5d176d6913cd9a8f7e"
}
Frame {
msec: 1408
- hash: "07efb3687d29e65680e1cc831762348f"
+ hash: "353a200418b2cc0fbe925329224e658a"
}
Frame {
msec: 1424
- hash: "5292e7c95b3c5b11e4088b5010984257"
+ hash: "98fd3f1fc108de1d78f07587f9e94ec4"
}
Frame {
msec: 1440
- hash: "ffe95603f5fe9d63abb3b77c399c3b11"
+ hash: "f75fbda5a1403f7b1dd8e9d05e30ebeb"
}
Frame {
msec: 1456
- hash: "ad7cb73893c27b69704c5b821738a3c1"
+ hash: "c2742ff9a04bbae6c6de13f08d514913"
}
Frame {
msec: 1472
- hash: "e25971a61888ded93b651891ec9661b0"
+ hash: "a73b65c18ba10e6b6d310fc325d7ccb2"
}
Frame {
msec: 1488
- hash: "80f90b3623bf34544438dd00abee7037"
+ hash: "bbe72b26a6f3f518a3c8b6cd9e8dbfd1"
}
Key {
type: 7
@@ -506,51 +506,51 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "797dd70572e532d4acb374230b2c8efe"
+ hash: "679205439a359f3ffb05f631a1979596"
}
Frame {
msec: 1520
- hash: "0673db1283d874a5711520f272572cf8"
+ hash: "7ada5f6a58a6a7f9a3b4199a412fccfd"
}
Frame {
msec: 1536
- hash: "fbc8434912f08a93b5f884258bc754b7"
+ hash: "66749c0e5b97cec02f4908a709201604"
}
Frame {
msec: 1552
- hash: "e41ebaf8f2114a6e8f38f731ea164e8a"
+ hash: "373bfac053f5cfeceabe2979f3e6f444"
}
Frame {
msec: 1568
- hash: "d14bdb5bf1b4756166ecf6f3255bf3cc"
+ hash: "c7ab2bcdcd1b7fd25ac775c4dd382635"
}
Frame {
msec: 1584
- hash: "5fb04569aa0e530b898a3c11725b947e"
+ hash: "3116b1a0cf1724bdae2cb71b9e15c73e"
}
Frame {
msec: 1600
- hash: "03d24457fae160864fec985765f6d8d1"
+ hash: "9bdc4513c30bf2d1eca61317cc22ebaa"
}
Frame {
msec: 1616
- hash: "56dad740bb9032d113a0dacbe986c9c0"
+ hash: "bbecf871ff569ac1020272c1ccc9aa14"
}
Frame {
msec: 1632
- hash: "70d9acda83aa7db59780cf56f03e38ec"
+ hash: "beef5a84dcc7794cf0aabfc8b7f811bc"
}
Frame {
msec: 1648
- hash: "a272e39bc1af0f4d1bab9c3f64e746e2"
+ hash: "2db7161f3591ef0b3f1e3cb2aa357c8b"
}
Frame {
msec: 1664
- hash: "cf0379de604b9bb33b4456cb89e09afd"
+ hash: "b8b5ffef5e52a8ae94ddb5ec3328fa0e"
}
Frame {
msec: 1680
- hash: "332e7a10d75c0d21a24fc8be34269629"
+ hash: "b65c4657ffb97a59455f2c3e23e3eb51"
}
Key {
type: 6
@@ -562,31 +562,31 @@ VisualTest {
}
Frame {
msec: 1696
- hash: "c07eb71d90e74393205338bc946c1e43"
+ hash: "9702981b8eb5f035f2f4da6708ad1a92"
}
Frame {
msec: 1712
- hash: "984477de7c103ff3aebc2634785dce09"
+ hash: "a6f46dd869daf69c5a5a3c887ae35a05"
}
Frame {
msec: 1728
- hash: "958f79dd7c57387042746df2ca01779e"
+ hash: "902c0f174b16b1b0d419c13220937e06"
}
Frame {
msec: 1744
- hash: "53bb3f0718d6333ca40dc279b6300b85"
+ hash: "97a5ea7449a1f313d0d5e818edc29bf6"
}
Frame {
msec: 1760
- hash: "c16877cb99997cc47f1fff5af1d22bd7"
+ hash: "d5b69638452ea2260861c17991fc8bef"
}
Frame {
msec: 1776
- hash: "dea3e1eb6c72f0d37398e3e301a23c19"
+ hash: "5fa21c53d65b078d1b30830d99a0fbaf"
}
Frame {
msec: 1792
- hash: "6bb7918f0794e6a7cbdb8847cdcf6e35"
+ hash: "668de1d2fa5780f5088637d919db0a0d"
}
Key {
type: 7
@@ -598,19 +598,19 @@ VisualTest {
}
Frame {
msec: 1808
- hash: "6858cd874abb1ed2fec34862f76044fa"
+ hash: "1989592754c28456aa917562fa3620bd"
}
Frame {
msec: 1824
- hash: "47b546ea0d5b1d4573991d4738c37f4d"
+ hash: "89cd0ef7c366bbcee8e4404e9a2285a7"
}
Frame {
msec: 1840
- hash: "6c9e636dee2bb5f2a72a2c08ab9fb970"
+ hash: "d062d4b132ee3086a00220d47e8907fc"
}
Frame {
msec: 1856
- hash: "42c2b2a7f41c88ae7bb19403e2460a17"
+ hash: "198bd9fc763c70fb84bdae122f0bdd8b"
}
Key {
type: 7
@@ -622,7 +622,7 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "80b7986af693b89dc4d4f9533dae85cb"
+ hash: "304f7f6cef5b09c09db1284b8095e9a2"
}
Key {
type: 6
@@ -634,43 +634,43 @@ VisualTest {
}
Frame {
msec: 1888
- hash: "631bea21dde9b7647f5843bc3513f3ba"
+ hash: "565003fef7b9810ffe95c3bbeeda5bbc"
}
Frame {
msec: 1904
- hash: "cc40335abbea0d589180096f7d8f5426"
+ hash: "2fa85a19ba2bb7d04264a246c4982eb4"
}
Frame {
msec: 1920
- image: "cursorDelegate.1.png"
+ hash: "7be44eca358924dc11c5123e406f1c99"
}
Frame {
msec: 1936
- hash: "1c03b5384a889fe233eb1c6d14a55f36"
+ image: "cursorDelegate.2.png"
}
Frame {
msec: 1952
- hash: "7762cc4e6cf681311f5296de698c950b"
+ hash: "a08502b3fbb425c7b1cad93e4bc5701e"
}
Frame {
msec: 1968
- hash: "678eed1d1fec30b02156d690777397c1"
+ hash: "fba3a88b7fe6f7583daf07db78f3598c"
}
Frame {
msec: 1984
- hash: "96f51fee5c7baf78a3465420d63a9e5f"
+ hash: "509d75aa56bcdb6718c18b56e138ef3c"
}
Frame {
msec: 2000
- hash: "96f51fee5c7baf78a3465420d63a9e5f"
+ hash: "509d75aa56bcdb6718c18b56e138ef3c"
}
Frame {
msec: 2016
- hash: "96f51fee5c7baf78a3465420d63a9e5f"
+ hash: "509d75aa56bcdb6718c18b56e138ef3c"
}
Frame {
msec: 2032
- hash: "96f51fee5c7baf78a3465420d63a9e5f"
+ hash: "509d75aa56bcdb6718c18b56e138ef3c"
}
Key {
type: 7
@@ -682,7 +682,7 @@ VisualTest {
}
Frame {
msec: 2048
- hash: "96f51fee5c7baf78a3465420d63a9e5f"
+ hash: "509d75aa56bcdb6718c18b56e138ef3c"
}
Key {
type: 7
@@ -694,27 +694,27 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "678eed1d1fec30b02156d690777397c1"
+ hash: "fba3a88b7fe6f7583daf07db78f3598c"
}
Frame {
msec: 2080
- hash: "7762cc4e6cf681311f5296de698c950b"
+ hash: "a08502b3fbb425c7b1cad93e4bc5701e"
}
Frame {
msec: 2096
- hash: "1c03b5384a889fe233eb1c6d14a55f36"
+ hash: "86ad5a9e06d19ea79e0fc9f7f36cdb0f"
}
Frame {
msec: 2112
- hash: "2cd264339edc0338fc610e0d766425cc"
+ hash: "7be44eca358924dc11c5123e406f1c99"
}
Frame {
msec: 2128
- hash: "cc40335abbea0d589180096f7d8f5426"
+ hash: "2fa85a19ba2bb7d04264a246c4982eb4"
}
Frame {
msec: 2144
- hash: "631bea21dde9b7647f5843bc3513f3ba"
+ hash: "565003fef7b9810ffe95c3bbeeda5bbc"
}
Key {
type: 6
@@ -726,27 +726,27 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "c5199c908df1f550d7c4f133eb926134"
+ hash: "39c81c6efdbc32b6e0378810404bef2c"
}
Frame {
msec: 2176
- hash: "483eca22c50750e7591785ed60813d1f"
+ hash: "756f36cf41c2bae3a8a8716701e55e37"
}
Frame {
msec: 2192
- hash: "4091de379d8f6ccc7f19ea39f6c7993a"
+ hash: "fb09d44a5a5b5b795d562512e9547301"
}
Frame {
msec: 2208
- hash: "cd58c0d4f7248315a787542b0edcb4fb"
+ hash: "183538d04cf009f100a1e49a3229c143"
}
Frame {
msec: 2224
- hash: "458895f9ede4d56e0b851c6ed124405d"
+ hash: "2ec91bfdb0f106a526f6bde3eb0ed7ce"
}
Frame {
msec: 2240
- hash: "29a28a97fc78a1b01252b852fb0446e2"
+ hash: "f34175acc261ad79bc9d2083af04ae10"
}
Key {
type: 7
@@ -758,31 +758,31 @@ VisualTest {
}
Frame {
msec: 2256
- hash: "4fd9f22ad06e02b68319c298c2286e36"
+ hash: "39a59b2e9e0bee87d3ba50e1408bea1c"
}
Frame {
msec: 2272
- hash: "a588e9dbeabd7519cd0cf2d26a123529"
+ hash: "db61ba19d56b69d148aeb182de596713"
}
Frame {
msec: 2288
- hash: "bb74f706477e277284fad50752f078b5"
+ hash: "e0b07106a5adc1603788444d48b9c3db"
}
Frame {
msec: 2304
- hash: "38f16a7deeaea6828edd15b00024fc19"
+ hash: "1dd5625fb6a0ddbaa3919a1702695e9c"
}
Frame {
msec: 2320
- hash: "30c4aa33a6672f4df24186ad1e28bcf9"
+ hash: "d7d39e8f717bab17aaf8a12e4f9e0dfc"
}
Frame {
msec: 2336
- hash: "7f2ac0854ddbcca94a2ad160ead5d4d3"
+ hash: "d7a226b40a049dee56755af9206246b4"
}
Frame {
msec: 2352
- hash: "e1c083d0235ff5a2e002ce78f43009b0"
+ hash: "37d2d2830f6ae6bf0c8fb29c5d4f521a"
}
Key {
type: 6
@@ -802,23 +802,23 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "eaee6483a2a4a0b09a8e40bb1785a498"
+ hash: "21008b3a5179e25f9b132a4c05b8b8c4"
}
Frame {
msec: 2384
- hash: "26530bded6311640c4d3f6d1485fa7d3"
+ hash: "a6f05fb5206a456bea790ba7ba31868c"
}
Frame {
msec: 2400
- hash: "e54102edbf6cc0c9a32b09858f760ee5"
+ hash: "754e2fca1b3ed5ee9875aafb1a0c62d3"
}
Frame {
msec: 2416
- hash: "27434828de3ba8f6a3b83f042b70eb8b"
+ hash: "75d1ae9c60573f9e27cd7c2d1706cbfc"
}
Frame {
msec: 2432
- hash: "fdf68e988b988d068ea78a5a09ef349e"
+ hash: "c78608cde907bc09760d858795b43bbf"
}
Key {
type: 6
@@ -830,23 +830,23 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "0e1e9a2cf891cf65f30ead539becf408"
+ hash: "348438b012690f63956e6a865c4173c5"
}
Frame {
msec: 2464
- hash: "46602c03632f6a47c9d523e1ea61baaf"
+ hash: "b0c970656fdb5af48efc4bf0e1879f36"
}
Frame {
msec: 2480
- hash: "5c758ee2aa3f92b6506533f6d615bc20"
+ hash: "7291a68c8e790f58e2440dfbe896c36d"
}
Frame {
msec: 2496
- hash: "25edbdaae72e03426c9dfa75c08c33e6"
+ hash: "9bcbf9f7b35987c3acbd80031a688279"
}
Frame {
msec: 2512
- hash: "a4bd11f15594932b996a069f3098c596"
+ hash: "48a00bd3f844e863338898bd28d845a4"
}
Key {
type: 7
@@ -858,23 +858,23 @@ VisualTest {
}
Frame {
msec: 2528
- hash: "e4090b920ce2456149155f61fb586a6f"
+ hash: "dc5f63ee9e8d50f744f7b375a52e32c3"
}
Frame {
msec: 2544
- hash: "ce71f4dc76f90fa300d715ed77e8a5a8"
+ hash: "f52d2f475a335a75fad0a0f84e812809"
}
Frame {
msec: 2560
- hash: "59414694d42a3942c4832fd7a3e93145"
+ hash: "bc54cefc8f0b84fc2432b0fb01203b9c"
}
Frame {
msec: 2576
- hash: "1213fc9d9c1d58ceefc213a59f970679"
+ hash: "e6f14d1181a0db90d2c2891fd6e82883"
}
Frame {
msec: 2592
- hash: "bbfa8471ab3fa5fc146946a6c8e0ce86"
+ hash: "1edc2fff7b3d76bbe2615810a5d15d41"
}
Key {
type: 6
@@ -886,15 +886,15 @@ VisualTest {
}
Frame {
msec: 2608
- hash: "22a49c3b5234b4b7a2b935d58027f834"
+ hash: "5bc156937a29989a3a39761b58958fbd"
}
Frame {
msec: 2624
- hash: "7b81c14d5350fb55775c1cb0f3945c46"
+ hash: "071d45235a669e870356efc60ba8016c"
}
Frame {
msec: 2640
- hash: "8ebf266de0df228e47cc6e5a8758a6ea"
+ hash: "1d588fb1f8321e4b437f924077fa7d60"
}
Key {
type: 7
@@ -906,23 +906,23 @@ VisualTest {
}
Frame {
msec: 2656
- hash: "6344eb333dc28672f863bcb7ca5d6cfe"
+ hash: "ca9aff6590dda45a66cdca601dccaf59"
}
Frame {
msec: 2672
- hash: "8efc9b4a6c27b8918cba629a5a1c0f24"
+ hash: "2553146fff0d367cc6fa2d11f0a5c83a"
}
Frame {
msec: 2688
- hash: "b586c24ce0c04391a9095c0ac4b7a05a"
+ hash: "05bd919cd91ff449027b188d9a24b61f"
}
Frame {
msec: 2704
- hash: "191413fe51a6887ae92c135252fdeeae"
+ hash: "35d6ce9ecef79d006d6416c3b0d75e79"
}
Frame {
msec: 2720
- hash: "fc0b37abf12827af41e7037eab8ba5c8"
+ hash: "1459a2410a971e344d4dacccff1eb7da"
}
Key {
type: 6
@@ -934,19 +934,19 @@ VisualTest {
}
Frame {
msec: 2736
- hash: "5efe28d02b93e094192d7fd6fe753acd"
+ hash: "bd04cc87db0138b57bf0feeafa7630f5"
}
Frame {
msec: 2752
- hash: "dadc1f7b14fbf9f8a174821c4197da46"
+ hash: "81521187d5d88b62f4f7578ea4ee5f68"
}
Frame {
msec: 2768
- hash: "124deac57a3eeaef4cb3c0c802bacc05"
+ hash: "f2f8d1e8232787da1e36d7e8a27b6d93"
}
Frame {
msec: 2784
- hash: "e022a6d66a7b37d72885a7a7f6919433"
+ hash: "a5dbd1f572419ca4a4b91629e522867f"
}
Key {
type: 7
@@ -958,75 +958,75 @@ VisualTest {
}
Frame {
msec: 2800
- hash: "5faa6543469753948b1636351d044329"
+ hash: "23ab256301d7190f56c4f0af7f57bcc2"
}
Frame {
msec: 2816
- hash: "a7dcf5a0b9bb00105eed173b498cb95c"
+ hash: "3a106a01b1cf6b53b5f8721415538f15"
}
Frame {
msec: 2832
- hash: "29ac83d169af2c74ffd134d771c88718"
+ hash: "881f4de48cf79636f5cb292f4cacf842"
}
Frame {
msec: 2848
- hash: "0a04648fdc90ec86fb55ad3a165573c4"
+ hash: "4abe8abf4f29a31220c03af143ef9978"
}
Frame {
msec: 2864
- hash: "d699c713ba939612f1e552e48db19b18"
+ hash: "50db0e06ceb12795d3e11b2c4a04df9c"
}
Frame {
msec: 2880
- image: "cursorDelegate.2.png"
+ hash: "39f759d5b58ffdaa79d438f932a72582"
}
Frame {
msec: 2896
- hash: "adf564652cfae394869755ff2fe5b534"
+ image: "cursorDelegate.3.png"
}
Frame {
msec: 2912
- hash: "d1453f663217ee45a8462b7d077d7f6a"
+ hash: "0cf83e3a000b8ae6a21ef64e5470430f"
}
Frame {
msec: 2928
- hash: "9f1461d63ccc49f83e58245ba75685e1"
+ hash: "07116cd7cf46fc692542ac57c3e30aea"
}
Frame {
msec: 2944
- hash: "8cece1543e7e9190eefaa92c2024cbd1"
+ hash: "bd92a36fad90de909b5a29a6fead2160"
}
Frame {
msec: 2960
- hash: "555abf8bc3fdb1eef85b1e4bd54932a3"
+ hash: "95c4d0cc52903dc70c9118e26cd58b7b"
}
Frame {
msec: 2976
- hash: "7fc65284b99fc548de0985d94a145fa7"
+ hash: "cb6ca047657a99dbbb037c1c45b40866"
}
Frame {
msec: 2992
- hash: "7fc65284b99fc548de0985d94a145fa7"
+ hash: "cb6ca047657a99dbbb037c1c45b40866"
}
Frame {
msec: 3008
- hash: "7fc65284b99fc548de0985d94a145fa7"
+ hash: "cb6ca047657a99dbbb037c1c45b40866"
}
Frame {
msec: 3024
- hash: "7fc65284b99fc548de0985d94a145fa7"
+ hash: "cb6ca047657a99dbbb037c1c45b40866"
}
Frame {
msec: 3040
- hash: "7fc65284b99fc548de0985d94a145fa7"
+ hash: "cb6ca047657a99dbbb037c1c45b40866"
}
Frame {
msec: 3056
- hash: "7fc65284b99fc548de0985d94a145fa7"
+ hash: "cb6ca047657a99dbbb037c1c45b40866"
}
Frame {
msec: 3072
- hash: "555abf8bc3fdb1eef85b1e4bd54932a3"
+ hash: "95c4d0cc52903dc70c9118e26cd58b7b"
}
Key {
type: 6
@@ -1038,23 +1038,23 @@ VisualTest {
}
Frame {
msec: 3088
- hash: "996da2eff9302908a55308dbcc8fb3c2"
+ hash: "f9e0bd08b722c16493a8886a19920dda"
}
Frame {
msec: 3104
- hash: "6ccc70f6120acb53152b71bcf95514ca"
+ hash: "0636b7c5cc215882c60b50f62133c715"
}
Frame {
msec: 3120
- hash: "51a1b8e79d209643d55d4cecc6a70ed0"
+ hash: "150b5a2f2e916b7023764c481c768492"
}
Frame {
msec: 3136
- hash: "944dc7026c6487838ede9ef94003ec90"
+ hash: "14bc879f562ace9d2d1a3f3980a72e1f"
}
Frame {
msec: 3152
- hash: "4abbd51b620ac4ea91af95bc2d0881d7"
+ hash: "2bdc09121f13e95e15e331ac90fbbe5e"
}
Key {
type: 7
@@ -1066,27 +1066,27 @@ VisualTest {
}
Frame {
msec: 3168
- hash: "ba721988a1708b8c0762d706820c48fc"
+ hash: "b701aa41aff9df45cc4b35d23789ad46"
}
Frame {
msec: 3184
- hash: "5dba56a5bb5f8a6539a0066af35c73b8"
+ hash: "ad77330d51b1251576905a45fdbdf576"
}
Frame {
msec: 3200
- hash: "bc3efeeebe7075cd09a6e57eef43d610"
+ hash: "4ab6780997a5a598d2da7fbbc19877b7"
}
Frame {
msec: 3216
- hash: "0bd9f7de32b01d8144280bf252d9a18f"
+ hash: "43b324d0e4882147d316a5dc16eff4a5"
}
Frame {
msec: 3232
- hash: "29db710e47b13f26e2bf92568d52bf52"
+ hash: "4379bfd0da6fedac77e2111d9fdc5ecb"
}
Frame {
msec: 3248
- hash: "a27c65c0a49deb18b0766bba41a32e54"
+ hash: "ca35937be71e1f982cedd33bdd09d127"
}
Key {
type: 6
@@ -1098,31 +1098,31 @@ VisualTest {
}
Frame {
msec: 3264
- hash: "484ee552e1a9c5eafcfe1ac583fcdffd"
+ hash: "f6bac38774fa8a09084c045e34fd1732"
}
Frame {
msec: 3280
- hash: "40b336a0e337b66d813089a82a88c712"
+ hash: "6d8b58612860febb13800958cab3aecd"
}
Frame {
msec: 3296
- hash: "b7a8d4b8bb2b83e4c886aa51c1a73895"
+ hash: "7f921d2293cf547de3b5573dbf98d5bb"
}
Frame {
msec: 3312
- hash: "43b3bf8425e7a6b7115d8e6a0bcfd677"
+ hash: "18771337bbe826b5a34bd9705c79f56a"
}
Frame {
msec: 3328
- hash: "e2ce168241b043db74867fe7ed6de956"
+ hash: "3dd49406c4b39980908d8869dc3c060a"
}
Frame {
msec: 3344
- hash: "0c713bbd7bb694d87f0fe14f87098b9b"
+ hash: "8cae649565b5655d606f216334a0b5b5"
}
Frame {
msec: 3360
- hash: "316f6bd365ca4b4f2e6fbf34a047e307"
+ hash: "27c59b474d706ce79b5d075713c1ea88"
}
Key {
type: 7
@@ -1134,39 +1134,39 @@ VisualTest {
}
Frame {
msec: 3376
- hash: "421fb8881fe7b300dcec0f44ff1743e3"
+ hash: "6d70d654998bbc0a2431ca7c4a58cd3c"
}
Frame {
msec: 3392
- hash: "e8376079434393467b47a56ff00efb2b"
+ hash: "bf55fffd1727c0d076e05e274dcebb0d"
}
Frame {
msec: 3408
- hash: "63259de84a6e07d42c9df94ec2a25920"
+ hash: "d5b0696cbe2969723bb2fe740deeb81f"
}
Frame {
msec: 3424
- hash: "f9194d82b81f5ac58862c382caf5cf59"
+ hash: "27968050a9cf7d57d016274709086be1"
}
Frame {
msec: 3440
- hash: "e185f2594f038532a37b351384dc97ea"
+ hash: "3bc037fd17d0d394b82ba19914f31b90"
}
Frame {
msec: 3456
- hash: "91edc3ca1e6c532bd92006a761073da2"
+ hash: "117d7ad2d2ae47f3a0c2a68928534b76"
}
Frame {
msec: 3472
- hash: "b47390495539756048ccc71047ebef7b"
+ hash: "a538ce971f34a497c05258da2567a208"
}
Frame {
msec: 3488
- hash: "7c83d3bdb9abf8ab2cfe7f9464673a49"
+ hash: "91e2e5cc6efcffc9e58646a008a57c9d"
}
Frame {
msec: 3504
- hash: "b686f4013f45885ab794aba9ff491286"
+ hash: "13db17cc3c6513014a95210a443e5842"
}
Key {
type: 7
@@ -1178,11 +1178,11 @@ VisualTest {
}
Frame {
msec: 3520
- hash: "0c55d6ea330b7365825864d4bdacafcb"
+ hash: "03325597bd4e7d7b6f7c84c848018872"
}
Frame {
msec: 3536
- hash: "2bb72f191201572308e461021872fb4c"
+ hash: "e96dc6d611d23553b363a765195604f9"
}
Key {
type: 7
@@ -1194,358 +1194,358 @@ VisualTest {
}
Frame {
msec: 3552
- hash: "81b04a84982698ee80d13d392742edd3"
+ hash: "942476dd6fb7a4f3d10c398503cb7b90"
}
Frame {
msec: 3568
- hash: "63f582dc2a9f707c1ec99f4285d13a84"
+ hash: "cbe34fd18b6355ae9be469a594b44192"
}
Frame {
msec: 3584
- hash: "f91cb29101f80f5dcb1e9e8c82e823b7"
+ hash: "3dce89f398d2c856bcd32da34867ebd8"
}
Frame {
msec: 3600
- hash: "fdf68e988b988d068ea78a5a09ef349e"
+ hash: "c78608cde907bc09760d858795b43bbf"
}
Frame {
msec: 3616
- hash: "27434828de3ba8f6a3b83f042b70eb8b"
+ hash: "75d1ae9c60573f9e27cd7c2d1706cbfc"
}
Frame {
msec: 3632
- hash: "e54102edbf6cc0c9a32b09858f760ee5"
+ hash: "754e2fca1b3ed5ee9875aafb1a0c62d3"
}
Frame {
msec: 3648
- hash: "26530bded6311640c4d3f6d1485fa7d3"
+ hash: "a6f05fb5206a456bea790ba7ba31868c"
}
Frame {
msec: 3664
- hash: "eaee6483a2a4a0b09a8e40bb1785a498"
+ hash: "21008b3a5179e25f9b132a4c05b8b8c4"
}
Frame {
msec: 3680
- hash: "e1c083d0235ff5a2e002ce78f43009b0"
+ hash: "37d2d2830f6ae6bf0c8fb29c5d4f521a"
}
Frame {
msec: 3696
- hash: "7f2ac0854ddbcca94a2ad160ead5d4d3"
+ hash: "d7a226b40a049dee56755af9206246b4"
}
Frame {
msec: 3712
- hash: "30c4aa33a6672f4df24186ad1e28bcf9"
+ hash: "d7d39e8f717bab17aaf8a12e4f9e0dfc"
}
Frame {
msec: 3728
- hash: "38f16a7deeaea6828edd15b00024fc19"
+ hash: "1dd5625fb6a0ddbaa3919a1702695e9c"
}
Frame {
msec: 3744
- hash: "bb74f706477e277284fad50752f078b5"
+ hash: "e0b07106a5adc1603788444d48b9c3db"
}
Frame {
msec: 3760
- hash: "a588e9dbeabd7519cd0cf2d26a123529"
+ hash: "db61ba19d56b69d148aeb182de596713"
}
Frame {
msec: 3776
- hash: "4fd9f22ad06e02b68319c298c2286e36"
+ hash: "39a59b2e9e0bee87d3ba50e1408bea1c"
}
Frame {
msec: 3792
- hash: "29a28a97fc78a1b01252b852fb0446e2"
+ hash: "f34175acc261ad79bc9d2083af04ae10"
}
Frame {
msec: 3808
- hash: "458895f9ede4d56e0b851c6ed124405d"
+ hash: "2ec91bfdb0f106a526f6bde3eb0ed7ce"
}
Frame {
msec: 3824
- hash: "cd58c0d4f7248315a787542b0edcb4fb"
+ hash: "183538d04cf009f100a1e49a3229c143"
}
Frame {
msec: 3840
- image: "cursorDelegate.3.png"
+ hash: "fb09d44a5a5b5b795d562512e9547301"
}
Frame {
msec: 3856
- hash: "483eca22c50750e7591785ed60813d1f"
+ image: "cursorDelegate.4.png"
}
Frame {
msec: 3872
- hash: "c5199c908df1f550d7c4f133eb926134"
+ hash: "39c81c6efdbc32b6e0378810404bef2c"
}
Frame {
msec: 3888
- hash: "efaa5e4483ed9cfec792e8f270b5079e"
+ hash: "23d9a9a6a9d032c7e447407193ca51ef"
}
Frame {
msec: 3904
- hash: "7ffcff87e27dcb0be0047eb6fbcc9549"
+ hash: "bdd00cfe933985fe77626114902ce823"
}
Frame {
msec: 3920
- hash: "04339417259ddee10134e1479729ae1b"
+ hash: "1d25c2753ccabdaaf47a669c28d9e2cb"
}
Frame {
msec: 3936
- hash: "0f1e6a0d9db7b6b8b874333682866ffa"
+ hash: "20fde9bbe26ebede31fc8c21dec3fcc5"
}
Frame {
msec: 3952
- hash: "66500c2cc3d69b9fb48dc46e384aca6d"
+ hash: "c9147c159aebb7aa51d4bac28f96cb57"
}
Frame {
msec: 3968
- hash: "70d6b73499c36138bee63e07afb0b186"
+ hash: "68d331f508b43e756d6e30ba9b60f9aa"
}
Frame {
msec: 3984
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4000
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4016
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4032
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4048
- hash: "c526315dd5eec117266c68a7b6b64a3f"
+ hash: "af99069cdddfa9d099fbe25ba586e138"
}
Frame {
msec: 4064
- hash: "70d6b73499c36138bee63e07afb0b186"
+ hash: "68d331f508b43e756d6e30ba9b60f9aa"
}
Frame {
msec: 4080
- hash: "66500c2cc3d69b9fb48dc46e384aca6d"
+ hash: "c9147c159aebb7aa51d4bac28f96cb57"
}
Frame {
msec: 4096
- hash: "0f1e6a0d9db7b6b8b874333682866ffa"
+ hash: "20fde9bbe26ebede31fc8c21dec3fcc5"
}
Frame {
msec: 4112
- hash: "04339417259ddee10134e1479729ae1b"
+ hash: "1d25c2753ccabdaaf47a669c28d9e2cb"
}
Frame {
msec: 4128
- hash: "7ffcff87e27dcb0be0047eb6fbcc9549"
+ hash: "bdd00cfe933985fe77626114902ce823"
}
Frame {
msec: 4144
- hash: "efaa5e4483ed9cfec792e8f270b5079e"
+ hash: "23d9a9a6a9d032c7e447407193ca51ef"
}
Frame {
msec: 4160
- hash: "c5199c908df1f550d7c4f133eb926134"
+ hash: "39c81c6efdbc32b6e0378810404bef2c"
}
Frame {
msec: 4176
- hash: "483eca22c50750e7591785ed60813d1f"
+ hash: "756f36cf41c2bae3a8a8716701e55e37"
}
Frame {
msec: 4192
- hash: "4091de379d8f6ccc7f19ea39f6c7993a"
+ hash: "fb09d44a5a5b5b795d562512e9547301"
}
Frame {
msec: 4208
- hash: "cd58c0d4f7248315a787542b0edcb4fb"
+ hash: "183538d04cf009f100a1e49a3229c143"
}
Frame {
msec: 4224
- hash: "458895f9ede4d56e0b851c6ed124405d"
+ hash: "2ec91bfdb0f106a526f6bde3eb0ed7ce"
}
Frame {
msec: 4240
- hash: "29a28a97fc78a1b01252b852fb0446e2"
+ hash: "f34175acc261ad79bc9d2083af04ae10"
}
Frame {
msec: 4256
- hash: "4fd9f22ad06e02b68319c298c2286e36"
+ hash: "39a59b2e9e0bee87d3ba50e1408bea1c"
}
Frame {
msec: 4272
- hash: "a588e9dbeabd7519cd0cf2d26a123529"
+ hash: "db61ba19d56b69d148aeb182de596713"
}
Frame {
msec: 4288
- hash: "bb74f706477e277284fad50752f078b5"
+ hash: "e0b07106a5adc1603788444d48b9c3db"
}
Frame {
msec: 4304
- hash: "38f16a7deeaea6828edd15b00024fc19"
+ hash: "1dd5625fb6a0ddbaa3919a1702695e9c"
}
Frame {
msec: 4320
- hash: "30c4aa33a6672f4df24186ad1e28bcf9"
+ hash: "d7d39e8f717bab17aaf8a12e4f9e0dfc"
}
Frame {
msec: 4336
- hash: "7f2ac0854ddbcca94a2ad160ead5d4d3"
+ hash: "d7a226b40a049dee56755af9206246b4"
}
Frame {
msec: 4352
- hash: "e1c083d0235ff5a2e002ce78f43009b0"
+ hash: "37d2d2830f6ae6bf0c8fb29c5d4f521a"
}
Frame {
msec: 4368
- hash: "eaee6483a2a4a0b09a8e40bb1785a498"
+ hash: "21008b3a5179e25f9b132a4c05b8b8c4"
}
Frame {
msec: 4384
- hash: "26530bded6311640c4d3f6d1485fa7d3"
+ hash: "a6f05fb5206a456bea790ba7ba31868c"
}
Frame {
msec: 4400
- hash: "e54102edbf6cc0c9a32b09858f760ee5"
+ hash: "754e2fca1b3ed5ee9875aafb1a0c62d3"
}
Frame {
msec: 4416
- hash: "27434828de3ba8f6a3b83f042b70eb8b"
+ hash: "75d1ae9c60573f9e27cd7c2d1706cbfc"
}
Frame {
msec: 4432
- hash: "fdf68e988b988d068ea78a5a09ef349e"
+ hash: "c78608cde907bc09760d858795b43bbf"
}
Frame {
msec: 4448
- hash: "f91cb29101f80f5dcb1e9e8c82e823b7"
+ hash: "3dce89f398d2c856bcd32da34867ebd8"
}
Frame {
msec: 4464
- hash: "63f582dc2a9f707c1ec99f4285d13a84"
+ hash: "cbe34fd18b6355ae9be469a594b44192"
}
Frame {
msec: 4480
- hash: "81b04a84982698ee80d13d392742edd3"
+ hash: "942476dd6fb7a4f3d10c398503cb7b90"
}
Frame {
msec: 4496
- hash: "2bb72f191201572308e461021872fb4c"
+ hash: "e96dc6d611d23553b363a765195604f9"
}
Frame {
msec: 4512
- hash: "0c55d6ea330b7365825864d4bdacafcb"
+ hash: "03325597bd4e7d7b6f7c84c848018872"
}
Frame {
msec: 4528
- hash: "b686f4013f45885ab794aba9ff491286"
+ hash: "13db17cc3c6513014a95210a443e5842"
}
Frame {
msec: 4544
- hash: "7c83d3bdb9abf8ab2cfe7f9464673a49"
+ hash: "91e2e5cc6efcffc9e58646a008a57c9d"
}
Frame {
msec: 4560
- hash: "b47390495539756048ccc71047ebef7b"
+ hash: "a538ce971f34a497c05258da2567a208"
}
Frame {
msec: 4576
- hash: "91edc3ca1e6c532bd92006a761073da2"
+ hash: "117d7ad2d2ae47f3a0c2a68928534b76"
}
Frame {
msec: 4592
- hash: "e185f2594f038532a37b351384dc97ea"
+ hash: "3bc037fd17d0d394b82ba19914f31b90"
}
Frame {
msec: 4608
- hash: "f9194d82b81f5ac58862c382caf5cf59"
+ hash: "27968050a9cf7d57d016274709086be1"
}
Frame {
msec: 4624
- hash: "63259de84a6e07d42c9df94ec2a25920"
+ hash: "d5b0696cbe2969723bb2fe740deeb81f"
}
Frame {
msec: 4640
- hash: "e8376079434393467b47a56ff00efb2b"
+ hash: "bf55fffd1727c0d076e05e274dcebb0d"
}
Frame {
msec: 4656
- hash: "421fb8881fe7b300dcec0f44ff1743e3"
+ hash: "6d70d654998bbc0a2431ca7c4a58cd3c"
}
Frame {
msec: 4672
- hash: "316f6bd365ca4b4f2e6fbf34a047e307"
+ hash: "27c59b474d706ce79b5d075713c1ea88"
}
Frame {
msec: 4688
- hash: "0c713bbd7bb694d87f0fe14f87098b9b"
+ hash: "8cae649565b5655d606f216334a0b5b5"
}
Frame {
msec: 4704
- hash: "e2ce168241b043db74867fe7ed6de956"
+ hash: "3dd49406c4b39980908d8869dc3c060a"
}
Frame {
msec: 4720
- hash: "43b3bf8425e7a6b7115d8e6a0bcfd677"
+ hash: "18771337bbe826b5a34bd9705c79f56a"
}
Frame {
msec: 4736
- hash: "b7a8d4b8bb2b83e4c886aa51c1a73895"
+ hash: "7f921d2293cf547de3b5573dbf98d5bb"
}
Frame {
msec: 4752
- hash: "40b336a0e337b66d813089a82a88c712"
+ hash: "6d8b58612860febb13800958cab3aecd"
}
Frame {
msec: 4768
- hash: "484ee552e1a9c5eafcfe1ac583fcdffd"
+ hash: "f6bac38774fa8a09084c045e34fd1732"
}
Frame {
msec: 4784
- hash: "a27c65c0a49deb18b0766bba41a32e54"
+ hash: "ca35937be71e1f982cedd33bdd09d127"
}
Frame {
msec: 4800
- image: "cursorDelegate.4.png"
+ hash: "4379bfd0da6fedac77e2111d9fdc5ecb"
}
Frame {
msec: 4816
- hash: "0bd9f7de32b01d8144280bf252d9a18f"
+ image: "cursorDelegate.5.png"
}
Frame {
msec: 4832
- hash: "bc3efeeebe7075cd09a6e57eef43d610"
+ hash: "4ab6780997a5a598d2da7fbbc19877b7"
}
Frame {
msec: 4848
- hash: "5dba56a5bb5f8a6539a0066af35c73b8"
+ hash: "ad77330d51b1251576905a45fdbdf576"
}
Frame {
msec: 4864
- hash: "ba721988a1708b8c0762d706820c48fc"
+ hash: "b701aa41aff9df45cc4b35d23789ad46"
}
Frame {
msec: 4880
- hash: "4abbd51b620ac4ea91af95bc2d0881d7"
+ hash: "2bdc09121f13e95e15e331ac90fbbe5e"
}
Frame {
msec: 4896
- hash: "944dc7026c6487838ede9ef94003ec90"
+ hash: "14bc879f562ace9d2d1a3f3980a72e1f"
}
Frame {
msec: 4912
- hash: "51a1b8e79d209643d55d4cecc6a70ed0"
+ hash: "150b5a2f2e916b7023764c481c768492"
}
Frame {
msec: 4928
- hash: "6ccc70f6120acb53152b71bcf95514ca"
+ hash: "0636b7c5cc215882c60b50f62133c715"
}
Frame {
msec: 4944
- hash: "996da2eff9302908a55308dbcc8fb3c2"
+ hash: "f9e0bd08b722c16493a8886a19920dda"
}
Frame {
msec: 4960
- hash: "264f34128dfe563126b9f187c65df61e"
+ hash: "f499f4b3017c88c63f0a2035ad527a0e"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png
index 57a1599c59..5f632d0d18 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png
index d327d5b74b..05dd690220 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png
index c1e3dce7ef..eb74cc5405 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png
new file mode 100644
index 0000000000..3aed06c4f2
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml
index 9a26f570d5..2de4a10e3d 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.qml
@@ -6,7 +6,7 @@ VisualTest {
}
Frame {
msec: 16
- hash: "0e7c7dc19aab217751411568b58830ef"
+ image: "echoMode.0.png"
}
Frame {
msec: 32
@@ -110,23 +110,23 @@ VisualTest {
}
Frame {
msec: 368
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 384
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 400
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 416
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 432
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Key {
type: 7
@@ -138,27 +138,27 @@ VisualTest {
}
Frame {
msec: 448
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 464
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 480
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 496
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 512
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 528
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Key {
type: 7
@@ -170,43 +170,43 @@ VisualTest {
}
Frame {
msec: 544
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 560
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 576
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 592
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 608
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 624
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 640
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 656
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 672
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Frame {
msec: 688
- hash: "d3151ba24f0011bf1add83377f32ec85"
+ hash: "bc06530170cf26690a09ed9f6c4014fd"
}
Key {
type: 6
@@ -218,23 +218,23 @@ VisualTest {
}
Frame {
msec: 704
- hash: "6b7c333ce19fede43aee84cc66c4c1bc"
+ hash: "8c64a986ce7bd19dcc88785309456f4e"
}
Frame {
msec: 720
- hash: "6b7c333ce19fede43aee84cc66c4c1bc"
+ hash: "8c64a986ce7bd19dcc88785309456f4e"
}
Frame {
msec: 736
- hash: "6b7c333ce19fede43aee84cc66c4c1bc"
+ hash: "8c64a986ce7bd19dcc88785309456f4e"
}
Frame {
msec: 752
- hash: "6b7c333ce19fede43aee84cc66c4c1bc"
+ hash: "8c64a986ce7bd19dcc88785309456f4e"
}
Frame {
msec: 768
- hash: "6b7c333ce19fede43aee84cc66c4c1bc"
+ hash: "8c64a986ce7bd19dcc88785309456f4e"
}
Key {
type: 7
@@ -246,23 +246,23 @@ VisualTest {
}
Frame {
msec: 784
- hash: "6b7c333ce19fede43aee84cc66c4c1bc"
+ hash: "8c64a986ce7bd19dcc88785309456f4e"
}
Frame {
msec: 800
- hash: "6b7c333ce19fede43aee84cc66c4c1bc"
+ hash: "8c64a986ce7bd19dcc88785309456f4e"
}
Frame {
msec: 816
- hash: "6b7c333ce19fede43aee84cc66c4c1bc"
+ hash: "8c64a986ce7bd19dcc88785309456f4e"
}
Frame {
msec: 832
- hash: "6b7c333ce19fede43aee84cc66c4c1bc"
+ hash: "8c64a986ce7bd19dcc88785309456f4e"
}
Frame {
msec: 848
- hash: "6b7c333ce19fede43aee84cc66c4c1bc"
+ hash: "8c64a986ce7bd19dcc88785309456f4e"
}
Key {
type: 6
@@ -274,15 +274,15 @@ VisualTest {
}
Frame {
msec: 864
- hash: "a5386e9b39daa0a5aad8a8cd5191909b"
+ hash: "4cfca8edcb96b1d9986db4ee491bf857"
}
Frame {
msec: 880
- hash: "a5386e9b39daa0a5aad8a8cd5191909b"
+ hash: "4cfca8edcb96b1d9986db4ee491bf857"
}
Frame {
msec: 896
- hash: "a5386e9b39daa0a5aad8a8cd5191909b"
+ hash: "4cfca8edcb96b1d9986db4ee491bf857"
}
Key {
type: 7
@@ -294,23 +294,23 @@ VisualTest {
}
Frame {
msec: 912
- hash: "a5386e9b39daa0a5aad8a8cd5191909b"
+ hash: "4cfca8edcb96b1d9986db4ee491bf857"
}
Frame {
msec: 928
- hash: "a5386e9b39daa0a5aad8a8cd5191909b"
+ hash: "4cfca8edcb96b1d9986db4ee491bf857"
}
Frame {
msec: 944
- hash: "a5386e9b39daa0a5aad8a8cd5191909b"
+ hash: "4cfca8edcb96b1d9986db4ee491bf857"
}
Frame {
msec: 960
- image: "echoMode.0.png"
+ hash: "4cfca8edcb96b1d9986db4ee491bf857"
}
Frame {
msec: 976
- hash: "a5386e9b39daa0a5aad8a8cd5191909b"
+ image: "echoMode.1.png"
}
Key {
type: 6
@@ -322,19 +322,19 @@ VisualTest {
}
Frame {
msec: 992
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1008
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1024
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1040
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Key {
type: 7
@@ -346,51 +346,51 @@ VisualTest {
}
Frame {
msec: 1056
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1072
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1088
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1104
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1120
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1136
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1152
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1168
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1184
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1200
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1216
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Frame {
msec: 1232
- hash: "f9149723166015ed066b794cf86b27d0"
+ hash: "3d25316ea23ace5a88dbe8765b743eb3"
}
Key {
type: 6
@@ -402,15 +402,15 @@ VisualTest {
}
Frame {
msec: 1248
- hash: "56dd8557435509e5a96c2f2907d474eb"
+ hash: "fea82a32ec46a88027cc9b0c00aa0aba"
}
Frame {
msec: 1264
- hash: "56dd8557435509e5a96c2f2907d474eb"
+ hash: "fea82a32ec46a88027cc9b0c00aa0aba"
}
Frame {
msec: 1280
- hash: "56dd8557435509e5a96c2f2907d474eb"
+ hash: "fea82a32ec46a88027cc9b0c00aa0aba"
}
Key {
type: 7
@@ -422,15 +422,15 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "56dd8557435509e5a96c2f2907d474eb"
+ hash: "fea82a32ec46a88027cc9b0c00aa0aba"
}
Frame {
msec: 1312
- hash: "56dd8557435509e5a96c2f2907d474eb"
+ hash: "fea82a32ec46a88027cc9b0c00aa0aba"
}
Frame {
msec: 1328
- hash: "56dd8557435509e5a96c2f2907d474eb"
+ hash: "fea82a32ec46a88027cc9b0c00aa0aba"
}
Key {
type: 6
@@ -442,39 +442,39 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "b311772a9bf92f4222b1c1c7ddbe96c4"
+ hash: "fffa6f462ea15fe3bdbf2c199881fce4"
}
Frame {
msec: 1360
- hash: "b311772a9bf92f4222b1c1c7ddbe96c4"
+ hash: "fffa6f462ea15fe3bdbf2c199881fce4"
}
Frame {
msec: 1376
- hash: "b311772a9bf92f4222b1c1c7ddbe96c4"
+ hash: "fffa6f462ea15fe3bdbf2c199881fce4"
}
Frame {
msec: 1392
- hash: "b311772a9bf92f4222b1c1c7ddbe96c4"
+ hash: "fffa6f462ea15fe3bdbf2c199881fce4"
}
Frame {
msec: 1408
- hash: "b311772a9bf92f4222b1c1c7ddbe96c4"
+ hash: "fffa6f462ea15fe3bdbf2c199881fce4"
}
Frame {
msec: 1424
- hash: "b311772a9bf92f4222b1c1c7ddbe96c4"
+ hash: "fffa6f462ea15fe3bdbf2c199881fce4"
}
Frame {
msec: 1440
- hash: "b311772a9bf92f4222b1c1c7ddbe96c4"
+ hash: "fffa6f462ea15fe3bdbf2c199881fce4"
}
Frame {
msec: 1456
- hash: "b311772a9bf92f4222b1c1c7ddbe96c4"
+ hash: "fffa6f462ea15fe3bdbf2c199881fce4"
}
Frame {
msec: 1472
- hash: "b311772a9bf92f4222b1c1c7ddbe96c4"
+ hash: "fffa6f462ea15fe3bdbf2c199881fce4"
}
Key {
type: 7
@@ -486,7 +486,7 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "b311772a9bf92f4222b1c1c7ddbe96c4"
+ hash: "fffa6f462ea15fe3bdbf2c199881fce4"
}
Key {
type: 6
@@ -498,19 +498,19 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "8feb240ad13e1e9d8392bfeb484261db"
+ hash: "d874584748e4aa14fd71730aa36d676c"
}
Frame {
msec: 1520
- hash: "8feb240ad13e1e9d8392bfeb484261db"
+ hash: "d874584748e4aa14fd71730aa36d676c"
}
Frame {
msec: 1536
- hash: "8feb240ad13e1e9d8392bfeb484261db"
+ hash: "d874584748e4aa14fd71730aa36d676c"
}
Frame {
msec: 1552
- hash: "8feb240ad13e1e9d8392bfeb484261db"
+ hash: "d874584748e4aa14fd71730aa36d676c"
}
Key {
type: 7
@@ -522,27 +522,27 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "8feb240ad13e1e9d8392bfeb484261db"
+ hash: "d874584748e4aa14fd71730aa36d676c"
}
Frame {
msec: 1584
- hash: "8feb240ad13e1e9d8392bfeb484261db"
+ hash: "d874584748e4aa14fd71730aa36d676c"
}
Frame {
msec: 1600
- hash: "8feb240ad13e1e9d8392bfeb484261db"
+ hash: "d874584748e4aa14fd71730aa36d676c"
}
Frame {
msec: 1616
- hash: "8feb240ad13e1e9d8392bfeb484261db"
+ hash: "d874584748e4aa14fd71730aa36d676c"
}
Frame {
msec: 1632
- hash: "8feb240ad13e1e9d8392bfeb484261db"
+ hash: "d874584748e4aa14fd71730aa36d676c"
}
Frame {
msec: 1648
- hash: "8feb240ad13e1e9d8392bfeb484261db"
+ hash: "d874584748e4aa14fd71730aa36d676c"
}
Key {
type: 6
@@ -554,23 +554,23 @@ VisualTest {
}
Frame {
msec: 1664
- hash: "cd240ccffd4b4a6304b47cfd1e55cf49"
+ hash: "5eac6452c3c01de25633be412b2c9fd6"
}
Frame {
msec: 1680
- hash: "cd240ccffd4b4a6304b47cfd1e55cf49"
+ hash: "5eac6452c3c01de25633be412b2c9fd6"
}
Frame {
msec: 1696
- hash: "cd240ccffd4b4a6304b47cfd1e55cf49"
+ hash: "5eac6452c3c01de25633be412b2c9fd6"
}
Frame {
msec: 1712
- hash: "cd240ccffd4b4a6304b47cfd1e55cf49"
+ hash: "5eac6452c3c01de25633be412b2c9fd6"
}
Frame {
msec: 1728
- hash: "cd240ccffd4b4a6304b47cfd1e55cf49"
+ hash: "5eac6452c3c01de25633be412b2c9fd6"
}
Key {
type: 6
@@ -582,7 +582,7 @@ VisualTest {
}
Frame {
msec: 1744
- hash: "437370a412fccbeee3d1f095e32c3584"
+ hash: "8bf395bd43cf0483aea0ddf3e8ab8c56"
}
Key {
type: 7
@@ -594,15 +594,15 @@ VisualTest {
}
Frame {
msec: 1760
- hash: "437370a412fccbeee3d1f095e32c3584"
+ hash: "8bf395bd43cf0483aea0ddf3e8ab8c56"
}
Frame {
msec: 1776
- hash: "437370a412fccbeee3d1f095e32c3584"
+ hash: "8bf395bd43cf0483aea0ddf3e8ab8c56"
}
Frame {
msec: 1792
- hash: "437370a412fccbeee3d1f095e32c3584"
+ hash: "8bf395bd43cf0483aea0ddf3e8ab8c56"
}
Key {
type: 7
@@ -614,19 +614,19 @@ VisualTest {
}
Frame {
msec: 1808
- hash: "437370a412fccbeee3d1f095e32c3584"
+ hash: "8bf395bd43cf0483aea0ddf3e8ab8c56"
}
Frame {
msec: 1824
- hash: "437370a412fccbeee3d1f095e32c3584"
+ hash: "8bf395bd43cf0483aea0ddf3e8ab8c56"
}
Frame {
msec: 1840
- hash: "437370a412fccbeee3d1f095e32c3584"
+ hash: "8bf395bd43cf0483aea0ddf3e8ab8c56"
}
Frame {
msec: 1856
- hash: "437370a412fccbeee3d1f095e32c3584"
+ hash: "8bf395bd43cf0483aea0ddf3e8ab8c56"
}
Key {
type: 6
@@ -638,19 +638,19 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "eb4a45722e365b103ff5423117236fd3"
+ hash: "4a31bba56f9adaccf47e6335ed4e284f"
}
Frame {
msec: 1888
- hash: "eb4a45722e365b103ff5423117236fd3"
+ hash: "4a31bba56f9adaccf47e6335ed4e284f"
}
Frame {
msec: 1904
- hash: "eb4a45722e365b103ff5423117236fd3"
+ hash: "4a31bba56f9adaccf47e6335ed4e284f"
}
Frame {
msec: 1920
- image: "echoMode.1.png"
+ hash: "4a31bba56f9adaccf47e6335ed4e284f"
}
Key {
type: 7
@@ -662,27 +662,27 @@ VisualTest {
}
Frame {
msec: 1936
- hash: "eb4a45722e365b103ff5423117236fd3"
+ image: "echoMode.2.png"
}
Frame {
msec: 1952
- hash: "eb4a45722e365b103ff5423117236fd3"
+ hash: "4a31bba56f9adaccf47e6335ed4e284f"
}
Frame {
msec: 1968
- hash: "eb4a45722e365b103ff5423117236fd3"
+ hash: "4a31bba56f9adaccf47e6335ed4e284f"
}
Frame {
msec: 1984
- hash: "eb4a45722e365b103ff5423117236fd3"
+ hash: "4a31bba56f9adaccf47e6335ed4e284f"
}
Frame {
msec: 2000
- hash: "eb4a45722e365b103ff5423117236fd3"
+ hash: "4a31bba56f9adaccf47e6335ed4e284f"
}
Frame {
msec: 2016
- hash: "eb4a45722e365b103ff5423117236fd3"
+ hash: "4a31bba56f9adaccf47e6335ed4e284f"
}
Key {
type: 6
@@ -694,11 +694,11 @@ VisualTest {
}
Frame {
msec: 2032
- hash: "b53d0651627d008545e54063ceb8d689"
+ hash: "8bbabbbe84de490438d1111aa728c15f"
}
Frame {
msec: 2048
- hash: "b53d0651627d008545e54063ceb8d689"
+ hash: "8bbabbbe84de490438d1111aa728c15f"
}
Key {
type: 7
@@ -710,11 +710,11 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "b53d0651627d008545e54063ceb8d689"
+ hash: "8bbabbbe84de490438d1111aa728c15f"
}
Frame {
msec: 2080
- hash: "b53d0651627d008545e54063ceb8d689"
+ hash: "8bbabbbe84de490438d1111aa728c15f"
}
Key {
type: 6
@@ -726,19 +726,19 @@ VisualTest {
}
Frame {
msec: 2096
- hash: "173b36137940b37001750e02d434b8e8"
+ hash: "5877f1d527fecaf1077ff5bd2fe1934f"
}
Frame {
msec: 2112
- hash: "173b36137940b37001750e02d434b8e8"
+ hash: "5877f1d527fecaf1077ff5bd2fe1934f"
}
Frame {
msec: 2128
- hash: "173b36137940b37001750e02d434b8e8"
+ hash: "5877f1d527fecaf1077ff5bd2fe1934f"
}
Frame {
msec: 2144
- hash: "173b36137940b37001750e02d434b8e8"
+ hash: "5877f1d527fecaf1077ff5bd2fe1934f"
}
Key {
type: 6
@@ -758,19 +758,19 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "2e636a964b4a1ab74ad3e23399c2ae8c"
+ hash: "1593ef669fdff28c33f54c12c7e7424e"
}
Frame {
msec: 2176
- hash: "2e636a964b4a1ab74ad3e23399c2ae8c"
+ hash: "1593ef669fdff28c33f54c12c7e7424e"
}
Frame {
msec: 2192
- hash: "2e636a964b4a1ab74ad3e23399c2ae8c"
+ hash: "1593ef669fdff28c33f54c12c7e7424e"
}
Frame {
msec: 2208
- hash: "2e636a964b4a1ab74ad3e23399c2ae8c"
+ hash: "1593ef669fdff28c33f54c12c7e7424e"
}
Key {
type: 6
@@ -782,7 +782,7 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "631c6034372c2e7675ebce0ec415f230"
+ hash: "da746581451954d7d941fbac825a1009"
}
Key {
type: 7
@@ -794,23 +794,23 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "631c6034372c2e7675ebce0ec415f230"
+ hash: "da746581451954d7d941fbac825a1009"
}
Frame {
msec: 2256
- hash: "631c6034372c2e7675ebce0ec415f230"
+ hash: "da746581451954d7d941fbac825a1009"
}
Frame {
msec: 2272
- hash: "631c6034372c2e7675ebce0ec415f230"
+ hash: "da746581451954d7d941fbac825a1009"
}
Frame {
msec: 2288
- hash: "631c6034372c2e7675ebce0ec415f230"
+ hash: "da746581451954d7d941fbac825a1009"
}
Frame {
msec: 2304
- hash: "631c6034372c2e7675ebce0ec415f230"
+ hash: "da746581451954d7d941fbac825a1009"
}
Key {
type: 7
@@ -822,11 +822,11 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "631c6034372c2e7675ebce0ec415f230"
+ hash: "da746581451954d7d941fbac825a1009"
}
Frame {
msec: 2336
- hash: "631c6034372c2e7675ebce0ec415f230"
+ hash: "da746581451954d7d941fbac825a1009"
}
Key {
type: 6
@@ -838,27 +838,27 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f"
+ hash: "3e008b7ead8459c1667f4f385d4c5372"
}
Frame {
msec: 2368
- hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f"
+ hash: "3e008b7ead8459c1667f4f385d4c5372"
}
Frame {
msec: 2384
- hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f"
+ hash: "3e008b7ead8459c1667f4f385d4c5372"
}
Frame {
msec: 2400
- hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f"
+ hash: "3e008b7ead8459c1667f4f385d4c5372"
}
Frame {
msec: 2416
- hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f"
+ hash: "3e008b7ead8459c1667f4f385d4c5372"
}
Frame {
msec: 2432
- hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f"
+ hash: "3e008b7ead8459c1667f4f385d4c5372"
}
Key {
type: 7
@@ -870,19 +870,19 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f"
+ hash: "3e008b7ead8459c1667f4f385d4c5372"
}
Frame {
msec: 2464
- hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f"
+ hash: "3e008b7ead8459c1667f4f385d4c5372"
}
Frame {
msec: 2480
- hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f"
+ hash: "3e008b7ead8459c1667f4f385d4c5372"
}
Frame {
msec: 2496
- hash: "ea5c3cdde73009e1bd46e71e4cc3bf0f"
+ hash: "3e008b7ead8459c1667f4f385d4c5372"
}
Key {
type: 6
@@ -894,15 +894,15 @@ VisualTest {
}
Frame {
msec: 2512
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2528
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2544
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Key {
type: 7
@@ -914,130 +914,130 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2576
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2592
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2608
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2624
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2640
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2656
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2672
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2688
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2704
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2720
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2736
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2752
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2768
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2784
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2800
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2816
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2832
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2848
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2864
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2880
- image: "echoMode.2.png"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2896
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ image: "echoMode.3.png"
}
Frame {
msec: 2912
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2928
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2944
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2960
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2976
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 2992
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 3008
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 3024
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 3040
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
Frame {
msec: 3056
- hash: "91ef7f08d8fec2e0d353b1bf5da99c41"
+ hash: "1dbc7e1ab58dcec8691ff4195b0d581c"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.0.png
new file mode 100644
index 0000000000..6a32f0d550
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml
index 4c402eaf17..fd64d642fa 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/hAlign.qml
@@ -6,102 +6,102 @@ VisualTest {
}
Frame {
msec: 16
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ image: "hAlign.0.png"
}
Frame {
msec: 32
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 48
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 64
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 80
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 96
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 112
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 128
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 144
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 160
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 176
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 192
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 208
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 224
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 240
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 256
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 272
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 288
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 304
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 320
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 336
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 352
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 368
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 384
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
Frame {
msec: 400
- hash: "840c5f54c105f90c7b0c2254fee2e434"
+ hash: "043c40378d2707bd231a448cd242aa3c"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.0.png
new file mode 100644
index 0000000000..6ca52b6792
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.1.png
new file mode 100644
index 0000000000..31d6b2cb90
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.10.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.10.png
new file mode 100644
index 0000000000..d89e2d87eb
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.10.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.11.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.11.png
new file mode 100644
index 0000000000..834516a997
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.11.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.2.png
new file mode 100644
index 0000000000..31d6b2cb90
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.3.png
new file mode 100644
index 0000000000..31d6b2cb90
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.4.png
new file mode 100644
index 0000000000..8147bda0b9
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.5.png
new file mode 100644
index 0000000000..c67e619b8c
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.6.png
new file mode 100644
index 0000000000..646855f1f3
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.7.png
new file mode 100644
index 0000000000..c1a9d5c927
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.8.png
new file mode 100644
index 0000000000..d6c92b76a5
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.8.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.9.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.9.png
new file mode 100644
index 0000000000..e798d3be10
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.9.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml
new file mode 100644
index 0000000000..a1a08218cd
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/usingLineEdit.qml
@@ -0,0 +1,4335 @@
+import Qt.VisualTest 4.7
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ image: "usingLineEdit.0.png"
+ }
+ Frame {
+ msec: 32
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 48
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 64
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 80
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 96
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 112
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 128
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 144
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 160
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 176
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 192
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 208
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 224
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 240
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 256
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 272
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 288
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 304
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 320
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 336
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 352
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 368
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 384
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 400
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 416
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 432
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 448
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 464
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 480
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 496
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 512
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 528
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 544
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 560
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 576
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 592
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 608
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 624
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 640
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 656
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 672
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 688
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 704
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 720
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 736
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 752
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 768
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 784
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 800
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 816
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 832
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 848
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 864
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 880
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 896
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 912
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Frame {
+ msec: 928
+ hash: "b2bcfe5c299742bf7da166e9ae1e1126"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 85; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 944
+ hash: "1e95a74868a748e11efdc6fbb500f6e8"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 85; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 960
+ hash: "1e95a74868a748e11efdc6fbb500f6e8"
+ }
+ Mouse {
+ type: 4
+ button: 1
+ buttons: 1
+ x: 85; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 976
+ image: "usingLineEdit.1.png"
+ }
+ Frame {
+ msec: 992
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1008
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1024
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1040
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1056
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 85; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1072
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1088
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1104
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1120
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1136
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1152
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1168
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1184
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1200
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1216
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1232
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1248
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1264
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1280
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1296
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1312
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1328
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1344
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1360
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1376
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1392
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1408
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1424
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1440
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1456
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1472
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1488
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1504
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1520
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1536
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1552
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1568
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1584
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1600
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1616
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1632
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1648
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1664
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1680
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1696
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1712
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1728
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1744
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1760
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1776
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1792
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1808
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1824
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1840
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1856
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1872
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1888
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1904
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1920
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1936
+ image: "usingLineEdit.2.png"
+ }
+ Frame {
+ msec: 1952
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1968
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 1984
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Key {
+ type: 6
+ key: 67
+ modifiers: 67108864
+ text: "03"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2000
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2016
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2032
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2048
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2064
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2080
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2096
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2112
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Key {
+ type: 7
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 7
+ key: 67
+ modifiers: 0
+ text: "63"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2128
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2144
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2160
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2176
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2192
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2208
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2224
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2240
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2256
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2272
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2288
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2304
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2320
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2336
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2352
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2368
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2384
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2400
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2416
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2432
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2448
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2464
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2480
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Key {
+ type: 6
+ key: 16777233
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2496
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2512
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2528
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2544
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2560
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2576
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Key {
+ type: 7
+ key: 16777233
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2592
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2608
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2624
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2640
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2656
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2672
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2688
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2704
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2720
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2736
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2752
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2768
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2784
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2800
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2816
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2832
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2848
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2864
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2880
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2896
+ image: "usingLineEdit.3.png"
+ }
+ Frame {
+ msec: 2912
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2928
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2944
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2960
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2976
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 2992
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3008
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3024
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3040
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3056
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3072
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3088
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3104
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3120
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3136
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3152
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3168
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3184
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3200
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Frame {
+ msec: 3216
+ hash: "c346bd1c6a8c04dff75bc14882a4d964"
+ }
+ Key {
+ type: 6
+ key: 86
+ modifiers: 67108864
+ text: "16"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3232
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3248
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3264
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3280
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3296
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3312
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3328
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Key {
+ type: 7
+ key: 86
+ modifiers: 67108864
+ text: "16"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3344
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3360
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3376
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3392
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3408
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3424
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3440
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3456
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3472
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3488
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3504
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3520
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3536
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Frame {
+ msec: 3552
+ hash: "4e24e7e6a205160479b0d23057a50b37"
+ }
+ Key {
+ type: 6
+ key: 86
+ modifiers: 67108864
+ text: "16"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3568
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3584
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3600
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3616
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3632
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3648
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3664
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3680
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Key {
+ type: 7
+ key: 86
+ modifiers: 67108864
+ text: "16"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3696
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3712
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3728
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3744
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3760
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3776
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3792
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3808
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3824
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3840
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3856
+ image: "usingLineEdit.4.png"
+ }
+ Frame {
+ msec: 3872
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3888
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3904
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3920
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3936
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3952
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3968
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 3984
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4000
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4016
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4032
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4048
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4064
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4080
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4096
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4112
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4128
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4144
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4160
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4176
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4192
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Key {
+ type: 7
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4208
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4224
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4240
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4256
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4272
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4288
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4304
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4320
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4336
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4352
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4368
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4384
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4400
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4416
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4432
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4448
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4464
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4480
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4496
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4512
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4528
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4544
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4560
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4576
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4592
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4608
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4624
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4640
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4656
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4672
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4688
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Frame {
+ msec: 4704
+ hash: "c6354c09a2bdf6ff23cae30640abdd65"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 69; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4720
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4736
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4752
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4768
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4784
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4800
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 69; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4816
+ image: "usingLineEdit.5.png"
+ }
+ Frame {
+ msec: 4832
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4848
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4864
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4880
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4896
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4912
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4928
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4944
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4960
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4976
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 4992
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5008
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5024
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5040
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5056
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5072
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5088
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5104
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5120
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5136
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5152
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5168
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5184
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5200
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5216
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5232
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5248
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5264
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5280
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5296
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5312
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5328
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5344
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Frame {
+ msec: 5360
+ hash: "b7e9475cc88b099f9e17b67f4d0c8ed0"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5376
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5392
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5408
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5424
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5440
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5456
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5472
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5488
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5504
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5520
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5536
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5552
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5568
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5584
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5600
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Frame {
+ msec: 5616
+ hash: "5435254889b22b00b043f0d748021369"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5632
+ hash: "94fa3848acc33accfb607ce31029f06d"
+ }
+ Frame {
+ msec: 5648
+ hash: "94fa3848acc33accfb607ce31029f06d"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5664
+ hash: "1ea423dd8084001f2357f1613a77daa4"
+ }
+ Frame {
+ msec: 5680
+ hash: "1ea423dd8084001f2357f1613a77daa4"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5696
+ hash: "b0f808e85cc5721473da7cd84b1987dc"
+ }
+ Frame {
+ msec: 5712
+ hash: "b0f808e85cc5721473da7cd84b1987dc"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5728
+ hash: "0667aaf2eb49c2375b831301fefb0035"
+ }
+ Frame {
+ msec: 5744
+ hash: "0667aaf2eb49c2375b831301fefb0035"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5760
+ hash: "7680aca6b9feccc7e73efa79c1473ce8"
+ }
+ Frame {
+ msec: 5776
+ image: "usingLineEdit.6.png"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5792
+ hash: "fbbc99bf6a697d60ef348148c0a48bc2"
+ }
+ Frame {
+ msec: 5808
+ hash: "fbbc99bf6a697d60ef348148c0a48bc2"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5824
+ hash: "9550d8fab2512470dd9dde62f3494450"
+ }
+ Frame {
+ msec: 5840
+ hash: "9550d8fab2512470dd9dde62f3494450"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5856
+ hash: "9550d8fab2512470dd9dde62f3494450"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5872
+ hash: "ab79f5095d60f5cef526a074ef6d4e96"
+ }
+ Frame {
+ msec: 5888
+ hash: "ab79f5095d60f5cef526a074ef6d4e96"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5904
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5920
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 5936
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 5952
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 5968
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 5984
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 6000
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 6016
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 6032
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 6048
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6064
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 6080
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 6096
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 6112
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 6128
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Frame {
+ msec: 6144
+ hash: "4e6ef470ed2c2a2418a4838c6e4ae64b"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6160
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6176
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6192
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6208
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6224
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6240
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6256
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6272
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6288
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6304
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6320
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6336
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6352
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6368
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6384
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6400
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6416
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6432
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6448
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6464
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6480
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6496
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6512
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6528
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6544
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6560
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6576
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6592
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6608
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6624
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6640
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6656
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6672
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6688
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6704
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6720
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6736
+ image: "usingLineEdit.7.png"
+ }
+ Frame {
+ msec: 6752
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6768
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6784
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6800
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6816
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6832
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6848
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6864
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6880
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6896
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6912
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6928
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Frame {
+ msec: 6944
+ hash: "ed2a8fae3e94e2f90232d172246d3783"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6960
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 6976
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 6992
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7008
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7024
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7040
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7056
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7072
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7088
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7104
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7120
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7136
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7152
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7168
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7184
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7200
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7216
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7232
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7248
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7264
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7280
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7296
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7312
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7328
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7344
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7360
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7376
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7392
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7408
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7424
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7440
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7456
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7472
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7488
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7504
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7520
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Key {
+ type: 7
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7536
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7552
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7568
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7584
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7600
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7616
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7632
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7648
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7664
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7680
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7696
+ image: "usingLineEdit.8.png"
+ }
+ Frame {
+ msec: 7712
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7728
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7744
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7760
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7776
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7792
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7808
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7824
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7840
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7856
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7872
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7888
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7904
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7920
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7936
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7952
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7968
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 7984
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8000
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8016
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8032
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8048
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8064
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8080
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8096
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8112
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8128
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8144
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8160
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8176
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8192
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8208
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8224
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8240
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8256
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8272
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8288
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8304
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8320
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8336
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8352
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8368
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8384
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8400
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8416
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8432
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8448
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8464
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8480
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Frame {
+ msec: 8496
+ hash: "f1c4f46ee86ce1eb24fcd72106da0248"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 61; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8512
+ hash: "e779fc73a3ca131452f62e889d5c96ea"
+ }
+ Frame {
+ msec: 8528
+ hash: "e779fc73a3ca131452f62e889d5c96ea"
+ }
+ Frame {
+ msec: 8544
+ hash: "e779fc73a3ca131452f62e889d5c96ea"
+ }
+ Frame {
+ msec: 8560
+ hash: "e779fc73a3ca131452f62e889d5c96ea"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 60; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 58; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8576
+ hash: "e779fc73a3ca131452f62e889d5c96ea"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 46; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8592
+ hash: "400b446983d944bac62889fb47e8d405"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 41; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 40; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8608
+ hash: "400b446983d944bac62889fb47e8d405"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 32; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8624
+ hash: "769278730ba7e2a31333496a0c99499f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 31; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 30; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8640
+ hash: "769278730ba7e2a31333496a0c99499f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 29; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8656
+ image: "usingLineEdit.9.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 28; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 27; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8672
+ hash: "c193a6f52a967c97961df08ebffe50c1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 26; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8688
+ hash: "c193a6f52a967c97961df08ebffe50c1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 25; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 24; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8704
+ hash: "c193a6f52a967c97961df08ebffe50c1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 23; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 22; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8720
+ hash: "c193a6f52a967c97961df08ebffe50c1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 20; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 19; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8736
+ hash: "ce0d865bf18c5c3ff93bda82f95e97c2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 18; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 17; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8752
+ hash: "ce0d865bf18c5c3ff93bda82f95e97c2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 16; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 15; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8768
+ hash: "ce0d865bf18c5c3ff93bda82f95e97c2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 14; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 13; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8784
+ hash: "ce0d865bf18c5c3ff93bda82f95e97c2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 12; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 11; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8800
+ hash: "ce0d865bf18c5c3ff93bda82f95e97c2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 10; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 8; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8816
+ hash: "af2a9c17451a89153e04418e056d9ea5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 6; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 5; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8832
+ hash: "749a1ccf2050c809be5e3820d3b2fba9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 3; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 2; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8848
+ hash: "74f183256682200a804baa620a6ce978"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 0; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -1; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8864
+ hash: "9d837fb68c47ac3659b93e9f77cea0af"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -2; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -3; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8880
+ hash: "2dc20ba694548e05c80383d0fcc429fc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -5; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -6; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8896
+ hash: "0f5b95fbbdd932c8dbfaffd0cdd44dec"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -7; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -9; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8912
+ hash: "dd9e9d86eacd44b19c6c9c64c2abf007"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -10; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -11; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8928
+ hash: "7c67140abcbe7b8a36a7324016377272"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -12; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -13; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8944
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -14; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -15; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8960
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 8976
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -16; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -17; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8992
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -18; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9008
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9024
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9040
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9056
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9072
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9088
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9104
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9120
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9136
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9152
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9168
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9184
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Frame {
+ msec: 9200
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -17; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9216
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -16; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9232
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -14; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -13; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9248
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -11; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -10; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9264
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -8; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -7; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9280
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -6; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -5; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9296
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -3; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -1; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9312
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 1; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 3; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9328
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 4; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 6; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9344
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 7; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 8; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9360
+ hash: "a085e2633649f0328f109bc4143eaccc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 10; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 11; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9376
+ hash: "fe89231a1ac7f48eee7cea14167b6616"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 12; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 14; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9392
+ hash: "fe89231a1ac7f48eee7cea14167b6616"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 15; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 17; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9408
+ hash: "fe89231a1ac7f48eee7cea14167b6616"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 21; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 24; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9424
+ hash: "e816757e030c8927d6721295f8685162"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 27; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 30; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9440
+ hash: "48f3a7d217ff85ad6088e18c1b88d6d7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 33; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 35; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9456
+ hash: "48f3a7d217ff85ad6088e18c1b88d6d7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 38; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 39; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9472
+ hash: "6cb50f458ba606cc4204727a02e9191b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 43; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 45; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9488
+ hash: "6cb50f458ba606cc4204727a02e9191b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 50; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9504
+ hash: "936d1a2ceed861a48fb3dd0c54cb0982"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9520
+ hash: "936d1a2ceed861a48fb3dd0c54cb0982"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 55; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9536
+ hash: "936d1a2ceed861a48fb3dd0c54cb0982"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 56; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 58; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9552
+ hash: "9fb9dbff35b91d65e1e7ce569baede55"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 61; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 64; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9568
+ hash: "9fb9dbff35b91d65e1e7ce569baede55"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 67; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 70; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9584
+ hash: "78038f8df4ef17a164172c5bce16527d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 73; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 74; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9600
+ hash: "b390e534fe43678ff031ec9de32b50d0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 76; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9616
+ image: "usingLineEdit.10.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 77; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 78; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9632
+ hash: "b390e534fe43678ff031ec9de32b50d0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 79; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 80; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9648
+ hash: "b390e534fe43678ff031ec9de32b50d0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 81; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 84; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9664
+ hash: "94fa3848acc33accfb607ce31029f06d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 88; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9680
+ hash: "b0f808e85cc5721473da7cd84b1987dc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 89; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 91; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9696
+ hash: "7680aca6b9feccc7e73efa79c1473ce8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 92; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 94; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9712
+ hash: "ab79f5095d60f5cef526a074ef6d4e96"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 95; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 96; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9728
+ hash: "35c718664fc8e817e26054c307f908f9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 98; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9744
+ hash: "23267fdc8202daba400140e51f5e3bdc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 102; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 104; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9760
+ hash: "0b2765ae503f0194e6e526ea6f9ed8f9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 105; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 108; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9776
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 109; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 110; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9792
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9808
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 112; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9824
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 113; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9840
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 114; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9856
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 9872
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 115; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9888
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 116; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9904
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 117; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9920
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 118; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9936
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 9952
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 119; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9968
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 120; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9984
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 121; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10000
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10016
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 122; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10032
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10048
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10064
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10080
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10096
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10112
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10128
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10144
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10160
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10176
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10192
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10208
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10224
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10240
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10256
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10272
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10288
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10304
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10320
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10336
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10352
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10368
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10384
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10400
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10416
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10432
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10448
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10464
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10480
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10496
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10512
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10528
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10544
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10560
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10576
+ image: "usingLineEdit.11.png"
+ }
+ Frame {
+ msec: 10592
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10608
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10624
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10640
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10656
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10672
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10688
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10704
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10720
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10736
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10752
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10768
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10784
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10800
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10816
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10832
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10848
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10864
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10880
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10896
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10912
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10928
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10944
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10960
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10976
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 10992
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11008
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11024
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11040
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11056
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11072
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11088
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11104
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11120
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11136
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11152
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11168
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11184
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11200
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11216
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11232
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11248
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+ Frame {
+ msec: 11264
+ hash: "6f6154528c95da216e1f3830de000195"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
index 8d4d0d1b67..2a15102bd2 100644
--- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
+++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
@@ -104,14 +104,16 @@ void tst_qmlvisual::visual_data()
QStringList files;
files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR));
if (qgetenv("QMLVISUAL_ALL") != "1") {
- //Text on X11 varies per distro - and the CI system is currently using something outdated.
#if defined(Q_WS_X11)
+ //Text on X11 varies per distro - and the CI system is currently using something outdated.
foreach(const QString &str, files.filter(QRegExp(".*text.*")))
files.removeAll(str);
#endif
- //We don't want QWS test results to mire down the CI system
#if defined(Q_WS_QWS)
+ //We don't want QWS test results to mire down the CI system
files.clear();
+ //Needs at least one test data or it fails anyways
+ files << QT_TEST_SOURCE_DIR "/selftest_noimages/selftest_noimages.qml";
#endif
}
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.0.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.0.png
new file mode 100644
index 0000000000..513aab69ec
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.1.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.1.png
new file mode 100644
index 0000000000..513aab69ec
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.10.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.10.png
new file mode 100644
index 0000000000..bb22d01d17
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.10.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.2.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.2.png
new file mode 100644
index 0000000000..1357551f75
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.3.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.3.png
new file mode 100644
index 0000000000..513aab69ec
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.4.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.4.png
new file mode 100644
index 0000000000..bb22d01d17
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.5.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.5.png
new file mode 100644
index 0000000000..bb22d01d17
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.6.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.6.png
new file mode 100644
index 0000000000..c61ae3fda0
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.7.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.7.png
new file mode 100644
index 0000000000..bb22d01d17
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.8.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.8.png
new file mode 100644
index 0000000000..bb22d01d17
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.8.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.9.png b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.9.png
new file mode 100644
index 0000000000..bb22d01d17
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.9.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.qml b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.qml
new file mode 100644
index 0000000000..c248167fb0
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/data/flickweb.qml
@@ -0,0 +1,6083 @@
+import Qt.VisualTest 4.7
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ image: "flickweb.0.png"
+ }
+ Frame {
+ msec: 32
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 48
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 64
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 80
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 96
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 112
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 128
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 144
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 160
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 176
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 192
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 208
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 224
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 240
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 256
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 272
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 288
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 304
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 320
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 336
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 352
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 368
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 384
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 400
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 416
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 432
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 448
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 464
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 480
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 496
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 512
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 528
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 544
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 0; y: 7
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 0; y: 7
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 560
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 12; y: 10
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 576
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 15; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 592
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 608
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 624
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 640
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 12; y: 10
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 11; y: 10
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 656
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 9; y: 10
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 672
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 688
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 9; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 704
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 9; y: 12
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 9; y: 15
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 720
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 9; y: 18
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 12; y: 24
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 736
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 14; y: 28
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 18; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 752
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 19; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 22; y: 43
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 768
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 22; y: 44
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 23; y: 44
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 784
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 800
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 23; y: 43
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 816
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 24; y: 45
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 832
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 26; y: 47
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 28; y: 49
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 848
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 29; y: 51
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 32; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 864
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 34; y: 57
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 36; y: 61
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 880
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 38; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 41; y: 66
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 896
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 43; y: 68
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 48; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 912
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 50; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 57; y: 80
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 928
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 63; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 66; y: 87
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 944
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 72; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 93
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 960
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 80; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 976
+ image: "flickweb.1.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 86; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 88; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 992
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 91; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 104
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1008
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 1024
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 1040
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 105
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1056
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 106
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1072
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 107
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 108
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1088
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 109
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1104
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 110
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 111
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1120
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 112
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1136
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1152
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 115
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1168
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 92; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1184
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 1200
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 92; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1216
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 92; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 92; y: 115
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1232
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 91; y: 112
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 91; y: 111
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1248
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 90; y: 107
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 90; y: 104
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1264
+ hash: "e891b00cd44578b4a8e635ffe4c6d3fd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 90; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 89; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1280
+ hash: "61a543282ffb5e751ea1d97f0c95b208"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 89; y: 93
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 89; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1296
+ hash: "102e4b664bade46ab3bbb611acee22c9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 89; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 87; y: 70
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1312
+ hash: "6bf42ac28a14db681442aeb7ed0c7610"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 60
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 85; y: 60
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 56
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1328
+ hash: "ef531060d6b75cec8a6e3c01b3f69cc0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 51
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 49
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1344
+ hash: "e839af9d67f6214f0901977b3aa96d1a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 43
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1360
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 41
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1376
+ hash: "e4a562aa35aa532d15c9b129e22797bb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1392
+ hash: "029d347e9c99dd4a9cec5120ac7fc25e"
+ }
+ Frame {
+ msec: 1408
+ hash: "3c16a74e18a59630f35511ab5514c769"
+ }
+ Frame {
+ msec: 1424
+ hash: "5dc472d6c5198d5a628510bd45a61a11"
+ }
+ Frame {
+ msec: 1440
+ hash: "430d60127ed59dbc5904647424ead40d"
+ }
+ Frame {
+ msec: 1456
+ hash: "cb27cfcfbbb77b55c2a8bf7e51c0af07"
+ }
+ Frame {
+ msec: 1472
+ hash: "46f2eb33b0e8316c4123ddbee2f60ae2"
+ }
+ Frame {
+ msec: 1488
+ hash: "1df306111ca012c9f405018778c0a12b"
+ }
+ Frame {
+ msec: 1504
+ hash: "1eafab8fd457ad9acda068344178b4a8"
+ }
+ Frame {
+ msec: 1520
+ hash: "286656898100e53d6d7728b51ce93df5"
+ }
+ Frame {
+ msec: 1536
+ hash: "e2a88f0ba3030a430028147930989bbb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1552
+ hash: "fb23cf265c4d253470c2515043bc5dd8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1568
+ hash: "1dba4f0e5e5948b7133725ea8bbef3e7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1584
+ hash: "8578965c5ad012284e4e0a14a42da25e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1600
+ hash: "3ef187decae08baa2ec92998c2cbb7f7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1616
+ hash: "4e0491128eac0bbfa7a131b1f18f243c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 26
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1632
+ hash: "c2d0799526e908204efbd3aa980e086c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 23
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1648
+ hash: "cc87e09a6784d61680f8c6ab0d6a38fa"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 22
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 16
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1664
+ hash: "13dec7e835b4f26970f98b66533f84f1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 14
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1680
+ hash: "e5d2862bee024b64326b7d85e5e45399"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 12
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1696
+ hash: "0b1401ce4a91811ac9c3eec5f94b380d"
+ }
+ Frame {
+ msec: 1712
+ hash: "0de290542c9d3e03ed78f51423011c16"
+ }
+ Frame {
+ msec: 1728
+ hash: "4c9aa06ad1e246b4b026742fc8cf37bc"
+ }
+ Frame {
+ msec: 1744
+ hash: "c33003a8262c2ba25510ece181e61bc9"
+ }
+ Frame {
+ msec: 1760
+ hash: "c33003a8262c2ba25510ece181e61bc9"
+ }
+ Frame {
+ msec: 1776
+ hash: "ad184fa88c4299b8911c9b7ada5b3736"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 85; y: 12
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 13
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 15
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1792
+ hash: "ad184fa88c4299b8911c9b7ada5b3736"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 17
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 23
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1808
+ hash: "c2d0799526e908204efbd3aa980e086c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1824
+ hash: "b343a9ed7e9740ec1725837fad766745"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 41
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 44
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1840
+ hash: "b33260ad955474452f204ed5d468ef78"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 51
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 86; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1856
+ hash: "9a647c54e378bd0ee35ef4164892722c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 87; y: 61
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 88; y: 67
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 88; y: 67
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 89; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1872
+ hash: "dc553d1a7b678dffea41147fc6b841f6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 89; y: 74
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 89; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1888
+ hash: "2d61b4fb1e5a8beb6e3c3cb53c21db42"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 89; y: 79
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 89; y: 82
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1904
+ hash: "209faf0b20fd53d9a1c261c8cae9666f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 90; y: 82
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 91; y: 83
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1920
+ hash: "3497258aa07c76f0e31b5a492ee7e7cb"
+ }
+ Frame {
+ msec: 1936
+ image: "flickweb.2.png"
+ }
+ Frame {
+ msec: 1952
+ hash: "64c677ac4fea0e525279e86bf831d5d3"
+ }
+ Frame {
+ msec: 1968
+ hash: "76c6c887fea94288e9fd975655e5181c"
+ }
+ Frame {
+ msec: 1984
+ hash: "71b85e596c88b84a851a52aa3389e63a"
+ }
+ Frame {
+ msec: 2000
+ hash: "e4a562aa35aa532d15c9b129e22797bb"
+ }
+ Frame {
+ msec: 2016
+ hash: "148484dd95c88720cc5ef196334cb9a8"
+ }
+ Frame {
+ msec: 2032
+ hash: "924c6254ffa1707b69174f49e4e95213"
+ }
+ Frame {
+ msec: 2048
+ hash: "9e61907acedb27941d8be2befa364cfb"
+ }
+ Frame {
+ msec: 2064
+ hash: "9e61907acedb27941d8be2befa364cfb"
+ }
+ Frame {
+ msec: 2080
+ hash: "f2c4e99db1bb087a40b277ce8ce628f6"
+ }
+ Frame {
+ msec: 2096
+ hash: "f2c4e99db1bb087a40b277ce8ce628f6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 91; y: 82
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2112
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 90; y: 82
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2128
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 89; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 88; y: 80
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2144
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 87; y: 79
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 86; y: 77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2160
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 86; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 86; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2176
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 71
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2192
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 68
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 81; y: 67
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2208
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 76; y: 61
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 75; y: 59
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2224
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 71; y: 54
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 70; y: 51
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2240
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 70; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 70; y: 49
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2256
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 70; y: 47
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 69; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2272
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 68; y: 45
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 67; y: 43
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2288
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 66; y: 43
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 65; y: 41
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2304
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 64; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 64; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2320
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 63; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 63; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2336
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 63; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 63; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2352
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 63; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2368
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 64; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2384
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 65; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 65; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2400
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 66; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 68; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2416
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 69; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 71; y: 29
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2432
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 73; y: 27
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 73; y: 26
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2448
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 24
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 22
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2464
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 21
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 20
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2480
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 18
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 17
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2496
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 16
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 73; y: 15
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2512
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 73; y: 14
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2528
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Frame {
+ msec: 2544
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Frame {
+ msec: 2560
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 73; y: 14
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2576
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 73; y: 15
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 72; y: 17
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2592
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 72; y: 24
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 72; y: 29
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2608
+ hash: "b2d6b68f1f7229e8e65bb37e4c418a1b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 72; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 71; y: 47
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2624
+ hash: "c4dd48fca556c2760c8f81db7fea6938"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 70; y: 60
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 70; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2640
+ hash: "9dbad8cb2692807d67f74e7ac4a4a70e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 70; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 70; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 70; y: 96
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2656
+ hash: "152648affe4045a81f0d6ff9150889f1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 70; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 70; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2672
+ hash: "152648affe4045a81f0d6ff9150889f1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 73; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2688
+ hash: "152648affe4045a81f0d6ff9150889f1"
+ }
+ Frame {
+ msec: 2704
+ hash: "152648affe4045a81f0d6ff9150889f1"
+ }
+ Frame {
+ msec: 2720
+ hash: "152648affe4045a81f0d6ff9150889f1"
+ }
+ Frame {
+ msec: 2736
+ hash: "152648affe4045a81f0d6ff9150889f1"
+ }
+ Frame {
+ msec: 2752
+ hash: "152648affe4045a81f0d6ff9150889f1"
+ }
+ Frame {
+ msec: 2768
+ hash: "c9eee2b7529b07a17151e7140444c099"
+ }
+ Frame {
+ msec: 2784
+ hash: "c9eee2b7529b07a17151e7140444c099"
+ }
+ Frame {
+ msec: 2800
+ hash: "c9eee2b7529b07a17151e7140444c099"
+ }
+ Frame {
+ msec: 2816
+ hash: "c9eee2b7529b07a17151e7140444c099"
+ }
+ Frame {
+ msec: 2832
+ hash: "c9eee2b7529b07a17151e7140444c099"
+ }
+ Frame {
+ msec: 2848
+ hash: "c9eee2b7529b07a17151e7140444c099"
+ }
+ Frame {
+ msec: 2864
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 2880
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 2896
+ image: "flickweb.3.png"
+ }
+ Frame {
+ msec: 2912
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 2928
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2944
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 74; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 73; y: 98
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2960
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 69; y: 93
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 67; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2976
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 62; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 60; y: 83
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2992
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 56; y: 77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 55; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3008
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 52; y: 70
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 49; y: 67
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3024
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 49; y: 65
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 48; y: 61
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3040
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 48; y: 60
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 46; y: 56
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3056
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 45; y: 54
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 42; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3072
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 39; y: 47
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 38; y: 45
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3088
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 37; y: 44
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 36; y: 43
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3104
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 35; y: 41
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 35; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3120
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 33; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 33; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3136
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 32; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3152
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 32; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 31; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3168
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 31; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3184
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 30; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 30; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3200
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 28; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 28; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3216
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 26; y: 29
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 26; y: 28
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3232
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 25; y: 27
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3248
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 25; y: 26
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3264
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 3280
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 3296
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 3312
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 25; y: 26
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3328
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 3344
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 3360
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Frame {
+ msec: 3376
+ hash: "d045839439e4091210c745f0ea173e52"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 25; y: 26
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3392
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 25; y: 27
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3408
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 26; y: 27
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 26; y: 28
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3424
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 27; y: 28
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 27; y: 29
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3440
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3456
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3472
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3488
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3504
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 27; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3520
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 28; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 29; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3536
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 31; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 37; y: 43
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3552
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 40; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 50; y: 59
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3568
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 55; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 65; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3584
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 69; y: 77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 75; y: 83
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3600
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 78; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 80; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3616
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 89
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3632
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 90
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3648
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3664
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3680
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3696
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3712
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3728
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3744
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3760
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 89
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3776
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3792
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 87
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3808
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 83
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3824
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3840
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3856
+ image: "flickweb.4.png"
+ }
+ Frame {
+ msec: 3872
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3888
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3904
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3920
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3936
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3952
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3968
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 3984
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4000
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4016
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4032
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 87
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4048
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4064
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4080
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4096
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4112
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4128
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 89
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4144
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 90
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4160
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4176
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 93
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4192
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 97
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 100
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4208
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 101
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 105
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4224
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 107
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 110
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4240
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4256
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 115
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4272
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4288
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4304
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4320
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4336
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4352
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4368
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4384
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4400
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4416
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4432
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4448
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4464
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4480
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4496
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4512
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4528
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4544
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4560
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4576
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4592
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4608
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 116
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4624
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4640
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4656
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4672
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4688
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 82; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4704
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4720
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4736
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4752
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4768
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4784
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4800
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4816
+ image: "flickweb.5.png"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 83; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4832
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 4848
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 84; y: 119
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4864
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 118
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4880
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 86; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 87; y: 111
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4896
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 89; y: 107
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 90; y: 104
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4912
+ hash: "f10fa114e248809ed280788d03a3e234"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 92; y: 99
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 93; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4928
+ hash: "442357340d9690811d582f548f933d92"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 95; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 98; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 98; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4944
+ hash: "188b8f78b2a2180a8e96a8a05bb20fe2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 99; y: 69
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4960
+ hash: "2b8ee42c5660f4f938cf10507690abbe"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 100; y: 66
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 101; y: 60
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4976
+ hash: "3d4aab388f62e64c5f72c631fb8584aa"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 103; y: 59
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 104; y: 56
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4992
+ hash: "439364cea3330411f526093d58ece463"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 104; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 104; y: 53
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5008
+ hash: "27653ec59651e6b3cb2ebf2bc81a975a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 104; y: 52
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 104; y: 51
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5024
+ hash: "d9c0fb2cbf968e0524291ae2570ca585"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 49
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5040
+ hash: "ef75df694a972985f410e21182dbb12b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5056
+ hash: "adda6aa851c1587c1bb2605809348725"
+ }
+ Frame {
+ msec: 5072
+ hash: "196c12052069f0f8c775aa38d3291bef"
+ }
+ Frame {
+ msec: 5088
+ hash: "eaa025b6aee87edf95643cc46880d0db"
+ }
+ Frame {
+ msec: 5104
+ hash: "edeab897b82df47ae6deb858eca3087e"
+ }
+ Frame {
+ msec: 5120
+ hash: "46e3b5da149cfc40036a860e74e0cd78"
+ }
+ Frame {
+ msec: 5136
+ hash: "46e3b5da149cfc40036a860e74e0cd78"
+ }
+ Frame {
+ msec: 5152
+ hash: "0fe9b13b9b0752ab4ad74f4e43f94d86"
+ }
+ Frame {
+ msec: 5168
+ hash: "0fe9b13b9b0752ab4ad74f4e43f94d86"
+ }
+ Frame {
+ msec: 5184
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5200
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5216
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5232
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5248
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5264
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5280
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5296
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5312
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5328
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5344
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 47
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 104; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5360
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 103; y: 45
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 102; y: 45
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5376
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 102; y: 44
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5392
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 101; y: 43
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5408
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 101; y: 42
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 100; y: 42
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5424
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 99; y: 41
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5440
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5456
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5472
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5488
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5504
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 29
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 28
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5520
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 26
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 25
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5536
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 24
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 23
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5552
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 97; y: 23
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 97; y: 22
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5568
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5584
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5600
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5616
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5632
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 97; y: 22
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5648
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Frame {
+ msec: 5664
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 24
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 26
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5680
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 28
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5696
+ hash: "695e9c7292475cad011ca76799452042"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 42
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5712
+ hash: "27653ec59651e6b3cb2ebf2bc81a975a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 58
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5728
+ hash: "f2a68c3a60002a796b0cd595ae89e477"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 71
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5744
+ hash: "2628ffe66f06c997d9c9b66febc04ce8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 97; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 98; y: 83
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5760
+ hash: "9b68c76d622f7b883a13927a112179f0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 99; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 101; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5776
+ image: "flickweb.6.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 103; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 104; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5792
+ hash: "6d6d87355037ec4a15b2a81c8d48b74d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 107; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 107; y: 94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5808
+ hash: "6d6d87355037ec4a15b2a81c8d48b74d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 107; y: 93
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5824
+ hash: "6d6d87355037ec4a15b2a81c8d48b74d"
+ }
+ Frame {
+ msec: 5840
+ hash: "6d6d87355037ec4a15b2a81c8d48b74d"
+ }
+ Frame {
+ msec: 5856
+ hash: "34c3edc4500a268a326b5c2156c12f09"
+ }
+ Frame {
+ msec: 5872
+ hash: "34c3edc4500a268a326b5c2156c12f09"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 106; y: 92
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 105; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5888
+ hash: "34c3edc4500a268a326b5c2156c12f09"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 104; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 103; y: 90
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5904
+ hash: "ac600900160ab37ec8a3e67eb82d0259"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 101; y: 89
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 100; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5920
+ hash: "ac600900160ab37ec8a3e67eb82d0259"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 99; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 98; y: 86
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5936
+ hash: "dc3cef419e3b7d59f450d3307aeebefa"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 97; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 96; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5952
+ hash: "dc3cef419e3b7d59f450d3307aeebefa"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 94; y: 84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 93; y: 83
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5968
+ hash: "9b68c76d622f7b883a13927a112179f0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 90; y: 82
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 86; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5984
+ hash: "9b68c76d622f7b883a13927a112179f0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 80
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 81; y: 79
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6000
+ hash: "9b68c76d622f7b883a13927a112179f0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 79; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 76; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6016
+ hash: "9b68c76d622f7b883a13927a112179f0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 75; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 72; y: 73
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6032
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 68; y: 70
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 66; y: 68
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6048
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 63; y: 65
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 61; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6064
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 58; y: 60
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 57; y: 59
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6080
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 54; y: 56
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 53; y: 54
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6096
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 51; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 48; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6112
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 48; y: 45
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 46; y: 41
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6128
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 45; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 43; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6144
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 43; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 41; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6160
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 40; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 38; y: 28
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6176
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 36; y: 26
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 35; y: 24
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6192
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 33; y: 22
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 32; y: 21
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6208
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 31; y: 20
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 30; y: 19
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6224
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 29; y: 19
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 28; y: 18
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6240
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 27; y: 18
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 26; y: 17
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6256
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 25; y: 17
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6272
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 24; y: 17
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6288
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6304
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6320
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6336
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6352
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 24; y: 17
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6368
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6384
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6400
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6416
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 24; y: 17
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6432
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 24; y: 18
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6448
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 25; y: 18
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 25; y: 19
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6464
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 26; y: 19
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 27; y: 20
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6480
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 28; y: 21
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6496
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6512
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6528
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 29; y: 22
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6544
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 30; y: 23
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 31; y: 24
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6560
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 32; y: 25
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 33; y: 25
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6576
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 34; y: 26
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 34; y: 27
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6592
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 37; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 38; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6608
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 41; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 42; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6624
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 45; y: 42
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 50; y: 46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6640
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 52; y: 49
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 57; y: 53
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6656
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 60; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 65; y: 58
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6672
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 66; y: 59
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 71; y: 61
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6688
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 75; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 77; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6704
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 80; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 81; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6720
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 83; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 84; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6736
+ image: "flickweb.7.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 85; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 86; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6752
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 87; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 88; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6768
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 90; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 93; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6784
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 94; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 99; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6800
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 102; y: 63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 106; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6816
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 110; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 116; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6832
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 122; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 124; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6848
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 125; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6864
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6880
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6896
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6912
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6928
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6944
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6960
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6976
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 6992
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7008
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7024
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7040
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7056
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7072
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7088
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 126; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7104
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 127; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 129; y: 64
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7120
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 132; y: 65
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 134; y: 66
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7136
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 139; y: 68
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 144; y: 69
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7152
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 148; y: 69
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 154; y: 69
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7168
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 158; y: 68
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 162; y: 66
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7184
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 164; y: 65
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 165; y: 62
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7200
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 165; y: 60
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 165; y: 54
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7216
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 162; y: 45
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 159; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7232
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 151; y: 27
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 146; y: 22
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7248
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 0
+ x: 129; y: 3
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7264
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7280
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7296
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7312
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7328
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7344
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7360
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7376
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7392
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7408
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7424
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7440
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7456
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7472
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7488
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7504
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7520
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7536
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7552
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7568
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7584
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7600
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7616
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7632
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7648
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7664
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7680
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7696
+ image: "flickweb.8.png"
+ }
+ Frame {
+ msec: 7712
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7728
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7744
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7760
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7776
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7792
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7808
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7824
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7840
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7856
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7872
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7888
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7904
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7920
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7936
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7952
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7968
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 7984
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8000
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8016
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8032
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8048
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8064
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8080
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8096
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8112
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8128
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8144
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8160
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8176
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8192
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8208
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8224
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8240
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8256
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8272
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8288
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8304
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8320
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8336
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8352
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8368
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8384
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8400
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8416
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8432
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8448
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8464
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8480
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8496
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8512
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8528
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8544
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8560
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8576
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8592
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8608
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8624
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8640
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8656
+ image: "flickweb.9.png"
+ }
+ Frame {
+ msec: 8672
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8688
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8704
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8720
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8736
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8752
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8768
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8784
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8800
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8816
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8832
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8848
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8864
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8880
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8896
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8912
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8928
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8944
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8960
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8976
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 8992
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9008
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9024
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9040
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9056
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9072
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9088
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9104
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9120
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9136
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9152
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9168
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9184
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9200
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9216
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9232
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9248
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9264
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9280
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9296
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9312
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9328
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9344
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9360
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9376
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9392
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9408
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9424
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9440
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9456
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9472
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9488
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9504
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9520
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9536
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9552
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9568
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9584
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9600
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9616
+ image: "flickweb.10.png"
+ }
+ Frame {
+ msec: 9632
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9648
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9664
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9680
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9696
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+ Frame {
+ msec: 9712
+ hash: "98990f624351f88347b2eb010bb5cd13"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml b/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml
new file mode 100644
index 0000000000..6063226370
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml
@@ -0,0 +1,35 @@
+import QtQuick 1.0
+import QtWebKit 1.0
+
+Flickable {
+ id: flickable
+ width: 320
+ height: 200
+ contentWidth: Math.max(flickable.width,webView.width)
+ contentHeight: Math.max(flickable.height,webView.height)
+ pressDelay: 100
+
+ WebView {
+ id: webView
+ transformOrigin: Item.TopLeft
+ smooth: false // We don't want smooth scaling, since we only scale during (fast) transitions
+ url: "test.html"
+ preferredWidth: flickable.width
+ preferredHeight: flickable.height
+ contentsScale: 1
+ onContentsSizeChanged: {
+ // zoom out
+ contentsScale = Math.min(1,flickable.width / contentsSize.width)
+ }
+ }
+
+ Rectangle {
+ id: button
+ width: 50; height: 50; color: "red"
+ MouseArea {
+ anchors.fill: parent
+ onPressed: button.color = "blue"
+ onReleased: button.color = "green"
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/qtlogo.png b/tests/auto/declarative/qmlvisual/webview/flickable/qtlogo.png
new file mode 100644
index 0000000000..399bd0b1d9
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/qtlogo.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/test.html b/tests/auto/declarative/qmlvisual/webview/flickable/test.html
new file mode 100644
index 0000000000..35eb7184e8
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/test.html
@@ -0,0 +1,3 @@
+<html>
+ <img width="400" height="400" src="qtlogo.png">
+</html>
diff --git a/tests/auto/lancelot/tst_lancelot.cpp b/tests/auto/lancelot/tst_lancelot.cpp
index 8467672195..7c6fe664da 100644
--- a/tests/auto/lancelot/tst_lancelot.cpp
+++ b/tests/auto/lancelot/tst_lancelot.cpp
@@ -63,6 +63,8 @@ Q_OBJECT
public:
tst_Lancelot();
+ static bool simfail;
+
private:
ImageItem render(const ImageItem &item);
void paint(QPaintDevice *device, const QStringList &script, const QString &filePath);
@@ -91,6 +93,8 @@ private slots:
#endif
};
+bool tst_Lancelot::simfail = false;
+
tst_Lancelot::tst_Lancelot()
{
}
@@ -290,12 +294,38 @@ void tst_Lancelot::paint(QPaintDevice *device, const QStringList &script, const
{
QPainter p(device);
PaintCommands pcmd(script, 800, 800);
+ //pcmd.setShouldDrawText(false);
pcmd.setType(ImageType);
pcmd.setPainter(&p);
pcmd.setFilePath(filePath);
pcmd.runCommands();
p.end();
+
+ if (simfail) {
+ QPainter p2(device);
+ p2.setPen(QPen(QBrush(Qt::cyan), 3, Qt::DashLine));
+ p2.drawLine(200, 200, 600, 600);
+ p2.drawLine(600, 200, 200, 600);
+ simfail = false;
+ }
}
+#define main rmain
QTEST_MAIN(tst_Lancelot)
+#undef main
+
+int main(int argc, char *argv[])
+{
+ char *fargv[20];
+ int fargc = 0;
+ for (int i = 0; i < qMin(argc, 19); i++) {
+ if (!qstrcmp(argv[i], "-simfail"))
+ tst_Lancelot::simfail = true;
+ else
+ fargv[fargc++] = argv[i];
+ }
+ fargv[fargc] = 0;
+ return rmain(fargc, fargv);
+}
+
#include "tst_lancelot.moc"
diff --git a/tests/auto/qdbusconnection/tst_qdbusconnection.cpp b/tests/auto/qdbusconnection/tst_qdbusconnection.cpp
index 96209b1ecc..599abbdc3f 100644
--- a/tests/auto/qdbusconnection/tst_qdbusconnection.cpp
+++ b/tests/auto/qdbusconnection/tst_qdbusconnection.cpp
@@ -298,7 +298,7 @@ void tst_QDBusConnection::registerObject()
// register one object at root:
MyObject obj;
QVERIFY(con.registerObject(path, &obj, QDBusConnection::ExportAllSlots));
- QCOMPARE(con.objectRegisteredAt(path), &obj);
+ QCOMPARE(con.objectRegisteredAt(path), static_cast<QObject *>(&obj));
QVERIFY(callMethod(con, path));
QCOMPARE(obj.path, path);
}
@@ -495,7 +495,7 @@ void tst_QDBusConnection::callSelf()
QDBusConnection connection = QDBusConnection::sessionBus();
QVERIFY(connection.registerObject("/test", &testObject,
QDBusConnection::ExportAllContents));
- QCOMPARE(connection.objectRegisteredAt("/test"), &testObject);
+ QCOMPARE(connection.objectRegisteredAt("/test"), static_cast<QObject *>(&testObject));
QVERIFY(connection.registerService(serviceName()));
QDBusInterface interface(serviceName(), "/test");
QVERIFY(interface.isValid());
diff --git a/tests/auto/qdial/tst_qdial.cpp b/tests/auto/qdial/tst_qdial.cpp
index 2428eae851..92c2964e22 100644
--- a/tests/auto/qdial/tst_qdial.cpp
+++ b/tests/auto/qdial/tst_qdial.cpp
@@ -54,6 +54,7 @@ private slots:
void getSetCheck();
void valueChanged();
void sliderMoved();
+ void wrappingCheck();
};
// Testing get/set functions
@@ -143,5 +144,68 @@ void tst_QDial::sliderMoved()
}
+void tst_QDial::wrappingCheck()
+{
+ //This tests if dial will wrap past the maximum value back to the minimum
+ //and vice versa when changing the value with a keypress
+ QDial dial;
+ dial.setMinimum(0);
+ dial.setMaximum(100);
+ dial.setSingleStep(1);
+ dial.setWrapping(true);
+ dial.setValue(99);
+ dial.show();
+
+ { //set value to maximum but do not wrap
+ QTest::keyPress(&dial, Qt::Key_Up);
+ QCOMPARE( dial.value(), 100);
+ }
+
+ { //step up once more and wrap clockwise to minimum + 1
+ QTest::keyPress(&dial, Qt::Key_Up);
+ QCOMPARE( dial.value(), 1);
+ }
+
+ { //step down once, and wrap anti-clockwise to minimum, then again to maximum - 1
+ QTest::keyPress(&dial, Qt::Key_Down);
+ QCOMPARE( dial.value(), 0);
+
+ QTest::keyPress(&dial, Qt::Key_Down);
+ QCOMPARE( dial.value(), 99);
+ }
+
+ { //when wrapping property is false no wrapping will occur
+ dial.setWrapping(false);
+ dial.setValue(100);
+
+ QTest::keyPress(&dial, Qt::Key_Up);
+ QCOMPARE( dial.value(), 100);
+
+ dial.setValue(0);
+ QTest::keyPress(&dial, Qt::Key_Down);
+ QCOMPARE( dial.value(), 0);
+ }
+
+ { //When the step is really big or small, wrapping should still behave
+ dial.setWrapping(true);
+ dial.setValue(dial.minimum());
+ dial.setSingleStep(305);
+
+ QTest::keyPress(&dial, Qt::Key_Up);
+ QCOMPARE( dial.value(), 5);
+
+ dial.setValue(dial.minimum());
+ QTest::keyPress(&dial, Qt::Key_Down);
+ QCOMPARE( dial.value(), 95);
+
+ dial.setMinimum(-30);
+ dial.setMaximum(-4);
+ dial.setSingleStep(200);
+ dial.setValue(dial.minimum());
+ QTest::keyPress(&dial, Qt::Key_Down);
+ QCOMPARE( dial.value(), -22);
+ }
+}
+
QTEST_MAIN(tst_QDial)
#include "tst_qdial.moc"
diff --git a/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp b/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
index a26e34d79f..fd898eead1 100644
--- a/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
+++ b/tests/auto/qfilesystemwatcher/tst_qfilesystemwatcher.cpp
@@ -82,6 +82,8 @@ private slots:
void removeFileAndUnWatch();
void cleanup();
+
+ void QTBUG15255_deadlock();
private:
QStringList do_force_engines;
bool do_force_native;
@@ -557,5 +559,23 @@ void tst_QFileSystemWatcher::removeFileAndUnWatch()
watcher.addPath(filename);
}
+class SomeSingleton : public QObject
+{
+public:
+ SomeSingleton() : mFsWatcher(new QFileSystemWatcher(this)) { mFsWatcher->addPath(QLatin1String("/usr/lib"));}
+ void bla() const {}
+ QFileSystemWatcher* mFsWatcher;
+};
+
+Q_GLOBAL_STATIC(SomeSingleton, someSingleton)
+
+void tst_QFileSystemWatcher::QTBUG15255_deadlock()
+{
+ someSingleton()->bla();
+ //the test must still finish
+ QTest::qWait(30);
+}
+
+
QTEST_MAIN(tst_QFileSystemWatcher)
#include "tst_qfilesystemwatcher.moc"
diff --git a/tests/auto/qgl/tst_qgl.cpp b/tests/auto/qgl/tst_qgl.cpp
index 7f9ee04933..d99ab50305 100644
--- a/tests/auto/qgl/tst_qgl.cpp
+++ b/tests/auto/qgl/tst_qgl.cpp
@@ -97,6 +97,7 @@ private slots:
void qglContextDefaultBindTexture();
void textureCleanup();
void threadImages();
+ void nullRectCrash();
};
tst_QGL::tst_QGL()
@@ -2367,6 +2368,28 @@ void tst_QGL::threadImages()
delete widget;
}
+void tst_QGL::nullRectCrash()
+{
+ if (!QGLFramebufferObject::hasOpenGLFramebufferObjects())
+ QSKIP("QGLFramebufferObject not supported on this platform", SkipSingle);
+
+ QGLWidget glw;
+ glw.makeCurrent();
+
+ QGLFramebufferObjectFormat fboFormat;
+ fboFormat.setAttachment(QGLFramebufferObject::CombinedDepthStencil);
+
+ QGLFramebufferObject *fbo = new QGLFramebufferObject(128, 128, fboFormat);
+
+ QPainter fboPainter(fbo);
+
+ fboPainter.setPen(QPen(QColor(255, 127, 127, 127), 2));
+ fboPainter.setBrush(QColor(127, 255, 127, 127));
+ fboPainter.drawRect(QRectF());
+
+ fboPainter.end();
+}
+
class tst_QGLDummy : public QObject
{
Q_OBJECT
diff --git a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
index b1730460c7..27b83303e9 100644
--- a/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
+++ b/tests/auto/qgraphicsgridlayout/tst_qgraphicsgridlayout.cpp
@@ -124,6 +124,8 @@ private slots:
void heightForWidth();
void widthForHeight();
void heightForWidthWithSpanning();
+ void stretchAndHeightForWidth();
+ void testDefaultAlignment();
};
class RectWidget : public QGraphicsWidget
@@ -702,6 +704,10 @@ void tst_QGraphicsGridLayout::columnMaximumWidth()
layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(0);
+ QCOMPARE(layout->minimumSize(), QSizeF(10+10+10, 10+10));
+ QCOMPARE(layout->preferredSize(), QSizeF(25+25+25, 25+25));
+ QCOMPARE(layout->maximumSize(), QSizeF(50+50+50, 50+50));
+
// should at least be a very large number
QVERIFY(layout->columnMaximumWidth(0) >= 10000);
QCOMPARE(layout->columnMaximumWidth(0), layout->columnMaximumWidth(1));
@@ -709,17 +715,65 @@ void tst_QGraphicsGridLayout::columnMaximumWidth()
layout->setColumnMaximumWidth(0, 20);
layout->setColumnMaximumWidth(2, 60);
- view.show();
- widget->show();
+ QCOMPARE(layout->minimumSize(), QSizeF(10+10+10, 10+10));
+ QCOMPARE(layout->preferredSize(), QSizeF(20+25+25, 25+25));
+ QCOMPARE(layout->maximumSize(), QSizeF(20+50+60, 50+50));
+ QCOMPARE(layout->maximumSize(), widget->maximumSize());
+
widget->resize(widget->effectiveSizeHint(Qt::PreferredSize));
- QApplication::processEvents();
+ layout->activate();
- QCOMPARE(layout->itemAt(0,0)->geometry().width(), 20.0);
- QCOMPARE(layout->itemAt(1,0)->geometry().width(), 20.0);
- QCOMPARE(layout->itemAt(0,1)->geometry().width(), 25.0);
- QCOMPARE(layout->itemAt(1,1)->geometry().width(), 25.0);
- QCOMPARE(layout->itemAt(0,2)->geometry().width(), 25.0);
- QCOMPARE(layout->itemAt(1,2)->geometry().width(), 25.0);
+ QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 20, 25));
+ QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 25, 20, 25));
+ QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20, 0, 25, 25));
+ QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20, 25, 25, 25));
+ QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(45, 0, 25, 25));
+ QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(45, 25, 25, 25));
+
+ layout->setColumnAlignment(2, Qt::AlignCenter);
+ widget->resize(widget->effectiveSizeHint(Qt::MaximumSize));
+ layout->activate();
+ QCOMPARE(layout->geometry(), QRectF(0,0,20+50+60, 50+50));
+ QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 20, 50));
+ QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 50, 20, 50));
+ QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20, 0, 50, 50));
+ QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20, 50, 50, 50));
+ QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(75, 0, 50, 50));
+ QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(75, 50, 50, 50));
+
+ for (int i = 0; i < layout->count(); i++)
+ layout->setAlignment(layout->itemAt(i), Qt::AlignRight | Qt::AlignBottom);
+ layout->activate();
+ QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 20, 50));
+ QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 50, 20, 50));
+ QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20, 0, 50, 50));
+ QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20, 50, 50, 50));
+ QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(80, 0, 50, 50));
+ QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(80, 50, 50, 50));
+ for (int i = 0; i < layout->count(); i++)
+ layout->setAlignment(layout->itemAt(i), Qt::AlignCenter);
+
+ layout->setMaximumSize(layout->maximumSize() + QSizeF(60,60));
+ widget->resize(widget->effectiveSizeHint(Qt::MaximumSize));
+ layout->activate();
+
+ QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 15, 20, 50));
+ QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 95, 20, 50));
+ QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20+30, 15, 50, 50));
+ QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20+30, 95, 50, 50));
+ QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(20+60+50+5, 15, 50, 50));
+ QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(20+60+50+5, 95, 50, 50));
+
+ layout->setMaximumSize(layout->preferredSize() + QSizeF(20,20));
+ widget->resize(widget->effectiveSizeHint(Qt::MaximumSize));
+ layout->activate();
+
+ QCOMPARE(layout->itemAt(0,0)->geometry(), QRectF(0, 0, 20, 35));
+ QCOMPARE(layout->itemAt(1,0)->geometry(), QRectF(0, 35, 20, 35));
+ QCOMPARE(layout->itemAt(0,1)->geometry(), QRectF(20, 0, 35, 35));
+ QCOMPARE(layout->itemAt(1,1)->geometry(), QRectF(20, 35, 35, 35));
+ QCOMPARE(layout->itemAt(0,2)->geometry(), QRectF(55, 0, 35, 35));
+ QCOMPARE(layout->itemAt(1,2)->geometry(), QRectF(55, 35, 35, 35));
delete widget;
}
@@ -2375,6 +2429,11 @@ static QSizeF hfw3(Qt::SizeHint, const QSizeF &constraint)
return result;
}
+static QSizeF hfw2(Qt::SizeHint /*which*/, const QSizeF &constraint)
+{
+ return QSizeF(constraint.width(), constraint.width());
+}
+
void tst_QGraphicsGridLayout::geometries_data()
{
@@ -2429,8 +2488,7 @@ void tst_QGraphicsGridLayout::geometries_data()
<< QRectF(0, 0, 50, 1) << QRectF(50, 0, 50, 1)
<< QRectF(0, 1, 50,100) << QRectF(50, 1, 50,400)
);
-#if 0
- QTest::newRow("hfw-100x408") << (ItemList()
+ QTest::newRow("hfw-h408") << (ItemList()
<< ItemDesc(0,0)
.minSize(QSizeF(1,1))
.preferredSize(QSizeF(50,10))
@@ -2444,9 +2502,9 @@ void tst_QGraphicsGridLayout::geometries_data()
.preferredSize(QSizeF(50,10))
.maxSize(QSizeF(100, 100))
<< ItemDesc(1,1)
- .minSize(QSizeF(40,40))
- .preferredSize(QSizeF(50,400))
- .maxSize(QSizeF(500, 500))
+ .sizeHint(Qt::MinimumSize, QSizeF(40,40))
+ .sizeHint(Qt::PreferredSize, QSizeF(50,400))
+ .sizeHint(Qt::MaximumSize, QSizeF(500, 500))
.dynamicConstraint(hfw1, Qt::Vertical)
)
<< QSizeF(100, 408)
@@ -2454,7 +2512,6 @@ void tst_QGraphicsGridLayout::geometries_data()
<< QRectF(0, 0, 50, 8) << QRectF(50, 0, 50, 8)
<< QRectF(0, 8, 50,100) << QRectF(50, 8, 50,400)
);
-#endif
QTest::newRow("hfw-h410") << (ItemList()
<< ItemDesc(0,0)
.minSize(QSizeF(1,1))
@@ -2717,6 +2774,150 @@ void tst_QGraphicsGridLayout::geometries_data()
);
#endif
+ QTest::newRow("hfw-h470") << (ItemList()
+ << ItemDesc(0,0)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(0,1)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(1,0)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(1,1)
+ .sizeHint(Qt::MinimumSize, QSizeF(40,40))
+ .sizeHint(Qt::PreferredSize, QSizeF(50,400))
+ .sizeHint(Qt::MaximumSize, QSizeF(500,500))
+ .dynamicConstraint(hfw1, Qt::Vertical)
+ )
+ << QSizeF(100, 470)
+ << (RectList()
+ << QRectF(0, 0, 50,70) << QRectF(50, 0, 50,70)
+ << QRectF(0, 70, 50,100) << QRectF(50, 70, 50,400)
+ );
+
+
+ // change layout width and verify
+ QTest::newRow("hfw-w100") << (ItemList()
+ << ItemDesc(0,0)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(0,1)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(1,0)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(1,1)
+ .sizeHint(Qt::MinimumSize, QSizeF(40,40))
+ .sizeHint(Qt::PreferredSize, QSizeF(50,400))
+ .sizeHint(Qt::MaximumSize, QSizeF(5000,5000))
+ .dynamicConstraint(hfw1, Qt::Vertical)
+ )
+ << QSizeF(100, 401)
+ << (RectList()
+ << QRectF( 0, 0, 50, 1) << QRectF( 50, 0, 50, 1)
+ << QRectF( 0, 1, 50, 100) << QRectF( 50, 1, 50, 400)
+ );
+
+ QTest::newRow("hfw-w160") << (ItemList()
+ << ItemDesc(0,0)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(0,1)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(1,0)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(1,1)
+ .sizeHint(Qt::MinimumSize, QSizeF(40,40))
+ .sizeHint(Qt::PreferredSize, QSizeF(50,400))
+ .sizeHint(Qt::MaximumSize, QSizeF(5000,5000))
+ .dynamicConstraint(hfw1, Qt::Vertical)
+ )
+ << QSizeF(160, 350)
+ << (RectList()
+ << QRectF( 0, 0, 80, 100) << QRectF( 80, 0, 80, 100)
+ << QRectF( 0, 100, 80, 100) << QRectF( 80, 100, 80, 250)
+ );
+
+ QTest::newRow("hfw-w500") << (ItemList()
+ << ItemDesc(0,0)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(0,1)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(1,0)
+ .minSize(QSizeF(1,1))
+ .preferredSize(QSizeF(50,10))
+ .maxSize(QSizeF(100, 100))
+ << ItemDesc(1,1)
+ .sizeHint(Qt::MinimumSize, QSizeF(40,40))
+ .sizeHint(Qt::PreferredSize, QSizeF(50,400))
+ .sizeHint(Qt::MaximumSize, QSizeF(5000,5000))
+ .dynamicConstraint(hfw1, Qt::Vertical)
+ )
+ << QSizeF(500, 200)
+ << (RectList()
+ << QRectF( 0, 0, 100, 100) << QRectF(100, 0, 100, 100)
+ << QRectF( 0, 100, 100, 100) << QRectF(100, 100, 400, 50)
+ );
+
+ QTest::newRow("hfw-alignment-defaults") << (ItemList()
+ << ItemDesc(0,0)
+ .minSize(QSizeF(100, 100))
+ .maxSize(QSizeF(100, 100))
+ .dynamicConstraint(hfw2, Qt::Vertical)
+ << ItemDesc(1,0)
+ .minSize(QSizeF(200, 200))
+ .maxSize(QSizeF(200, 200))
+ .dynamicConstraint(hfw2, Qt::Vertical)
+ << ItemDesc(2,0)
+ .minSize(QSizeF(300, 300))
+ .maxSize(QSizeF(300, 300))
+ )
+ << QSizeF(300, 600)
+ << (RectList()
+ << QRectF(0, 0, 100, 100)
+ << QRectF(0, 100, 200, 200)
+ << QRectF(0, 300, 300, 300)
+ );
+
+ QTest::newRow("hfw-alignment2") << (ItemList()
+ << ItemDesc(0,0)
+ .minSize(QSizeF(100, 100))
+ .maxSize(QSizeF(100, 100))
+ .dynamicConstraint(hfw2, Qt::Vertical)
+ .alignment(Qt::AlignRight)
+ << ItemDesc(1,0)
+ .minSize(QSizeF(200, 200))
+ .maxSize(QSizeF(200, 200))
+ .dynamicConstraint(hfw2, Qt::Vertical)
+ .alignment(Qt::AlignHCenter)
+ << ItemDesc(2,0)
+ .minSize(QSizeF(300, 300))
+ .maxSize(QSizeF(300, 300))
+ )
+ << QSizeF(300, 600)
+ << (RectList()
+ << QRectF(200, 0, 100, 100)
+ << QRectF( 50, 100, 200, 200)
+ << QRectF( 0, 300, 300, 300)
+ );
+
}
void tst_QGraphicsGridLayout::geometries()
@@ -2889,8 +3090,10 @@ void tst_QGraphicsGridLayout::heightForWidth()
w11->setSizePolicy(sp);
layout->addItem(w11, 1, 1);
- QSizeF prefSize = layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, -1));
- QCOMPARE(prefSize, QSizeF(50+50, 50+400));
+ QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(-1, -1)), QSizeF(2, 2));
+ QEXPECT_FAIL("", "QTBUG-14693", Continue);
+ QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, -1)), QSizeF(210, 110));
+ QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(-1, -1)), QSizeF(30100, 30100));
QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(2, -1)), QSizeF(2, 20001));
QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(2, -1)), QSizeF(2, 20050));
@@ -3008,23 +3211,128 @@ void tst_QGraphicsGridLayout::heightForWidthWithSpanning()
w->setSizePolicy(sp);
layout->addItem(w, 0,0,2,2);
- QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(-1, -1)), QSizeF(1, 100));
+ QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(-1, -1)), QSizeF(1, 1));
QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(-1, -1)), QSizeF(200, 100));
- QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(-1, -1)), QSizeF(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
+ QEXPECT_FAIL("", "Due to an old bug this wrongly returns QWIDGETSIZE_MAX", Continue);
+ QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(-1, -1)), QSizeF(30000, 30000));
QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(200, -1)), QSizeF(200, 100));
QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(200, -1)), QSizeF(200, 100));
- QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, QWIDGETSIZE_MAX));
+ QEXPECT_FAIL("", "Due to an old bug this wrongly returns QWIDGETSIZE_MAX", Continue);
+ QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, 100));
QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(2, -1)), QSizeF(2, 10000));
QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(2, -1)), QSizeF(2, 10000));
- QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(2, -1)), QSizeF(2, QWIDGETSIZE_MAX));
+ QEXPECT_FAIL("", "Due to an old bug this wrongly returns QWIDGETSIZE_MAX", Continue);
+ QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(2, -1)), QSizeF(2, 10000));
QCOMPARE(layout->effectiveSizeHint(Qt::MinimumSize, QSizeF(200, -1)), QSizeF(200, 100));
QCOMPARE(layout->effectiveSizeHint(Qt::PreferredSize, QSizeF(200, -1)), QSizeF(200, 100));
- QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, QWIDGETSIZE_MAX));
+ QEXPECT_FAIL("", "Due to an old bug this wrongly returns QWIDGETSIZE_MAX", Continue);
+ QCOMPARE(layout->effectiveSizeHint(Qt::MaximumSize, QSizeF(200, -1)), QSizeF(200, 10000));
}
+void tst_QGraphicsGridLayout::stretchAndHeightForWidth()
+{
+ QGraphicsWidget *widget = new QGraphicsWidget(0, Qt::Window);
+ QGraphicsGridLayout *layout = new QGraphicsGridLayout;
+ widget->setLayout(layout);
+ layout->setContentsMargins(0, 0, 0, 0);
+ layout->setSpacing(0);
+
+ RectWidget *w1 = new RectWidget;
+ w1->setSizeHint(Qt::MinimumSize, QSizeF(10, 10));
+ w1->setSizeHint(Qt::PreferredSize, QSizeF(100, 100));
+ w1->setSizeHint(Qt::MaximumSize, QSizeF(500, 500));
+ layout->addItem(w1, 0,0,1,1);
+
+ RectWidget *w2 = new RectWidget;
+ w2->setSizeHint(Qt::MinimumSize, QSizeF(10, 10));
+ w2->setSizeHint(Qt::PreferredSize, QSizeF(100, 100));
+ w2->setSizeHint(Qt::MaximumSize, QSizeF(500, 500));
+ layout->addItem(w2, 0,1,1,1);
+ layout->setColumnStretchFactor(1, 2);
+
+ QApplication::sendPostedEvents();
+ QGraphicsScene scene;
+ QGraphicsView *view = new QGraphicsView(&scene);
+
+ scene.addItem(widget);
+
+ view->show();
+
+ widget->resize(500, 100);
+ // w1 should stay at its preferred size
+ QCOMPARE(w1->geometry(), QRectF(0, 0, 100, 100));
+ QCOMPARE(w2->geometry(), QRectF(100, 0, 400, 100));
+
+
+ // only w1 has hfw
+ w1->setConstraintFunction(hfw);
+ QSizePolicy sp(QSizePolicy::Preferred, QSizePolicy::Preferred);
+ sp.setHeightForWidth(true);
+ w1->setSizePolicy(sp);
+ QApplication::sendPostedEvents();
+
+ QCOMPARE(w1->geometry(), QRectF(0, 0, 100, 200));
+ QCOMPARE(w2->geometry(), QRectF(100, 0, 400, 200));
+
+ // only w2 has hfw
+ w2->setConstraintFunction(hfw);
+ w2->setSizePolicy(sp);
+
+ w1->setConstraintFunction(0);
+ sp.setHeightForWidth(false);
+ w1->setSizePolicy(sp);
+ QApplication::sendPostedEvents();
+
+ QCOMPARE(w1->geometry(), QRectF(0, 0, 100, 100));
+ QCOMPARE(w2->geometry(), QRectF(100, 0, 400, 50));
+
+}
+
+void tst_QGraphicsGridLayout::testDefaultAlignment()
+{
+ QGraphicsWidget *widget = new QGraphicsWidget;
+ QGraphicsGridLayout *layout = new QGraphicsGridLayout(widget);
+ layout->setContentsMargins(0, 0, 0, 0);
+ layout->setSpacing(0);
+
+ QGraphicsWidget *w = new QGraphicsWidget;
+ w->setMinimumSize(50,50);
+ w->setMaximumSize(50,50);
+ layout->addItem(w,0,0);
+
+ //Default alignment should be to the top-left
+
+ //First, check by forcing the layout to be bigger
+ layout->setMinimumSize(100,100);
+ layout->activate();
+ QCOMPARE(layout->geometry(), QRectF(0,0,100,100));
+ QCOMPARE(w->geometry(), QRectF(0,0,50,50));
+ layout->setMinimumSize(-1,-1);
+
+ //Second, check by forcing the column and row to be bigger instead
+ layout->setColumnMinimumWidth(0, 100);
+ layout->setRowMinimumHeight(0, 100);
+ layout->activate();
+ QCOMPARE(layout->geometry(), QRectF(0,0,100,100));
+ QCOMPARE(w->geometry(), QRectF(0,0,50,50));
+ layout->setMinimumSize(-1,-1);
+ layout->setColumnMinimumWidth(0, 0);
+ layout->setRowMinimumHeight(0, 0);
+
+
+ //Third, check by adding a larger item in the column
+ QGraphicsWidget *w2 = new QGraphicsWidget;
+ w2->setMinimumSize(100,100);
+ w2->setMaximumSize(100,100);
+ layout->addItem(w2,1,0);
+ layout->activate();
+ QCOMPARE(layout->geometry(), QRectF(0,0,100,150));
+ QCOMPARE(w->geometry(), QRectF(0,0,50,50));
+ QCOMPARE(w2->geometry(), QRectF(0,50,100,100));
+}
QTEST_MAIN(tst_QGraphicsGridLayout)
#include "tst_qgraphicsgridlayout.moc"
diff --git a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
index 6107fa11e7..965e340e75 100644
--- a/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
+++ b/tests/auto/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
@@ -103,6 +103,9 @@ private slots:
void removeLayout();
void avoidRecursionInInsertItem();
void styleInfoLeak();
+ void testAlignmentInLargerLayout();
+ void testOffByOneInLargerLayout();
+ void testDefaultAlignment();
// Task specific tests
void task218400_insertStretchCrash();
@@ -1465,6 +1468,121 @@ void tst_QGraphicsLinearLayout::task218400_insertStretchCrash()
form->setLayout(layout); // crash
}
+void tst_QGraphicsLinearLayout::testAlignmentInLargerLayout()
+{
+ QGraphicsScene *scene = new QGraphicsScene;
+ QGraphicsWidget *form = new QGraphicsWidget;
+ scene->addItem(form);
+ QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, form);
+ layout->setSpacing(0);
+ layout->setContentsMargins(0,0,0,0);
+
+ QGraphicsWidget *a = new QGraphicsWidget;
+ a->setMaximumSize(100,100);
+ layout->addItem(a);
+
+ QCOMPARE(form->maximumSize(), QSizeF(100,100));
+ QCOMPARE(layout->maximumSize(), QSizeF(100,100));
+ layout->setMinimumSize(QSizeF(200,200));
+ layout->setMaximumSize(QSizeF(200,200));
+
+ layout->setAlignment(a, Qt::AlignCenter);
+ layout->activate();
+ QCOMPARE(a->geometry(), QRectF(50,50,100,100));
+
+ layout->setAlignment(a, Qt::AlignRight | Qt::AlignBottom);
+ layout->activate();
+ QCOMPARE(a->geometry(), QRectF(100,100,100,100));
+
+ layout->setAlignment(a, Qt::AlignHCenter | Qt::AlignTop);
+ layout->activate();
+ QCOMPARE(a->geometry(), QRectF(50,0,100,100));
+
+ QGraphicsWidget *b = new QGraphicsWidget;
+ b->setMaximumSize(100,100);
+ layout->addItem(b);
+
+ layout->setAlignment(a, Qt::AlignCenter);
+ layout->setAlignment(b, Qt::AlignCenter);
+ layout->activate();
+ QCOMPARE(a->geometry(), QRectF(50,0,100,100));
+ QCOMPARE(b->geometry(), QRectF(50,100,100,100));
+
+ layout->setAlignment(a, Qt::AlignRight | Qt::AlignBottom);
+ layout->setAlignment(b, Qt::AlignLeft | Qt::AlignTop);
+ layout->activate();
+ QCOMPARE(a->geometry(), QRectF(100,0,100,100));
+ QCOMPARE(b->geometry(), QRectF(0,100,100,100));
+}
+
+void tst_QGraphicsLinearLayout::testOffByOneInLargerLayout() {
+ QGraphicsScene *scene = new QGraphicsScene;
+ QGraphicsWidget *form = new QGraphicsWidget;
+ scene->addItem(form);
+ QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, form);
+ layout->setSpacing(0);
+ layout->setContentsMargins(0,0,0,0);
+
+ QGraphicsWidget *a = new QGraphicsWidget;
+ QGraphicsWidget *b = new QGraphicsWidget;
+ a->setMaximumSize(100,100);
+ b->setMaximumSize(100,100);
+ layout->addItem(a);
+ layout->addItem(b);
+
+ layout->setAlignment(a, Qt::AlignRight | Qt::AlignBottom);
+ layout->setAlignment(b, Qt::AlignLeft | Qt::AlignTop);
+ layout->setMinimumSize(QSizeF(101,201));
+ layout->setMaximumSize(QSizeF(101,201));
+ layout->activate();
+ QCOMPARE(a->geometry(), QRectF(1,0.5,100,100));
+ QCOMPARE(b->geometry(), QRectF(0,100.5,100,100));
+
+ layout->setMinimumSize(QSizeF(100,200));
+ layout->setMaximumSize(QSizeF(100,200));
+ layout->activate();
+ QCOMPARE(a->geometry(), QRectF(0,0,100,100));
+ QCOMPARE(b->geometry(), QRectF(0,100,100,100));
+
+ layout->setMinimumSize(QSizeF(99,199));
+ layout->setMaximumSize(QSizeF(99,199));
+ layout->activate();
+ QCOMPARE(a->geometry(), QRectF(0,0,99,99.5));
+ QCOMPARE(b->geometry(), QRectF(0,99.5,99,99.5));
+}
+void tst_QGraphicsLinearLayout::testDefaultAlignment()
+{
+ QGraphicsWidget *widget = new QGraphicsWidget;
+ QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical, widget);
+ layout->setContentsMargins(0, 0, 0, 0);
+ layout->setSpacing(0);
+
+ QGraphicsWidget *w = new QGraphicsWidget;
+ w->setMinimumSize(50,50);
+ w->setMaximumSize(50,50);
+ layout->addItem(w);
+
+ //Default alignment should be to the top-left
+ QCOMPARE(layout->alignment(w), 0);
+
+ //First, check by forcing the layout to be bigger
+ layout->setMinimumSize(100,100);
+ layout->activate();
+ QCOMPARE(layout->geometry(), QRectF(0,0,100,100));
+ QCOMPARE(w->geometry(), QRectF(0,0,50,50));
+ layout->setMinimumSize(-1,-1);
+
+ //Second, check by adding a larger item in the column
+ QGraphicsWidget *w2 = new QGraphicsWidget;
+ w2->setMinimumSize(100,100);
+ w2->setMaximumSize(100,100);
+ layout->addItem(w2);
+ layout->activate();
+ QCOMPARE(layout->geometry(), QRectF(0,0,100,150));
+ QCOMPARE(w->geometry(), QRectF(0,0,50,50));
+ QCOMPARE(w2->geometry(), QRectF(0,50,100,100));
+}
+
QTEST_MAIN(tst_QGraphicsLinearLayout)
#include "tst_qgraphicslinearlayout.moc"
diff --git a/tests/auto/qkeysequence/tst_qkeysequence.cpp b/tests/auto/qkeysequence/tst_qkeysequence.cpp
index 256f9f3ffc..d18f6e3a9c 100644
--- a/tests/auto/qkeysequence/tst_qkeysequence.cpp
+++ b/tests/auto/qkeysequence/tst_qkeysequence.cpp
@@ -415,7 +415,7 @@ void tst_QKeySequence::mnemonic()
#ifndef QT_NO_DEBUG
if (warning) {
- QString str = QString::fromLatin1("QKeySequence::mnemonic: \"%1\" contains multiple occurences of '&'").arg(string);
+ QString str = QString::fromLatin1("QKeySequence::mnemonic: \"%1\" contains multiple occurrences of '&'").arg(string);
QTest::ignoreMessage(QtWarningMsg, qPrintable(str));
// qWarning(qPrintable(str));
}
diff --git a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp
index 97bbf26d6e..5a50e4912f 100644
--- a/tests/auto/qscriptvalue/tst_qscriptvalue.cpp
+++ b/tests/auto/qscriptvalue/tst_qscriptvalue.cpp
@@ -1254,6 +1254,10 @@ void tst_QScriptValue::toVariant()
QCOMPARE(number.toVariant(), QVariant(123.0));
QCOMPARE(qscriptvalue_cast<QVariant>(number), QVariant(123.0));
+ QScriptValue intNumber = QScriptValue(&eng, (qint32)123);
+ QCOMPARE(intNumber.toVariant().type(), QVariant((qint32)123).type());
+ QCOMPARE((qscriptvalue_cast<QVariant>(number)).type(), QVariant((qint32)123).type());
+
QScriptValue falskt = QScriptValue(&eng, false);
QCOMPARE(falskt.toVariant(), QVariant(false));
QCOMPARE(qscriptvalue_cast<QVariant>(falskt), QVariant(false));
diff --git a/tests/auto/qthread/tst_qthread.cpp b/tests/auto/qthread/tst_qthread.cpp
index f290a2b0bd..1e3fc28013 100644
--- a/tests/auto/qthread/tst_qthread.cpp
+++ b/tests/auto/qthread/tst_qthread.cpp
@@ -106,7 +106,13 @@ private slots:
void adoptMultipleThreads();
void QTBUG13810_exitAndStart();
+ void QTBUG15378_exitAndExec();
+
void connectThreadFinishedSignalToObjectDeleteLaterSlot();
+ void wait2();
+ void wait3_slowDestructor();
+ void destroyFinishRace();
+ void startFinishRace();
void stressTest();
};
@@ -976,6 +982,44 @@ void tst_QThread::QTBUG13810_exitAndStart()
QCOMPARE(sync1.m_prop, 89);
}
+void tst_QThread::QTBUG15378_exitAndExec()
+{
+ class Thread : public QThread {
+ public:
+ QSemaphore sem1;
+ QSemaphore sem2;
+ volatile int value;
+ void run() {
+ sem1.acquire();
+ value = exec(); //First entrence
+ sem2.release();
+ value = exec(); // Second loop
+ }
+ };
+ Thread thread;
+ thread.value = 0;
+ thread.start();
+ thread.exit(556);
+ thread.sem1.release(); //should exit the first loop
+ thread.sem2.acquire();
+ int v = thread.value;
+ QCOMPARE(v, 556);
+
+ //test that the thread is running by executing queued connected signal there
+ Syncronizer sync1;
+ sync1.moveToThread(&thread);
+ Syncronizer sync2;
+ sync2.moveToThread(&thread);
+ connect(&sync2, SIGNAL(propChanged(int)), &sync1, SLOT(setProp(int)), Qt::QueuedConnection);
+ connect(&sync1, SIGNAL(propChanged(int)), &thread, SLOT(quit()), Qt::QueuedConnection);
+ QMetaObject::invokeMethod(&sync2, "setProp", Qt::QueuedConnection , Q_ARG(int, 89));
+ QTest::qWait(50);
+ while(!thread.wait(10))
+ QTest::qWait(10);
+ QCOMPARE(sync2.m_prop, 89);
+ QCOMPARE(sync1.m_prop, 89);
+}
+
void tst_QThread::connectThreadFinishedSignalToObjectDeleteLaterSlot()
{
QThread thread;
@@ -990,5 +1034,121 @@ void tst_QThread::connectThreadFinishedSignalToObjectDeleteLaterSlot()
QVERIFY(p.isNull());
}
+class Waiting_Thread : public QThread
+{
+public:
+ enum { WaitTime = 800 };
+ QMutex mutex;
+ QWaitCondition cond1;
+ QWaitCondition cond2;
+
+ void run()
+ {
+ QMutexLocker locker(&mutex);
+ cond1.wait(&mutex);
+ cond2.wait(&mutex, WaitTime);
+ }
+};
+
+void tst_QThread::wait2()
+{
+ QElapsedTimer timer;
+ Waiting_Thread thread;
+ thread.start();
+ timer.start();
+ QVERIFY(!thread.wait(Waiting_Thread::WaitTime));
+ qint64 elapsed = timer.elapsed();
+
+ QVERIFY(elapsed >= Waiting_Thread::WaitTime);
+ //QVERIFY(elapsed < Waiting_Thread::WaitTime * 1.4);
+
+ timer.start();
+ thread.cond1.wakeOne();
+ QVERIFY(thread.wait(/*Waiting_Thread::WaitTime * 1.4*/));
+ elapsed = timer.elapsed();
+ QVERIFY(elapsed >= Waiting_Thread::WaitTime);
+ //QVERIFY(elapsed < Waiting_Thread::WaitTime * 1.4);
+}
+
+
+class SlowSlotObject : public QObject {
+ Q_OBJECT
+public:
+ QMutex mutex;
+ QWaitCondition cond;
+public slots:
+ void slowSlot() {
+ QMutexLocker locker(&mutex);
+ cond.wait(&mutex);
+ }
+};
+
+void tst_QThread::wait3_slowDestructor()
+{
+ SlowSlotObject slow;
+ QThread thread;
+ QObject::connect(&thread, SIGNAL(finished()), &slow, SLOT(slowSlot()), Qt::DirectConnection);
+
+ enum { WaitTime = 1800 };
+ QElapsedTimer timer;
+
+ thread.start();
+ thread.quit();
+ //the quit function will cause the thread to finish and enter the slowSlot that is blocking
+
+ timer.start();
+ QVERIFY(!thread.wait(Waiting_Thread::WaitTime));
+ qint64 elapsed = timer.elapsed();
+
+ QVERIFY(elapsed >= Waiting_Thread::WaitTime);
+ //QVERIFY(elapsed < Waiting_Thread::WaitTime * 1.4);
+
+ slow.cond.wakeOne();
+ //now the thread should finish quickly
+ QVERIFY(thread.wait(one_minute));
+}
+
+void tst_QThread::destroyFinishRace()
+{
+ class Thread : public QThread { void run() {} };
+ for (int i = 0; i < 15; i++) {
+ Thread *thr = new Thread;
+ connect(thr, SIGNAL(finished()), thr, SLOT(deleteLater()));
+ QWeakPointer<QThread> weak(static_cast<QThread*>(thr));
+ thr->start();
+ while (weak) {
+ qApp->processEvents();
+ qApp->processEvents();
+ qApp->processEvents();
+ qApp->processEvents();
+ }
+ }
+}
+
+void tst_QThread::startFinishRace()
+{
+ class Thread : public QThread {
+ public:
+ Thread() : i (50) {}
+ void run() {
+ i--;
+ if (!i) disconnect(this, SIGNAL(finished()), 0, 0);
+ }
+ int i;
+ };
+ for (int i = 0; i < 15; i++) {
+ Thread thr;
+ connect(&thr, SIGNAL(finished()), &thr, SLOT(start()));
+ thr.start();
+ while (!thr.isFinished() || thr.i != 0) {
+ qApp->processEvents();
+ qApp->processEvents();
+ qApp->processEvents();
+ qApp->processEvents();
+ }
+ QCOMPARE(thr.i, 0);
+ }
+}
+
QTEST_MAIN(tst_QThread)
#include "tst_qthread.moc"
diff --git a/tests/auto/qthreadstorage/tst_qthreadstorage.cpp b/tests/auto/qthreadstorage/tst_qthreadstorage.cpp
index ed86165731..0237dac1e8 100644
--- a/tests/auto/qthreadstorage/tst_qthreadstorage.cpp
+++ b/tests/auto/qthreadstorage/tst_qthreadstorage.cpp
@@ -77,6 +77,9 @@ private slots:
void adoptedThreads();
void ensureCleanupOrder();
void QTBUG13877_crashOnExit();
+ void QTBUG14579_leakInDestructor();
+ void QTBUG14579_resetInDestructor();
+ void valueBased();
};
class Pointer
@@ -310,5 +313,192 @@ void tst_QThreadStorage::QTBUG13877_crashOnExit()
QVERIFY(process.exitStatus() != QProcess::CrashExit);
}
+// S stands for thread Safe.
+class SPointer
+{
+public:
+ static QBasicAtomicInt count;
+ inline SPointer() { count.ref(); }
+ inline ~SPointer() { count.deref(); }
+ inline SPointer(const SPointer &other) { count.ref(); }
+};
+QBasicAtomicInt SPointer::count = Q_BASIC_ATOMIC_INITIALIZER(0);
+
+Q_GLOBAL_STATIC(QThreadStorage<SPointer *>, QTBUG14579_pointers1)
+Q_GLOBAL_STATIC(QThreadStorage<SPointer *>, QTBUG14579_pointers2)
+
+class QTBUG14579_class
+{
+public:
+ SPointer member;
+ inline ~QTBUG14579_class() {
+ QVERIFY(!QTBUG14579_pointers1()->hasLocalData());
+ QVERIFY(!QTBUG14579_pointers2()->hasLocalData());
+ QTBUG14579_pointers2()->setLocalData(new SPointer);
+ QTBUG14579_pointers1()->setLocalData(new SPointer);
+ QVERIFY(QTBUG14579_pointers1()->hasLocalData());
+ QVERIFY(QTBUG14579_pointers2()->hasLocalData());
+ }
+};
+
+
+void tst_QThreadStorage::QTBUG14579_leakInDestructor()
+{
+ class Thread : public QThread
+ {
+ public:
+ QThreadStorage<QTBUG14579_class *> &tls;
+
+ Thread(QThreadStorage<QTBUG14579_class *> &t) : tls(t) { }
+
+ void run()
+ {
+ QVERIFY(!tls.hasLocalData());
+ tls.setLocalData(new QTBUG14579_class);
+ QVERIFY(tls.hasLocalData());
+ }
+ };
+ int c = SPointer::count;
+
+ QThreadStorage<QTBUG14579_class *> tls;
+
+ QVERIFY(!QTBUG14579_pointers1()->hasLocalData());
+ QThreadStorage<int *> tls2; //add some more tls to make sure ids are not following each other too much
+ QThreadStorage<int *> tls3;
+ QVERIFY(!tls2.hasLocalData());
+ QVERIFY(!tls3.hasLocalData());
+ QVERIFY(!tls.hasLocalData());
+
+ Thread t1(tls);
+ Thread t2(tls);
+ Thread t3(tls);
+
+ t1.start();
+ t2.start();
+ t3.start();
+
+ QVERIFY(t1.wait());
+ QVERIFY(t2.wait());
+ QVERIFY(t3.wait());
+
+ //check all the constructed things have been destructed
+ QCOMPARE(int(SPointer::count), c);
+}
+
+
+class QTBUG14579_reset;
+Q_GLOBAL_STATIC(QThreadStorage<QTBUG14579_reset *>, QTBUG14579_resetTls)
+
+class QTBUG14579_reset {
+public:
+ SPointer member;
+ ~QTBUG14579_reset() {
+ //Quite stupid, but WTF::ThreadSpecific<T>::destroy does it.
+ QTBUG14579_resetTls()->setLocalData(this);
+ }
+};
+
+
+void tst_QThreadStorage::QTBUG14579_resetInDestructor()
+{
+ class Thread : public QThread
+ {
+ public:
+ void run()
+ {
+ QVERIFY(!QTBUG14579_resetTls()->hasLocalData());
+ QTBUG14579_resetTls()->setLocalData(new QTBUG14579_reset);
+ QVERIFY(QTBUG14579_resetTls()->hasLocalData());
+ }
+ };
+ int c = SPointer::count;
+
+ Thread t1;
+ Thread t2;
+ Thread t3;
+ t1.start();
+ t2.start();
+ t3.start();
+ QVERIFY(t1.wait());
+ QVERIFY(t2.wait());
+ QVERIFY(t3.wait());
+
+ //check all the constructed things have been destructed
+ QCOMPARE(int(SPointer::count), c);
+}
+
+
+void tst_QThreadStorage::valueBased()
+{
+ struct Thread : QThread {
+ QThreadStorage<SPointer> &tlsSPointer;
+ QThreadStorage<QString> &tlsString;
+ QThreadStorage<int> &tlsInt;
+
+ int someNumber;
+ QString someString;
+ Thread(QThreadStorage<SPointer> &t1, QThreadStorage<QString> &t2, QThreadStorage<int> &t3)
+ : tlsSPointer(t1), tlsString(t2), tlsInt(t3) { }
+
+ void run() {
+ /*QVERIFY(!tlsSPointer.hasLocalData());
+ QVERIFY(!tlsString.hasLocalData());
+ QVERIFY(!tlsInt.hasLocalData());*/
+ SPointer pointercopy = tlsSPointer.localData();
+
+ //Default constructed values
+ QVERIFY(tlsString.localData().isNull());
+ QCOMPARE(tlsInt.localData(), 0);
+
+ //setting
+ tlsString.setLocalData(someString);
+ tlsInt.setLocalData(someNumber);
+
+ QCOMPARE(tlsString.localData(), someString);
+ QCOMPARE(tlsInt.localData(), someNumber);
+
+ //changing
+ tlsSPointer.setLocalData(SPointer());
+ tlsInt.localData() += 42;
+ tlsString.localData().append(QLatin1String(" world"));
+
+ QCOMPARE(tlsString.localData(), (someString + QLatin1String(" world")));
+ QCOMPARE(tlsInt.localData(), (someNumber + 42));
+
+ // operator=
+ tlsString.localData() = QString::number(someNumber);
+ QCOMPARE(tlsString.localData().toInt(), someNumber);
+ }
+ };
+
+ QThreadStorage<SPointer> tlsSPointer;
+ QThreadStorage<QString> tlsString;
+ QThreadStorage<int> tlsInt;
+
+ int c = SPointer::count;
+
+ Thread t1(tlsSPointer, tlsString, tlsInt);
+ Thread t2(tlsSPointer, tlsString, tlsInt);
+ Thread t3(tlsSPointer, tlsString, tlsInt);
+ t1.someNumber = 42;
+ t2.someNumber = -128;
+ t3.someNumber = 78;
+ t1.someString = "hello";
+ t2.someString = "trolltech";
+ t3.someString = "nokia";
+
+ t1.start();
+ t2.start();
+ t3.start();
+
+ QVERIFY(t1.wait());
+ QVERIFY(t2.wait());
+ QVERIFY(t3.wait());
+
+ QCOMPARE(c, int(SPointer::count));
+
+}
+
+
QTEST_MAIN(tst_QThreadStorage)
#include "tst_qthreadstorage.moc"
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index d230f2cb6e..ae46fe685a 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -4376,7 +4376,6 @@ class WinIdChangeWidget : public QWidget {
public:
WinIdChangeWidget(QWidget *p = 0)
: QWidget(p)
- , m_winIdChangeEventCount(0)
{
}
@@ -4384,13 +4383,14 @@ protected:
bool event(QEvent *e)
{
if (e->type() == QEvent::WinIdChange) {
- ++m_winIdChangeEventCount;
+ m_winIdList.append(internalWinId());
return true;
}
return QWidget::event(e);
}
public:
- int m_winIdChangeEventCount;
+ QList<WId> m_winIdList;
+ int winIdChangeEventCount() const { return m_winIdList.count(); }
};
void tst_QWidget::winIdChangeEvent()
@@ -4401,7 +4401,7 @@ void tst_QWidget::winIdChangeEvent()
const WId winIdBefore = widget.internalWinId();
const WId winIdAfter = widget.winId();
QVERIFY(winIdBefore != winIdAfter);
- QCOMPARE(widget.m_winIdChangeEventCount, 1);
+ QCOMPARE(widget.winIdChangeEventCount(), 1);
}
{
@@ -4410,11 +4410,13 @@ void tst_QWidget::winIdChangeEvent()
QWidget parent1, parent2;
WinIdChangeWidget child(&parent1);
const WId winIdBefore = child.winId();
- QCOMPARE(child.m_winIdChangeEventCount, 1);
+ QCOMPARE(child.winIdChangeEventCount(), 1);
child.setParent(&parent2);
const WId winIdAfter = child.internalWinId();
QVERIFY(winIdBefore != winIdAfter);
- QCOMPARE(child.m_winIdChangeEventCount, 2);
+ QCOMPARE(child.winIdChangeEventCount(), 3);
+ // winId is set to zero during reparenting
+ QVERIFY(0 == child.m_winIdList[1]);
}
{
@@ -4424,15 +4426,16 @@ void tst_QWidget::winIdChangeEvent()
QWidget parent(&grandparent1);
WinIdChangeWidget child(&parent);
const WId winIdBefore = child.winId();
- QCOMPARE(child.m_winIdChangeEventCount, 1);
+ QCOMPARE(child.winIdChangeEventCount(), 1);
parent.setParent(&grandparent2);
const WId winIdAfter = child.internalWinId();
#ifdef Q_OS_SYMBIAN
QVERIFY(winIdBefore != winIdAfter);
- QCOMPARE(child.m_winIdChangeEventCount, 2);
+ QVERIFY(winIdAfter != 0);
+ QCOMPARE(child.winIdChangeEventCount(), 2);
#else
QCOMPARE(winIdBefore, winIdAfter);
- QCOMPARE(child.m_winIdChangeEventCount, 1);
+ QCOMPARE(child.winIdChangeEventCount(), 1);
#endif
}
@@ -4444,7 +4447,7 @@ void tst_QWidget::winIdChangeEvent()
child.setParent(&parent2);
const WId winIdAfter = child.internalWinId();
QCOMPARE(winIdBefore, winIdAfter);
- QCOMPARE(child.m_winIdChangeEventCount, 0);
+ QCOMPARE(child.winIdChangeEventCount(), 0);
}
{
@@ -4453,12 +4456,14 @@ void tst_QWidget::winIdChangeEvent()
WinIdChangeWidget child(&parent);
child.winId();
const WId winIdBefore = child.internalWinId();
- QCOMPARE(child.m_winIdChangeEventCount, 1);
+ QCOMPARE(child.winIdChangeEventCount(), 1);
const Qt::WindowFlags flags = child.windowFlags();
child.setWindowFlags(flags | Qt::Window);
const WId winIdAfter = child.internalWinId();
QVERIFY(winIdBefore != winIdAfter);
- QCOMPARE(child.m_winIdChangeEventCount, 2);
+ QCOMPARE(child.winIdChangeEventCount(), 3);
+ // winId is set to zero during reparenting
+ QVERIFY(0 == child.m_winIdList[1]);
}
}
diff --git a/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro
new file mode 100644
index 0000000000..ff85fe8e00
--- /dev/null
+++ b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/qgraphicslinearlayout.pro
@@ -0,0 +1,6 @@
+load(qttest_p4)
+TEMPLATE = app
+TARGET = tst_bench_qgraphicslinearlayout
+
+SOURCES += tst_qgraphicslinearlayout.cpp
+
diff --git a/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
new file mode 100644
index 0000000000..dc415fb5d1
--- /dev/null
+++ b/tests/benchmarks/gui/graphicsview/qgraphicslinearlayout/tst_qgraphicslinearlayout.cpp
@@ -0,0 +1,133 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+
+#include <QtTest/QtTest>
+#include <QtGui/qgraphicslinearlayout.h>
+#include <QtGui/qgraphicswidget.h>
+#include <QtGui/qgraphicsview.h>
+
+class tst_QGraphicsLinearLayout : public QObject
+{
+ Q_OBJECT
+public:
+ tst_QGraphicsLinearLayout() {}
+ ~tst_QGraphicsLinearLayout() {}
+
+private slots:
+ void heightForWidth_data();
+ void heightForWidth();
+};
+
+
+struct MySquareWidget : public QGraphicsWidget
+{
+ MySquareWidget() {}
+ virtual QSizeF sizeHint ( Qt::SizeHint which, const QSizeF & constraint = QSizeF() ) const
+ {
+ if (which != Qt::PreferredSize)
+ return QGraphicsWidget::sizeHint(which, constraint);
+ if (constraint.width() < 0)
+ return QGraphicsWidget::sizeHint(which, constraint);
+ return QSizeF(constraint.width(), constraint.width());
+ }
+};
+
+void tst_QGraphicsLinearLayout::heightForWidth_data()
+{
+ QTest::addColumn<bool>("hfw");
+ QTest::addColumn<bool>("nested");
+
+ QTest::newRow("hfw") << true << false;
+ QTest::newRow("hfw, nested") << true << true;
+ QTest::newRow("not hfw") << false << false;
+ QTest::newRow("not hfw, nested") << false << true;
+}
+
+void tst_QGraphicsLinearLayout::heightForWidth()
+{
+ QFETCH(bool, hfw);
+ QFETCH(bool, nested);
+
+ QGraphicsScene scene;
+ QGraphicsWidget *form = new QGraphicsWidget;
+ scene.addItem(form);
+
+ QGraphicsLinearLayout *outerlayout = 0;
+ if (nested) {
+ outerlayout = new QGraphicsLinearLayout(form);
+ for (int i = 0; i < 8; i++) {
+ QGraphicsLinearLayout *layout = new QGraphicsLinearLayout(Qt::Vertical);
+ outerlayout->addItem(layout);
+ outerlayout = layout;
+ }
+ }
+
+ QGraphicsLinearLayout *qlayout = 0;
+ qlayout = new QGraphicsLinearLayout(Qt::Vertical);
+ if (nested)
+ outerlayout->addItem(qlayout);
+ else
+ form->setLayout(qlayout);
+
+ MySquareWidget *widget = new MySquareWidget;
+ for (int i = 0; i < 1; i++) {
+ widget = new MySquareWidget;
+ QSizePolicy sizepolicy = widget->sizePolicy();
+ sizepolicy.setHeightForWidth(hfw);
+ widget->setSizePolicy(sizepolicy);
+ qlayout->addItem(widget);
+ }
+ // make sure only one iteration is done.
+ // run with tst_QGraphicsLinearLayout.exe "heightForWidth" -tickcounter -iterations 6
+ // this will iterate 6 times the whole test, (not only the benchmark)
+ // which should reduce warmup time and give a realistic picture of the performance of
+ // effectiveSizeHint()
+ QSizeF constraint(hfw ? 100 : -1, -1);
+ QBENCHMARK {
+ (void)form->effectiveSizeHint(Qt::PreferredSize, constraint);
+ }
+
+}
+
+
+QTEST_MAIN(tst_QGraphicsLinearLayout)
+
+#include "tst_qgraphicslinearlayout.moc"
diff --git a/tools/assistant/tools/assistant/helpenginewrapper.cpp b/tools/assistant/tools/assistant/helpenginewrapper.cpp
index ba54dd6036..553ffc4bfc 100644
--- a/tools/assistant/tools/assistant/helpenginewrapper.cpp
+++ b/tools/assistant/tools/assistant/helpenginewrapper.cpp
@@ -145,7 +145,7 @@ HelpEngineWrapper::HelpEngineWrapper(const QString &collectionFile)
/*
* Otherwise we will waste time if several new docs are found,
- * because we will start to index them, only to be interupted
+ * because we will start to index them, only to be interrupted
* by the next request. Also, there is a nasty SQLITE bug that will
* cause the application to hang for minutes in that case.
* This call is reverted by initialDocSetupDone(), which must be
diff --git a/tools/configure/configure.pro b/tools/configure/configure.pro
index 810f00603d..0a49fbecc7 100644
--- a/tools/configure/configure.pro
+++ b/tools/configure/configure.pro
@@ -63,8 +63,8 @@ HEADERS = configureapp.h environment.h tools.h\
$$QT_SOURCE_TREE/src/corelib/tools/qunicodetables_p.h \
$$QT_SOURCE_TREE/src/corelib/xml/qxmlstream.h \
$$QT_SOURCE_TREE/src/corelib/xml/qxmlutils_p.h \
- $$QT_SOURCE_TREE/tools/shared/symbian/epocroot.h \
- $$QT_SOURCE_TREE/tools/shared/windows/registry.h
+ $$QT_SOURCE_TREE/tools/shared/symbian/epocroot_p.h \
+ $$QT_SOURCE_TREE/tools/shared/windows/registry_p.h
SOURCES = main.cpp configureapp.cpp environment.cpp tools.cpp \
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index 3ca57b4cf9..479fd4c5ac 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -3236,7 +3236,8 @@ void Configure::generateConfigfiles()
}
// Copy configured mkspec to default directory, but remove the old one first, if there is any
- QString defSpec = buildPath + "/mkspecs/default";
+ QString mkspecsPath = buildPath + "/mkspecs";
+ QString defSpec = mkspecsPath + "/default";
QFileInfo defSpecInfo(defSpec);
if (defSpecInfo.exists()) {
if (!Environment::rmdir(defSpec)) {
@@ -3246,21 +3247,22 @@ void Configure::generateConfigfiles()
}
}
- QString spec = dictionary.contains("XQMAKESPEC") ? dictionary["XQMAKESPEC"] : dictionary["QMAKESPEC"];
- QString pltSpec = sourcePath + "/mkspecs/" + spec;
- if (!Environment::cpdir(pltSpec, defSpec)) {
- cout << "Couldn't update default mkspec! Does " << qPrintable(pltSpec) << " exist?" << endl;
+ QDir mkspecsDir(mkspecsPath);
+ if (!mkspecsDir.mkdir("default")) {
+ cout << "Couldn't create default mkspec dir!" << endl;
dictionary["DONE"] = "error";
return;
}
+ QString spec = dictionary.contains("XQMAKESPEC") ? dictionary["XQMAKESPEC"] : dictionary["QMAKESPEC"];
+ QString pltSpec = sourcePath + "/mkspecs/" + spec;
outName = defSpec + "/qmake.conf";
- ::SetFileAttributes((wchar_t*)outName.utf16(), FILE_ATTRIBUTE_NORMAL);
QFile qmakeConfFile(outName);
- if (qmakeConfFile.open(QFile::Append | QFile::WriteOnly | QFile::Text)) {
+ if (qmakeConfFile.open(QFile::WriteOnly | QFile::Text)) {
QTextStream qmakeConfStream;
qmakeConfStream.setDevice(&qmakeConfFile);
- qmakeConfStream << endl << "QMAKESPEC_ORIGINAL=" << pltSpec << endl;
+ qmakeConfStream << "QMAKESPEC_ORIGINAL=" << pltSpec << endl << endl;
+ qmakeConfStream << "include(" << pltSpec << "/qmake.conf)" << endl;
qmakeConfStream.flush();
qmakeConfFile.close();
}
@@ -3340,7 +3342,7 @@ void Configure::generateConfigfiles()
if (tmpFile3.open()) {
tmpStream.setDevice(&tmpFile3);
tmpStream << "/* Evaluation license key */" << endl
- << "static const char qt_eval_key_data [512 + 12] = \"qt_qevalkey=" << licenseInfo["LICENSEKEYEXT"] << "\";" << endl;
+ << "static const volatile char qt_eval_key_data [512 + 12] = \"qt_qevalkey=" << licenseInfo["LICENSEKEYEXT"] << "\";" << endl;
tmpStream.flush();
tmpFile3.flush();
diff --git a/tools/configure/environment.cpp b/tools/configure/environment.cpp
index 9446864f0a..2efc58a870 100644
--- a/tools/configure/environment.cpp
+++ b/tools/configure/environment.cpp
@@ -60,8 +60,8 @@ using namespace std;
#include <qt_windows.h>
#endif
-#include <symbian/epocroot.h> // from tools/shared
-#include <windows/registry.h> // from tools/shared
+#include <symbian/epocroot_p.h> // from tools/shared
+#include <windows/registry_p.h> // from tools/shared
QT_BEGIN_NAMESPACE
@@ -153,7 +153,7 @@ Compiler Environment::detectCompiler()
QString paths = qgetenv("PATH");
QStringList pathlist = paths.toLower().split(";");
for(int i = 0; compiler_info[i].compiler; ++i) {
- QString productPath = readRegistryKey(HKEY_LOCAL_MACHINE, compiler_info[i].regKey).toLower();
+ QString productPath = qt_readRegistryKey(HKEY_LOCAL_MACHINE, compiler_info[i].regKey).toLower();
if (productPath.length()) {
QStringList::iterator it;
for(it = pathlist.begin(); it != pathlist.end(); ++it) {
@@ -456,8 +456,8 @@ bool Environment::rmdir(const QString &name)
QString Environment::symbianEpocRoot()
{
- // Call function defined in tools/shared/symbian/epocroot.h
- return ::epocRoot();
+ // Call function defined in tools/shared/symbian/epocroot_p.h
+ return ::qt_epocRoot();
}
QT_END_NAMESPACE
diff --git a/tools/linguist/lrelease/lrelease.pro b/tools/linguist/lrelease/lrelease.pro
index 6beafa3a18..89694be6e6 100644
--- a/tools/linguist/lrelease/lrelease.pro
+++ b/tools/linguist/lrelease/lrelease.pro
@@ -15,6 +15,7 @@ macx:SOURCES += $$QT_SOURCE_TREE/src/corelib/io/qsettings_mac.cpp
include(../../../src/tools/bootstrap/bootstrap.pri)
include(../shared/formats.pri)
include(../shared/proparser.pri)
+include(../../shared/symbian/epocroot.pri)
win32:LIBS += -ladvapi32 # for qsettings_win.cpp
diff --git a/tools/linguist/lupdate/main.cpp b/tools/linguist/lupdate/main.cpp
index 49906e0356..76a875631b 100644
--- a/tools/linguist/lupdate/main.cpp
+++ b/tools/linguist/lupdate/main.cpp
@@ -350,6 +350,10 @@ static void processProjects(
ProFileEvaluator visitor;
visitor.setVerbose(options & Verbose);
+ QHash<QString, QStringList> lupdateConfig;
+ lupdateConfig.insert(QLatin1String("CONFIG"), QStringList(QLatin1String("lupdate_run")));
+ visitor.addVariables(lupdateConfig);
+
QFileInfo pfi(proFile);
ProFile pro(pfi.absoluteFilePath());
if (!visitor.queryProFile(&pro) || !visitor.accept(&pro)) {
diff --git a/tools/qdoc3/doc/files/qt.qdocconf b/tools/qdoc3/doc/files/qt.qdocconf
index 4546c7a881..44cfbc1a7c 100644
--- a/tools/qdoc3/doc/files/qt.qdocconf
+++ b/tools/qdoc3/doc/files/qt.qdocconf
@@ -22,7 +22,7 @@ edition.DesktopLight.groups = -graphicsview-api
qhp.projects = Qt
qhp.Qt.file = qt.qhp
-qhp.Qt.namespace = com.trolltech.qt.471
+qhp.Qt.namespace = com.trolltech.qt.472
qhp.Qt.virtualFolder = qdoc
qhp.Qt.indexTitle = Qt Reference Documentation
qhp.Qt.indexRoot =
@@ -36,9 +36,9 @@ qhp.Qt.extraFiles = classic.css \
images/dynamiclayouts-example.png \
images/stylesheet-coffee-plastique.png
-qhp.Qt.filterAttributes = qt 4.7.1 qtrefdoc
-qhp.Qt.customFilters.Qt.name = Qt 4.7.1
-qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.1
+qhp.Qt.filterAttributes = qt 4.7.2 qtrefdoc
+qhp.Qt.customFilters.Qt.name = Qt 4.7.2
+qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.2
qhp.Qt.subprojects = classes overviews examples
qhp.Qt.subprojects.classes.title = Classes
qhp.Qt.subprojects.classes.indexTitle = Qt's Classes
diff --git a/tools/qdoc3/test/designer.qdocconf b/tools/qdoc3/test/designer.qdocconf
index 448ed23b0e..f59fdf01c0 100644
--- a/tools/qdoc3/test/designer.qdocconf
+++ b/tools/qdoc3/test/designer.qdocconf
@@ -13,7 +13,7 @@ indexes = $QT_BUILD_TREE/doc-build/html-qt/qt.index
qhp.projects = Designer
qhp.Designer.file = designer.qhp
-qhp.Designer.namespace = com.trolltech.designer.470
+qhp.Designer.namespace = com.trolltech.designer.480
qhp.Designer.virtualFolder = qdoc
qhp.Designer.indexTitle = Qt Designer Manual
qhp.Designer.extraFiles = images/bg_l.png \
diff --git a/tools/qdoc3/test/qdeclarative.qdocconf b/tools/qdoc3/test/qdeclarative.qdocconf
index 45f48a6c92..1e46a5851b 100644
--- a/tools/qdoc3/test/qdeclarative.qdocconf
+++ b/tools/qdoc3/test/qdeclarative.qdocconf
@@ -21,7 +21,7 @@ edition.DesktopLight.groups = -graphicsview-api
qhp.projects = Qml
qhp.Qml.file = qml.qhp
-qhp.Qml.namespace = com.trolltech.qml.470
+qhp.Qml.namespace = com.trolltech.qml.480
qhp.Qml.virtualFolder = qdoc
qhp.Qml.indexTitle = Qml Reference
diff --git a/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf b/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
index c24ddef691..ef8d083709 100644
--- a/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
+++ b/tools/qdoc3/test/qt-build-docs_ja_JP.qdocconf
@@ -23,9 +23,9 @@ qhp.Qt.title = Qt
qhp.Qt.indexTitle = Qt
qhp.Qt.selectors = fake:example
-qhp.Qt.filterAttributes = qt 4.7.0 qtrefdoc ja_JP
-qhp.Qt.customFilters.Qt.name = Qt 4.7.0
-qhp.Qt.customFilters.Qt.filterAttributes = qt 4.7.0
+qhp.Qt.filterAttributes = qt 4.8.0 qtrefdoc ja_JP
+qhp.Qt.customFilters.Qt.name = Qt 4.8.0
+qhp.Qt.customFilters.Qt.filterAttributes = qt 4.8.0
# Files not referenced in any qdoc file (last four are needed by qtdemo)
# See also extraimages.HTML
diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp
index d348e70c9d..b660eb37ea 100644
--- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp
+++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.cpp
@@ -46,6 +46,7 @@
#include <private/qgraphicssystem_runtime_p.h>
#include <private/qpixmap_raster_p.h>
#include "qmeegoruntime.h"
+#include "qmeegoswitchevent.h"
QString QMeeGoGraphicsSystemHelper::runningGraphicsSystemName()
{
@@ -81,8 +82,16 @@ void QMeeGoGraphicsSystemHelper::switchToMeeGo()
if (QApplicationPrivate::instance()->graphics_system_name != QLatin1String("runtime"))
qWarning("Can't switch to meego - switching only supported with 'runtime' graphics system.");
else {
+ QMeeGoSwitchEvent willSwitchEvent(QLatin1String("meego"), QMeeGoSwitchEvent::WillSwitch);
+ foreach (QWidget *widget, QApplication::topLevelWidgets())
+ QCoreApplication::sendEvent(widget, &willSwitchEvent);
+
QApplication *app = static_cast<QApplication *>(QCoreApplication::instance());
app->setGraphicsSystem(QLatin1String("meego"));
+
+ QMeeGoSwitchEvent didSwitchEvent(QLatin1String("meego"), QMeeGoSwitchEvent::DidSwitch);
+ foreach (QWidget *widget, QApplication::topLevelWidgets())
+ QCoreApplication::sendEvent(widget, &didSwitchEvent);
}
}
@@ -94,8 +103,16 @@ void QMeeGoGraphicsSystemHelper::switchToRaster()
if (QApplicationPrivate::instance()->graphics_system_name != QLatin1String("runtime"))
qWarning("Can't switch to raster - switching only supported with 'runtime' graphics system.");
else {
+ QMeeGoSwitchEvent willSwitchEvent(QLatin1String("raster"), QMeeGoSwitchEvent::WillSwitch);
+ foreach (QWidget *widget, QApplication::topLevelWidgets())
+ QCoreApplication::sendEvent(widget, &willSwitchEvent);
+
QApplication *app = static_cast<QApplication *>(QCoreApplication::instance());
app->setGraphicsSystem(QLatin1String("raster"));
+
+ QMeeGoSwitchEvent didSwitchEvent(QLatin1String("raster"), QMeeGoSwitchEvent::DidSwitch);
+ foreach (QWidget *widget, QApplication::topLevelWidgets())
+ QCoreApplication::sendEvent(widget, &didSwitchEvent);
}
}
diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h
index 2baacbbe1a..d47c8291ed 100644
--- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h
+++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h
@@ -102,6 +102,9 @@ public:
When running with the 'runtime' graphics system, sets the currently active
system to 'meego'. The window surface and all the resources are automatically
migrated to OpenGL. Will fail if the active graphics system is not 'runtime'.
+ Calling this function will emit QMeeGoSwitchEvent to the top level widgets.
+ Two events will be emitted for each switch -- one before the switch (QMeeGoSwitchEvent::WillSwitch)
+ and one after the switch (QMeeGoSwitchEvent::DidSwitch).
*/
static void switchToMeeGo();
@@ -111,6 +114,9 @@ public:
system to 'raster'. The window surface and the graphics resources (including the
EGL shared image resources) are automatically migrated back to the CPU. All OpenGL
resources (surface, context, cache, font cache) are automaticall anihilated.
+ Calling this function will emit QMeeGoSwitchEvent to the top level widgets.
+ Two events will be emitted for each switch -- one before the switch (QMeeGoSwitchEvent::WillSwitch)
+ and one after the switch (QMeeGoSwitchEvent::DidSwitch).
*/
static void switchToRaster();
diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro
index 161a31bfbd..360847ee21 100644
--- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro
+++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.pro
@@ -6,5 +6,5 @@ include(../../src/qbase.pri)
QT += gui
INCLUDEPATH += '../../src/plugins/graphicssystems/meego'
-HEADERS = qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h
-SOURCES = qmeegographicssystemhelper.cpp qmeegooverlaywidget.cpp qmeegoruntime.cpp qmeegolivepixmap.cpp qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h qmeegofencesync.cpp
+HEADERS = qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h qmeegoswitchevent.h
+SOURCES = qmeegographicssystemhelper.cpp qmeegooverlaywidget.cpp qmeegoruntime.cpp qmeegolivepixmap.cpp qmeegographicssystemhelper.h qmeegooverlaywidget.h qmeegolivepixmap.h qmeegoruntime.h qmeegolivepixmap_p.h qmeegofencesync.h qmeegofencesync_p.h qmeegofencesync.cpp qmeegoswitchevent.cpp qmeegoswitchevent.h
diff --git a/tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp b/tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp
new file mode 100644
index 0000000000..22ea0fe7a2
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegoswitchevent.cpp
@@ -0,0 +1,68 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins 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 "qmeegoswitchevent.h"
+
+static int switchEventNumber = -1;
+
+QMeeGoSwitchEvent::QMeeGoSwitchEvent(const QString &graphicsSystemName, QMeeGoSwitchEvent::State s) : QEvent(QMeeGoSwitchEvent::eventNumber())
+{
+ name = graphicsSystemName;
+ switchState = s;
+}
+
+QString QMeeGoSwitchEvent::graphicsSystemName() const
+{
+ return name;
+}
+
+QMeeGoSwitchEvent::State QMeeGoSwitchEvent::state() const
+{
+ return switchState;
+}
+
+QEvent::Type QMeeGoSwitchEvent::eventNumber()
+{
+ if (switchEventNumber < 0)
+ switchEventNumber = QEvent::registerEventType();
+
+ return (QEvent::Type) switchEventNumber;
+} \ No newline at end of file
diff --git a/tools/qmeegographicssystemhelper/qmeegoswitchevent.h b/tools/qmeegographicssystemhelper/qmeegoswitchevent.h
new file mode 100644
index 0000000000..0ddbd3d814
--- /dev/null
+++ b/tools/qmeegographicssystemhelper/qmeegoswitchevent.h
@@ -0,0 +1,91 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the plugins 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 <QEvent>
+#include <QString>
+
+//! A custom event representing a graphics system switch.
+/*!
+ This event is sent two times -- before the actual switch and after the switch.
+ The current mode of the event can be detected by looking at the State of the
+ event.
+
+ The end-user application can use the event to drop it's own allocated GL resources
+ when going to software mode.
+*/
+
+class QMeeGoSwitchEvent : public QEvent
+{
+public:
+
+ //! The state represented by this event.
+ enum State {
+ WillSwitch,
+ DidSwitch
+ };
+
+ //! Constructor for the event.
+ /*!
+ Creates a new event with the given name and the given state.
+ */
+ QMeeGoSwitchEvent(const QString &graphicsSystemName, State s);
+
+ //! Returns the name of the target graphics system.
+ /*!
+ Depending on the state, the name represents the system we're about to swtich to,
+ or the system we just switched to.
+ */
+ QString graphicsSystemName() const;
+
+ //! Returns the state represented by this event.
+ State state() const;
+
+ //! Returns the event type/number for QMeeGoSwitchEvent.
+ /*!
+ The type is registered on first access. Use this to detect incoming
+ QMeeGoSwitchEvents.
+ */
+ QEvent::Type eventNumber();
+
+private:
+ QString name;
+ State switchState;
+};
diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp
index 579f1abf6f..209c72fa8a 100644
--- a/tools/qml/main.cpp
+++ b/tools/qml/main.cpp
@@ -155,7 +155,11 @@ void usage()
qWarning(" -I <directory> ........................... prepend to the module import search path,");
qWarning(" display path if <directory> is empty");
qWarning(" -P <directory> ........................... prepend to the plugin search path");
+#if defined(Q_WS_MAC)
+ qWarning(" -no-opengl ............................... don't use a QGLWidget for the viewport");
+#else
qWarning(" -opengl .................................. use a QGLWidget for the viewport");
+#endif
qWarning(" -script <path> ........................... set the script to use");
qWarning(" -scriptopts <options>|help ............... set the script options to use");
@@ -370,8 +374,13 @@ static void parseCommandLineOptions(const QStringList &arguments)
} else if (arg == "-translation") {
if (lastArg) usage();
opts.translationFile = arguments.at(++i);
+#if defined(Q_WS_MAC)
+ } else if (arg == "-no-opengl") {
+ opts.useGL = false;
+#else
} else if (arg == "-opengl") {
opts.useGL = true;
+#endif
} else if (arg == "-qmlbrowser") {
opts.useNativeFileBrowser = false;
} else if (arg == "-warnings") {
diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp
index 78bc409785..7ea77d1613 100644
--- a/tools/qml/qmlruntime.cpp
+++ b/tools/qml/qmlruntime.cpp
@@ -1012,7 +1012,7 @@ void QDeclarativeViewer::addPluginPath(const QString& plugin)
void QDeclarativeViewer::reload()
{
- open(currentFileOrUrl);
+ launch(currentFileOrUrl);
}
void QDeclarativeViewer::openFile()
diff --git a/tools/shared/symbian/epocroot.cpp b/tools/shared/symbian/epocroot.cpp
index ae1dcb1ec0..eabae98276 100644
--- a/tools/shared/symbian/epocroot.cpp
+++ b/tools/shared/symbian/epocroot.cpp
@@ -39,13 +39,13 @@
**
****************************************************************************/
-#include <iostream>
-
#include <QtCore/qdir.h>
#include <QtCore/qxmlstream.h>
-#include "epocroot.h"
-#include "../windows/registry.h"
+#include "epocroot_p.h"
+#include "../windows/registry_p.h"
+
+QT_BEGIN_NAMESPACE
// Registry key under which the location of the Symbian devices.xml file is
// stored.
@@ -64,35 +64,26 @@
// Stored as a static value in order to avoid unnecessary re-evaluation.
static QString epocRootValue;
-#ifdef QT_BUILD_QMAKE
-std::ostream &operator<<(std::ostream &s, const QString &val) {
- s << val.toLocal8Bit().data();
- return s;
-}
-#else
-// Operator implemented in configureapp.cpp
-std::ostream &operator<<(std::ostream &s, const QString &val);
-#endif
-
-QString getDevicesXmlPath()
+static QString getDevicesXmlPath()
{
// Note that the following call will return a null string on platforms other
// than Windows. If support is required on other platforms for devices.xml,
// an alternative mechanism for retrieving the location of this file will
// be required.
- return readRegistryKey(SYMBIAN_SDKS_REG_HANDLE, SYMBIAN_SDKS_REG_SUBKEY);
+ return qt_readRegistryKey(SYMBIAN_SDKS_REG_HANDLE, QLatin1String(SYMBIAN_SDKS_REG_SUBKEY));
}
/**
* Checks whether epocRootValue points to an existent directory.
* If not, epocRootValue is set to an empty string and an error message is printed.
*/
-void checkEpocRootExists(const QString &source)
+static void checkEpocRootExists(const QString &source)
{
if (!epocRootValue.isEmpty()) {
QDir dir(epocRootValue);
if (!dir.exists()) {
- std::cerr << "Warning: " << source << " is set to an invalid path: " << epocRootValue << std::endl;
+ qWarning("Warning: %s is set to an invalid path: '%s'", qPrintable(source),
+ qPrintable(epocRootValue));
epocRootValue = QString();
}
}
@@ -103,32 +94,30 @@ void checkEpocRootExists(const QString &source)
*/
static void fixEpocRoot(QString &path)
{
- path.replace("\\", "/");
+ path.replace(QLatin1Char('\\'), QLatin1Char('/'));
- if (!path.size() || path[path.size()-1] != QChar('/')) {
- path += QChar('/');
+ if (!path.size() || path[path.size()-1] != QLatin1Char('/')) {
+ path += QLatin1Char('/');
}
}
/**
* Determine the epoc root for the currently active SDK.
*/
-QString epocRoot()
+QString qt_epocRoot()
{
if (epocRootValue.isEmpty()) {
// 1. If environment variable EPOCROOT is set and points to an existent
// directory, this is returned.
- epocRootValue = qgetenv("EPOCROOT");
- checkEpocRootExists("EPOCROOT");
+ epocRootValue = QString::fromLocal8Bit(qgetenv("EPOCROOT").constData());
+ checkEpocRootExists(QLatin1String("EPOCROOT environment variable"));
if (epocRootValue.isEmpty()) {
// 2. The location of devices.xml is specified by a registry key. If this
// file exists, it is parsed.
QString devicesXmlPath = getDevicesXmlPath();
- if (devicesXmlPath.isEmpty()) {
- std::cerr << "Error: Symbian SDK registry key not found" << std::endl;
- } else {
- devicesXmlPath += "/devices.xml";
+ if (!devicesXmlPath.isEmpty()) {
+ devicesXmlPath += QLatin1String("/devices.xml");
QFile devicesFile(devicesXmlPath);
if (devicesFile.open(QIODevice::ReadOnly)) {
@@ -138,87 +127,90 @@ QString epocRoot()
// 4. If a device element marked as default is found in devices.xml and its
// epocroot value points to an existent directory, this is returned.
- const QString epocDeviceValue = qgetenv("EPOCDEVICE");
+ const QString epocDeviceValue = QString::fromLocal8Bit(qgetenv("EPOCDEVICE").constData());
bool epocDeviceFound = false;
QXmlStreamReader xml(&devicesFile);
while (!xml.atEnd()) {
xml.readNext();
- if (xml.isStartElement() && xml.name() == "devices") {
- if (xml.attributes().value("version") == "1.0") {
- while (!(xml.isEndElement() && xml.name() == "devices") && !xml.atEnd()) {
+ if (xml.isStartElement() && xml.name() == QLatin1String("devices")) {
+ if (xml.attributes().value(QLatin1String("version")) == QLatin1String("1.0")) {
+ while (!(xml.isEndElement() && xml.name() == QLatin1String("devices")) && !xml.atEnd()) {
xml.readNext();
- if (xml.isStartElement() && xml.name() == "device") {
- const bool isDefault = xml.attributes().value("default") == "yes";
- const QString id = xml.attributes().value("id").toString();
- const QString name = xml.attributes().value("name").toString();
- const QString alias = xml.attributes().value("alias").toString();
- bool epocDeviceMatch = (id + ":" + name) == epocDeviceValue;
+ if (xml.isStartElement() && xml.name() == QLatin1String("device")) {
+ const bool isDefault = xml.attributes().value(QLatin1String("default")) == QLatin1String("yes");
+ const QString id = xml.attributes().value(QLatin1String("id")).toString();
+ const QString name = xml.attributes().value(QLatin1String("name")).toString();
+ const QString alias = xml.attributes().value(QLatin1String("alias")).toString();
+ bool epocDeviceMatch = QString(id + QLatin1String(":") + name) == epocDeviceValue;
if (!alias.isEmpty())
epocDeviceMatch |= alias == epocDeviceValue;
epocDeviceFound |= epocDeviceMatch;
if((epocDeviceValue.isEmpty() && isDefault) || epocDeviceMatch) {
// Found a matching device
- while (!(xml.isEndElement() && xml.name() == "device") && !xml.atEnd()) {
+ while (!(xml.isEndElement() && xml.name() == QLatin1String("device")) && !xml.atEnd()) {
xml.readNext();
- if (xml.isStartElement() && xml.name() == "epocroot") {
+ if (xml.isStartElement() && xml.name() == QLatin1String("epocroot")) {
epocRootValue = xml.readElementText();
const QString deviceSource = epocDeviceValue.isEmpty()
- ? "default device"
- : "EPOCDEVICE (" + epocDeviceValue + ")";
+ ? QLatin1String("default device")
+ : QString(QLatin1String("EPOCDEVICE (") + epocDeviceValue + QLatin1String(")"));
checkEpocRootExists(deviceSource);
}
}
if (epocRootValue.isEmpty())
- xml.raiseError("No epocroot element found");
+ xml.raiseError(QLatin1String("No epocroot element found"));
}
}
}
} else {
- xml.raiseError("Invalid 'devices' element version");
+ xml.raiseError(QLatin1String("Invalid 'devices' element version"));
}
}
}
if (xml.hasError()) {
- std::cerr << "Error: \"" << xml.errorString() << "\" when parsing devices.xml" << std::endl;
+ qWarning("Warning: Error \"%s\" when parsing devices.xml",
+ qPrintable(xml.errorString()));
} else {
if (epocRootValue.isEmpty()) {
if (!epocDeviceValue.isEmpty()) {
if (epocDeviceFound) {
- std::cerr << "Error: missing or invalid epocroot attribute "
- << "in device '" << epocDeviceValue << "'";
+ qWarning("Warning: Missing or invalid epocroot attribute in device '%s' in devices.xml.",
+ qPrintable(epocDeviceValue));
} else {
- std::cerr << "Error: no device matching EPOCDEVICE ("
- << epocDeviceValue << ")";
+ qWarning("Warning: No device matching EPOCDEVICE (%s) in devices.xml.",
+ qPrintable(epocDeviceValue));
}
} else {
if (epocDeviceFound) {
- std::cerr << "Error: missing or invalid epocroot attribute "
- << "in default device";
+ qWarning("Warning: Missing or invalid epocroot attribute in default device in devices.xml.");
} else {
- std::cerr << "Error: no default device";
+ qWarning("Warning: No default device set in devices.xml.");
}
}
- std::cerr << " found in devices.xml file." << std::endl;
}
}
} else {
- std::cerr << "Error: could not open file " << devicesXmlPath << std::endl;
+ qWarning("Warning: Could not open file: '%s'.", qPrintable(devicesXmlPath));
}
}
}
if (epocRootValue.isEmpty()) {
// 5. An empty string is returned.
- std::cerr << "Error: failed to find epoc root" << std::endl
- << "Either" << std::endl
- << " 1. Set EPOCROOT environment variable to a valid value" << std::endl
- << " or 2. Ensure that the HKEY_LOCAL_MACHINE\\" SYMBIAN_SDKS_REG_SUBKEY
- " registry key is set, and then" << std::endl
- << " a. Set EPOCDEVICE environment variable to a valid device" << std::endl
- << " or b. Specify a default device in the devices.xml file." << std::endl;
+ qWarning("Warning: failed to resolve epocroot."
+#ifdef Q_OS_WIN32
+ "\nEither\n"
+ " 1. Set EPOCROOT environment variable to a valid value.\n"
+ " or 2. Ensure that the HKEY_LOCAL_MACHINE\\" SYMBIAN_SDKS_REG_SUBKEY
+ " registry key is set, and then\n"
+ " a. Set EPOCDEVICE environment variable to a valid device\n"
+ " or b. Specify a default device in the devices.xml file.");
+#else
+ " Set EPOCROOT environment variable to a valid value.");
+#endif
} else {
fixEpocRoot(epocRootValue);
}
@@ -227,3 +219,4 @@ QString epocRoot()
return epocRootValue;
}
+QT_END_NAMESPACE
diff --git a/tools/shared/symbian/epocroot.pri b/tools/shared/symbian/epocroot.pri
new file mode 100644
index 0000000000..f0f0dab535
--- /dev/null
+++ b/tools/shared/symbian/epocroot.pri
@@ -0,0 +1,11 @@
+# Epocroot resolving is only required for tools, so omit it from all mobile/embedded builds
+!symbian:!wince*:!embedded {
+HEADERS += \
+ $$QT_SOURCE_TREE/tools/shared/symbian/epocroot_p.h \
+ $$QT_SOURCE_TREE/tools/shared/windows/registry_p.h
+SOURCES += \
+ $$QT_SOURCE_TREE/tools/shared/symbian/epocroot.cpp \
+ $$QT_SOURCE_TREE/tools/shared/windows/registry.cpp
+INCLUDEPATH += $$QT_SOURCE_TREE/tools/shared
+DEFINES += QLIBRARYINFO_EPOCROOT
+}
diff --git a/tools/shared/symbian/epocroot.h b/tools/shared/symbian/epocroot_p.h
index 9846485aab..c97b5938b6 100644
--- a/tools/shared/symbian/epocroot.h
+++ b/tools/shared/symbian/epocroot_p.h
@@ -39,11 +39,24 @@
**
****************************************************************************/
-#ifndef SYMBIAN_EPOCROOT_H
-#define SYMBIAN_EPOCROOT_H
+#ifndef QT_SYMBIAN_EPOCROOT_H
+#define QT_SYMBIAN_EPOCROOT_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
#include <QtCore/qstring.h>
+QT_BEGIN_NAMESPACE
+
/**
* Determine the epoc root for the currently active SDK.
*
@@ -62,6 +75,9 @@
* Any return value other than the empty string therefore is guaranteed to
* point to an existent directory.
*/
-QString epocRoot();
+QString qt_epocRoot();
+
+QT_END_NAMESPACE
+
+#endif // QT_SYMBIAN_EPOCROOT_H
-#endif // EPOCROOT_H
diff --git a/tools/shared/windows/registry.cpp b/tools/shared/windows/registry.cpp
index 67d9b563cb..48e9ae6af9 100644
--- a/tools/shared/windows/registry.cpp
+++ b/tools/shared/windows/registry.cpp
@@ -40,8 +40,11 @@
****************************************************************************/
#include <QtCore/qstringlist.h>
-#include "registry.h"
+#include "registry_p.h"
+QT_BEGIN_NAMESPACE
+
+#ifdef Q_OS_WIN32
/*!
Returns the path part of a registry key.
e.g.
@@ -73,12 +76,13 @@ static QString keyName(const QString &rKey)
return rKey;
QString res(rKey.mid(idx + 1));
- if (res == "Default" || res == ".")
- res = "";
+ if (res == QLatin1String("Default") || res == QLatin1String("."))
+ res = QString();
return res;
}
+#endif
-QString readRegistryKey(HKEY parentHandle, const QString &rSubkey)
+QString qt_readRegistryKey(HKEY parentHandle, const QString &rSubkey)
{
QString result;
@@ -128,7 +132,7 @@ QString readRegistryKey(HKEY parentHandle, const QString &rSubkey)
break;
l.append(s);
}
- result = l.join(", ");
+ result = l.join(QLatin1String(", "));
break;
}
@@ -158,4 +162,5 @@ QString readRegistryKey(HKEY parentHandle, const QString &rSubkey)
return result;
}
+QT_END_NAMESPACE
diff --git a/tools/shared/windows/registry.h b/tools/shared/windows/registry_p.h
index 3896527cb2..4aae5f93e3 100644
--- a/tools/shared/windows/registry.h
+++ b/tools/shared/windows/registry_p.h
@@ -39,8 +39,21 @@
**
****************************************************************************/
-#ifndef WINDOWS_REGISTRY_H
-#define WINDOWS_REGISTRY_H
+#ifndef QT_WINDOWS_REGISTRY_H
+#define QT_WINDOWS_REGISTRY_H
+
+//
+// W A R N I N G
+// -------------
+//
+// This file is not part of the Qt API. It exists purely as an
+// implementation detail. This header file may change from version to
+// version without notice, or even be removed.
+//
+// We mean it.
+//
+
+QT_BEGIN_NAMESPACE
#include <QtCore/qglobal.h>
@@ -59,6 +72,9 @@
* if this code is compiled for a platform other than Windows), a null
* string is returned.
*/
-QString readRegistryKey(HKEY parentHandle, const QString &rSubkey);
+QString qt_readRegistryKey(HKEY parentHandle, const QString &rSubkey);
+
+QT_END_NAMESPACE
+
+#endif // QT_WINDOWS_REGISTRY_H
-#endif // WINDOWS_REGISTRY_H