summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xbin/createpackage.pl15
-rwxr-xr-xbin/patch_capabilities.pl16
-rwxr-xr-xconfigure74
-rwxr-xr-xconfigure.exebin1325568 -> 1325568 bytes
-rw-r--r--doc/src/declarative/anchor-layout.qdoc66
-rw-r--r--doc/src/declarative/basictypes.qdoc4
-rw-r--r--doc/src/declarative/declarativeui.qdoc4
-rw-r--r--doc/src/declarative/dynamicobjects.qdoc3
-rw-r--r--doc/src/declarative/extending-tutorial.qdoc4
-rw-r--r--doc/src/declarative/extending.qdoc621
-rw-r--r--doc/src/declarative/javascriptblocks.qdoc49
-rw-r--r--doc/src/declarative/pics/qml-extending-types.pngbin0 -> 738 bytes
-rw-r--r--doc/src/declarative/qtbinding.qdoc36
-rw-r--r--doc/src/declarative/tutorial.qdoc4
-rw-r--r--doc/src/examples/qml-examples.qdoc3
-rw-r--r--doc/src/platforms/emb-envvars.qdoc2
-rw-r--r--doc/src/platforms/symbian-introduction.qdoc9
-rw-r--r--doc/src/snippets/declarative/integrating-javascript/connectjs.qml57
-rw-r--r--doc/src/snippets/declarative/integrating-javascript/includejs/app.qml56
-rw-r--r--doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js49
-rw-r--r--doc/src/snippets/declarative/integrating-javascript/includejs/script.js48
-rw-r--r--doc/src/snippets/declarative/integrating-javascript/script.js47
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/components/Button.qml53
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/components/application.qml49
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/methods/app.qml55
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml52
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml48
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/properties/alias.qml51
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml52
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml54
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/properties/application.qml50
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml49
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/signals/Button.qml55
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/signals/basic.qml55
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml61
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml56
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml49
-rw-r--r--doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml50
-rw-r--r--doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml54
-rw-r--r--doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp67
-rw-r--r--doc/src/snippets/declarative/qtbinding/variantlistmap/variantlistmap.pro2
-rw-r--r--examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml7
-rw-r--r--examples/declarative/positioners/mirroring-positioners.qml70
-rw-r--r--examples/declarative/ui-components/tabwidget/TabWidget.qml4
-rw-r--r--mkspecs/common/symbian/symbian.conf2
-rw-r--r--mkspecs/features/symbian/sis_targets.prf84
-rw-r--r--qmake/project.cpp9
-rw-r--r--src/corelib/global/qendian.h5
-rw-r--r--src/corelib/tools/qalgorithms.qdoc2
-rw-r--r--src/corelib/tools/qsimd.cpp14
-rw-r--r--src/declarative/declarative.pro6
-rw-r--r--src/declarative/graphicsitems/qdeclarativegridview.cpp14
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem.cpp6
-rw-r--r--src/declarative/graphicsitems/qdeclarativeitem_p.h10
-rw-r--r--src/declarative/graphicsitems/qdeclarativelistview.cpp30
-rw-r--r--src/declarative/graphicsitems/qdeclarativepathview.cpp2
-rw-r--r--src/declarative/graphicsitems/qdeclarativerectangle.cpp8
-rw-r--r--src/declarative/graphicsitems/qdeclarativetextinput.cpp3
-rw-r--r--src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp2
-rw-r--r--src/declarative/qml/qdeclarativecomponent.cpp28
-rw-r--r--src/declarative/qml/qdeclarativeengine.cpp30
-rw-r--r--src/declarative/qml/qdeclarativeimport.cpp38
-rw-r--r--src/declarative/qml/qdeclarativeinclude.cpp24
-rw-r--r--src/declarative/qml/qdeclarativeproperty.cpp19
-rw-r--r--src/declarative/qml/qdeclarativesqldatabase.cpp26
-rw-r--r--src/gui/dialogs/dialogs.pri2
-rw-r--r--src/gui/graphicsview/qgraphicsitem.cpp18
-rw-r--r--src/gui/graphicsview/qgraphicsitem_p.h4
-rw-r--r--src/gui/graphicsview/qgraphicslayout.cpp7
-rw-r--r--src/gui/graphicsview/qgraphicslayoutitem.cpp2
-rw-r--r--src/gui/graphicsview/qgraphicsscene.cpp4
-rw-r--r--src/gui/graphicsview/qgridlayoutengine_p.h2
-rw-r--r--src/gui/image/qimage.cpp25
-rw-r--r--src/gui/image/qpixmap_raster.cpp11
-rw-r--r--src/gui/image/qpnghandler.cpp81
-rw-r--r--src/gui/itemviews/qsortfilterproxymodel.cpp4
-rw-r--r--src/gui/kernel/qeventdispatcher_s60_p.h7
-rw-r--r--src/gui/painting/qdrawhelper.cpp2
-rw-r--r--src/gui/painting/qgrayraster.c36
-rw-r--r--src/gui/painting/qpathclipper.cpp14
-rw-r--r--src/gui/text/qfontdatabase_s60.cpp130
-rw-r--r--src/gui/text/qfontengine_s60.cpp182
-rw-r--r--src/gui/text/qfontengine_s60_p.h16
-rw-r--r--src/gui/text/qtextcursor.cpp3
-rw-r--r--src/gui/text/qtextdocument.cpp6
-rw-r--r--src/gui/widgets/qlabel.cpp2
-rw-r--r--src/gui/widgets/qlinecontrol.cpp9
-rw-r--r--src/gui/widgets/qlinecontrol_p.h1
-rw-r--r--src/gui/widgets/qmenu.cpp5
-rw-r--r--src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp28
-rw-r--r--src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp19
-rw-r--r--src/opengl/qwindowsurface_gl.cpp13
-rw-r--r--src/openvg/qpaintengine_vg.cpp3
-rw-r--r--src/plugins/bearer/icd/proxyconf.cpp22
-rw-r--r--src/plugins/bearer/icd/proxyconf.h1
-rw-r--r--src/plugins/graphicssystems/meego/dithering.cpp11
-rw-r--r--src/plugins/graphicssystems/meego/qmeegographicssystem.cpp9
-rw-r--r--src/s60installs/bwins/QtGuiu.def7
-rw-r--r--src/s60installs/eabi/QtGuiu.def7
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/forceActiveFocus.qml26
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp109
-rw-r--r--tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml4
-rw-r--r--tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp15
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/displaylist.qml9
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp97
-rw-r--r--tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp4
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.5.pngbin1663 -> 1661 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.6.pngbin1666 -> 1674 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.qml234
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.pngbin0 -> 622 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.pngbin0 -> 627 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.2.pngbin0 -> 626 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.pngbin0 -> 625 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml951
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test2.0.pngbin305 -> 439 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test2.1.pngbin305 -> 439 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test2.qml154
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.pngbin1199 -> 1747 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml62
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.pngbin941 -> 950 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.pngbin975 -> 983 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.pngbin1235 -> 1243 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.pngbin1225 -> 1235 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.pngbin1247 -> 1253 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.pngbin1243 -> 1249 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.pngbin1234 -> 1241 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.pngbin1242 -> 1251 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml852
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.pngbin762 -> 791 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml118
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.pngbin1313 -> 1313 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml60
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.pngbin303 -> 465 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.pngbin303 -> 465 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml216
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.pngbin483 -> 581 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.pngbin483 -> 581 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml130
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.pngbin1189 -> 1187 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.pngbin1068 -> 1066 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml194
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.pngbin747 -> 903 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.pngbin814 -> 967 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.pngbin809 -> 962 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.pngbin527 -> 678 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.pngbin526 -> 676 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.pngbin399 -> 542 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml646
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.pngbin13140 -> 13194 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.pngbin1503 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.pngbin9297 -> 9415 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.pngbin10626 -> 10671 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.pngbin688 -> 855 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.pngbin693 -> 863 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.pngbin695 -> 865 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.pngbin694 -> 862 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.pngbin688 -> 855 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml528
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.pngbin3493 -> 3481 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.pngbin3617 -> 3606 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.pngbin3688 -> 3676 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.pngbin3766 -> 3754 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.pngbin3839 -> 3828 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.pngbin3940 -> 3927 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.pngbin3943 -> 3930 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.pngbin3943 -> 3930 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml842
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.pngbin256 -> 358 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.pngbin339 -> 446 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.pngbin446 -> 553 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.pngbin510 -> 622 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml374
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.pngbin3661 -> 3685 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml48
-rw-r--r--tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp13
-rw-r--r--tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml70
-rw-r--r--tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp23
-rw-r--r--tests/auto/qimage/tst_qimage.cpp16
-rw-r--r--tests/auto/qnetworkreply/tst_qnetworkreply.cpp4
-rw-r--r--tests/auto/qpixmap/tst_qpixmap.cpp27
-rw-r--r--tests/auto/qsortfilterproxymodel/qsortfilterproxymodel.pro5
-rw-r--r--tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp39
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp32
-rw-r--r--tools/configure/configureapp.cpp35
-rw-r--r--tools/configure/configureapp.h2
-rw-r--r--tools/linguist/linguist/messagemodel.cpp7
-rw-r--r--tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h3
-rw-r--r--tools/qml/browser/Browser.qml2
-rw-r--r--tools/qml/deviceorientation.h4
-rw-r--r--tools/qml/main.cpp56
-rw-r--r--tools/qml/qdeclarativetester.cpp16
-rw-r--r--tools/qml/qdeclarativetester.h4
-rw-r--r--tools/qml/qml.pro4
-rw-r--r--tools/qml/qmlruntime.cpp6
-rw-r--r--tools/qml/startup/startup.qml6
196 files changed, 6187 insertions, 3127 deletions
diff --git a/bin/createpackage.pl b/bin/createpackage.pl
index 6b83585..87ed29e 100755
--- a/bin/createpackage.pl
+++ b/bin/createpackage.pl
@@ -144,11 +144,13 @@ unless (GetOptions('i|install' => \$install,
}
my $epocroot = $ENV{EPOCROOT};
+my $epocToolsDir = "";
if ($epocroot ne "") {
$epocroot =~ s,\\,/,g;
if ($epocroot =~ m,[^/]$,) {
$epocroot = $epocroot."/";
}
+ $epocToolsDir = "${epocroot}epoc32/tools/";
}
my $certfilepath = abs_path(dirname($certfile));
@@ -341,7 +343,7 @@ if($stub) {
mkpath($systeminstall);
my $stub_sis_name = $systeminstall."/".$stub_sis_name;
# Create stub SIS.
- system ("${epocroot}epoc32/tools/makesis -s $pkgoutput $stub_sis_name");
+ system ("${epocToolsDir}makesis -s $pkgoutput $stub_sis_name");
} else {
if ($certtext eq "Self Signed"
&& !@certificates
@@ -358,11 +360,8 @@ if($stub) {
# Create SIS.
# The 'and' is because system uses 0 to indicate success.
- if($epocroot) {
- system ("${epocroot}epoc32/tools/makesis $pkgoutput $unsigned_sis_name") and die ("ERROR: makesis failed");
- } else {
- system ("makesis $pkgoutput $unsigned_sis_name") and die ("ERROR: makesis failed");
- }
+ system ("${epocToolsDir}makesis $pkgoutput $unsigned_sis_name") and die ("ERROR: makesis failed");
+
print("\n");
my $targetInsert = "";
@@ -389,7 +388,7 @@ if($stub) {
my $relcert = File::Spec->abs2rel($certificate);
my $relkey = File::Spec->abs2rel($key);
# The 'and' is because system uses 0 to indicate success.
- system ("signsis $unsigned_sis_name $signed_sis_name $relcert $relkey $passphrase") and die ("ERROR: signsis failed");
+ system ("${epocToolsDir}signsis $unsigned_sis_name $signed_sis_name $relcert $relkey $passphrase") and die ("ERROR: signsis failed");
# Check if creating signed SIS Succeeded
stat($signed_sis_name);
@@ -402,7 +401,7 @@ if($stub) {
my $relcert = File::Spec->abs2rel(File::Spec->rel2abs( $row->[0], $certfilepath));
my $relkey = File::Spec->abs2rel(File::Spec->rel2abs( $row->[1], $certfilepath));
- system ("signsis $signed_sis_name $signed_sis_name $relcert $relkey $row->[2]");
+ system ("${epocToolsDir}signsis $signed_sis_name $signed_sis_name $relcert $relkey $row->[2]");
print ("\tAdditionally signed the SIS with certificate: $row->[0]!\n");
}
diff --git a/bin/patch_capabilities.pl b/bin/patch_capabilities.pl
index df71339..c3fb89f 100755
--- a/bin/patch_capabilities.pl
+++ b/bin/patch_capabilities.pl
@@ -78,6 +78,16 @@ sub trim($) {
return $string;
}
+my $epocroot = $ENV{EPOCROOT};
+my $epocToolsDir = "";
+if ($epocroot ne "") {
+ $epocroot =~ s,\\,/,g;
+ if ($epocroot =~ m,[^/]$,) {
+ $epocroot = $epocroot."/";
+ }
+ $epocToolsDir = "${epocroot}epoc32/tools/";
+}
+
my $nullDevice = "/dev/null";
$nullDevice = "NUL" if ($^O =~ /MSWin/);
@@ -237,7 +247,7 @@ if (@ARGV)
}
print ("\n");
- my $baseCommandToExecute = "elftran -vid 0x0 -capability \"%s\" ";
+ my $baseCommandToExecute = "${epocToolsDir}elftran -vid 0x0 -capability \"%s\" ";
# Actually set the capabilities of the listed binaries.
foreach my $binaryPath(@binaries)
@@ -256,7 +266,7 @@ if (@ARGV)
# Test which capabilities are present and then restrict them to the allowed set.
# This avoid raising the capabilities of apps that already have none.
my $dllCaps;
- open($dllCaps, "elftran -dump s $binaryPath |") or die ("ERROR: Could not execute elftran");
+ open($dllCaps, "${epocToolsDir}elftran -dump s $binaryPath |") or die ("ERROR: Could not execute elftran");
my $capsFound = 0;
my $originalVid;
my @capabilitiesToSet;
@@ -329,8 +339,6 @@ if (@ARGV)
system ("$commandToExecute > $nullDevice");
$somethingPatched = true;
}
- ## Create another command line to check that the set capabilities are correct.
- #$commandToExecute = "elftran -dump s ".$binaryPath;
}
if ($checkFailed) {
diff --git a/configure b/configure
index 059aa1a..7141880 100755
--- a/configure
+++ b/configure
@@ -800,6 +800,7 @@ CFG_ALSA=auto
CFG_PULSEAUDIO=auto
CFG_COREWLAN=auto
CFG_ICD=auto
+CFG_NOPROCESS=no
# initalize variables used for installation
QT_INSTALL_PREFIX=
@@ -839,6 +840,9 @@ QT_LIBS_GLIB=
QT_CFLAGS_GSTREAMER=
QT_LIBS_GSTREAMER=
+#flag for Symbian fpu settings
+QT_CFLAGS_FPU=
+
# flags for libconnsettings0 (used for Maemo ICD bearer management plugin)
QT_CFLAGS_CONNSETTINGS=
QT_LIBS_CONNSETTINGS=
@@ -1071,6 +1075,16 @@ while [ "$#" -gt 0 ]; do
VAL=`echo $1 | sed 's,-D,,'`
fi
;;
+ -fpu)
+ VAR="fpu"
+ # this option may or may not be followed by an argument
+ if [ -z "$2" ] || echo "$2" | grep '^-' >/dev/null 2>&1; then
+ VAL=no
+ else
+ shift
+ VAL=$1
+ fi
+ ;;
-I?*|-I)
VAR="add_ipath"
if [ "$1" = "-I" ]; then
@@ -2236,6 +2250,12 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
+ dont-process)
+ CFG_NOPROCESS=yes
+ ;;
+ process)
+ CFG_NOPROCESS=no
+ ;;
audio-backend)
if [ "$VAL" = "yes" ] || [ "$VAL" = "no" ]; then
CFG_AUDIO_BACKEND="$VAL"
@@ -2243,6 +2263,11 @@ while [ "$#" -gt 0 ]; do
UNKNOWN_OPT=yes
fi
;;
+ fpu)
+ if [ "$VAL" != "no" ]; then
+ QT_CFLAGS_FPU=$VAL
+ fi
+ ;;
*)
UNKNOWN_OPT=yes
;;
@@ -4878,6 +4903,9 @@ case "$XPLATFORM" in *symbian*)
if [ "$CFG_LARGEFILE" = auto ]; then
CFG_LARGEFILE=no
fi
+ if [ "$CFG_PHONON" = auto ]; then
+ CFG_PHONON=yes
+ fi
if test -z "$EPOCROOT"; then
echo "Please export EPOCROOT. It should point to the sdk install dir"
@@ -6645,10 +6673,12 @@ else
QCONFIG_FLAGS="$QCONFIG_FLAGS QT_STYLE_S60"
fi
-# Disable OpenGL on Symbian.
+# Just check if OpenGL is not set by command argumets for Symbian.
case "$XPLATFORM" in
symbian*)
- CFG_OPENGL="no"
+ if [ "$CFG_OPENGL" = "auto" ]; then
+ CFG_OPENGL="no"
+ fi
;;
esac
@@ -7937,6 +7967,12 @@ if [ "$CFG_DEV" = "yes" ]; then
QT_CONFIG="$QT_CONFIG private_tests"
fi
+if [ -z "$QT_CFLAGS_FPU" ]; then
+ if echo "$XPLATFORM" | grep "symbian-sbsv2" > /dev/null 2>&1; then
+ QT_CFLAGS_FPU=softvfp
+ fi
+fi
+
# Make the application arch follow the Qt arch for single arch builds.
# (for multiple-arch builds, set CONFIG manually in the application .pro file)
if [ `echo "$CFG_MAC_ARCHS" | wc -w` -eq 1 ]; then
@@ -7970,10 +8006,11 @@ if [ -n "$QT_GCC_MAJOR_VERSION" ]; then
echo "QT_GCC_MINOR_VERSION = $QT_GCC_MINOR_VERSION" >> "$QTCONFIG.tmp"
echo "QT_GCC_PATCH_VERSION = $QT_GCC_PATCH_VERSION" >> "$QTCONFIG.tmp"
fi
-if echo "$XPLATFORM" | grep "symbian-sbsv2" > /dev/null 2>&1; then
+if [ -n "$QT_CFLAGS_FPU" ]; then
echo "#Qt for symbian FPU settings" >> "$QTCONFIG.tmp"
- echo "MMP_RULES += \"ARMFPU softvfp\"" >> "$QTCONFIG.tmp"
+ echo "MMP_RULES += \"ARMFPU $QT_CFLAGS_FPU\"" >> "$QTCONFIG.tmp"
fi
+
# replace qconfig.pri if it differs from the newly created temp file
if cmp -s "$QTCONFIG.tmp" "$QTCONFIG"; then
rm -f "$QTCONFIG.tmp"
@@ -8397,11 +8434,13 @@ EXEC=""
#-------------------------------------------------------------------------------
echo "Finding project files. Please wait..."
-"$outpath/bin/qmake" -prl -r "${relpath}/projects.pro"
-if [ -f "${relpath}/projects.pro" ]; then
- mkfile="${outpath}/Makefile"
- [ -f "$mkfile" ] && chmod +w "$mkfile"
- QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/projects.pro" -o "$mkfile"
+if [ "$CFG_NOPROCESS" != "yes" ]; then
+ "$outpath/bin/qmake" -prl -r "${relpath}/projects.pro"
+ if [ -f "${relpath}/projects.pro" ]; then
+ mkfile="${outpath}/Makefile"
+ [ -f "$mkfile" ] && chmod +w "$mkfile"
+ QTDIR="$outpath" "$outpath/bin/qmake" -spec "$XQMAKESPEC" "${relpath}/projects.pro" -o "$mkfile"
+ fi
fi
# .projects -> projects to process
@@ -8530,8 +8569,8 @@ PART_ROOTS=
for part in $CFG_BUILD_PARTS; do
case "$part" in
tools) PART_ROOTS="$PART_ROOTS tools" ;;
- libs) PART_ROOTS="$PART_ROOTS src" ;;
- translations) PART_ROOTS="$PART_ROOTS tools/linguist/lrelease translations" ;;
+ libs) PART_ROOTS="$PART_ROOTS src tools/linguist/lrelease" ;;
+ translations) PART_ROOTS="$PART_ROOTS translations" ;;
examples) PART_ROOTS="$PART_ROOTS examples demos" ;;
*) ;;
esac
@@ -8556,15 +8595,22 @@ for file in .projects .projects.3; do
case $a in
*winmain/winmain.pro)
- [ "$XPLATFORM_MINGW" = "yes" ] || continue
+ if [ "$CFG_NOPROCESS" = "yes" ] || [ "$XPLATFORM_MINGW" != "yes" ]; then
+ continue
+ fi
SPEC=$XQMAKESPEC ;;
- *s60main/s60main.pro) if [ -z "`echo "$XPLATFORM" | grep "symbian" >/dev/null`" ]; then
+ *s60main/s60main.pro)
+ if [ "$CFG_NOPROCESS" = "yes" ] || ! echo "$XPLATFORM" | grep "symbian" >/dev/null; then
continue
fi;;
*examples/activeqt/*) continue ;;
*/qmake/qmake.pro) continue ;;
*tools/bootstrap*|*tools/moc*|*tools/rcc*|*tools/uic*|*linguist/lrelease*) SPEC=$QMAKESPEC ;;
- *) SPEC=$XQMAKESPEC ;;
+ *) if [ "$CFG_NOPROCESS" = "yes" ]; then
+ continue
+ else
+ SPEC=$XQMAKESPEC
+ fi;;
esac
dir=`dirname "$a" | sed -e "s;$sepath;.;g"`
test -d "$dir" || mkdir -p "$dir"
diff --git a/configure.exe b/configure.exe
index f8d520a..068701f 100755
--- a/configure.exe
+++ b/configure.exe
Binary files differ
diff --git a/doc/src/declarative/anchor-layout.qdoc b/doc/src/declarative/anchor-layout.qdoc
index b77ce36..f5d5697 100644
--- a/doc/src/declarative/anchor-layout.qdoc
+++ b/doc/src/declarative/anchor-layout.qdoc
@@ -30,6 +30,8 @@
\target anchor-layout
\title Anchor-based Layout in QML
+\section1 Overview
+
In addition to the more traditional \l Grid, \l Row, and \l Column,
QML also provides a way to layout items using the concept of \e anchors.
Each item can be thought of as having a set of 7 invisible "anchor lines":
@@ -54,20 +56,6 @@ In this case, the left edge of \e rect2 is bound to the right edge of \e rect1,
\image edge1.png
-The anchoring system also allows you to specify margins and offsets. Margins specify the amount of empty space to leave to the outside of an item, while offsets allow you to manipulate positioning using the center anchor lines. Note that margins specified using the anchor layout system only have meaning for anchors; they won't have any effect when using other layouts or absolute positioning.
-
-\image margins_qml.png
-
-The following example specifies a left margin:
-
-\code
-Rectangle { id: rect1; ... }
-Rectangle { id: rect2; anchors.left: rect1.right; anchors.leftMargin: 5; ... }
-\endcode
-
-In this case, a margin of 5 pixels is reserved to the left of \e rect2, producing the following:
-
-\image edge2.png
You can specify multiple anchors. For example:
@@ -78,7 +66,9 @@ Rectangle { id: rect2; anchors.left: rect1.right; anchors.top: rect1.bottom; ...
\image edge3.png
-By specifying multiple horizontal or vertical anchors you can control the size of an item. For example:
+By specifying multiple horizontal or vertical anchors you can control the size of an item. Below,
+\e rect2 is anchored to the right of \e rect1 and the left of \e rect3. If either of the blue
+rectangles are moved, \e rect2 will stretch and shrink as necessary:
\code
Rectangle { id: rect1; x: 0; ... }
@@ -88,9 +78,42 @@ Rectangle { id: rect3; x: 150; ... }
\image edge4.png
-\section1 Limitations
-For performance reasons, you can only anchor an item to its siblings and direct parent. For example, the following anchor would be considered invalid and would produce a warning:
+\section1 Anchor Margins and Offsets
+
+The anchoring system also allows \e margins and \e offsets to be specified for an item's anchors.
+Margins specify the amount of empty space to leave to the outside of an item's anchor, while
+offsets allow positioning to be manipulated using the center anchor lines. An item can
+specify its anchor margins individually through \l {Item::anchors.leftMargin}{leftMargin},
+\l {Item::anchors.rightMargin}{rightMargin}, \l {Item::anchors.topMargin}{topMargin} and
+\l {Item::anchors.bottomMargin}{bottomMargin}, or use \l {Item::}{anchors.margins} to
+specify the same margin value for all four edges. Anchor offsets are specified using
+\l {Item::anchors.horizontalCenterOffset}{horizontalCenterOffset},
+\l {Item::anchors.verticalCenterOffset}{verticalCenterOffset} and
+\l {Item::anchors.baselineOffset}{baselineOffset}.
+
+\image margins_qml.png
+
+The following example specifies a left margin:
+
+\code
+Rectangle { id: rect1; ... }
+Rectangle { id: rect2; anchors.left: rect1.right; anchors.leftMargin: 5; ... }
+\endcode
+
+In this case, a margin of 5 pixels is reserved to the left of \e rect2, producing the following:
+
+\image edge2.png
+
+\note Anchor margins only apply to anchors; they are \e not a generic means of applying margins to an \l Item.
+If an anchor margin is specified for an edge but the item is not anchored to any item on that
+edge, the margin is not applied.
+
+
+\section1 Restrictions
+
+For performance reasons, you can only anchor an item to its siblings and direct parent. For example,
+the following anchor is invalid and would produce a warning:
\badcode
Item {
@@ -103,4 +126,13 @@ Item {
}
\endcode
+Also, anchor-based layouts cannot be mixed with absolute positioning. If an item specifies its
+\l {Item::}{x} position and also sets \l {Item::}{anchors.left},
+or anchors its left and right edges but additionally sets a \l {Item::}{width}, the
+result is undefined, as it would not be clear whether the item should use anchoring or absolute
+positioning. The same can be said for setting an item's \l {Item::}{y} and \l {Item::}{height}
+with \l {Item::}{anchors.top} and \l {Item::}{anchors.bottom}, or setting \l {Item::}{anchors.fill}
+as well as \l {Item::}{width} or \l {Item::}{height}. If you wish to change from using
+anchor-based to absolute positioning, you can clear an anchor value by setting it to \c undefined.
+
*/
diff --git a/doc/src/declarative/basictypes.qdoc b/doc/src/declarative/basictypes.qdoc
index 71192bf..034b7d1 100644
--- a/doc/src/declarative/basictypes.qdoc
+++ b/doc/src/declarative/basictypes.qdoc
@@ -33,7 +33,7 @@
the \l {QML Elements}.
Some of these types can also be used for defining
- \c property values in QML. See \l{Extending types from QML} for the
+ \c property values in QML. See \l{Writing QML Components: Properties, Methods and Signals} for the
list of types that can be used for \c property values.
\annotatedlist qmlbasictypes
@@ -380,7 +380,7 @@
\c child1, \c child2 and \c child3 will be added to the children list
in the order in which they appear.
- List \l {Adding new properties}{properties} can be created as a
+ List \l {Adding Properties}{properties} can be created as a
\c variant type, or as a \c list<Type> type, where \c Type is the
type of the object in the list:
diff --git a/doc/src/declarative/declarativeui.qdoc b/doc/src/declarative/declarativeui.qdoc
index 01e1302..5d9eaaf 100644
--- a/doc/src/declarative/declarativeui.qdoc
+++ b/doc/src/declarative/declarativeui.qdoc
@@ -91,9 +91,10 @@ Module.
\list
\o \l{QML Documents}
\o \l{Property Binding}
+\o \l{Anchor-based Layout in QML}
+\o \l{Writing QML Components: Properties, Methods and Signals}
\o \l{QML Scope}
\o \l{QML Modules}
-\o \l{Anchor-based Layout in QML}
\endlist
\section1 User Interaction
@@ -118,7 +119,6 @@ Module.
\list
\o \l{Qt Declarative UI Runtime}
\o \l{Integrating JavaScript}
-\o \l{Extending types from QML}
\o \l{Dynamic Object Management in QML}
\endlist
diff --git a/doc/src/declarative/dynamicobjects.qdoc b/doc/src/declarative/dynamicobjects.qdoc
index daf2ae1..fcc9fd4 100644
--- a/doc/src/declarative/dynamicobjects.qdoc
+++ b/doc/src/declarative/dynamicobjects.qdoc
@@ -102,6 +102,9 @@ Notice in both instances, \l {Component::createObject()}{createObject()} is call
When using files with relative paths, the path should
be relative to the file where \l {QML:Qt::createComponent()}{Qt.createComponent()} is executed.
+To connect signals to (or receive signals from) dynamically created objects, use the signal
+\c connect() method. See \l {Connecting signals to methods and other signals} for more information.
+
\section2 Creating an object from a string of QML
diff --git a/doc/src/declarative/extending-tutorial.qdoc b/doc/src/declarative/extending-tutorial.qdoc
index dff1d9c..c998c5c 100644
--- a/doc/src/declarative/extending-tutorial.qdoc
+++ b/doc/src/declarative/extending-tutorial.qdoc
@@ -285,8 +285,8 @@ int-type property to store an identifier for each chart:
}
\endcode
-We can also use various other property types. QML has built-in support for the following
-types listed in the \l{Extending Types from QML} document, including the following:
+We can also use various other property types. QML has built-in support for the types
+listed in the \l{Adding Properties} documentation, which includes the following:
\list
\o bool, unsigned int, int, float, double, qreal
diff --git a/doc/src/declarative/extending.qdoc b/doc/src/declarative/extending.qdoc
index 740f7d1..e23ca91 100644
--- a/doc/src/declarative/extending.qdoc
+++ b/doc/src/declarative/extending.qdoc
@@ -82,8 +82,8 @@ Types can be registered by libraries, application code, or by plugins
Once registered, all \l {Qt's Property System}{properties} of the
supported types are available in QML. QML has intrinsic support for
-properties of the types listed in the \l{Extending Types from QML}
-document, including the following:
+properties of the types listed in the \l{Adding Properties}
+document, which includes the following:
\list
\o bool, unsigned int, int, float, double, qreal
@@ -429,7 +429,7 @@ on<Property-name>Changed, regardless of the name used for the NOTIFY
signal in C++. We recommend using <property-name>Changed() for the
NOTIFY signal in C++.
-See also \l {Extending Types from QML}.
+See also \l {Writing QML Components: Properties, Methods and Signals}
\section1 Methods
@@ -596,10 +596,10 @@ the appropriate property on the extension object is used instead.
When an extended type is installed, one of the
\code
template<typename T, typename ExtendedT>
-int qmlRegisterType(const char *uri, int versionMajor, int versionMinor, const char *qmlName)
+int qmlRegisterExtendedType(const char *uri, int versionMajor, int versionMinor, const char *qmlName)
template<typename T, typename ExtendedT>
-int qmlRegisterType()
+int qmlRegisterExtendedType()
\endcode
functions should be used instead of the regular \c qmlRegisterType() variations.
The arguments are identical to the corresponding non-extension registration functions,
@@ -637,147 +637,177 @@ public:
/*!
\page qml-extending-types.html
-\title Extending Types from QML
+\title Writing QML Components: Properties, Methods and Signals
-Many of the elements available for use in QML are implemented in
-\l {Extending QML in C++}{C++}. These types are know as "core types". QML
-allows programmers to build new, fully functional elements without using C++.
-Existing core types can be extended, and new types defined entirely in the QML
-language.
+One of the key concepts in QML is the ability to define your own QML components that suit
+the purposes of your application. The standard \l {QML Elements} provide the essential components
+for creating a QML application; beyond these, you can write your own custom components that can
+be created and reused, without the use of C++.
-\tableofcontents
+Components are the building blocks of a QML project. When writing a QML application, whether
+large or small, it is best to separate QML code into smaller components that perform specific
+sets of operations, instead of creating mammoth QML files with large, combined functionality
+that is more difficult to manage and may contain duplicated code.
+
+
+\section1 Defining New Components
+
+A component is a reusable type with a well-defined interface, built entirely in QML.
+Any snippet of QML code can become a component, by placing the code in a file "<Name>.qml" where
+<Name> is the new component name, beginning with an uppercase letter. These QML files automatically
+become available as new QML element types to other QML components and applications in the same directory.
-\section1 Adding new properties
+For example, one of the simplest and most common components you can build in QML is a
+button-type component. Below, we implement this component as a \l Rectangle with a clickable
+\l MouseArea, in a file named \c Button.qml:
-New properties can be added to an existing type using the \c property keyword.
-These new properties are
-available for use within QML, and also appear as regular Qt properties on the
-C++ object, accessible through the regular property access mechanisms.
+\snippet doc/src/snippets/declarative/qml-extending-types/components/Button.qml 0
-Like all properties in QML, custom properties are typed. The type is used to
-define the property's behavior, and also determines the C++ type of the created
-Qt property. The following table shows the list of types available when
-declaring a new property, and the corresponding C++ type.
+Now this component can be reused by another file within the same directory. Since the file is
+named \c Button.qml, the component is referred to as \c Button:
\table
-\header \o QML Type Name \o C++ Type Name
-\row \o int \o int
-\row \o bool \o bool
-\row \o double \o double
-\row \o real \o double
-\row \o string \o QString
-\row \o url \o QUrl
-\row \o color \o QColor
-\row \o date \o QDateTime
-\row \o variant \o QVariant
+\row
+\o \snippet doc/src/snippets/declarative/qml-extending-types/components/application.qml 0
+\o \image qml-extending-types.png
\endtable
-From QML you can also declare object and list properties using any element name
-like this:
+The root object in \c Button.qml defines the attributes that are available to users of the
+\c Button component. In this case, the root object is a \l Rectangle, so any properties, methods
+and signals of \l Rectangle are made available, allowing \c application.qml to
+customize the \c width, \c height, \c radius and \c color properties of \c Button objects.
-\code
- property QtObject objectProperty
- property Item itemProperty
- property MyCustomType customProperty
- property list<Item> listOfItemsProperty
-\endcode
-Custom types must be registered with qmlRegisterType() to be usable as a property
-type. Also note that list properties cannot be modified like ordinary JavaScript
-arrays; see the \l {list}{list type documentation} for details.
+If \c Button.qml was not in the same directory, \c application.qml would need to load it as a
+\l {Modules}{module} from a specific filesystem path or \l{QDeclarativeExtensionPlugin}{plugin}.
+Also, note the letter case of the component file name is significant on some (notably UNIX)
+filesystems. It is recommended the file name case matches the case of the QML component name
+exactly - for example, \c Box.qml and not \c BoX.qml - regardless of the platform to which the
+QML component will be deployed.
+
+To write a useful component, it is generally necessary to provide it with custom attributes that store and
+communicate specific data. This is achieved by adding the following attributes to your components:
-QML supports two methods for adding a new property to a type: a new property
-definition, and a property alias. These are shown below.
+\list
+\o \bold Properties that can be accessed externally to modify an object (for example, \l Item has
+ \l {Item::}{width} and \l {Item::}{height} properties) and used in \l {Property Binding}
+\o \bold Methods of JavaScript code can be invoked internally or externally (for example,
+ \l Animation has a \l {Animation::}{start()} method)
+\o \bold Signals to notify other objects when an event has occurred (for example, MouseArea has a
+ \c clicked signal)
+\endlist
+
+The following sections show how these attributes can be added to QML components.
-\section2 Property definitions
-Property definitions add a new property to an existing type. The storage of the
-property is managed by QML. The defined property may be read, written and bound
-to and from.
+\section1 Adding Properties
+
+A property is a value of a QML component that can be read and modified by other objects. For
+example, a \l Rectangle component has \l {Item::}{width}, \l {Item::}{height} and \l
+{Rectangle::}{color} properties. Significantly, properties be used with \l {Property Binding}, where
+a property value is automatically updated using the value of another property.
The syntax for defining a new property is:
+
\code
- [default] property <type> <name>[: defaultValue]
+[default] property <type> <name>[: defaultValue]
\endcode
-This declaration may appear anywhere within a type body, but it is customary to
-include it at the top. Attempting to declare two properties with the same name
-in the same type block is an error. However, a new property may reuse the name
-of an existing property on the type. This should be done with caution, as the
-existing property will be hidden, and become inaccessible.
+A \c property declaration can appear anywhere within a QML component definition, but it is customary
+to place it at the top. A component cannot declare more than one property with the same name. (It is
+possible to have a property name that is the same as an existing property in a type, but this is not
+recommended as the existing property becomes hidden and inaccessible.)
-The <type> must be one of the QML type names shown in the above table.
-Additionally, an optional default value of the property can be provided. The
-default value is a convenient shortcut, but is behaviorally identical to doing
-it in two steps, like this:
+Below is an example. The \c ImageViewer component has defined a \c string type property named
+\c currentImage, and its initial value is "default-image.png". This property is used to set the image
+displayed in the child \l Image object. Another file, \c application.qml, can create
+an \c ImageViewer object and read or modify the \c currentImage value:
-\code
- // Use default value
- property int myProperty: 10
+\table
+\row
+\o \snippet doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml 0
+\o \snippet doc/src/snippets/declarative/qml-extending-types/properties/application.qml 0
+\endtable
- // Longer, but behaviorally identical
- property int myProperty
- myProperty: 10
-\endcode
+It is optional for a property to have a default value. The default value is a convenient shortcut, and is
+behaviorally identical to doing it in two steps, like this:
+
+\qml
+// Use default value
+property int myProperty: 10
+
+// Longer, but behaviorally identical
+property int myProperty
+myProperty: 10
+\endqml
+
+
+\section2 Supported property types
+
+All QML properties are typed. The examples above show properties with \c int and \c string types;
+notice that the type of the property must be declared. The type is used to determine the property
+behavior, and how the property is defined in C++.
-If a default value is not supplied or set later in the file, each type has a
-default value for when none is explicitly set. Below are the default values
-of some of the types. For the remaining types the default values are undefined.
+A number of property types are supported by default. These are listed in the table below,
+with their default values and the corresponding C++ type:
\table
-\header \o QML Type \o Default Value
-\row \o bool \o false
-\row \o int \o 0
-\row \o double, real \o 0.0
-\row \o string, url \o "" (an empty string)
-\row \o color \o #000000 (black)
+\header \o QML Type Name \o Default value \o C++ Type Name
+\row \o int \o 0 \o int
+\row \o bool \o \c false \o bool
+\row \o double \o 0.0 \o double
+\row \o real \o 0.0 \o double
+\row \o string \o "" (empty string) \o QString
+\row \o url \o "" (empty url) \o QUrl
+\row \o color \o #000000 (black) \o QColor
+\row \o date \o \c undefined \o QDateTime
+\row \o variant \o \c undefined \o QVariant
\endtable
-The following example shows how to declare a new "innerColor" property that
-controls the color of the inner rectangle.
+QML object types can also be used as property types. This includes
+\l {Defining new QML elements}{custom QML types} implemented in C++. Such properties are
+defined like this:
-\code
- Rectangle {
- property color innerColor: "black"
-
- color: "red"; width: 100; height: 100
- Rectangle {
- anchors.centerIn: parent
- width: parent.width - 10
- height: parent.height - 10
- color: innerColor
- }
- }
-\endcode
+\qml
+property Item itemProperty
+property QtObject objectProperty
+property MyCustomType customProperty
+\endqml
+Such object-type properties default to an \c undefined value.
-\section3 Property signal handlers
+\l{list}{List properties} are created with the \c list<Type> syntax, and default to an empty
+list:
-Adding a property to an item automatically adds a \e{value-changed}
-signal handler to the item. The signal hander is named
-\c{on<Property_name>Changed}, with the first letter of the property
-name being upper case.
+\qml
+property list<Item> listOfItems
+\endqml
-Signal handlers can have arbitrary JavaScript code assigned. The following
-example shows how to output to a text console a new value of property
-\c{innerColor} whenever the value of this property changes.
+Note that list properties cannot be modified like ordinary JavaScript
+arrays. See the \l {list}{list type documentation} for details.
-\code
- Rectangle {
- id: rect
- property color innerColor: "black"
+For details about accessing and manipulating QML properties from C++, see \l {Using QML with C++}.
- onInnerColorChanged: { console.log(rect.innerColor); }
- }
-\endcode
+\section2 Property change signals
+
+Adding a \c property to an item automatically adds a \e {value changed}
+signal handler to the item. To connect to this signal, use a \l {Signal Handlers}{signal handler}
+named with the \c on<Property>Changed syntax, using upper case for the first letter of the
+property name.
+
+For example, the following \c onMyNumberChanged signal handler is automatically called whenever the
+\c myNumber property changes:
+
+\snippet doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml 0
-\section3 Setting default properties
+
+\section2 Default properties
The optional \c default attribute for a property marks it as the \e {default property}
for a type. This allows other items to specify the default property's value
-as child elements. For example, the \l Item element's default property is its
-\l{Item::children}{children} property. This allows the children of an \l Item
+as child elements. For example, the \l Item element's default property is its
+\l{Item::children}{children} property. This allows the children of an \l Item
to be set like this:
\qml
@@ -787,7 +817,7 @@ Item {
}
\endqml
-If the \l{Item::children}{children} property was not the default property for
+If the \l{Item::children}{children} property was not the default property for
\l Item, its value would have to be set like this instead:
\qml
@@ -804,21 +834,20 @@ demonstration of using default properties.
Specifying a default property overrides any existing default property (for
example, any default property inherited from a parent item). Using the
-default attribute twice in the same type block is an error.
+\c default attribute twice in the same type block is an error.
-\target qml-property-aliases
\section2 Property aliases
Property aliases are a more advanced form of property declaration. Unlike a
-property definition, that allocates a new, unique storage space for the
+property definition, which allocates a new, unique storage space for the
property, a property alias connects the newly declared property (called the
-aliasing property) to an existing property (the aliased property). Read
+aliasing property) as a direct reference to an existing property (the aliased property). Read
operations on the aliasing property act as read operations on the aliased
property, and write operations on the aliasing property as write operations on
the aliased property.
-A property alias declaration looks a lot like a property definition:
+A property alias declaration looks a lot like an ordinary property definition:
\code
[default] property alias <name>: <alias reference>
\endcode
@@ -829,7 +858,7 @@ value, a property alias includes a compulsory alias reference. The alias
reference is used to locate the aliased property. While similar to a property
binding, the alias reference syntax is highly restricted.
-An alias reference takes one of the following forms
+An alias reference takes one of the following forms:
\code
<id>.<property>
<id>
@@ -838,61 +867,58 @@ An alias reference takes one of the following forms
where <id> must refer to an object id within the same component as the type
declaring the alias, and, optionally, <property> refers to a property on that object.
-Here is the property definition example rewritten to use property aliases.
-\code
-Rectangle {
- property alias innerColor: innerRect.color
-
- color: "red"; width: 100; height: 100
- Rectangle {
- id: innerRect
- anchors.centerIn: parent
- width: parent.width - 10
- height: parent.height - 10
- color: "black"
- }
-}
-\endcode
+For example, below is a \c Button.qml component with a \c buttonText aliased property which is
+connected to the child Text object's \c text property:
+
+\snippet doc/src/snippets/declarative/qml-extending-types/properties/alias.qml 0
+
+The following code would create a \c Button with a defined text string for the
+child \l Text object:
-Aliases are most useful when \l {Defining new Components}. Consequently
-they have several apparent limitations that only make sense in this context.
+\qml
+Button { buttonText: "This is a button" }
+\endqml
+
+Here, modifying \c buttonText directly modifies the \c textItem.text value; it does not
+change some other value that then updates \c textItem.text.
+
+In this case, the use of aliased properties is essential. If \c buttonText was not an alias,
+changing its value would not actually change the displayed text at all, as
+\l {Property Binding}{property bindings} are not bi-directional: the \c buttonText value would
+change when \c textItem.text changes, but not the other way around.
+
+Aliased properties are also useful for allowing external objects to directly modify and
+access child objects in a component. For example, here is a modified version of the \c ImageViewer
+component shown \l {Adding Properties}{earlier} on this page. The \c currentImage property has
+been changed to an alias to the child \l Image object:
+
+\table
+\row
+\o \snippet doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml 0
+\o \snippet doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml 0
+\endtable
+
+Instead of being limited to setting the \l Image source, \c application.qml can now directly
+access and modify the child \l Image object and its properties.
+
+Obviously, exposing child objects in this manner should be done with care, as it allows external
+objects to modify them freely. However, this use of aliased properties can be quite useful in
+particular situations, such as for the \l {declarative/ui-components/tabwidget}{TabWidget}
+example, where new tab items are actually parented to a child object that displays the current tab.
+
+
+\section3 Considerations for property aliases
Aliases are only activated once the component specifying them is completed. The
most obvious consequence of this is that the component itself cannot generally
-use the aliased property directly. For example, this will not work:
+use the aliased property directly during creation. For example, this will not work:
\code
// Does NOT work
- property alias innerColor: innerRect.color
- innerColor: "black"
+ property alias buttonText: textItem.text
+ buttonText: "Some text" // buttonText is not yet defined when this value is set
\endcode
-This behavior is required to allow type developers to redefine the behavior
-of existing property names while continuing to use the existing behavior within
-the type they are building, something that is not possible with property
-definitions. In the example used so far, this could allows the developer to fix
-the external rectangle's color as "red" and redefine the "color" property to
-refer to the inner rectangle, like this:
-
-\code
-Rectangle {
- property alias color: innerRect.color
-
- color: "red"; width: 100; height: 100
- Rectangle {
- id: innerRect
- anchors.centerIn: parent
- width: parent.width - 10
- height: parent.height - 10
- color: "black"
- }
-}
-\endcode
-
-Users of this type would not be able to affect the color of the red rectangle,
-but would find using the "color" property, rather than the strange new
-"innerColor" property, much more familiar.
-
A second, much less significant, consequence of the delayed activation of
aliases is that an alias reference cannot refer to another aliasing property
declared within the same component. This will not work:
@@ -900,198 +926,177 @@ declared within the same component. This will not work:
\code
// Does NOT work
id: root
- property alias innerColor: innerRect.color
- property alias innerColor2: root.innerColor
+ property alias buttonText: textItem.text
+ property alias buttonText2: root.buttonText
\endcode
-From outside the component, aliasing properties appear as regular Qt properties
-and consequently can be used in alias references.
+At the time the component is created, the \c buttonText value has not yet been assigned,
+so \c root.buttonText would refer to an undefined value. (From outside the component,
+however, aliasing properties appear as regular Qt properties and consequently can be
+used in alias references.)
-\section1 Adding new signals
+It is possible for an aliased property to have the same name as an existing property. For example,
+the following component has a \c color alias property, named the same as the built-in
+\l {Rectangle::color} property:
-New signals can be added to an existing type. These new signals are available
-for use within QML, and also appear as regular Qt signals on the C++ object that
-can be used in Qt signal/slot connections.
+\snippet doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml 0
+
+Any objects that use this component and refer to its \c color property will be
+referring to the alias rather than the ordinary \l {Rectangle::color} property. Internally,
+however, the rectangle can correctly set this property to "red" and refer to the actual defined
+property rather than the alias.
+
+
+\section1 Adding Methods
+
+A QML component can define methods of JavaScript code. These methods can be invoked
+either internally or by other objects.
+
+The syntax for defining a method is:
-The syntax for defining a new signal is:
\code
-signal <name>[([<type> <parameter name>[, ...]])]
+function <name>([<parameter name>[, ...]]) { <body> }
\endcode
This declaration may appear anywhere within a type body, but it is customary to
-include it at the top. Attempting to declare two signals or methods with the
-same name in the same type block is an error. However, a new signal may reuse
-the name of an existing signal on the type. This should be done with caution,
-as the existing signal may be hidden and become inaccessible.
+include it at the top. Attempting to declare two methods or signals with the
+same name in the same type block is an error. However, a new method may reuse
+the name of an existing method on the type. (This should be done with caution,
+as the existing method may be hidden and become inaccessible.)
-The options for parameter types are the same as for property types (see
-\l {Adding new properties}. If this signal has no parameters, the parameter
-list may be omitted entirely.
+Unlike \l{Adding Signals}{signals}, method parameter types do not have to be declared as they
+default to the \c variant type. The body of the method is written in JavaScript and may access
+the parameters by name.
-Here are three examples of signal declarations:
-\code
- Item {
- signal clicked
- signal hovered()
- signal performAction(string action, variant actionArgument)
- }
-\endcode
+Here is an example of a component with a \c say() method that accepts a single \c text argument:
-Adding a signal to an item automatically adds a signal handler to it.
-The signal hander is named on<Signal name>, with the first letter of the
-signal name being upper cased. The above example item would now have the
-following signal handlers:
+\snippet doc/src/snippets/declarative/qml-extending-types/methods/app.qml 0
-\list
- \o onClicked
- \o onHovered
- \o onPerformAction
-\endlist
+A method can be connected to a signal so that it is automatically invoked whenever the signal
+is emitted. See \l {Connecting signals to methods and other signals} below.
+
+Also see \l {Integrating JavaScript} for more information on using JavaScript with QML.
-\section1 Adding new methods
-New methods can be added to an existing type. These new methods are available
-for use within QML, and also appear as regular Qt slots on the C++ object that
-can be used in Qt signal/slot connections.
+\section1 Adding Signals
+
+Signals provide a way to notify other objects when an event has occurred. For example, the MouseArea
+\c clicked signal notifies other objects that the mouse has been clicked within the area.
+
+The syntax for defining a new signal is:
\code
-function <name>([<parameter name>[, ...]]) { <body> }
+signal <name>[([<type> <parameter name>[, ...]])]
\endcode
This declaration may appear anywhere within a type body, but it is customary to
-include it at the top. Attempting to declare two methods or signals with the
-same name in the same type block is an error. However, a new method may reuse
-the name of an existing method on the type. This should be done with caution,
-as the existing method may be hidden and become inaccessible.
+include it at the top. Attempting to declare two signals or methods with the
+same name in the same type block is an error. However, a new signal may reuse
+the name of an existing signal on the type. (This should be done with caution,
+as the existing signal may be hidden and become inaccessible.)
-Methods parameters are not typed. In C++ these parameters are of type QVariant.
-The body of the method is written in JavaScript and may access the parameters by
-name.
+Here are three examples of signal declarations:
-This example adds a new method that behaves like a child:
\code
Item {
- function say(text) {
- console.log("You said " + text);
- }
+ signal clicked
+ signal hovered()
+ signal performAction(string action, variant actionArgument)
}
\endcode
-This may be connected to via QObject::connect() or called directly from C++ using
-QMetaObject::invokeMethod():
+If the signal has no parameters, the "()" brackets are optional. If parameters are used, the
+parameter types must be declared, as for the \c string and \c variant arguments for the \c
+performAction signal above; the allowed parameter types are the same as those listed in the \l
+{Adding Properties} section on this page.
-\code
- QDeclarativeEngine engine;
- QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext());
- QDeclarativeComponent component(&engine, QUrl::fromLocalFile("main.qml"));
- QObject *object = component.create(context);
- QVariant str("Hello");
- QMetaObject::invokeMethod(object, "say", Q_ARG(QVariant, str));
-\endcode
-
-Return values of type QVariant are also supported via Q_RETURN_ARG.
-
-\section1 Defining new Components
-\target components
+Adding a signal to an item automatically adds a \l {Signal Handlers}{signal handler} as well.
+The signal hander is named \c on<SignalName>, with the first letter of the signal being upper
+cased. The above example item would now have the following signal handlers:
-A component is a reusable type with a well-defined interface built entirely in
-QML. Components appear as regular QML elements, and can be used interchangeably
-with core types. Components allow developers to create new types to be reused
-in other projects without the use of C++. Components can also help to reduce
-duplication inside one project by limiting the need for large numbers of
-copy-and-pasted blocks.
+\list
+\o onClicked
+\o onHovered
+\o onPerformAction
+\endlist
-Any snippet of QML code can become a component, just by placing it in the file "<Name>.qml"
-where <Name> is the new element name, and begins with an uppercase letter. Note that
-the case of all characters in the <Name> are significant on some filesystems, notably
-UNIX filesystems. It is recommended that the case of the filename matches the case of
-the component name in QML exactly, regardless of the platform the QML will be deployed to.
+To emit a signal, simply invoke it in the same way as a method. Below left, when the \l MouseArea is
+clicked, it emits the parent \c buttonClicked signal by invoking \c rect.buttonClicked(). The
+signal is received by \c application.qml through an \c onButtonClicked signal handler:
-These QML files automatically become available as new QML element types
-to other QML components and applications in the same directory.
+\table
+\row
+\o \snippet doc/src/snippets/declarative/qml-extending-types/signals/basic.qml 0
+\o \snippet doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml 0
+\endtable
-For example, here we show how a component named "Box" is defined and used
-multiple times by an application.
+If the signal has parameters, they are accessible by parameter name in the signal handler.
+In the example below, \c buttonClicked is emitted with \c xPos and \c yPos parameters instead:
\table
\row
-\o application.qml
-\code
-Rectangle {
- width: 100; height: 400;
- Box { x: 0; y: 0 }
- Box { x: 0; y: 150 }
- Box { x: 0; y: 300 }
-}
-\endcode
-\o Box.qml
-\code
-Rectangle {
- width: 100; height: 100;
- color: "blue"
-}
-\endcode
+\o \snippet doc/src/snippets/declarative/qml-extending-types/signals/Button.qml 0
+\o \snippet doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml 0
\endtable
-Components may be collected into \l {Modules} that gives the
-developer more freedom than just putting files in the same directory.
-\section2 Building reusable components
+\section2 Connecting signals to methods and other signals
-A component type built to be reused by others must have a well defined
-interface. In QML, an interface consists of a defined collection of
-properties, signals and methods. Users of a component have access to all the
-properties, signals and methods defined on the root element of the component.
+Signal objects have a \c connect() method that can be used to a connect a signal to a method or
+another signal. When a signal is connected to a method, the method is automatically invoked
+whenever the signal is emitted. (In Qt terminology, the method is a \e slot that is connected
+to the \e signal; all methods defined in QML are created as Qt slots.) This enables a signal
+to be received by a method instead of a \l {Signal Handlers}{signal handler}.
-In the component example above, the root element of the "Box" component is a
-Rect. As the Rect type has a "color" property, this property is accessible to
-users of the Box component. For example, the application.qml can be modified
-to show three different colored boxes like this:
-\code
-Rectangle {
- width: 100; height: 400;
- Box { x: 0; y: 0; color: "red"; }
- Box { x: 0; y: 150; color: "yellow"; }
- Box { x: 0; y: 300; color: "green"; }
-}
-\endcode
+For example, the \c application.qml above could be rewritten as:
-As expected, adding additional properties to the root element of Box, makes them
-available externally. Here we add a "text" property:
+\snippet doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml 0
-\table
-\row
-\o application.qml
-\code
-Rectangle {
- width: 100; height: 400;
- Box { x: 0; y: 0; color: "red"; text: "stop" }
- Box { x: 0; y: 150; color: "yellow"; text: "slow" }
- Box { x: 0; y: 300; color: "green"; text: "go" }
-}
-\endcode
-\o Box.qml
-\code
-Rectangle {
- property alias text: myText.text
- width: 100; height: 100;
- color: "blue"
- Text {
- id: myText
- anchors.centerIn: parent
+The \c myMethod() method will be called whenever the \c buttonClicked signal is received.
+
+In many cases it is sufficient to receive signals through signal handlers rather than using
+the \c connect() function; the above example does not provide any improvements over using a
+simple \c onButtonClicked handler. However, if you are \l{Dynamic Object Management in QML}{creating objects dynamically},
+or \l {Integrating JavaScript}{integrating JavaScript code}, then you will find the
+\c connect() method useful. For example, the component below creates three \c Button
+objects dynamically, and connects the \c buttonClicked signal of each object to the
+\c myMethod() function:
+
+\snippet doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml 0
+
+In the same way, you could connect a signal to methods defined in a dynamically
+created object, or \l {Receiving QML Signals in JavaScript}{connect a signal to a JavaScript method}.
+
+There is also a corresponding \c disconnect() method for removing connected signals. The following
+code removes the connection created in \c application.qml above:
+
+\qml
+// application.qml
+Item {
+ ...
+
+ function removeSignal() {
+ button.clicked.disconnect(item.myMethod)
}
}
-\endcode
-\endtable
+\endqml
+
+
+\section3 Forwarding signals
+
+The \c connect() method can also connect a signal to other signals. This has the effect
+of "forwarding" a signal: it is automatically emitted whenever the relevant signal is emitted. For
+example, the MouseArea \c onClicked handler in \c Button.qml above could have been replaced with
+a call to \c connect():
+
+\qml
+MouseArea {
+ anchors.fill: parent
+ Component.onCompleted: clicked.connect(item.buttonClicked)
+}
+\endqml
-Methods and signals may be added in the same way.
+Whenever the \l MouseArea \c clicked signal is emitted, the \c rect.buttonClicked signal will
+automatically be emitted as well.
-As all external methods, signals and properties are accessible to external
-users, developers should ensure that setting these properties does not have
-any undesirable side-effects. For most resilience, root level properties should
-only be used for literal default values. When a root level property must be
-used inside the component - such as the children property - property aliases
-can be used to redirect this property to a "safe" location for external users.
-Try to think of the root level properties as being "owned" by the components
-user, rather than the component itself.
*/
diff --git a/doc/src/declarative/javascriptblocks.qdoc b/doc/src/declarative/javascriptblocks.qdoc
index b6fad5b..155bd6e 100644
--- a/doc/src/declarative/javascriptblocks.qdoc
+++ b/doc/src/declarative/javascriptblocks.qdoc
@@ -94,9 +94,8 @@ Both relative and absolute JavaScript URLs can be imported. In the case of a
relative URL, the location is resolved relative to the location of the
\l {QML Document} that contains the import. If the script file is not accessible,
an error will occur. If the JavaScript needs to be fetched from a network
-resource, the QML document has a "Loading"
-\l {QDeclarativeComponent::status()}{status} until the script has been
-downloaded.
+resource, the component's \l {QDeclarativeComponent::status()}{status} is set to
+"Loading" until the script has been downloaded.
Imported JavaScript files are always qualified using the "as" keyword. The
qualifier for JavaScript files must be unique, so there is always a one-to-one
@@ -143,6 +142,31 @@ As they are shared, stateless library files cannot access QML component instance
objects or properties directly, although QML values can be passed as function
parameters.
+
+\section2 Importing One JavaScript File From Another
+
+If a JavaScript file needs to use functions defined inside another JavaScript file,
+the other file can be imported using the \l {QML:Qt::include()}{Qt.include()}
+function. This imports all functions from the other file into the current file's
+namespace.
+
+For example, the QML code below left calls \c showCalculations() in \c script.js,
+which in turn can call \c factorial() in \c factorial.js, as it has included
+\c factorial.js using \l {QML:Qt::include()}{Qt.include()}.
+
+\table
+\row
+\o {1,2} \snippet doc/src/snippets/declarative/integrating-javascript/includejs/app.qml 0
+\o \snippet doc/src/snippets/declarative/integrating-javascript/includejs/script.js 0
+\row
+\o \snippet doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js 0
+\endtable
+
+Notice that calling \l {QML:Qt::include()}{Qt.include()} imports all functions from
+\c factorial.js into the \c MyScript namespace, which means the QML component can also
+access \c factorial() directly as \c MyScript.factorial().
+
+
\section1 Running JavaScript at Startup
It is occasionally necessary to run some imperative code at application (or
@@ -207,6 +231,25 @@ changes.
See \l {Property Binding} for more information.
+\section1 Receiving QML Signals in JavaScript
+
+To receive a QML signal, use the signal's \c connect() method to connect it to a JavaScript
+function.
+
+For example, the following code connects the MouseArea \c clicked signal to the \c jsFunction()
+in \c script.js:
+
+\table
+\row
+\o \snippet doc/src/snippets/declarative/integrating-javascript/connectjs.qml 0
+\o \snippet doc/src/snippets/declarative/integrating-javascript/script.js 0
+\endtable
+
+The \c jsFunction() will now be called whenever MouseArea's \c clicked signal is emitted.
+
+See \l {Connecting signals to methods and other signals} for more information.
+
+
\section1 QML JavaScript Restrictions
QML executes standard JavaScript code, with the following restrictions:
diff --git a/doc/src/declarative/pics/qml-extending-types.png b/doc/src/declarative/pics/qml-extending-types.png
new file mode 100644
index 0000000..6990d7c
--- /dev/null
+++ b/doc/src/declarative/pics/qml-extending-types.png
Binary files differ
diff --git a/doc/src/declarative/qtbinding.qdoc b/doc/src/declarative/qtbinding.qdoc
index c3ce6d0..04b8ca6 100644
--- a/doc/src/declarative/qtbinding.qdoc
+++ b/doc/src/declarative/qtbinding.qdoc
@@ -230,7 +230,7 @@ Also see the QDeclarativeContext documentation for more information.
\section2 Defining new QML elements
-While new QML elements can be \l {Defining new Components}{defined in QML}, they can also be
+While new QML elements can be \l {Defining New Components}{defined in QML}, they can also be
defined by C++ classes; in fact, many of the core \l {QML Elements} are implemented through
C++ classes. When you create a QML object using one of these elements, you are simply creating an
instance of a QObject-based C++ class and setting its properties.
@@ -426,6 +426,7 @@ By default, QML recognizes the following data types:
\o QSize, QSizeF
\o QRect, QRectF
\o QVariant
+\o QVariantList, QVariantMap
\o QObject*
\o Enumerations declared with Q_ENUMS()
\endlist
@@ -434,6 +435,37 @@ To allow a custom C++ type to be created or used in QML, the C++ class must be r
type using qmlRegisterType(), as shown in the \l {Defining new QML elements} section above.
+\section2 JavaScript arrays and objects
+
+There is built-in support for automatic type conversion between QVariantList and JavaScript
+arrays, and QVariantMap and JavaScript objects.
+
+For example, the function defined in QML below left expects two arguments, an array and an object, and prints
+their contents using the standard JavaScript syntax for array and object item access. The C++ code
+below right calls this function, passing a QVariantList and a QVariantMap, which are automatically
+converted to JavaScript array and object values, repectively:
+
+\table
+\row
+\o \snippet doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml 0
+\o \snippet doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp 0
+\endtable
+
+This produces output like:
+
+\code
+Array item: 10
+Array item: #00ff00
+Array item: bottles
+Object item: language = QML
+Object item: released = Tue Sep 21 2010 00:00:00 GMT+1000 (EST)
+\endcode
+
+Similarly, if a C++ type uses a QVariantList or QVariantMap type for a property or method
+parameter, the value can be created as a JavaScript array or object in the QML
+side, and is automatically converted to a QVariantList or QVariantMap when it is passed to C++.
+
+
\section2 Using enumerations of a custom type
To use an enumeration from a custom C++ component, the enumeration must be declared with Q_ENUMS() to
@@ -455,7 +487,7 @@ See the \l {Tutorial: Writing QML extensions with C++}{Writing QML extensions wi
the \l {Extending QML in C++} reference documentation for more information.
-\section2 Automatic type conversion
+\section2 Automatic type conversion from strings
As a convenience, some basic types can be specified in QML using format strings to make it easier to
pass simple values from QML to C++.
diff --git a/doc/src/declarative/tutorial.qdoc b/doc/src/declarative/tutorial.qdoc
index 8467478..d8139b4 100644
--- a/doc/src/declarative/tutorial.qdoc
+++ b/doc/src/declarative/tutorial.qdoc
@@ -124,7 +124,7 @@ Our color picker is made of six cells with different colors.
To avoid writing the same code multiple times for each cell, we create a new \c Cell component.
A component provides a way of defining a new type that we can re-use in other QML files.
A QML component is like a black-box and interacts with the outside world through properties, signals and functions and is generally
-defined in its own QML file. (For more details, see \l {Defining new Components}).
+defined in its own QML file. (For more details, see \l {Defining New Components}).
The component's filename must always start with a capital letter.
Here is the QML code for \c Cell.qml:
@@ -144,7 +144,7 @@ An \l Item is the most basic visual element in QML and is often used as a contai
We declare a \c cellColor property. This property is accessible from \e outside our component, this allows us
to instantiate the cells with different colors.
-This property is just an alias to an existing property - the color of the rectangle that compose the cell (see \l{Adding new properties}).
+This property is just an alias to an existing property - the color of the rectangle that compose the cell (see \l{Adding Properties}).
\snippet examples/declarative/tutorials/helloworld/Cell.qml 5
diff --git a/doc/src/examples/qml-examples.qdoc b/doc/src/examples/qml-examples.qdoc
index ca24c66..0834527 100644
--- a/doc/src/examples/qml-examples.qdoc
+++ b/doc/src/examples/qml-examples.qdoc
@@ -663,7 +663,8 @@
\example declarative/ui-components/tabwidget
This example shows how to create a tab widget. It also demonstrates how
- \l {Setting default properties}{default properties} can be used to collect and
+ \l {Property aliases}{property aliases} and
+ \l {Default Properties}{default properties} can be used to collect and
assemble the child items declared within an \l Item.
\image qml-tabwidget-example.png
diff --git a/doc/src/platforms/emb-envvars.qdoc b/doc/src/platforms/emb-envvars.qdoc
index 1d109b4..3f318eb 100644
--- a/doc/src/platforms/emb-envvars.qdoc
+++ b/doc/src/platforms/emb-envvars.qdoc
@@ -112,7 +112,7 @@
device, e.g., \c /dev/mouse for mouse devices and \c /dev/ts for
touch panels.
- Multiple keyboard drivers can be specified in one go:
+ Multiple mouse drivers can be specified in one go:
\snippet doc/src/snippets/code/doc_src_emb-envvars.qdoc 3
diff --git a/doc/src/platforms/symbian-introduction.qdoc b/doc/src/platforms/symbian-introduction.qdoc
index 9da94c4..cce2be3 100644
--- a/doc/src/platforms/symbian-introduction.qdoc
+++ b/doc/src/platforms/symbian-introduction.qdoc
@@ -144,8 +144,17 @@
Smart installer will attempt to download
missing dependencies in addition to
just installing the application.
+ Note: The application \c .sis contained in smart installer \c .sis
+ will be recreated and signed with same certificates as
+ smart installer \c .sis.
+ \row \o \c ok_installer_sis \o Otherwise similar to \c installer_sis target, except
+ the application sis will not be recreated. This is useful
+ when application \c .sis needs to be separately signed before
+ including it into smart installer \c .sis.
\row \o \c unsigned_installer_sis \o Create unsigned \l{Smart Installer}{smart installer}
\c .sis file for project.
+ Note: The application \c .sis contained in smart installer
+ \c .sis will also be unsigned.
\row \o \c stub_sis \o Create a stub sis to allow upgradability of projects
that are deployed in ROM
\endtable
diff --git a/doc/src/snippets/declarative/integrating-javascript/connectjs.qml b/doc/src/snippets/declarative/integrating-javascript/connectjs.qml
new file mode 100644
index 0000000..d84b827
--- /dev/null
+++ b/doc/src/snippets/declarative/integrating-javascript/connectjs.qml
@@ -0,0 +1,57 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+import QtQuick 1.0
+import "script.js" as MyScript
+
+Item {
+ id: item
+ width: 200; height: 200
+
+ MouseArea {
+ id: mouseArea
+ anchors.fill: parent
+ }
+
+ Component.onCompleted: {
+ mouseArea.clicked.connect(MyScript.jsFunction)
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/integrating-javascript/includejs/app.qml b/doc/src/snippets/declarative/integrating-javascript/includejs/app.qml
new file mode 100644
index 0000000..2ecc475
--- /dev/null
+++ b/doc/src/snippets/declarative/integrating-javascript/includejs/app.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+import QtQuick 1.0
+import "script.js" as MyScript
+
+Item {
+ width: 100; height: 100
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: {
+ MyScript.showCalculations(10)
+ console.log("Call factorial() from QML:",
+ MyScript.factorial(10))
+ }
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js b/doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js
new file mode 100644
index 0000000..0a01e9e
--- /dev/null
+++ b/doc/src/snippets/declarative/integrating-javascript/includejs/factorial.js
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// factorial.js
+function factorial(a) {
+ a = parseInt(a);
+ if (a <= 0)
+ return 1;
+ else
+ return a * factorial(a - 1);
+}
+//![0]
diff --git a/doc/src/snippets/declarative/integrating-javascript/includejs/script.js b/doc/src/snippets/declarative/integrating-javascript/includejs/script.js
new file mode 100644
index 0000000..7380412
--- /dev/null
+++ b/doc/src/snippets/declarative/integrating-javascript/includejs/script.js
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// script.js
+Qt.include("factorial.js")
+
+function showCalculations(value) {
+ console.log("Call factorial() from script.js:",
+ factorial(value));
+}
+//![0]
diff --git a/doc/src/snippets/declarative/integrating-javascript/script.js b/doc/src/snippets/declarative/integrating-javascript/script.js
new file mode 100644
index 0000000..f7099f8
--- /dev/null
+++ b/doc/src/snippets/declarative/integrating-javascript/script.js
@@ -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 documentation of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// script.js
+
+function jsFunction() {
+ console.log("Called JavaScript function!")
+}
+//![0]
+
diff --git a/doc/src/snippets/declarative/qml-extending-types/components/Button.qml b/doc/src/snippets/declarative/qml-extending-types/components/Button.qml
new file mode 100644
index 0000000..43fe0e2
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/components/Button.qml
@@ -0,0 +1,53 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// Button.qml
+import QtQuick 1.0
+
+Rectangle {
+ width: 100; height: 100
+ color: "red"
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: console.log("Button clicked!")
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/components/application.qml b/doc/src/snippets/declarative/qml-extending-types/components/application.qml
new file mode 100644
index 0000000..0c3b0df
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/components/application.qml
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// application.qml
+import QtQuick 1.0
+
+Column {
+ Button { width: 50; height: 50 }
+ Button { x: 50; width: 100; height: 50; color: "blue" }
+ Button { width: 50; height: 50; radius: 8 }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/methods/app.qml b/doc/src/snippets/declarative/qml-extending-types/methods/app.qml
new file mode 100644
index 0000000..3b5f008
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/methods/app.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 1.0
+//![0]
+Rectangle {
+ id: rect
+ width: 100; height: 100
+
+ function say(text) {
+ console.log("You said: " + text);
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: rect.say("Mouse clicked")
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml b/doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml
new file mode 100644
index 0000000..e37db9c
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/ImageViewer.qml
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// ImageViewer.qml
+import QtQuick 1.0
+
+Item {
+ id: item
+ width: 200; height: 200
+
+ property string currentImage: "default-image.png"
+
+ Image { source: item.currentImage }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml
new file mode 100644
index 0000000..aab2748
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias-override.qml
@@ -0,0 +1,48 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 1.0
+//![0]
+Rectangle {
+ property alias color: childRect.color
+ color: "red"
+
+ Rectangle { id: childRect }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias.qml
new file mode 100644
index 0000000..1bda447
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias.qml
@@ -0,0 +1,51 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// Button.qml
+import QtQuick 1.0
+
+Item {
+ property alias buttonText: textItem.text
+
+ width: 200; height: 50
+
+ Text { id: textItem }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml
new file mode 100644
index 0000000..7f50674
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias/ImageViewer.qml
@@ -0,0 +1,52 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// ImageViewer.qml
+import QtQuick 1.0
+
+Item {
+ id: item
+ width: 200; height: 200
+
+ property alias currentImage: image
+
+ Image { id: image }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml b/doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml
new file mode 100644
index 0000000..3592e60
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/alias/application.qml
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// application.qml
+import QtQuick 1.0
+
+ImageViewer {
+ id: viewer
+
+ currentImage.source: "http://qt.nokia.com/logo.png"
+ currentImage.width: width
+ currentImage.height: height
+ currentImage.fillMode: Image.Tile
+
+ Text { text: currentImage.source }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/application.qml b/doc/src/snippets/declarative/qml-extending-types/properties/application.qml
new file mode 100644
index 0000000..4978f05
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/application.qml
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+import QtQuick 1.0
+
+ImageViewer {
+ id: viewer
+
+ currentImage: "http://qt.nokia.com/logo.png"
+
+ Text { text: viewer.currentImage }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml b/doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml
new file mode 100644
index 0000000..1d1b325
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/properties/property-signals.qml
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 1.0
+//![0]
+Item {
+ property int myNumber
+
+ onMyNumberChanged: { console.log("myNumber has changed:", myNumber); }
+
+ Component.onCompleted: myNumber = 100
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/Button.qml b/doc/src/snippets/declarative/qml-extending-types/signals/Button.qml
new file mode 100644
index 0000000..9272572
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/Button.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 1.0
+
+//![0]
+// Button.qml
+Rectangle {
+ id: rect
+ width: 100; height: 100
+
+ signal buttonClicked(int xPos, int yPos)
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: rect.buttonClicked(mouse.x, mouse.y)
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/basic.qml b/doc/src/snippets/declarative/qml-extending-types/signals/basic.qml
new file mode 100644
index 0000000..272c972
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/basic.qml
@@ -0,0 +1,55 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// Button.qml
+import QtQuick 1.0
+
+Rectangle {
+ id: rect
+ width: 100; height: 100
+
+ signal buttonClicked
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: rect.buttonClicked()
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml b/doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml
new file mode 100644
index 0000000..4b1f217
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/connectdynamic.qml
@@ -0,0 +1,61 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 1.0
+//![0]
+Item {
+ id: item
+ width: 300; height: 100
+
+ function myMethod() {
+ console.log("Button was clicked!")
+ }
+
+ Row { id: row }
+
+ Component.onCompleted: {
+ var component = Qt.createComponent("Button.qml")
+ for (var i=0; i<3; i++) {
+ var button = component.createObject(row)
+ button.border.width = 1
+ button.buttonClicked.connect(myMethod)
+ }
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml b/doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml
new file mode 100644
index 0000000..ae14281
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/connectslots.qml
@@ -0,0 +1,56 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 1.0
+//![0]
+Item {
+ id: item
+ width: 200; height: 200
+
+ function myMethod() {
+ console.log("Button was clicked!")
+ }
+
+ Button {
+ id: button
+ anchors.fill: parent
+ Component.onCompleted: buttonClicked.connect(item.myMethod)
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml b/doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml
new file mode 100644
index 0000000..742ab18
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/no-parameters.qml
@@ -0,0 +1,49 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+//![0]
+// application.qml
+import QtQuick 1.0
+
+Button {
+ width: 100; height: 100
+ onButtonClicked: console.log("Mouse was clicked")
+}
+//![0]
+
diff --git a/doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml b/doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml
new file mode 100644
index 0000000..f513f5f
--- /dev/null
+++ b/doc/src/snippets/declarative/qml-extending-types/signals/parameters.qml
@@ -0,0 +1,50 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 1.0
+//![0]
+// application.qml
+Button {
+ width: 100; height: 100
+ onButtonClicked: {
+ console.log("Mouse clicked at " + xPos + "," + yPos)
+ }
+}
+//![0]
+
diff --git a/doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml b/doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml
new file mode 100644
index 0000000..dd59fed
--- /dev/null
+++ b/doc/src/snippets/declarative/qtbinding/variantlistmap/MyItem.qml
@@ -0,0 +1,54 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+import QtQuick 1.0
+
+//![0]
+// MyItem.qml
+Item {
+ function readValues(anArray, anObject) {
+ for (var i=0; i<anArray.length; i++)
+ console.log("Array item:", anArray[i])
+
+ for (var prop in anObject) {
+ console.log("Object item:", prop, "=", anObject[prop])
+ }
+ }
+}
+//![0]
diff --git a/doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp b/doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp
new file mode 100644
index 0000000..9986264
--- /dev/null
+++ b/doc/src/snippets/declarative/qtbinding/variantlistmap/main.cpp
@@ -0,0 +1,67 @@
+/****************************************************************************
+**
+** 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:BSD$
+** You may use this file under the terms of the BSD license as follows:
+**
+** "Redistribution and use in source and binary forms, with or without
+** modification, are permitted provided that the following conditions are
+** met:
+** * Redistributions of source code must retain the above copyright
+** notice, this list of conditions and the following disclaimer.
+** * Redistributions in binary form must reproduce the above copyright
+** notice, this list of conditions and the following disclaimer in
+** the documentation and/or other materials provided with the
+** distribution.
+** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
+** the names of its contributors may be used to endorse or promote
+** products derived from this software without specific prior written
+** permission.
+**
+** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QtCore>
+#include <QtDeclarative>
+
+int main(int argc, char *argv[]) {
+ QApplication app(argc, argv);
+
+//![0]
+// C++
+QDeclarativeView view(QUrl::fromLocalFile("MyItem.qml"));
+
+QVariantList list;
+list << 10 << Qt::green << "bottles";
+
+QVariantMap map;
+map.insert("language", "QML");
+map.insert("released", QDate(2010, 9, 21));
+
+QMetaObject::invokeMethod(view.rootObject(), "readValues",
+ Q_ARG(QVariant, QVariant::fromValue(list)),
+ Q_ARG(QVariant, QVariant::fromValue(map)));
+//![0]
+
+ view.setSource(QUrl::fromLocalFile("MyItem.qml"));
+ view.show();
+
+ return app.exec();
+}
+
diff --git a/doc/src/snippets/declarative/qtbinding/variantlistmap/variantlistmap.pro b/doc/src/snippets/declarative/qtbinding/variantlistmap/variantlistmap.pro
new file mode 100644
index 0000000..68eeaf2
--- /dev/null
+++ b/doc/src/snippets/declarative/qtbinding/variantlistmap/variantlistmap.pro
@@ -0,0 +1,2 @@
+QT += declarative
+SOURCES += main.cpp
diff --git a/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml b/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml
index 15f2f11..f6564f7 100644
--- a/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml
+++ b/examples/declarative/modelviews/visualitemmodel/visualitemmodel.qml
@@ -55,16 +55,22 @@ Rectangle {
width: view.width; height: view.height
color: "#FFFEF0"
Text { text: "Page 1"; font.bold: true; anchors.centerIn: parent }
+
+ Component.onDestruction: print("destroyed 1")
}
Rectangle {
width: view.width; height: view.height
color: "#F0FFF7"
Text { text: "Page 2"; font.bold: true; anchors.centerIn: parent }
+
+ Component.onDestruction: print("destroyed 2")
}
Rectangle {
width: view.width; height: view.height
color: "#F4F0FF"
Text { text: "Page 3"; font.bold: true; anchors.centerIn: parent }
+
+ Component.onDestruction: print("destroyed 3")
}
}
@@ -76,6 +82,7 @@ Rectangle {
highlightRangeMode: ListView.StrictlyEnforceRange
orientation: ListView.Horizontal
snapMode: ListView.SnapOneItem; flickDeceleration: 2000
+ cacheBuffer: 200
}
Rectangle {
diff --git a/examples/declarative/positioners/mirroring-positioners.qml b/examples/declarative/positioners/mirroring-positioners.qml
new file mode 100644
index 0000000..0db95dd
--- /dev/null
+++ b/examples/declarative/positioners/mirroring-positioners.qml
@@ -0,0 +1,70 @@
+import QtQuick 1.0
+
+Rectangle {
+ width: column.width+10
+ height: column.height+10
+ property bool arabic: false
+ Column {
+ id: column
+ spacing: 10
+ anchors.centerIn: parent
+ Text {
+ text: "Row"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ Row {
+ flow: arabic ? Row.RightToLeft : Row.LeftToRight
+ spacing: 10
+ Repeater {
+ model: 4
+ Loader {
+ property int value: index
+ sourceComponent: delegate
+ }
+ }
+ }
+ Text {
+ text: "Grid"
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ Grid {
+ flow: arabic ? Grid.RightToLeft : Grid.LeftToRight
+ spacing: 10; columns: 4
+ Repeater {
+ model: 11
+ Loader {
+ property int value: index
+ sourceComponent: delegate
+ }
+ }
+ }
+ Rectangle {
+ height: 50; width: parent.width
+ color: mouseArea.pressed ? "black" : "gray"
+ Text {
+ text: arabic ? "RTL" : "LTR"
+ color: "white"
+ font.pixelSize: 20
+ anchors.centerIn: parent
+ }
+ MouseArea {
+ id: mouseArea
+ onClicked: arabic = !arabic
+ anchors.fill: parent
+ }
+ }
+ }
+ Component {
+ id: delegate
+ Rectangle {
+ width: 50; height: 50
+ color: Qt.rgba(0.8/(parent.value+1),0.8/(parent.value+1),0.8/(parent.value+1),1.0)
+ Text {
+ text: parent.parent.value+1
+ color: "white"
+ font.pixelSize: 20
+ anchors.centerIn: parent
+ }
+ }
+ }
+}
diff --git a/examples/declarative/ui-components/tabwidget/TabWidget.qml b/examples/declarative/ui-components/tabwidget/TabWidget.qml
index f066fd2..2a74c46 100644
--- a/examples/declarative/ui-components/tabwidget/TabWidget.qml
+++ b/examples/declarative/ui-components/tabwidget/TabWidget.qml
@@ -45,8 +45,8 @@ Item {
// Setting the default property to stack.children means any child items
// of the TabWidget are actually added to the 'stack' item's children.
- // See the "Extending Types from QML" documentation for details on default
- // properties.
+ // See the "Writing QML Components: Properties, Methods and Signals"
+ // documentation for details on default properties.
default property alias content: stack.children
property int current: 0
diff --git a/mkspecs/common/symbian/symbian.conf b/mkspecs/common/symbian/symbian.conf
index 11907cf..707335c 100644
--- a/mkspecs/common/symbian/symbian.conf
+++ b/mkspecs/common/symbian/symbian.conf
@@ -147,7 +147,7 @@ SYMBIAN_SUPPORTED_LANGUAGES = \
# 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
+QT_IMPORTS_BASE_DIR = /resource/qt$${QT_LIBINFIX}/imports
load(symbian/platform_paths)
diff --git a/mkspecs/features/symbian/sis_targets.prf b/mkspecs/features/symbian/sis_targets.prf
index ad81803..024378b 100644
--- a/mkspecs/features/symbian/sis_targets.prf
+++ b/mkspecs/features/symbian/sis_targets.prf
@@ -33,19 +33,16 @@ equals(GENERATE_SIS_TARGETS, true) {
make_cache_name = .make.cache
sis_target.target = sis
- sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
- $(if $(wildcard $$make_cache_name), \
- $(MAKE) -f $(MAKEFILE) ok_sis MAKEFILES=$$make_cache_name \
+ sis_target.commands = $(if $(wildcard $$make_cache_name), \
+ $(MAKE) -f $(MAKEFILE) ok_sis MAKEFILES=$$make_cache_name \
+ , \
+ $(if $(QT_SIS_TARGET), \
+ $(MAKE) -f $(MAKEFILE) ok_sis \
, \
- $(if $(QT_SIS_TARGET), \
- $(MAKE) -f $(MAKEFILE) ok_sis \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
- ) \
+ $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
) \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
+
sis_target.depends += $${baseTarget}_template.pkg
ok_sis_target.target = ok_sis
@@ -53,19 +50,16 @@ equals(GENERATE_SIS_TARGETS, true) {
$(QT_SIS_TARGET) $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
unsigned_sis_target.target = unsigned_sis
- unsigned_sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
- $(if $(wildcard $$make_cache_name), \
- $(MAKE) -f $(MAKEFILE) ok_unsigned_sis MAKEFILES=$$make_cache_name \
- , \
- $(if $(QT_SIS_TARGET), \
- $(MAKE) -f $(MAKEFILE) ok_unsigned_sis \
+ unsigned_sis_target.commands = $(if $(wildcard $$make_cache_name), \
+ $(MAKE) -f $(MAKEFILE) ok_unsigned_sis MAKEFILES=$$make_cache_name \
, \
- $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
- ) \
- ) \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
- )
+ $(if $(QT_SIS_TARGET), \
+ $(MAKE) -f $(MAKEFILE) ok_unsigned_sis \
+ , \
+ $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
+ ) \
+ )
+
unsigned_sis_target.depends += $${baseTarget}_template.pkg
ok_unsigned_sis_target.target = ok_unsigned_sis
@@ -74,49 +68,39 @@ equals(GENERATE_SIS_TARGETS, true) {
target_sis_target.target = $${baseTarget}.sis
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
+ # The installer_sis target has dependency to sis target, so it will regenerate sis package.
+ # To create smart installer wrapper for for an existing sis package, use ok_installer_sis target directly.
installer_sis_target.target = installer_sis
- installer_sis_target.commands = $(if $(wildcard $${baseTarget}_installer.pkg), \
- $(MAKE) -f $(MAKEFILE) ok_installer_sis \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
- )
+ installer_sis_target.commands = $(MAKE) -f $(MAKEFILE) ok_installer_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 - \
$(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
+ ok_installer_sis_target.depends = $${baseTarget}_installer.pkg
unsigned_installer_sis_target.target = unsigned_installer_sis
- unsigned_installer_sis_target.commands = $(if $(wildcard $${baseTarget}_installer.pkg), \
- $(MAKE) -f $(MAKEFILE) ok_unsigned_installer_sis \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
- )
+ unsigned_installer_sis_target.commands = $(MAKE) -f $(MAKEFILE) ok_unsigned_installer_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
-
- fail_sis_nopkg_target.target = fail_sis_nopkg
- fail_sis_nopkg_target.commands = "$(error PKG file does not exist, 'sis' and 'installer_sis' target are only supported for executables or projects with DEPLOYMENT statement)"
+ ok_unsigned_installer_sis_target.depends = $${baseTarget}_installer.pkg
fail_sis_nocache_target.target = fail_sis_nocache
fail_sis_nocache_target.commands = "$(error Project has to be built or QT_SIS_TARGET environment variable has to be set before calling 'SIS' target)"
stub_sis_target.target = stub_sis
- stub_sis_target.commands = $(if $(wildcard $${baseTarget}_template.pkg), \
- $(if $(wildcard $$make_cache_name), \
- $(MAKE) -f $(MAKEFILE) ok_stub_sis MAKEFILES=$$make_cache_name \
+ stub_sis_target.commands = $(if $(wildcard $$make_cache_name), \
+ $(MAKE) -f $(MAKEFILE) ok_stub_sis MAKEFILES=$$make_cache_name \
+ , \
+ $(if $(QT_SIS_TARGET), \
+ $(MAKE) -f $(MAKEFILE) ok_stub_sis \
, \
- $(if $(QT_SIS_TARGET), \
- $(MAKE) -f $(MAKEFILE) ok_stub_sis \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
- ) \
+ $(MAKE) -f $(MAKEFILE) fail_sis_nocache \
) \
- , \
- $(MAKE) -f $(MAKEFILE) fail_sis_nopkg \
)
+
stub_sis_target.depends += $${baseTarget}_stub.pkg
ok_stub_sis_target.target = ok_stub_sis
@@ -132,7 +116,6 @@ equals(GENERATE_SIS_TARGETS, true) {
ok_installer_sis_target \
unsigned_installer_sis_target \
ok_unsigned_installer_sis_target \
- fail_sis_nopkg_target \
fail_sis_nocache_target \
stub_sis_target \
ok_stub_sis_target
@@ -178,10 +161,14 @@ equals(GENERATE_SIS_TARGETS, true) {
target_sis_target.commands = $(MAKE) -f $(MAKEFILE) sis
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.commands = $(MAKE) -f $(MAKEFILE) ok_installer_sis
installer_sis_target.depends = $${baseTarget}_installer.pkg sis
+ ok_installer_sis_target.target = ok_installer_sis
+ ok_installer_sis_target.commands = $$QMAKE_CREATEPACKAGE $(QT_SIS_OPTIONS) $${baseTarget}_installer.pkg - \
+ $(QT_SIS_CERTIFICATE) $(QT_SIS_KEY) $(QT_SIS_PASSPHRASE)
+ ok_installer_sis_target.depends = $${baseTarget}_installer.pkg
+
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 = $${baseTarget}_installer.pkg unsigned_sis
@@ -197,6 +184,7 @@ equals(GENERATE_SIS_TARGETS, true) {
unsigned_sis_target \
target_sis_target \
installer_sis_target \
+ ok_installer_sis_target \
unsigned_installer_sis_target
QMAKE_DISTCLEAN += $${sis_destdir}/$${baseTarget}.sis
diff --git a/qmake/project.cpp b/qmake/project.cpp
index 2586c57..bd81b17 100644
--- a/qmake/project.cpp
+++ b/qmake/project.cpp
@@ -1813,11 +1813,10 @@ QMakeProject::doProjectExpand(QString func, QList<QStringList> args_list,
for(int i = 0; i < args_list.size(); ++i)
args += args_list[i].join(QString(Option::field_sep));
- QString lfunc = func.toLower();
- if (!lfunc.isSharedWith(func))
+ ExpandFunc func_t = qmake_expandFunctions().value(func);
+ if (!func_t && (func_t = qmake_expandFunctions().value(func.toLower())))
warn_msg(WarnDeprecated, "%s:%d: Using uppercased builtin functions is deprecated.",
parser.file.toLatin1().constData(), parser.line_no);
- ExpandFunc func_t = qmake_expandFunctions().value(lfunc);
debug_msg(1, "Running project expand: %s(%s) [%d]",
func.toLatin1().constData(), args.join("::").toLatin1().constData(), func_t);
@@ -2174,7 +2173,7 @@ QMakeProject::doProjectExpand(QString func, QList<QStringList> args_list,
const QRegExp regex(r, Qt::CaseSensitive, QRegExp::Wildcard);
for(int d = 0; d < dirs.count(); d++) {
QString dir = dirs[d];
- if(!dir.isEmpty() && !dir.endsWith(Option::dir_sep))
+ if(!dir.isEmpty() && !dir.endsWith(QDir::separator()))
dir += "/";
QDir qdir(dir);
@@ -2390,7 +2389,7 @@ QMakeProject::doProjectTest(QString func, QList<QStringList> args_list, QMap<QSt
return true;
//regular expression I guess
QString dirstr = qmake_getpwd();
- int slsh = file.lastIndexOf(Option::dir_sep);
+ int slsh = file.lastIndexOf(QDir::separator());
if(slsh != -1) {
dirstr = file.left(slsh+1);
file = file.right(file.length() - slsh - 1);
diff --git a/src/corelib/global/qendian.h b/src/corelib/global/qendian.h
index d53504a..08415bf 100644
--- a/src/corelib/global/qendian.h
+++ b/src/corelib/global/qendian.h
@@ -44,9 +44,8 @@
#include <QtCore/qglobal.h>
-#ifdef Q_OS_LINUX
-# include <features.h>
-#endif
+// include stdlib.h and hope that it defines __GLIBC__ for glibc-based systems
+#include <stdlib.h>
#ifdef __GLIBC__
#include <byteswap.h>
diff --git a/src/corelib/tools/qalgorithms.qdoc b/src/corelib/tools/qalgorithms.qdoc
index 898f940..cd33f28 100644
--- a/src/corelib/tools/qalgorithms.qdoc
+++ b/src/corelib/tools/qalgorithms.qdoc
@@ -266,7 +266,7 @@
\overload
- This is the same as qFind(\a{container}.begin(), \a{container}.end(), value);
+ This is the same as qFind(\a{container}.constBegin(), \a{container}.constEnd(), value);
*/
/*! \fn void qCount(InputIterator begin, InputIterator end, const T &value, Size &n)
diff --git a/src/corelib/tools/qsimd.cpp b/src/corelib/tools/qsimd.cpp
index 63ebafb..bc5e9e4 100644
--- a/src/corelib/tools/qsimd.cpp
+++ b/src/corelib/tools/qsimd.cpp
@@ -285,7 +285,13 @@ static inline uint detectProcessorFeatures()
uint features = MMX|SSE|SSE2|CMOV;
uint feature_result = 0;
-#if defined(Q_CC_GNU)
+#if defined (Q_OS_WIN64)
+ {
+ int info[4];
+ __cpuid(info, 1);
+ feature_result = info[2];
+ }
+#elif defined(Q_CC_GNU)
quint64 tmp;
asm ("xchg %%rbx, %1\n"
"cpuid\n"
@@ -294,12 +300,6 @@ static inline uint detectProcessorFeatures()
: "a" (1)
: "%edx"
);
-#elif defined (Q_OS_WIN64)
- {
- int info[4];
- __cpuid(info, 1);
- feature_result = info[2];
- }
#endif
if (feature_result & (1u))
diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro
index 299ca06..1ad888b 100644
--- a/src/declarative/declarative.pro
+++ b/src/declarative/declarative.pro
@@ -2,7 +2,6 @@ TARGET = QtDeclarative
QPRO_PWD = $$PWD
QT = core gui script network
contains(QT_CONFIG, svg): QT += svg
-contains(QT_CONFIG, opengl): QT += opengl
DEFINES += QT_BUILD_DECLARATIVE_LIB QT_NO_URL_CAST_FROM_STRING
win32-msvc*|win32-icc:QMAKE_LFLAGS += /BASE:0x66000000
solaris-cc*:QMAKE_CXXFLAGS_RELEASE -= -O2
@@ -25,7 +24,10 @@ include(graphicsitems/graphicsitems.pri)
include(qml/qml.pri)
include(debugger/debugger.pri)
-symbian:TARGET.UID3=0x2001E623
+symbian: {
+ TARGET.UID3=0x2001E623
+ LIBS += -lefsrv
+}
DEFINES += QT_NO_OPENTYPE
INCLUDEPATH += ../3rdparty/harfbuzz/src
diff --git a/src/declarative/graphicsitems/qdeclarativegridview.cpp b/src/declarative/graphicsitems/qdeclarativegridview.cpp
index 1615b0f..4a6a9dc 100644
--- a/src/declarative/graphicsitems/qdeclarativegridview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativegridview.cpp
@@ -735,7 +735,7 @@ void QDeclarativeGridViewPrivate::createHighlight()
QDeclarative_setParent_noEvent(item, q->contentItem());
item->setParentItem(q->contentItem());
highlight = new FxGridItem(item, q);
- if (currentItem)
+ if (currentItem && autoHighlight)
highlight->setPosition(currentItem->colPos(), currentItem->rowPos());
highlightXAnimator = new QSmoothedAnimation(q);
highlightXAnimator->target = QDeclarativeProperty(highlight->item, QLatin1String("x"));
@@ -1253,7 +1253,8 @@ void QDeclarativeGridView::setModel(const QVariant &model)
d->moveReason = QDeclarativeGridViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
if (d->highlight && d->currentItem) {
- d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
+ if (d->autoHighlight)
+ d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
d->updateTrackedItem();
}
d->moveReason = QDeclarativeGridViewPrivate::Other;
@@ -1321,7 +1322,8 @@ void QDeclarativeGridView::setDelegate(QDeclarativeComponent *delegate)
d->moveReason = QDeclarativeGridViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
if (d->highlight && d->currentItem) {
- d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
+ if (d->autoHighlight)
+ d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
d->updateTrackedItem();
}
d->moveReason = QDeclarativeGridViewPrivate::Other;
@@ -2241,7 +2243,8 @@ void QDeclarativeGridView::componentComplete()
else
d->updateCurrent(d->currentIndex);
if (d->highlight && d->currentItem) {
- d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
+ if (d->autoHighlight)
+ d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
d->updateTrackedItem();
}
d->moveReason = QDeclarativeGridViewPrivate::Other;
@@ -2649,7 +2652,8 @@ void QDeclarativeGridView::modelReset()
d->moveReason = QDeclarativeGridViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
if (d->highlight && d->currentItem) {
- d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
+ if (d->autoHighlight)
+ d->highlight->setPosition(d->currentItem->colPos(), d->currentItem->rowPos());
d->updateTrackedItem();
}
d->moveReason = QDeclarativeGridViewPrivate::Other;
diff --git a/src/declarative/graphicsitems/qdeclarativeitem.cpp b/src/declarative/graphicsitems/qdeclarativeitem.cpp
index cf12688..4cf9b26 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem.cpp
+++ b/src/declarative/graphicsitems/qdeclarativeitem.cpp
@@ -1839,9 +1839,9 @@ void QDeclarativeItem::setClip(bool c)
/*!
\qmlproperty real Item::z
- Sets the stacking order of the item. By default the stacking order is 0.
+ Sets the stacking order of sibling items. By default the stacking order is 0.
- Items with a higher stacking value are drawn on top of items with a
+ Items with a higher stacking value are drawn on top of siblings with a
lower stacking order. Items with the same stacking value are drawn
bottom up in the order they appear. Items with a negative stacking
value are drawn under their parent's content.
@@ -2142,6 +2142,8 @@ QDeclarativeAnchorLine QDeclarativeItemPrivate::baseline() const
Margins apply to top, bottom, left, right, and fill anchors.
The \c anchors.margins property can be used to set all of the various margins at once, to the same value.
+ Note that margins are anchor-specific and are not applied if an item does not
+ use anchors.
Offsets apply for horizontal center, vertical center, and baseline anchors.
diff --git a/src/declarative/graphicsitems/qdeclarativeitem_p.h b/src/declarative/graphicsitems/qdeclarativeitem_p.h
index 402554b..7e4d157 100644
--- a/src/declarative/graphicsitems/qdeclarativeitem_p.h
+++ b/src/declarative/graphicsitems/qdeclarativeitem_p.h
@@ -126,7 +126,7 @@ public:
widthValid(false), heightValid(false),
componentComplete(true), keepMouse(false),
smooth(false), transformOriginDirty(true), doneEventPreHandler(false), keyHandler(0),
- mWidth(0), mHeight(0), implicitWidth(0), implicitHeight(0)
+ mWidth(0), mHeight(0), implicitWidth(0), implicitHeight(0), hadSubFocusItem(false)
{
QGraphicsItemPrivate::acceptedMouseButtons = 0;
isDeclarativeItem = 1;
@@ -275,6 +275,8 @@ public:
qreal implicitWidth;
qreal implicitHeight;
+ bool hadSubFocusItem;
+
QPointF computeTransformOrigin() const;
virtual void setPosHelper(const QPointF &pos)
@@ -288,9 +290,11 @@ public:
// Reimplemented from QGraphicsItemPrivate
virtual void subFocusItemChange()
{
- if (flags & QGraphicsItem::ItemIsFocusScope || !parent)
- emit q_func()->activeFocusChanged(subFocusItem != 0);
+ bool hasSubFocusItem = subFocusItem != 0;
+ if (((flags & QGraphicsItem::ItemIsFocusScope) || !parent) && hasSubFocusItem != hadSubFocusItem)
+ emit q_func()->activeFocusChanged(hasSubFocusItem);
//see also QDeclarativeItemPrivate::focusChanged
+ hadSubFocusItem = hasSubFocusItem;
}
// Reimplemented from QGraphicsItemPrivate
diff --git a/src/declarative/graphicsitems/qdeclarativelistview.cpp b/src/declarative/graphicsitems/qdeclarativelistview.cpp
index 845da79..d008f91 100644
--- a/src/declarative/graphicsitems/qdeclarativelistview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativelistview.cpp
@@ -739,16 +739,20 @@ void QDeclarativeListViewPrivate::layout()
return;
}
if (!visibleItems.isEmpty()) {
- qreal oldEnd = visibleItems.last()->endPosition();
+ bool fixedCurrent = currentItem && visibleItems.first()->item == currentItem->item;
+ qreal sum = visibleItems.first()->size();
qreal pos = visibleItems.first()->position() + visibleItems.first()->size() + spacing;
for (int i=1; i < visibleItems.count(); ++i) {
FxListItem *item = visibleItems.at(i);
item->setPosition(pos);
pos += item->size() + spacing;
+ sum += item->size();
+ fixedCurrent = fixedCurrent || (currentItem && item->item == currentItem->item);
}
- // move current item if it is after the visible items.
- if (currentItem && currentIndex > lastVisibleIndex())
- currentItem->setPosition(currentItem->position() + (visibleItems.last()->endPosition() - oldEnd));
+ averageSize = qRound(sum / visibleItems.count());
+ // move current item if it is not a visible item.
+ if (currentIndex >= 0 && currentItem && !fixedCurrent)
+ currentItem->setPosition(positionAt(currentIndex));
}
q->refill();
minExtentDirty = true;
@@ -1567,7 +1571,8 @@ void QDeclarativeListView::setModel(const QVariant &model)
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
if (d->highlight && d->currentItem) {
- d->highlight->setPosition(d->currentItem->position());
+ if (d->autoHighlight)
+ d->highlight->setPosition(d->currentItem->position());
d->updateTrackedItem();
}
}
@@ -1638,7 +1643,8 @@ void QDeclarativeListView::setDelegate(QDeclarativeComponent *delegate)
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
if (d->highlight && d->currentItem) {
- d->highlight->setPosition(d->currentItem->position());
+ if (d->autoHighlight)
+ d->highlight->setPosition(d->currentItem->position());
d->updateTrackedItem();
}
}
@@ -2628,8 +2634,10 @@ void QDeclarativeListView::positionViewAtIndex(int index, int mode)
cancelFlick();
d->setPosition(pos);
if (d->highlight) {
- d->highlight->setPosition(d->currentItem->itemPosition());
- d->highlight->setSize(d->currentItem->itemSize());
+ if (d->autoHighlight) {
+ d->highlight->setPosition(d->currentItem->itemPosition());
+ d->highlight->setSize(d->currentItem->itemSize());
+ }
d->updateHighlight();
}
}
@@ -2675,7 +2683,8 @@ void QDeclarativeListView::componentComplete()
else
d->updateCurrent(d->currentIndex);
if (d->highlight && d->currentItem) {
- d->highlight->setPosition(d->currentItem->position());
+ if (d->autoHighlight)
+ d->highlight->setPosition(d->currentItem->position());
d->updateTrackedItem();
}
d->moveReason = QDeclarativeListViewPrivate::Other;
@@ -3138,7 +3147,8 @@ void QDeclarativeListView::modelReset()
d->moveReason = QDeclarativeListViewPrivate::SetIndex;
d->updateCurrent(d->currentIndex);
if (d->highlight && d->currentItem) {
- d->highlight->setPosition(d->currentItem->position());
+ if (d->autoHighlight)
+ d->highlight->setPosition(d->currentItem->position());
d->updateTrackedItem();
}
d->moveReason = QDeclarativeListViewPrivate::Other;
diff --git a/src/declarative/graphicsitems/qdeclarativepathview.cpp b/src/declarative/graphicsitems/qdeclarativepathview.cpp
index 7c79afe..87ea214 100644
--- a/src/declarative/graphicsitems/qdeclarativepathview.cpp
+++ b/src/declarative/graphicsitems/qdeclarativepathview.cpp
@@ -1478,7 +1478,7 @@ void QDeclarativePathView::itemsRemoved(int modelIndex, int count)
currentChanged = true;
} else if (d->currentIndex >= modelIndex && d->currentIndex < modelIndex + count) {
// current item has been removed.
- d->currentIndex = qMin(modelIndex, d->modelCount-1);
+ d->currentIndex = qMin(modelIndex, d->modelCount-count-1);
if (d->currentItem) {
if (QDeclarativePathViewAttached *att = d->attached(d->currentItem))
att->setIsCurrentItem(true);
diff --git a/src/declarative/graphicsitems/qdeclarativerectangle.cpp b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
index dedb3f7..99b36a8 100644
--- a/src/declarative/graphicsitems/qdeclarativerectangle.cpp
+++ b/src/declarative/graphicsitems/qdeclarativerectangle.cpp
@@ -470,6 +470,8 @@ void QDeclarativeRectangle::generateBorderedRect()
void QDeclarativeRectangle::paint(QPainter *p, const QStyleOptionGraphicsItem *, QWidget *)
{
Q_D(QDeclarativeRectangle);
+ if (width() <= 0 || height() <= 0)
+ return;
if (d->radius > 0 || (d->pen && d->pen->isValid())
|| (d->gradient && d->gradient->gradient()) ) {
drawRect(*p);
@@ -539,6 +541,12 @@ void QDeclarativeRectangle::drawRect(QPainter &p)
Q_ASSERT(d->rectImage.width() == 2*xOffset + 1);
Q_ASSERT(d->rectImage.height() == 2*yOffset + 1);
+ // check whether we've eliminated the center completely
+ if (2*xOffset > width()+pw)
+ xOffset = (width()+pw)/2;
+ if (2*yOffset > height()+pw)
+ yOffset = (height()+pw)/2;
+
QMargins margins(xOffset, yOffset, xOffset, yOffset);
QTileRules rules(Qt::StretchTile, Qt::StretchTile);
//NOTE: even though our item may have qreal-based width and height, qDrawBorderPixmap only supports QRects
diff --git a/src/declarative/graphicsitems/qdeclarativetextinput.cpp b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
index 2fb7ace..4649be8 100644
--- a/src/declarative/graphicsitems/qdeclarativetextinput.cpp
+++ b/src/declarative/graphicsitems/qdeclarativetextinput.cpp
@@ -779,7 +779,7 @@ void QDeclarativeTextInput::setEchoMode(QDeclarativeTextInput::EchoMode echo)
imHints &= ~(Qt::ImhNoAutoUppercase | Qt::ImhNoPredictiveText);
setInputMethodHints(imHints);
d->control->setEchoMode((uint)echo);
- update();
+ q_textChanged();
emit echoModeChanged(echoMode());
}
@@ -1487,6 +1487,7 @@ void QDeclarativeTextInput::cursorPosChanged()
updateRect();//TODO: Only update rect between pos's
updateMicroFocus();
emit cursorPositionChanged();
+ d->control->resetCursorBlinkTimer();
if(!d->control->hasSelectedText()){
if(d->lastSelectionStart != d->control->cursor()){
diff --git a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
index 9900ff8..dd07067 100644
--- a/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
+++ b/src/declarative/graphicsitems/qdeclarativevisualitemmodel.cpp
@@ -1368,7 +1368,7 @@ void QDeclarativeVisualDataModel::_q_rowsMoved(const QModelIndex &sourceParent,
Q_D(QDeclarativeVisualDataModel);
const int count = sourceEnd - sourceStart + 1;
if (destinationParent == d->m_root && sourceParent == d->m_root) {
- _q_itemsMoved(sourceStart, destinationRow, count);
+ _q_itemsMoved(sourceStart, sourceStart > destinationRow ? destinationRow : destinationRow-1, count);
} else if (sourceParent == d->m_root) {
_q_itemsRemoved(sourceStart, count);
} else if (destinationParent == d->m_root) {
diff --git a/src/declarative/qml/qdeclarativecomponent.cpp b/src/declarative/qml/qdeclarativecomponent.cpp
index a72e04e..a8b1c3f 100644
--- a/src/declarative/qml/qdeclarativecomponent.cpp
+++ b/src/declarative/qml/qdeclarativecomponent.cpp
@@ -147,32 +147,36 @@ class QByteArray;
Components are reusable, encapsulated QML elements with well-defined interfaces.
Components are often defined by \l {qdeclarativedocuments.html}{component files} -
- that is, \c .qml files. The \e Component element allows components to be defined
- within QML items rather than in a separate file. This may be useful for reusing
- a small component within a QML file, or for defining a component that logically
- belongs with other QML components within a file.
+ that is, \c .qml files. The \e Component element essentially allows QML components
+ to be defined inline, within a \l {QML Document}{QML document}, rather than as a separate QML file.
+ This may be useful for reusing a small component within a QML file, or for defining
+ a component that logically belongs with other QML components within a file.
For example, here is a component that is used by multiple \l Loader objects.
- It contains a top level \l Rectangle item:
+ It contains a single item, a \l Rectangle:
\snippet doc/src/snippets/declarative/component.qml 0
Notice that while a \l Rectangle by itself would be automatically
rendered and displayed, this is not the case for the above rectangle
because it is defined inside a \c Component. The component encapsulates the
- QML elements within, as if they were defined in a separate \c .qml
+ QML elements within, as if they were defined in a separate QML
file, and is not loaded until requested (in this case, by the
two \l Loader objects).
- A Component cannot contain anything other
- than an \c id and a single top level item. While the \c id is optional,
- the top level item is not; you cannot define an empty component.
+ Defining a \c Component is similar to defining a \l {QML Document}{QML document}.
+ A QML document has a single top-level item that defines the behaviors and
+ properties of that component, and cannot define properties or behaviors outside
+ of that top-level item. In the same way, a \c Component definition contains a single
+ top level item (which in the above example is a \l Rectangle) and cannot define any
+ data outside of this item, with the exception of an \e id (which in the above example
+ is \e redSquare).
- The Component element is commonly used to provide graphical components
- for views. For example, the ListView::delegate property requires a Component
+ The \c Component element is commonly used to provide graphical components
+ for views. For example, the ListView::delegate property requires a \c Component
to specify how each list item is to be displayed.
- Component objects can also be dynamically created using
+ \c Component objects can also be created dynamically using
\l{QML:Qt::createComponent()}{Qt.createComponent()}.
*/
diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp
index 48bf3d1..3a5fe66 100644
--- a/src/declarative/qml/qdeclarativeengine.cpp
+++ b/src/declarative/qml/qdeclarativeengine.cpp
@@ -262,6 +262,33 @@ of their use.
\endlist
*/
+/*!
+\qmlmethod object Qt::include(string url, jsobject callback)
+
+Includes another JavaScript file. This method can only be used from within JavaScript files,
+and not regular QML files.
+
+This imports all functions from \a url into the current script's namespace.
+
+Qt.include() returns an object that describes the status of the operation. The object has
+a single property, \c {status}, that is set to one of the following values:
+
+\table
+\header \o Symbol \o Value \o Description
+\row \o result.OK \o 0 \o The include completed successfully.
+\row \o result.LOADING \o 1 \o Data is being loaded from the network.
+\row \o result.NETWORK_ERROR \o 2 \o A network error occurred while fetching the url.
+\row \o result.EXCEPTION \o 3 \o A JavaScript exception occurred while executing the included code.
+An additional \c exception property will be set in this case.
+\endtable
+
+The \c status property will be updated as the operation progresses.
+
+If provided, \a callback is invoked when the operation completes. The callback is passed
+the same object as is returned from the Qt.include() call.
+*/
+// Qt.include() is implemented in qdeclarativeinclude.cpp
+
QDeclarativeEnginePrivate::QDeclarativeEnginePrivate(QDeclarativeEngine *e)
: captureProperties(false), rootContext(0), isDebugging(false),
@@ -679,6 +706,9 @@ QNetworkAccessManager *QDeclarativeEngine::networkAccessManager() const
requests. See the QDeclarativeImageProvider documentation for details on
implementing and using image providers.
+ All required image providers should be added to the engine before any
+ QML sources files are loaded.
+
Note that images loaded from a QDeclarativeImageProvider are cached
by QPixmapCache, similar to any image loaded by QML.
diff --git a/src/declarative/qml/qdeclarativeimport.cpp b/src/declarative/qml/qdeclarativeimport.cpp
index 6f5216a..94765f2 100644
--- a/src/declarative/qml/qdeclarativeimport.cpp
+++ b/src/declarative/qml/qdeclarativeimport.cpp
@@ -51,6 +51,10 @@
#include <private/qdeclarativetypenamecache_p.h>
#include <private/qdeclarativeengine_p.h>
+#ifdef Q_OS_SYMBIAN
+#include "private/qcore_symbian_p.h"
+#endif
+
QT_BEGIN_NAMESPACE
DEFINE_BOOL_CONFIG_OPTION(qmlImportTrace, QML_IMPORT_TRACE)
@@ -378,7 +382,13 @@ bool QDeclarativeImportsPrivate::importExtension(const QString &absoluteFilePath
foreach (const QDeclarativeDirParser::Plugin &plugin, qmldirParser.plugins()) {
QString resolvedFilePath = database->resolvePlugin(dir, plugin.path, plugin.name);
-
+#if defined(QT_LIBINFIX) && defined(Q_OS_SYMBIAN)
+ if (resolvedFilePath.isEmpty()) {
+ // In case of libinfixed build, attempt to load libinfixed version, too.
+ QString infixedPluginName = plugin.name + QLatin1String(QT_LIBINFIX);
+ resolvedFilePath = database->resolvePlugin(dir, plugin.path, infixedPluginName);
+ }
+#endif
if (!resolvedFilePath.isEmpty()) {
if (!database->importPlugin(resolvedFilePath, uri, errorString)) {
if (errorString)
@@ -658,8 +668,32 @@ QDeclarativeImportDatabase::QDeclarativeImportDatabase(QDeclarativeEngine *e)
// Search order is applicationDirPath(), $QML_IMPORT_PATH, QLibraryInfo::ImportsPath
- addImportPath(QLibraryInfo::location(QLibraryInfo::ImportsPath));
+ QString installImportsPath = QLibraryInfo::location(QLibraryInfo::ImportsPath);
+#if defined(Q_OS_SYMBIAN)
+ // Append imports path for all available drives in Symbian
+ if (installImportsPath.at(1) != QChar(QLatin1Char(':'))) {
+ QString tempPath = installImportsPath;
+ if (tempPath.at(tempPath.length() - 1) != QDir::separator()) {
+ tempPath += QDir::separator();
+ }
+ RFs& fs = qt_s60GetRFs();
+ TPtrC tempPathPtr(reinterpret_cast<const TText*> (tempPath.constData()));
+ TFindFile finder(fs);
+ TInt err = finder.FindByDir(tempPathPtr, tempPathPtr);
+ while (err == KErrNone) {
+ QString foundDir(reinterpret_cast<const QChar *>(finder.File().Ptr()),
+ finder.File().Length());
+ foundDir = QDir(foundDir).canonicalPath();
+ addImportPath(foundDir);
+ err = finder.Find();
+ }
+ } else {
+ addImportPath(installImportsPath);
+ }
+#else
+ addImportPath(installImportsPath);
+#endif
// env import paths
QByteArray envImportPath = qgetenv("QML_IMPORT_PATH");
if (!envImportPath.isEmpty()) {
diff --git a/src/declarative/qml/qdeclarativeinclude.cpp b/src/declarative/qml/qdeclarativeinclude.cpp
index 1e240d7..a9ecdda 100644
--- a/src/declarative/qml/qdeclarativeinclude.cpp
+++ b/src/declarative/qml/qdeclarativeinclude.cpp
@@ -172,28 +172,8 @@ void QDeclarativeInclude::callback(QScriptEngine *engine, QScriptValue &callback
}
}
-/*!
-\qmlmethod object Qt::include(string url, jsobject callback)
-
-Include another JavaScript file. This method can only be used from within JavaScript files,
-and not regular QML files.
-
-Qt.include() returns an object that describes the status of the operation. The object has
-a single property, \c {status} that is set to one of the following values:
-
-\table
-\header \o Symbol \o Value \o Description
-\row \o result.OK \o 0 \o The include completed successfully.
-\row \o result.LOADING \o 1 \o Data is being loaded from the network.
-\row \o result.NETWORK_ERROR \o 2 \o A network error occurred while fetching the url.
-\row \o result.EXCEPTION \o 3 \o A JavaScript exception occurred while executing the included code.
-An additional \c exception property will be set in this case.
-\endtable
-
-The return object's properties will be updated as the operation progresses.
-
-If provided, \a callback is invoked when the operation completes. The callback is passed
-the same object as is returned from the Qt.include() call.
+/*
+ Documented in qdeclarativeengine.cpp
*/
QScriptValue QDeclarativeInclude::include(QScriptContext *ctxt, QScriptEngine *engine)
{
diff --git a/src/declarative/qml/qdeclarativeproperty.cpp b/src/declarative/qml/qdeclarativeproperty.cpp
index df0917f..60edd64 100644
--- a/src/declarative/qml/qdeclarativeproperty.cpp
+++ b/src/declarative/qml/qdeclarativeproperty.cpp
@@ -77,15 +77,28 @@ a property on a specific object instance. To read a property's value, programme
QDeclarativeProperty instance and call the read() method. Likewise to write a property value the
write() method is used.
+For example, for the following QML code:
+
+\qml
+// MyItem.qml
+import QtQuick 1.0
+
+Text { text: "A bit of text" }
+\endqml
+
+The \l Text object's properties could be accessed using QDeclarativeProperty, like this:
+
\code
+#include <QDeclarativeProperty>
+#include <QGraphicsObject>
-QObject *object = declarativeComponent.create();
+...
-QDeclarativeProperty property(object, "font.pixelSize");
+QDeclarativeView view(QUrl::fromLocalFile("MyItem.qml"));
+QDeclarativeProperty property(view.rootObject(), "font.pixelSize");
qWarning() << "Current pixel size:" << property.read().toInt();
property.write(24);
qWarning() << "Pixel size should now be 24:" << property.read().toInt();
-
\endcode
*/
diff --git a/src/declarative/qml/qdeclarativesqldatabase.cpp b/src/declarative/qml/qdeclarativesqldatabase.cpp
index 45f277e..bda02a5 100644
--- a/src/declarative/qml/qdeclarativesqldatabase.cpp
+++ b/src/declarative/qml/qdeclarativesqldatabase.cpp
@@ -172,16 +172,23 @@ static const char* sqlerror[] = {
return errorValue; \
}
-
-static QString databaseFile(const QString& connectionName, QScriptEngine *engine)
+static QString qmlsqldatabase_databasesPath(QScriptEngine *engine)
{
QDeclarativeScriptEngine *qmlengine = static_cast<QDeclarativeScriptEngine*>(engine);
- QString basename = qmlengine->offlineStoragePath
- + QDir::separator() + QLatin1String("Databases") + QDir::separator();
- basename += connectionName;
- return basename;
+ return qmlengine->offlineStoragePath
+ + QDir::separator() + QLatin1String("Databases");
}
+static void qmlsqldatabase_initDatabasesPath(QScriptEngine *engine)
+{
+ QDir().mkpath(qmlsqldatabase_databasesPath(engine));
+}
+
+static QString qmlsqldatabase_databaseFile(const QString& connectionName, QScriptEngine *engine)
+{
+ return qmlsqldatabase_databasesPath(engine) + QDir::separator()
+ + connectionName;
+}
static QScriptValue qmlsqldatabase_item(QScriptContext *context, QScriptEngine *engine)
@@ -302,7 +309,7 @@ static QScriptValue qmlsqldatabase_change_version(QScriptContext *context, QScri
if (ok) {
context->thisObject().setProperty(QLatin1String("version"), to_version, QScriptValue::ReadOnly);
- QSettings ini(databaseFile(db.connectionName(),engine)+QLatin1String(".ini"),QSettings::IniFormat);
+ QSettings ini(qmlsqldatabase_databaseFile(db.connectionName(),engine) + QLatin1String(".ini"), QSettings::IniFormat);
ini.setValue(QLatin1String("Version"), to_version);
}
@@ -348,6 +355,8 @@ static QScriptValue qmlsqldatabase_read_transaction(QScriptContext *context, QSc
*/
static QScriptValue qmlsqldatabase_open_sync(QScriptContext *context, QScriptEngine *engine)
{
+ qmlsqldatabase_initDatabasesPath(engine);
+
QSqlDatabase database;
QString dbname = context->argument(0).toString();
@@ -360,7 +369,7 @@ static QScriptValue qmlsqldatabase_open_sync(QScriptContext *context, QScriptEng
md5.addData(dbname.toUtf8());
QString dbid(QLatin1String(md5.result().toHex()));
- QString basename = databaseFile(dbid,engine);
+ QString basename = qmlsqldatabase_databaseFile(dbid, engine);
bool created = false;
QString version = dbversion;
@@ -375,7 +384,6 @@ static QScriptValue qmlsqldatabase_open_sync(QScriptContext *context, QScriptEng
} else {
created = !QFile::exists(basename+QLatin1String(".sqlite"));
database = QSqlDatabase::addDatabase(QLatin1String("QSQLITE"), dbid);
- QDir().mkpath(basename);
if (created) {
ini.setValue(QLatin1String("Name"), dbname);
if (dbcreationCallback.isFunction())
diff --git a/src/gui/dialogs/dialogs.pri b/src/gui/dialogs/dialogs.pri
index c25b6d5..12e3a71 100644
--- a/src/gui/dialogs/dialogs.pri
+++ b/src/gui/dialogs/dialogs.pri
@@ -109,7 +109,7 @@ SOURCES += \
dialogs/qprintpreviewdialog.cpp
symbian:contains(QT_CONFIG, s60) {
- LIBS += -lcommondialogs
+ LIBS += -lCommonDialogs
SOURCES += dialogs/qfiledialog_symbian.cpp \
dialogs/qcolordialog_symbian.cpp
}
diff --git a/src/gui/graphicsview/qgraphicsitem.cpp b/src/gui/graphicsview/qgraphicsitem.cpp
index 7ab49cb..94e1a72 100644
--- a/src/gui/graphicsview/qgraphicsitem.cpp
+++ b/src/gui/graphicsview/qgraphicsitem.cpp
@@ -3295,9 +3295,13 @@ void QGraphicsItemPrivate::setFocusHelper(Qt::FocusReason focusReason, bool clim
}
// Update the child focus chain.
- if (scene && scene->focusItem())
- scene->focusItem()->d_ptr->clearSubFocus();
- f->d_ptr->setSubFocus();
+ QGraphicsItem *commonAncestor = 0;
+ if (scene && scene->focusItem()) {
+ commonAncestor = scene->focusItem()->commonAncestorItem(f);
+ scene->focusItem()->d_ptr->clearSubFocus(scene->focusItem(), commonAncestor);
+ }
+
+ f->d_ptr->setSubFocus(f, commonAncestor);
// Update the scene's focus item.
if (scene) {
@@ -5554,7 +5558,7 @@ void QGraphicsItemPrivate::ensureSceneTransformRecursive(QGraphicsItem **topMost
/*!
\internal
*/
-void QGraphicsItemPrivate::setSubFocus(QGraphicsItem *rootItem)
+void QGraphicsItemPrivate::setSubFocus(QGraphicsItem *rootItem, QGraphicsItem *stopItem)
{
// Update focus child chain. Stop at panels, or if this item
// is hidden, stop at the first item with a visible parent.
@@ -5567,7 +5571,7 @@ void QGraphicsItemPrivate::setSubFocus(QGraphicsItem *rootItem)
if (parent != q_ptr && parent->d_ptr->subFocusItem) {
if (parent->d_ptr->subFocusItem == q_ptr)
break;
- parent->d_ptr->subFocusItem->d_ptr->clearSubFocus();
+ parent->d_ptr->subFocusItem->d_ptr->clearSubFocus(0, stopItem);
}
parent->d_ptr->subFocusItem = q_ptr;
parent->d_ptr->subFocusItemChange();
@@ -5580,12 +5584,12 @@ void QGraphicsItemPrivate::setSubFocus(QGraphicsItem *rootItem)
/*!
\internal
*/
-void QGraphicsItemPrivate::clearSubFocus(QGraphicsItem *rootItem)
+void QGraphicsItemPrivate::clearSubFocus(QGraphicsItem *rootItem, QGraphicsItem *stopItem)
{
// Reset sub focus chain.
QGraphicsItem *parent = rootItem ? rootItem : q_ptr;
do {
- if (parent->d_ptr->subFocusItem != q_ptr)
+ if (parent->d_ptr->subFocusItem != q_ptr || parent == stopItem)
break;
parent->d_ptr->subFocusItem = 0;
parent->d_ptr->subFocusItemChange();
diff --git a/src/gui/graphicsview/qgraphicsitem_p.h b/src/gui/graphicsview/qgraphicsitem_p.h
index 1b7aa97..b938759 100644
--- a/src/gui/graphicsview/qgraphicsitem_p.h
+++ b/src/gui/graphicsview/qgraphicsitem_p.h
@@ -479,8 +479,8 @@ public:
void setFocusHelper(Qt::FocusReason focusReason, bool climb, bool focusFromHide);
void clearFocusHelper(bool giveFocusToParent);
- void setSubFocus(QGraphicsItem *rootItem = 0);
- void clearSubFocus(QGraphicsItem *rootItem = 0);
+ void setSubFocus(QGraphicsItem *rootItem = 0, QGraphicsItem *stopItem = 0);
+ void clearSubFocus(QGraphicsItem *rootItem = 0, QGraphicsItem *stopItem = 0);
void resetFocusProxy();
virtual void subFocusItemChange();
virtual void focusScopeItemChange(bool isSubFocusItem);
diff --git a/src/gui/graphicsview/qgraphicslayout.cpp b/src/gui/graphicsview/qgraphicslayout.cpp
index 86b4589..3e95735 100644
--- a/src/gui/graphicsview/qgraphicslayout.cpp
+++ b/src/gui/graphicsview/qgraphicslayout.cpp
@@ -307,10 +307,13 @@ void QGraphicsLayout::invalidate()
// does not call the base implementation? In addition, updateGeometry()
// does more than we need.
layoutItem->d_func()->sizeHintCacheDirty = true;
- layoutItem = layoutItem->parentLayoutItem();
+ layoutItem->d_func()->sizeHintWithConstraintCacheDirty = true;
+ layoutItem = layoutItem->parentLayoutItem();
}
- if (layoutItem)
+ if (layoutItem) {
layoutItem->d_func()->sizeHintCacheDirty = true;
+ layoutItem->d_func()->sizeHintWithConstraintCacheDirty = true;
+ }
bool postIt = layoutItem ? !layoutItem->isLayout() : false;
if (postIt) {
diff --git a/src/gui/graphicsview/qgraphicslayoutitem.cpp b/src/gui/graphicsview/qgraphicslayoutitem.cpp
index 016cfbf..df13039 100644
--- a/src/gui/graphicsview/qgraphicslayoutitem.cpp
+++ b/src/gui/graphicsview/qgraphicslayoutitem.cpp
@@ -128,6 +128,7 @@ QGraphicsLayoutItemPrivate::~QGraphicsLayoutItemPrivate()
void QGraphicsLayoutItemPrivate::init()
{
sizeHintCacheDirty = true;
+ sizeHintWithConstraintCacheDirty = true;
sizePolicy = QSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
}
@@ -828,6 +829,7 @@ void QGraphicsLayoutItem::updateGeometry()
{
Q_D(QGraphicsLayoutItem);
d->sizeHintCacheDirty = true;
+ d->sizeHintWithConstraintCacheDirty = true;
}
/*!
diff --git a/src/gui/graphicsview/qgraphicsscene.cpp b/src/gui/graphicsview/qgraphicsscene.cpp
index a0015dc..726e6d7 100644
--- a/src/gui/graphicsview/qgraphicsscene.cpp
+++ b/src/gui/graphicsview/qgraphicsscene.cpp
@@ -4583,13 +4583,13 @@ void QGraphicsScenePrivate::drawItemHelper(QGraphicsItem *item, QPainter *painte
itemCache->exposed.clear();
deviceData->cacheIndent = QPoint();
pix = QPixmap();
- } else {
+ } else if (!viewRect.isNull()) {
allowPartialCacheExposure = deviceData->cacheIndent != QPoint();
}
// Allow partial cache exposure if the device rect isn't fully contained and
// deviceRect is 20% taller or wider than the viewRect.
- if (!allowPartialCacheExposure && !viewRect.contains(deviceRect)) {
+ if (!allowPartialCacheExposure && !viewRect.isNull() && !viewRect.contains(deviceRect)) {
allowPartialCacheExposure = (viewRect.width() * 1.2 < deviceRect.width())
|| (viewRect.height() * 1.2 < deviceRect.height());
}
diff --git a/src/gui/graphicsview/qgridlayoutengine_p.h b/src/gui/graphicsview/qgridlayoutengine_p.h
index 44efbba..1b2e2ec 100644
--- a/src/gui/graphicsview/qgridlayoutengine_p.h
+++ b/src/gui/graphicsview/qgridlayoutengine_p.h
@@ -433,7 +433,7 @@ private:
// Lazily computed from the above user input
mutable int q_cachedEffectiveFirstRows[NOrientations];
mutable int q_cachedEffectiveLastRows[NOrientations];
- mutable quint8 q_cachedConstraintOrientation : 2;
+ mutable quint8 q_cachedConstraintOrientation : 3;
// Layout item input
mutable QLayoutStyleInfo q_cachedDataForStyleInfo;
diff --git a/src/gui/image/qimage.cpp b/src/gui/image/qimage.cpp
index 1157b93..6ba3858 100644
--- a/src/gui/image/qimage.cpp
+++ b/src/gui/image/qimage.cpp
@@ -1121,9 +1121,14 @@ QImage::QImage(const char * const xpm[])
QImage::QImage(const QImage &image)
: QPaintDevice()
{
- d = image.d;
- if (d)
- d->ref.ref();
+ if (image.paintingActive()) {
+ d = 0;
+ operator=(image.copy());
+ } else {
+ d = image.d;
+ if (d)
+ d->ref.ref();
+ }
}
#ifdef QT3_SUPPORT
@@ -1320,11 +1325,15 @@ QImage::~QImage()
QImage &QImage::operator=(const QImage &image)
{
- if (image.d)
- image.d->ref.ref();
- if (d && !d->ref.deref())
- delete d;
- d = image.d;
+ if (image.paintingActive()) {
+ operator=(image.copy());
+ } else {
+ if (image.d)
+ image.d->ref.ref();
+ if (d && !d->ref.deref())
+ delete d;
+ d = image.d;
+ }
return *this;
}
diff --git a/src/gui/image/qpixmap_raster.cpp b/src/gui/image/qpixmap_raster.cpp
index 53f3559..29bf5f5 100644
--- a/src/gui/image/qpixmap_raster.cpp
+++ b/src/gui/image/qpixmap_raster.cpp
@@ -44,11 +44,13 @@
#include "qpixmap_raster_p.h"
#include "qnativeimage_p.h"
#include "qimage_p.h"
+#include "qpaintengine.h"
#include "qbitmap.h"
#include "qimage.h"
#include <QBuffer>
#include <QImageReader>
+#include <private/qimage_p.h>
#include <private/qsimd_p.h>
#include <private/qwidget_p.h>
#include <private/qdrawhelper_p.h>
@@ -302,6 +304,15 @@ bool QRasterPixmapData::hasAlphaChannel() const
QImage QRasterPixmapData::toImage() const
{
+ if (!image.isNull()) {
+ QImageData *data = const_cast<QImage &>(image).data_ptr();
+ if (data->paintEngine && data->paintEngine->isActive()
+ && data->paintEngine->paintDevice() == &image)
+ {
+ return image.copy();
+ }
+ }
+
return image;
}
diff --git a/src/gui/image/qpnghandler.cpp b/src/gui/image/qpnghandler.cpp
index 935aba0..1a78bae 100644
--- a/src/gui/image/qpnghandler.cpp
+++ b/src/gui/image/qpnghandler.cpp
@@ -82,6 +82,41 @@ QT_BEGIN_NAMESPACE
Never to grayscale.
*/
+class QPngHandlerPrivate
+{
+public:
+ enum State {
+ Ready,
+ ReadHeader,
+ ReadingEnd,
+ Error
+ };
+
+ QPngHandlerPrivate(QPngHandler *qq)
+ : gamma(0.0), quality(2), png_ptr(0), info_ptr(0),
+ end_info(0), row_pointers(0), state(Ready), q(qq)
+ { }
+
+ float gamma;
+ int quality;
+ QString description;
+
+ png_struct *png_ptr;
+ png_info *info_ptr;
+ png_info *end_info;
+ png_byte **row_pointers;
+
+ bool readPngHeader();
+ bool readPngImage(QImage *image);
+
+ QImage::Format readImageFormat();
+
+ State state;
+
+ QPngHandler *q;
+};
+
+
#if defined(Q_C_CALLBACKS)
extern "C" {
#endif
@@ -118,7 +153,16 @@ private:
static
void CALLBACK_CALL_TYPE iod_read_fn(png_structp png_ptr, png_bytep data, png_size_t length)
{
- QIODevice *in = (QIODevice *)png_get_io_ptr(png_ptr);
+ QPngHandlerPrivate *d = (QPngHandlerPrivate *)png_get_io_ptr(png_ptr);
+ QIODevice *in = d->q->device();
+
+ if (d->state == QPngHandlerPrivate::ReadingEnd && !in->isSequential() && (in->size() - in->pos()) < 4 && length == 4) {
+ // Workaround for certain malformed PNGs that lack the final crc bytes
+ uchar endcrc[4] = { 0xae, 0x42, 0x60, 0x82 };
+ qMemCopy(data, endcrc, 4);
+ in->seek(in->size());
+ return;
+ }
while (length) {
int nr = in->read((char*)data, length);
@@ -314,38 +358,6 @@ static void CALLBACK_CALL_TYPE qt_png_warning(png_structp /*png_ptr*/, png_const
}
#endif
-class QPngHandlerPrivate
-{
-public:
- enum State {
- Ready,
- ReadHeader,
- Error
- };
-
- QPngHandlerPrivate(QPngHandler *qq)
- : gamma(0.0), quality(2), png_ptr(0), info_ptr(0),
- end_info(0), row_pointers(0), state(Ready), q(qq)
- { }
-
- float gamma;
- int quality;
- QString description;
-
- png_struct *png_ptr;
- png_info *info_ptr;
- png_info *end_info;
- png_byte **row_pointers;
-
- bool readPngHeader();
- bool readPngImage(QImage *image);
-
- QImage::Format readImageFormat();
-
- State state;
-
- QPngHandler *q;
-};
/*!
\internal
@@ -379,7 +391,7 @@ bool Q_INTERNAL_WIN_NO_THROW QPngHandlerPrivate::readPngHeader()
return false;
}
- png_set_read_fn(png_ptr, q->device(), iod_read_fn);
+ png_set_read_fn(png_ptr, this, iod_read_fn);
png_read_info(png_ptr, info_ptr);
#ifndef QT_NO_IMAGE_TEXT
@@ -505,6 +517,7 @@ bool Q_INTERNAL_WIN_NO_THROW QPngHandlerPrivate::readPngImage(QImage *outImage)
}
#endif
+ state = ReadingEnd;
png_read_end(png_ptr, end_info);
png_destroy_read_struct(&png_ptr, &info_ptr, &end_info);
delete [] row_pointers;
diff --git a/src/gui/itemviews/qsortfilterproxymodel.cpp b/src/gui/itemviews/qsortfilterproxymodel.cpp
index dc8d938..0d9819e 100644
--- a/src/gui/itemviews/qsortfilterproxymodel.cpp
+++ b/src/gui/itemviews/qsortfilterproxymodel.cpp
@@ -782,14 +782,14 @@ void QSortFilterProxyModelPrivate::source_items_inserted(
if (orthogonal_source_to_proxy.isEmpty()) {
const int ortho_end = (orient == Qt::Horizontal) ? model->rowCount(source_parent) : model->columnCount(source_parent);
+ orthogonal_source_to_proxy.resize(ortho_end);
+
for (int ortho_item = 0; ortho_item < ortho_end; ++ortho_item) {
if ((orient == Qt::Horizontal) ? q->filterAcceptsRow(ortho_item, source_parent)
: q->filterAcceptsColumn(ortho_item, source_parent)) {
orthogonal_proxy_to_source.append(ortho_item);
}
}
- orthogonal_source_to_proxy.resize(orthogonal_proxy_to_source.size());
-
if (orient == Qt::Horizontal) {
// We're reacting to columnsInserted, but we've just inserted new rows. Sort them.
sort_source_rows(orthogonal_proxy_to_source, source_parent);
diff --git a/src/gui/kernel/qeventdispatcher_s60_p.h b/src/gui/kernel/qeventdispatcher_s60_p.h
index c14fef0..539a21c 100644
--- a/src/gui/kernel/qeventdispatcher_s60_p.h
+++ b/src/gui/kernel/qeventdispatcher_s60_p.h
@@ -75,6 +75,13 @@ public:
void complete();
private:
+ // Workaround for a BC break from S60 3.2 -> 5.0, where the CEikonEnv override was removed.
+ // To avoid linking to that when we build against 3.2, define an empty body here.
+ // Reserved_*() have been verified to be empty in the S60 code.
+ void Reserved_1() {}
+ void Reserved_2() {}
+
+private:
int m_lastIterationCount;
TInt m_savedStatusCode;
bool m_hasAlreadyRun;
diff --git a/src/gui/painting/qdrawhelper.cpp b/src/gui/painting/qdrawhelper.cpp
index a4ab278..024a69d 100644
--- a/src/gui/painting/qdrawhelper.cpp
+++ b/src/gui/painting/qdrawhelper.cpp
@@ -6432,6 +6432,8 @@ Q_STATIC_TEMPLATE_FUNCTION void blendTransformedTiled(int count, const QSpan *sp
int px = int(tx) - (tx < 0);
int py = int(ty) - (ty < 0);
+ px %= image_width;
+ py %= image_height;
if (px < 0)
px += image_width;
if (py < 0)
diff --git a/src/gui/painting/qgrayraster.c b/src/gui/painting/qgrayraster.c
index ec9ebeb..001345f 100644
--- a/src/gui/painting/qgrayraster.c
+++ b/src/gui/painting/qgrayraster.c
@@ -963,49 +963,53 @@
const QT_FT_Vector* control2,
const QT_FT_Vector* to )
{
+ TPos dx, dy, da, db;
int top, level;
int* levels;
QT_FT_Vector* arc;
- int mid_x = ( DOWNSCALE( ras.x ) + to->x +
- 3 * (control1->x + control2->x ) ) / 8;
- int mid_y = ( DOWNSCALE( ras.y ) + to->y +
- 3 * (control1->y + control2->y ) ) / 8;
- TPos dx = DOWNSCALE( ras.x ) + to->x - ( mid_x << 1 );
- TPos dy = DOWNSCALE( ras.y ) + to->y - ( mid_y << 1 );
+ dx = DOWNSCALE( ras.x ) + to->x - ( control1->x << 1 );
if ( dx < 0 )
dx = -dx;
+ dy = DOWNSCALE( ras.y ) + to->y - ( control1->y << 1 );
if ( dy < 0 )
dy = -dy;
if ( dx < dy )
dx = dy;
+ da = dx;
+
+ dx = DOWNSCALE( ras.x ) + to->x - 3 * ( control1->x + control2->x );
+ if ( dx < 0 )
+ dx = -dx;
+ dy = DOWNSCALE( ras.y ) + to->y - 3 * ( control1->y + control2->y );
+ if ( dy < 0 )
+ dy = -dy;
+ if ( dx < dy )
+ dx = dy;
+ db = dx;
level = 1;
- dx /= ras.cubic_level;
- while ( dx > 0 )
+ da = da / ras.cubic_level;
+ db = db / ras.conic_level;
+ while ( da > 0 || db > 0 )
{
- dx >>= 2;
+ da >>= 2;
+ db >>= 3;
level++;
}
if ( level <= 1 )
{
- TPos to_x, to_y;
+ TPos to_x, to_y, mid_x, mid_y;
to_x = UPSCALE( to->x );
to_y = UPSCALE( to->y );
-
- /* Recalculation of midpoint is needed only if */
- /* UPSCALE and DOWNSCALE have any effect. */
-
-#if ( PIXEL_BITS != 6 )
mid_x = ( ras.x + to_x +
3 * UPSCALE( control1->x + control2->x ) ) / 8;
mid_y = ( ras.y + to_y +
3 * UPSCALE( control1->y + control2->y ) ) / 8;
-#endif
gray_render_line( RAS_VAR_ mid_x, mid_y );
gray_render_line( RAS_VAR_ to_x, to_y );
diff --git a/src/gui/painting/qpathclipper.cpp b/src/gui/painting/qpathclipper.cpp
index a17b7c1..5060ad6 100644
--- a/src/gui/painting/qpathclipper.cpp
+++ b/src/gui/painting/qpathclipper.cpp
@@ -868,9 +868,9 @@ QWingedEdge::QWingedEdge() :
}
QWingedEdge::QWingedEdge(const QPainterPath &subject, const QPainterPath &clip) :
- m_edges(subject.length()),
- m_vertices(subject.length()),
- m_segments(subject.length())
+ m_edges(subject.elementCount()),
+ m_vertices(subject.elementCount()),
+ m_segments(subject.elementCount())
{
m_segments.setPath(subject);
m_segments.addPath(clip);
@@ -1405,9 +1405,9 @@ bool QPathClipper::intersect()
else if (clipIsRect)
return subjectPath.intersects(r2);
- QPathSegments a(subjectPath.length());
+ QPathSegments a(subjectPath.elementCount());
a.setPath(subjectPath);
- QPathSegments b(clipPath.length());
+ QPathSegments b(clipPath.elementCount());
b.setPath(clipPath);
QIntersectionFinder finder;
@@ -1450,9 +1450,9 @@ bool QPathClipper::contains()
if (clipIsRect)
return subjectPath.contains(r2);
- QPathSegments a(subjectPath.length());
+ QPathSegments a(subjectPath.elementCount());
a.setPath(subjectPath);
- QPathSegments b(clipPath.length());
+ QPathSegments b(clipPath.elementCount());
b.setPath(clipPath);
QIntersectionFinder finder;
diff --git a/src/gui/text/qfontdatabase_s60.cpp b/src/gui/text/qfontdatabase_s60.cpp
index 5e168c6..9a77a7a 100644
--- a/src/gui/text/qfontdatabase_s60.cpp
+++ b/src/gui/text/qfontdatabase_s60.cpp
@@ -116,7 +116,6 @@ public:
const QSymbianTypeFaceExtras *extras(const QString &typeface, bool bold, bool italic) const;
void addFontFileToFontStore(const QFileInfo &fontFileInfo);
-#ifndef Q_SYMBIAN_HAS_FONTTABLE_API
struct CFontFromFontStoreReleaser {
static inline void cleanup(CFont *font)
{
@@ -127,7 +126,6 @@ public:
dbExtras->m_store->ReleaseFont(font);
}
};
-#endif // !Q_SYMBIAN_HAS_FONTTABLE_API
struct CFontFromScreenDeviceReleaser {
static inline void cleanup(CFont *font)
@@ -138,37 +136,38 @@ public:
}
};
-#ifndef Q_SYMBIAN_HAS_FONTTABLE_API
+// m_heap, m_store, m_rasterizer and m_extras are used if Symbian
+// does not provide the Font Table API
RHeap* m_heap;
CFontStore *m_store;
COpenFontRasterizer *m_rasterizer;
mutable QList<const QSymbianTypeFaceExtras *> m_extras;
-#endif // !Q_SYMBIAN_HAS_FONTTABLE_API
+
mutable QHash<QString, const QSymbianTypeFaceExtras *> m_extrasHash;
};
QSymbianFontDatabaseExtrasImplementation::QSymbianFontDatabaseExtrasImplementation()
{
-#ifndef Q_SYMBIAN_HAS_FONTTABLE_API
- QStringList filters;
- filters.append(QLatin1String("*.ttf"));
- filters.append(QLatin1String("*.ccc"));
- filters.append(QLatin1String("*.ltt"));
- const QFileInfoList fontFiles = alternativeFilePaths(QLatin1String("resource\\Fonts"), filters);
-
- const TInt heapMinLength = 0x1000;
- const TInt heapMaxLength = qMax(0x20000 * fontFiles.count(), heapMinLength);
- m_heap = User::ChunkHeap(NULL, heapMinLength, heapMaxLength);
- QT_TRAP_THROWING(
- m_store = CFontStore::NewL(m_heap);
- m_rasterizer = COpenFontRasterizer::NewL(TUid::Uid(0x101F7F5E));
- CleanupStack::PushL(m_rasterizer);
- m_store->InstallRasterizerL(m_rasterizer);
- CleanupStack::Pop(m_rasterizer););
-
- foreach (const QFileInfo &fontFileInfo, fontFiles)
- addFontFileToFontStore(fontFileInfo);
-#endif // !Q_SYMBIAN_HAS_FONTTABLE_API
+ if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) {
+ QStringList filters;
+ filters.append(QLatin1String("*.ttf"));
+ filters.append(QLatin1String("*.ccc"));
+ filters.append(QLatin1String("*.ltt"));
+ const QFileInfoList fontFiles = alternativeFilePaths(QLatin1String("resource\\Fonts"), filters);
+
+ const TInt heapMinLength = 0x1000;
+ const TInt heapMaxLength = qMax(0x20000 * fontFiles.count(), heapMinLength);
+ m_heap = User::ChunkHeap(NULL, heapMinLength, heapMaxLength);
+ QT_TRAP_THROWING(
+ m_store = CFontStore::NewL(m_heap);
+ m_rasterizer = COpenFontRasterizer::NewL(TUid::Uid(0x101F7F5E));
+ CleanupStack::PushL(m_rasterizer);
+ m_store->InstallRasterizerL(m_rasterizer);
+ CleanupStack::Pop(m_rasterizer););
+
+ foreach (const QFileInfo &fontFileInfo, fontFiles)
+ addFontFileToFontStore(fontFileInfo);
+ }
}
void qt_cleanup_symbianFontDatabaseExtras()
@@ -177,26 +176,26 @@ void qt_cleanup_symbianFontDatabaseExtras()
static_cast<const QSymbianFontDatabaseExtrasImplementation*>(privateDb()->symbianExtras);
if (!dbExtras)
return; // initializeDb() has never been called
-#ifdef Q_SYMBIAN_HAS_FONTTABLE_API
- qDeleteAll(dbExtras->m_extrasHash);
-#else // Q_SYMBIAN_HAS_FONTTABLE_API
- typedef QList<const QSymbianTypeFaceExtras *>::iterator iterator;
- for (iterator p = dbExtras->m_extras.begin(); p != dbExtras->m_extras.end(); ++p) {
- dbExtras->m_store->ReleaseFont((*p)->fontOwner());
- delete *p;
+ if (QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) {
+ qDeleteAll(dbExtras->m_extrasHash);
+ } else {
+ typedef QList<const QSymbianTypeFaceExtras *>::iterator iterator;
+ for (iterator p = dbExtras->m_extras.begin(); p != dbExtras->m_extras.end(); ++p) {
+ dbExtras->m_store->ReleaseFont((*p)->fontOwner());
+ delete *p;
+ }
+ dbExtras->m_extras.clear();
}
- dbExtras->m_extras.clear();
-#endif // Q_SYMBIAN_HAS_FONTTABLE_API
dbExtras->m_extrasHash.clear();
}
QSymbianFontDatabaseExtrasImplementation::~QSymbianFontDatabaseExtrasImplementation()
{
qt_cleanup_symbianFontDatabaseExtras();
-#ifndef Q_SYMBIAN_HAS_FONTTABLE_API
- delete m_store;
- m_heap->Close();
-#endif // !Q_SYMBIAN_HAS_FONTTABLE_API
+ if (!QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) {
+ delete m_store;
+ m_heap->Close();
+ }
}
#ifndef FNTSTORE_H_INLINES_SUPPORT_FMM
@@ -228,44 +227,45 @@ const QSymbianTypeFaceExtras *QSymbianFontDatabaseExtrasImplementation::extras(c
searchSpec.iFontStyle.SetPosture(EPostureItalic);
CFont* font = NULL;
-#ifdef Q_SYMBIAN_HAS_FONTTABLE_API
- const TInt err = S60->screenDevice()->GetNearestFontToDesignHeightInPixels(font, searchSpec);
- Q_ASSERT(err == KErrNone && font);
- QScopedPointer<CFont, CFontFromScreenDeviceReleaser> sFont(font);
- QSymbianTypeFaceExtras *extras = new QSymbianTypeFaceExtras(font);
- sFont.take();
- m_extrasHash.insert(searchKey, extras);
-#else // Q_SYMBIAN_HAS_FONTTABLE_API
- const TInt err = m_store->GetNearestFontToDesignHeightInPixels(font, searchSpec);
- Q_ASSERT(err == KErrNone && font);
- const CBitmapFont *bitmapFont = static_cast<CBitmapFont*>(font);
- COpenFont *openFont =
-#ifdef FNTSTORE_H_INLINES_SUPPORT_FMM
- bitmapFont->OpenFont();
-#else // FNTSTORE_H_INLINES_SUPPORT_FMM
- OpenFontFromBitmapFont(bitmapFont);
-#endif // FNTSTORE_H_INLINES_SUPPORT_FMM
- const TOpenFontFaceAttrib* const attrib = openFont->FaceAttrib();
- const QString foundKey =
- QString((const QChar*)attrib->FullName().Ptr(), attrib->FullName().Length());
- if (!m_extrasHash.contains(foundKey)) {
- QScopedPointer<CFont, CFontFromFontStoreReleaser> sFont(font);
- QSymbianTypeFaceExtras *extras = new QSymbianTypeFaceExtras(font, openFont);
+ if (QSymbianTypeFaceExtras::symbianFontTableApiAvailable()) {
+ const TInt err = S60->screenDevice()->GetNearestFontToDesignHeightInPixels(font, searchSpec);
+ Q_ASSERT(err == KErrNone && font);
+ QScopedPointer<CFont, CFontFromScreenDeviceReleaser> sFont(font);
+ QSymbianTypeFaceExtras *extras = new QSymbianTypeFaceExtras(font);
sFont.take();
- m_extras.append(extras);
m_extrasHash.insert(searchKey, extras);
- m_extrasHash.insert(foundKey, extras);
} else {
- m_store->ReleaseFont(font);
- m_extrasHash.insert(searchKey, m_extrasHash.value(foundKey));
+ const TInt err = m_store->GetNearestFontToDesignHeightInPixels(font, searchSpec);
+ Q_ASSERT(err == KErrNone && font);
+ const CBitmapFont *bitmapFont = static_cast<CBitmapFont*>(font);
+ COpenFont *openFont =
+#ifdef FNTSTORE_H_INLINES_SUPPORT_FMM
+ bitmapFont->OpenFont();
+#else // FNTSTORE_H_INLINES_SUPPORT_FMM
+ OpenFontFromBitmapFont(bitmapFont);
+#endif // FNTSTORE_H_INLINES_SUPPORT_FMM
+ const TOpenFontFaceAttrib* const attrib = openFont->FaceAttrib();
+ const QString foundKey =
+ QString((const QChar*)attrib->FullName().Ptr(), attrib->FullName().Length());
+ if (!m_extrasHash.contains(foundKey)) {
+ QScopedPointer<CFont, CFontFromFontStoreReleaser> sFont(font);
+ QSymbianTypeFaceExtras *extras = new QSymbianTypeFaceExtras(font, openFont);
+ sFont.take();
+ m_extras.append(extras);
+ m_extrasHash.insert(searchKey, extras);
+ m_extrasHash.insert(foundKey, extras);
+ } else {
+ m_store->ReleaseFont(font);
+ m_extrasHash.insert(searchKey, m_extrasHash.value(foundKey));
+ }
}
-#endif // Q_SYMBIAN_HAS_FONTTABLE_API
}
return m_extrasHash.value(searchKey);
}
void QSymbianFontDatabaseExtrasImplementation::addFontFileToFontStore(const QFileInfo &fontFileInfo)
{
+ Q_ASSERT(!QSymbianTypeFaceExtras::symbianFontTableApiAvailable());
const QString fontFile = QDir::toNativeSeparators(fontFileInfo.absoluteFilePath());
TPtrC fontFilePtr(qt_QString2TPtrC(fontFile));
QT_TRAP_THROWING(m_store->AddFileL(fontFilePtr));
diff --git a/src/gui/text/qfontengine_s60.cpp b/src/gui/text/qfontengine_s60.cpp
index bf30e1c..f8e5b4a 100644
--- a/src/gui/text/qfontengine_s60.cpp
+++ b/src/gui/text/qfontengine_s60.cpp
@@ -46,114 +46,115 @@
#include <private/qapplication_p.h>
#include "qimage.h"
#include <private/qt_s60_p.h>
+#include <private/qpixmap_s60_p.h>
#include <e32base.h>
#include <e32std.h>
#include <eikenv.h>
#include <gdi.h>
-#if defined(Q_SYMBIAN_HAS_FONTTABLE_API) || defined(Q_SYMBIAN_HAS_GLYPHOUTLINE_API)
+#if defined(Q_SYMBIAN_HAS_GLYPHOUTLINE_API)
#include <graphics/gdi/gdiplatapi.h>
-#endif // Q_SYMBIAN_HAS_FONTTABLE_API || Q_SYMBIAN_HAS_GLYPHOUTLINE_API
+#endif // Q_SYMBIAN_HAS_GLYPHOUTLINE_API
+
+// Replication of TGetFontTableParam & friends.
+// There is unfortunately no compile time flag like SYMBIAN_FONT_TABLE_API
+// that would help us to only replicate these things for Symbian versions
+// that do not yet have the font table Api. Symbian's public SDK does
+// generally not define any usable macros.
+class QSymbianTGetFontTableParam
+{
+public:
+ TUint32 iTag;
+ TAny *iContent;
+ TInt iLength;
+};
+const TUid QSymbianKFontGetFontTable = {0x102872C1};
+const TUid QSymbianKFontReleaseFontTable = {0x2002AC24};
QT_BEGIN_NAMESPACE
-#ifdef Q_SYMBIAN_HAS_FONTTABLE_API
QSymbianTypeFaceExtras::QSymbianTypeFaceExtras(CFont* cFont, COpenFont *openFont)
: m_cFont(cFont)
, m_symbolCMap(false)
+ , m_openFont(openFont)
{
- Q_UNUSED(openFont)
+ if (!symbianFontTableApiAvailable()) {
+ TAny *trueTypeExtension = NULL;
+ m_openFont->ExtendedInterface(KUidOpenFontTrueTypeExtension, trueTypeExtension);
+ m_trueTypeExtension = static_cast<MOpenFontTrueTypeExtension*>(trueTypeExtension);
+ Q_ASSERT(m_trueTypeExtension);
+ }
}
QSymbianTypeFaceExtras::~QSymbianTypeFaceExtras()
{
- S60->screenDevice()->ReleaseFont(m_cFont);
+ if (symbianFontTableApiAvailable())
+ S60->screenDevice()->ReleaseFont(m_cFont);
}
QByteArray QSymbianTypeFaceExtras::getSfntTable(uint tag) const
{
- RFontTable fontTable;
- if (fontTable.Open(*m_cFont, tag) != KErrNone)
+ if (symbianFontTableApiAvailable()) {
+ QSymbianTGetFontTableParam fontTableParams = { tag, 0, 0 };
+ if (m_cFont->ExtendedFunction(QSymbianKFontGetFontTable, &fontTableParams) == KErrNone) {
+ const char* const fontTableContent =
+ static_cast<const char *>(fontTableParams.iContent);
+ const QByteArray fontTable(fontTableContent, fontTableParams.iLength);
+ m_cFont->ExtendedFunction(QSymbianKFontReleaseFontTable, &fontTableParams);
+ return fontTable;
+ }
return QByteArray();
- const QByteArray byteArray(reinterpret_cast<const char *>
- (fontTable.TableContent()),fontTable.TableLength());
- fontTable.Close();
- return byteArray;
+ } else {
+ Q_ASSERT(m_trueTypeExtension->HasTrueTypeTable(tag));
+ TInt error = KErrNone;
+ TInt tableByteLength = 0;
+ TAny *table = q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength));
+ const QByteArray result(static_cast<const char*>(table), tableByteLength);
+ m_trueTypeExtension->ReleaseTrueTypeTable(table);
+ return result;
+ }
}
bool QSymbianTypeFaceExtras::getSfntTableData(uint tag, uchar *buffer, uint *length) const
{
- RFontTable fontTable;
- if (fontTable.Open(*m_cFont, tag) != KErrNone)
- return false;
-
bool result = true;
- const TInt tableByteLength = fontTable.TableLength();
-
- if (*length > 0 && *length < tableByteLength) {
- result = false; // Caller did not allocate enough memory
+ if (symbianFontTableApiAvailable()) {
+ QSymbianTGetFontTableParam fontTableParams = { tag, 0, 0 };
+ if (m_cFont->ExtendedFunction(QSymbianKFontGetFontTable, &fontTableParams) == KErrNone) {
+ if (*length > 0 && *length < fontTableParams.iLength) {
+ result = false; // Caller did not allocate enough memory
+ } else {
+ *length = fontTableParams.iLength;
+ if (buffer)
+ memcpy(buffer, fontTableParams.iContent, fontTableParams.iLength);
+ }
+ m_cFont->ExtendedFunction(QSymbianKFontReleaseFontTable, &fontTableParams);
+ } else {
+ result = false;
+ }
} else {
- *length = tableByteLength;
- if (buffer)
- memcpy(buffer, fontTable.TableContent(), tableByteLength);
- }
-
- fontTable.Close();
- return result;
-}
-
-#else // Q_SYMBIAN_HAS_FONTTABLE_API
-QSymbianTypeFaceExtras::QSymbianTypeFaceExtras(CFont* cFont, COpenFont *openFont)
- : m_cFont(cFont)
- , m_symbolCMap(false)
- , m_openFont(openFont)
-{
- TAny *trueTypeExtension = NULL;
- m_openFont->ExtendedInterface(KUidOpenFontTrueTypeExtension, trueTypeExtension);
- m_trueTypeExtension = static_cast<MOpenFontTrueTypeExtension*>(trueTypeExtension);
- Q_ASSERT(m_trueTypeExtension);
-}
-
-QSymbianTypeFaceExtras::~QSymbianTypeFaceExtras()
-{
-}
-
-QByteArray QSymbianTypeFaceExtras::getSfntTable(uint tag) const
-{
- Q_ASSERT(m_trueTypeExtension->HasTrueTypeTable(tag));
- TInt error = KErrNone;
- TInt tableByteLength = 0;
- TAny *table = q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength));
- QByteArray result(static_cast<const char*>(table), tableByteLength);
- m_trueTypeExtension->ReleaseTrueTypeTable(table);
- return result;
-}
+ if (!m_trueTypeExtension->HasTrueTypeTable(tag))
+ return false;
-bool QSymbianTypeFaceExtras::getSfntTableData(uint tag, uchar *buffer, uint *length) const
-{
- if (!m_trueTypeExtension->HasTrueTypeTable(tag))
- return false;
+ TInt error = KErrNone;
+ TInt tableByteLength;
+ TAny *table =
+ q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength));
- bool result = true;
- TInt error = KErrNone;
- TInt tableByteLength;
- TAny *table =
- q_check_ptr(m_trueTypeExtension->GetTrueTypeTable(error, tag, &tableByteLength));
+ if (error != KErrNone) {
+ return false;
+ } else if (*length > 0 && *length < tableByteLength) {
+ result = false; // Caller did not allocate enough memory
+ } else {
+ *length = tableByteLength;
+ if (buffer)
+ memcpy(buffer, table, tableByteLength);
+ }
- if (error != KErrNone) {
- return false;
- } else if (*length > 0 && *length < tableByteLength) {
- result = false; // Caller did not allocate enough memory
- } else {
- *length = tableByteLength;
- if (buffer)
- memcpy(buffer, table, tableByteLength);
+ m_trueTypeExtension->ReleaseTrueTypeTable(table);
}
-
- m_trueTypeExtension->ReleaseTrueTypeTable(table);
return result;
}
-#endif // Q_SYMBIAN_HAS_FONTTABLE_API
const uchar *QSymbianTypeFaceExtras::cmap() const
{
@@ -195,6 +196,39 @@ QFixed QSymbianTypeFaceExtras::unitsPerEm() const
return m_unitsPerEm;
}
+bool QSymbianTypeFaceExtras::symbianFontTableApiAvailable()
+{
+ enum FontTableApiAvailability {
+ Unknown,
+ Available,
+ Unavailable
+ };
+ static FontTableApiAvailability availability =
+ QSysInfo::symbianVersion() < QSysInfo::SV_SF_3 ?
+ Unavailable : Unknown;
+ if (availability == Unknown) {
+ // Actually, we should ask CFeatureDiscovery::IsFeatureSupportedL()
+ // with FfFontTable here. But since at the time of writing, the
+ // FfFontTable flag check either gave false positives or false
+ // negatives. Here comes an implicit check via CFont::ExtendedFunction.
+ QSymbianTGetFontTableParam fontTableParams = {
+ MAKE_TAG('O', 'S', '/', '2'), 0, 0 };
+ QSymbianFbsHeapLock lock(QSymbianFbsHeapLock::Unlock);
+ CFont *font;
+ const TInt getFontErr = S60->screenDevice()->GetNearestFontInTwips(font, TFontSpec());
+ Q_ASSERT(getFontErr == KErrNone);
+ if (font->ExtendedFunction(QSymbianKFontGetFontTable, &fontTableParams) == KErrNone) {
+ font->ExtendedFunction(QSymbianKFontReleaseFontTable, &fontTableParams);
+ availability = Available;
+ } else {
+ availability = Unavailable;
+ }
+ S60->screenDevice()->ReleaseFont(font);
+ lock.relock();
+ }
+ return availability == Available;
+}
+
// duplicated from qfontengine_xyz.cpp
static inline unsigned int getChar(const QChar *str, int &i, const int len)
{
diff --git a/src/gui/text/qfontengine_s60_p.h b/src/gui/text/qfontengine_s60_p.h
index c65ce55..cdf2185 100644
--- a/src/gui/text/qfontengine_s60_p.h
+++ b/src/gui/text/qfontengine_s60_p.h
@@ -58,13 +58,11 @@
#include "qsize.h"
#include <openfont.h>
-#ifdef SYMBIAN_GDI_GLYPHDATA
-#define Q_SYMBIAN_HAS_FONTTABLE_API
-#endif
-
-#ifdef Q_SYMBIAN_HAS_FONTTABLE_API
+// The glyph outline code is intentionally disabled. It will be reactivated as
+// soon as the glyph outline API is backported from Symbian(^4) to Symbian(^3).
+#if 0
#define Q_SYMBIAN_HAS_GLYPHOUTLINE_API
-#endif // Q_SYMBIAN_HAS_FONTTABLE_API
+#endif
class CFont;
@@ -83,16 +81,18 @@ public:
CFont *fontOwner() const;
bool isSymbolCMap() const;
QFixed unitsPerEm() const;
+ static bool symbianFontTableApiAvailable();
private:
CFont* m_cFont;
mutable bool m_symbolCMap;
mutable QByteArray m_cmapTable;
mutable QFixed m_unitsPerEm;
-#ifndef Q_SYMBIAN_HAS_FONTTABLE_API
+
+ // m_openFont and m_openFont are used if Symbian does not provide
+ // the Font Table API
COpenFont *m_openFont;
mutable MOpenFontTrueTypeExtension *m_trueTypeExtension;
-#endif // Q_SYMBIAN_HAS_FONTTABLE_API
};
class QFontEngineS60 : public QFontEngine
diff --git a/src/gui/text/qtextcursor.cpp b/src/gui/text/qtextcursor.cpp
index 769ab2f..f73cc4b 100644
--- a/src/gui/text/qtextcursor.cpp
+++ b/src/gui/text/qtextcursor.cpp
@@ -363,6 +363,9 @@ bool QTextCursorPrivate::movePosition(QTextCursor::MoveOperation op, QTextCursor
bool adjustX = true;
QTextBlock blockIt = block();
+ if (!blockIt.isValid())
+ return false;
+
if (op >= QTextCursor::Left && op <= QTextCursor::WordRight
&& blockIt.textDirection() == Qt::RightToLeft) {
if (op == QTextCursor::Left)
diff --git a/src/gui/text/qtextdocument.cpp b/src/gui/text/qtextdocument.cpp
index c35069f..77e6aa1 100644
--- a/src/gui/text/qtextdocument.cpp
+++ b/src/gui/text/qtextdocument.cpp
@@ -596,8 +596,10 @@ void QTextDocument::markContentsDirty(int from, int length)
Q_D(QTextDocument);
d->documentChange(from, length);
if (!d->inContentsChange) {
- d->lout->documentChanged(d->docChangeFrom, d->docChangeOldLength, d->docChangeLength);
- d->docChangeFrom = -1;
+ if (d->lout) {
+ d->lout->documentChanged(d->docChangeFrom, d->docChangeOldLength, d->docChangeLength);
+ d->docChangeFrom = -1;
+ }
}
}
diff --git a/src/gui/widgets/qlabel.cpp b/src/gui/widgets/qlabel.cpp
index 42be03b..011b07a 100644
--- a/src/gui/widgets/qlabel.cpp
+++ b/src/gui/widgets/qlabel.cpp
@@ -682,7 +682,7 @@ QSize QLabelPrivate::sizeForWidth(int w) const
bool tryWidth = (w < 0) && (align & Qt::TextWordWrap);
if (tryWidth)
- w = fm.averageCharWidth() * 80;
+ w = qMin(fm.averageCharWidth() * 80, q->maximumSize().width());
else if (w < 0)
w = 2000;
w -= (hextra + contentsMargin.width());
diff --git a/src/gui/widgets/qlinecontrol.cpp b/src/gui/widgets/qlinecontrol.cpp
index f338f40..5ea9dc4 100644
--- a/src/gui/widgets/qlinecontrol.cpp
+++ b/src/gui/widgets/qlinecontrol.cpp
@@ -1308,6 +1308,15 @@ void QLineControl::setCursorBlinkPeriod(int msec)
m_blinkPeriod = msec;
}
+void QLineControl::resetCursorBlinkTimer()
+{
+ if (m_blinkPeriod == 0 || m_blinkTimer == 0)
+ return;
+ killTimer(m_blinkTimer);
+ m_blinkTimer = startTimer(m_blinkPeriod / 2);
+ m_blinkStatus = 1;
+}
+
void QLineControl::timerEvent(QTimerEvent *event)
{
if (event->timerId() == m_blinkTimer) {
diff --git a/src/gui/widgets/qlinecontrol_p.h b/src/gui/widgets/qlinecontrol_p.h
index 7068f62..d881acf 100644
--- a/src/gui/widgets/qlinecontrol_p.h
+++ b/src/gui/widgets/qlinecontrol_p.h
@@ -296,6 +296,7 @@ public:
int cursorBlinkPeriod() const { return m_blinkPeriod; }
void setCursorBlinkPeriod(int msec);
+ void resetCursorBlinkTimer();
QString cancelText() const { return m_cancelText; }
void setCancelText(const QString &text) { m_cancelText = text; }
diff --git a/src/gui/widgets/qmenu.cpp b/src/gui/widgets/qmenu.cpp
index 4bea6de..74c2a9e 100644
--- a/src/gui/widgets/qmenu.cpp
+++ b/src/gui/widgets/qmenu.cpp
@@ -1320,6 +1320,9 @@ void QMenu::initStyleOption(QStyleOptionMenuItem *option, const QAction *action)
Conversely, actions can be added to widgets with the addAction(),
addActions() and insertAction() functions.
+ \warning To make QMenu visible on the screen, exec() or popup() should be
+ used instead of show().
+
\section1 QMenu on Qt for Windows CE
If a menu is integrated into the native menubar on Windows Mobile we
@@ -1795,10 +1798,12 @@ QSize QMenu::sizeHint() const
void QMenu::popup(const QPoint &p, QAction *atAction)
{
Q_D(QMenu);
+#ifndef Q_OS_SYMBIAN
if (d->scroll) { // reset scroll state from last popup
d->scroll->scrollOffset = 0;
d->scroll->scrollFlags = QMenuPrivate::QMenuScroller::ScrollNone;
}
+#endif
d->tearoffHighlighted = 0;
d->motions = 0;
d->doChildEffects = true;
diff --git a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
index 3ddc15a..4a64f39 100644
--- a/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
+++ b/src/opengl/gl2paintengineex/qpaintengineex_opengl2.cpp
@@ -1464,6 +1464,7 @@ namespace {
QSize cacheSize;
QGL2PEXVertexArray vertexCoordinateArray;
QGL2PEXVertexArray textureCoordinateArray;
+ QFontEngineGlyphCache::Type glyphType;
};
}
@@ -1477,22 +1478,29 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp
QOpenGL2PaintEngineState *s = q->state();
+ bool recreateVertexArrays = false;
+
QGLTextureGlyphCache *cache =
(QGLTextureGlyphCache *) staticTextItem->fontEngine()->glyphCache(ctx, glyphType, QTransform());
if (!cache || cache->cacheType() != glyphType) {
cache = new QGLTextureGlyphCache(ctx, glyphType, QTransform());
staticTextItem->fontEngine()->setGlyphCache(ctx, cache);
+ recreateVertexArrays = true;
} else if (cache->context() == 0) { // Old context has been destroyed, new context has same ptr value
cache->setContext(ctx);
}
- bool recreateVertexArrays = false;
- if (staticTextItem->userDataNeedsUpdate)
+ if (staticTextItem->userDataNeedsUpdate) {
recreateVertexArrays = true;
- else if (staticTextItem->userData() == 0)
+ } else if (staticTextItem->userData() == 0) {
recreateVertexArrays = true;
- else if (staticTextItem->userData()->type != QStaticTextUserData::OpenGLUserData)
+ } else if (staticTextItem->userData()->type != QStaticTextUserData::OpenGLUserData) {
recreateVertexArrays = true;
+ } else {
+ QOpenGLStaticTextUserData *userData = static_cast<QOpenGLStaticTextUserData *>(staticTextItem->userData());
+ if (userData->glyphType != glyphType)
+ recreateVertexArrays = true;
+ }
// We only need to update the cache with new glyphs if we are actually going to recreate the vertex arrays.
// If the cache size has changed, we do need to regenerate the vertices, but we don't need to repopulate the
@@ -1504,8 +1512,8 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp
// No space in cache. We need to clear the cache and try again
cache->clear();
cache->populate(staticTextItem->fontEngine(), staticTextItem->numGlyphs,
- staticTextItem->glyphs, staticTextItem->glyphPositions);
- }
+ staticTextItem->glyphs, staticTextItem->glyphPositions);
+ }
}
if (cache->width() == 0 || cache->height() == 0)
@@ -1535,6 +1543,8 @@ void QGL2PaintEngineExPrivate::drawCachedGlyphs(QFontEngineGlyphCache::Type glyp
userData = static_cast<QOpenGLStaticTextUserData*>(staticTextItem->userData());
}
+ userData->glyphType = glyphType;
+
// Use cache if backend optimizations is turned on
vertexCoordinates = &userData->vertexCoordinateArray;
textureCoordinates = &userData->textureCoordinateArray;
@@ -2139,7 +2149,11 @@ void QGL2PaintEngineEx::clip(const QVectorPath &path, Qt::ClipOperation op)
const QPointF* const points = reinterpret_cast<const QPointF*>(path.points());
QRectF rect(points[0], points[2]);
- if (state()->matrix.type() <= QTransform::TxScale) {
+ if (state()->matrix.type() <= QTransform::TxScale
+ || (state()->matrix.type() == QTransform::TxRotate
+ && qFuzzyIsNull(state()->matrix.m11())
+ && qFuzzyIsNull(state()->matrix.m22())))
+ {
state()->rectangleClip = state()->rectangleClip.intersected(state()->matrix.mapRect(rect).toRect());
d->updateClipScissorTest();
return;
diff --git a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
index 705ad09..66445cd 100644
--- a/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
+++ b/src/opengl/gl2paintengineex/qtextureglyphcache_gl.cpp
@@ -128,14 +128,17 @@ void QGLTextureGlyphCache::createTextureData(int width, int height)
m_width = width;
m_height = height;
- QVarLengthArray<uchar> data(width * height);
- for (int i = 0; i < data.size(); ++i)
- data[i] = 0;
-
- if (m_type == QFontEngineGlyphCache::Raster_RGBMask)
- glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_ALPHA, GL_UNSIGNED_BYTE, &data[0]);
- else
+ if (m_type == QFontEngineGlyphCache::Raster_RGBMask) {
+ QVarLengthArray<uchar> data(width * height * 4);
+ for (int i = 0; i < data.size(); ++i)
+ data[i] = 0;
+ glTexImage2D(GL_TEXTURE_2D, 0, GL_RGBA, width, height, 0, GL_RGBA, GL_UNSIGNED_BYTE, &data[0]);
+ } else {
+ QVarLengthArray<uchar> data(width * height);
+ for (int i = 0; i < data.size(); ++i)
+ data[i] = 0;
glTexImage2D(GL_TEXTURE_2D, 0, GL_ALPHA, width, height, 0, GL_ALPHA, GL_UNSIGNED_BYTE, &data[0]);
+ }
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST);
glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST);
@@ -287,7 +290,7 @@ void QGLTextureGlyphCache::fillTexture(const Coord &c, glyph_t glyph)
if (mask.format() == QImage::Format_RGB32) {
glTexSubImage2D(GL_TEXTURE_2D, 0, c.x, c.y, maskWidth, maskHeight, GL_BGRA, GL_UNSIGNED_BYTE, mask.bits());
} else {
-#ifdef QT_OPENGL_ES2
+#ifdef QT_OPENGL_ES_2
glTexSubImage2D(GL_TEXTURE_2D, 0, c.x, c.y, maskWidth, maskHeight, GL_ALPHA, GL_UNSIGNED_BYTE, mask.bits());
#else
// glTexSubImage2D() might cause some garbage to appear in the texture if the mask width is
diff --git a/src/opengl/qwindowsurface_gl.cpp b/src/opengl/qwindowsurface_gl.cpp
index bbb98d0..f64b93c 100644
--- a/src/opengl/qwindowsurface_gl.cpp
+++ b/src/opengl/qwindowsurface_gl.cpp
@@ -377,7 +377,18 @@ void QGLWindowSurface::hijackWindow(QWidget *widget)
if (widgetPrivate->extraData()->glContext)
return;
- QGLContext *ctx = new QGLContext(surfaceFormat, widget);
+ QGLContext *ctx = NULL;
+
+ // For translucent top-level widgets we need alpha in the format.
+ if (widget->testAttribute(Qt::WA_TranslucentBackground)) {
+ QGLFormat modFormat(surfaceFormat);
+ modFormat.setSampleBuffers(false);
+ modFormat.setSamples(0);
+ modFormat.setAlpha(true);
+ ctx = new QGLContext(modFormat, widget);
+ } else
+ ctx = new QGLContext(surfaceFormat, widget);
+
ctx->create(qt_gl_share_widget()->context());
#ifndef QT_NO_EGL
diff --git a/src/openvg/qpaintengine_vg.cpp b/src/openvg/qpaintengine_vg.cpp
index b8e8bad..13156d7 100644
--- a/src/openvg/qpaintengine_vg.cpp
+++ b/src/openvg/qpaintengine_vg.cpp
@@ -3210,8 +3210,7 @@ void QVGPaintEngine::drawTiledPixmap
(const QRectF &r, const QPixmap &pixmap, const QPointF &s)
{
QBrush brush(state()->pen.color(), pixmap);
- QTransform xform;
- xform.translate(-s.x(), -s.y());
+ QTransform xform = QTransform::fromTranslate(r.x() - s.x(), r.y() - s.y());
brush.setTransform(xform);
fillRect(r, brush);
}
diff --git a/src/plugins/bearer/icd/proxyconf.cpp b/src/plugins/bearer/icd/proxyconf.cpp
index e5c8f4e..efe2da7 100644
--- a/src/plugins/bearer/icd/proxyconf.cpp
+++ b/src/plugins/bearer/icd/proxyconf.cpp
@@ -142,16 +142,23 @@ QHash<QString,QVariant> GConfItemFast::getEntries() const
-class NetworkProxyFactory : QNetworkProxyFactory {
+class NetworkProxyFactory : QNetworkProxyFactory
+{
+ ProxyConf proxy_conf;
+ bool proxy_data_read;
+
public:
- NetworkProxyFactory() { }
+ NetworkProxyFactory() : proxy_data_read(false) { }
QList<QNetworkProxy> queryProxy(const QNetworkProxyQuery &query = QNetworkProxyQuery());
};
QList<QNetworkProxy> NetworkProxyFactory::queryProxy(const QNetworkProxyQuery &query)
{
- ProxyConf proxy_conf;
+ if (proxy_data_read == false) {
+ proxy_data_read = true;
+ proxy_conf.readProxyData();
+ }
QList<QNetworkProxy> result = proxy_conf.flush(query);
if (result.isEmpty())
@@ -299,12 +306,12 @@ QList<QNetworkProxy> ProxyConfPrivate::flush(const QNetworkProxyQuery &query)
if (isHostExcluded(query.peerHostName()))
return result; // no proxy for this host
- if (mode == "auto") {
+ if (mode == QLatin1String("AUTO")) {
// TODO: pac currently not supported, fix me
return result;
}
- if (mode == "manual") {
+ if (mode == QLatin1String("MANUAL")) {
bool isHttps = false;
QString protocol = query.protocolTag().toLower();
@@ -377,10 +384,13 @@ ProxyConf::~ProxyConf()
delete d_ptr;
}
+void ProxyConf::readProxyData()
+{
+ d_ptr->readProxyData();
+}
QList<QNetworkProxy> ProxyConf::flush(const QNetworkProxyQuery &query)
{
- d_ptr->readProxyData();
return d_ptr->flush(query);
}
diff --git a/src/plugins/bearer/icd/proxyconf.h b/src/plugins/bearer/icd/proxyconf.h
index 884cc5c..eedbbf2 100644
--- a/src/plugins/bearer/icd/proxyconf.h
+++ b/src/plugins/bearer/icd/proxyconf.h
@@ -58,6 +58,7 @@ public:
virtual ~ProxyConf();
QList<QNetworkProxy> flush(const QNetworkProxyQuery &query = QNetworkProxyQuery()); // read the proxies from db
+ void readProxyData();
/* Note that for each update() call there should be corresponding
* clear() call because the ProxyConf class implements a reference
diff --git a/src/plugins/graphicssystems/meego/dithering.cpp b/src/plugins/graphicssystems/meego/dithering.cpp
index 1a2e3fa..ca303a8 100644
--- a/src/plugins/graphicssystems/meego/dithering.cpp
+++ b/src/plugins/graphicssystems/meego/dithering.cpp
@@ -154,7 +154,10 @@ unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int h
// Add the diffusion for this pixel we stored in the accumulator.
// >> 7 because the values in accumulator are stored * 128
- component[c] += accumulator[c][x] >> 7;
+ if (x != 0 && x != (width - 1)) {
+ if (accumulator[c][x] >> 7 != 0)
+ component[c] += rand() % accumulator[c][x] >> 7;
+ }
// Make sure we're not over the boundaries.
CLAMP_256(component[c]);
@@ -172,10 +175,10 @@ unsigned short* convertRGB32_to_RGB565(const unsigned char *in, int width, int h
// Distribute the difference according to the matrix in the
// accumulation bufffer.
- ACCUMULATE(accumulator[c], x + 1, 0, width, diff * 7);
- ACCUMULATE(accumulator[c], x - 1, 1, width, diff * 3);
+ ACCUMULATE(accumulator[c], x + 1, 0, width, diff * 3);
+ ACCUMULATE(accumulator[c], x - 1, 1, width, diff * 5);
ACCUMULATE(accumulator[c], x, 1, width, diff * 5);
- ACCUMULATE(accumulator[c], x + 1, 1, width, diff * 1);
+ ACCUMULATE(accumulator[c], x + 1, 1, width, diff * 3);
}
// Write the newly produced pixel
diff --git a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp
index 507f70b..4a86082 100644
--- a/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp
+++ b/src/plugins/graphicssystems/meego/qmeegographicssystem.cpp
@@ -124,8 +124,10 @@ QPixmapData* QMeeGoGraphicsSystem::wrapPixmapData(QPixmapData *pmd)
void QMeeGoGraphicsSystem::setSurfaceFixedSize(int /*width*/, int /*height*/)
{
- if (QMeeGoGraphicsSystem::surfaceWasCreated)
+ if (QMeeGoGraphicsSystem::surfaceWasCreated) {
qWarning("Trying to set surface fixed size but surface already created!");
+ return;
+ }
#ifdef QT_WAS_PATCHED
QEglProperties *properties = new QEglProperties();
@@ -143,6 +145,11 @@ void QMeeGoGraphicsSystem::setSurfaceScaling(int x, int y, int width, int height
void QMeeGoGraphicsSystem::setTranslucent(bool translucent)
{
+ if (QMeeGoGraphicsSystem::surfaceWasCreated) {
+ qWarning("Trying to set translucency but surface already created!");
+ return;
+ }
+
QGLWindowSurface::surfaceFormat.setSampleBuffers(false);
QGLWindowSurface::surfaceFormat.setSamples(0);
QGLWindowSurface::surfaceFormat.setAlpha(translucent);
diff --git a/src/s60installs/bwins/QtGuiu.def b/src/s60installs/bwins/QtGuiu.def
index 6a33fc3..bf4d99f 100644
--- a/src/s60installs/bwins/QtGuiu.def
+++ b/src/s60installs/bwins/QtGuiu.def
@@ -2725,7 +2725,7 @@ EXPORTS
?clearSelection@QTextCursor@@QAEXXZ @ 2724 NONAME ; void QTextCursor::clearSelection(void)
?clearSpans@QTableView@@QAEXXZ @ 2725 NONAME ; void QTableView::clearSpans(void)
?clearString@QLineControl@@ABE?AVQString@@II@Z @ 2726 NONAME ; class QString QLineControl::clearString(unsigned int, unsigned int) const
- ?clearSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 2727 NONAME ; void QGraphicsItemPrivate::clearSubFocus(class QGraphicsItem *)
+ ?clearSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 2727 NONAME ABSENT ; void QGraphicsItemPrivate::clearSubFocus(class QGraphicsItem *)
?clearUndo@QLineControl@@QAEXXZ @ 2728 NONAME ; void QLineControl::clearUndo(void)
?click@QAbstractButton@@QAEXXZ @ 2729 NONAME ; void QAbstractButton::click(void)
?clicked@QAbstractButton@@IAEX_N@Z @ 2730 NONAME ; void QAbstractButton::clicked(bool)
@@ -9914,7 +9914,7 @@ EXPORTS
?setStyleSheet@QWidget@@QAEXABVQString@@@Z @ 9913 NONAME ; void QWidget::setStyleSheet(class QString const &)
?setStyleStrategy@QFont@@QAEXW4StyleStrategy@1@@Z @ 9914 NONAME ; void QFont::setStyleStrategy(enum QFont::StyleStrategy)
?setStyle_helper@QWidgetPrivate@@QAEXPAVQStyle@@_N1@Z @ 9915 NONAME ; void QWidgetPrivate::setStyle_helper(class QStyle *, bool, bool)
- ?setSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 9916 NONAME ; void QGraphicsItemPrivate::setSubFocus(class QGraphicsItem *)
+ ?setSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@@Z @ 9916 NONAME ABSENT ; void QGraphicsItemPrivate::setSubFocus(class QGraphicsItem *)
?setSubTitle@QWizardPage@@QAEXABVQString@@@Z @ 9917 NONAME ; void QWizardPage::setSubTitle(class QString const &)
?setSubTitleFormat@QWizard@@QAEXW4TextFormat@Qt@@@Z @ 9918 NONAME ; void QWizard::setSubTitleFormat(enum Qt::TextFormat)
?setSubmitPolicy@QDataWidgetMapper@@QAEXW4SubmitPolicy@1@@Z @ 9919 NONAME ; void QDataWidgetMapper::setSubmitPolicy(enum QDataWidgetMapper::SubmitPolicy)
@@ -12905,4 +12905,7 @@ EXPORTS
?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 *)
+ ?resetCursorBlinkTimer@QLineControl@@QAEXXZ @ 12907 NONAME ; void QLineControl::resetCursorBlinkTimer(void)
+ ?setSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@0@Z @ 12908 NONAME ; void QGraphicsItemPrivate::setSubFocus(class QGraphicsItem *, class QGraphicsItem *)
+ ?clearSubFocus@QGraphicsItemPrivate@@QAEXPAVQGraphicsItem@@0@Z @ 12909 NONAME ; void QGraphicsItemPrivate::clearSubFocus(class QGraphicsItem *, class QGraphicsItem *)
diff --git a/src/s60installs/eabi/QtGuiu.def b/src/s60installs/eabi/QtGuiu.def
index 54768a1..48976a1 100644
--- a/src/s60installs/eabi/QtGuiu.def
+++ b/src/s60installs/eabi/QtGuiu.def
@@ -4658,11 +4658,11 @@ EXPORTS
_ZN20QGraphicsEllipseItemD1Ev @ 4657 NONAME
_ZN20QGraphicsEllipseItemD2Ev @ 4658 NONAME
_ZN20QGraphicsItemPrivate11removeChildEP13QGraphicsItem @ 4659 NONAME
- _ZN20QGraphicsItemPrivate11setSubFocusEP13QGraphicsItem @ 4660 NONAME
+ _ZN20QGraphicsItemPrivate11setSubFocusEP13QGraphicsItem @ 4660 NONAME ABSENT
_ZN20QGraphicsItemPrivate12remapItemPosEP6QEventP13QGraphicsItem @ 4661 NONAME
_ZN20QGraphicsItemPrivate12resolveDepthEv @ 4662 NONAME
_ZN20QGraphicsItemPrivate12setPosHelperERK7QPointF @ 4663 NONAME
- _ZN20QGraphicsItemPrivate13clearSubFocusEP13QGraphicsItem @ 4664 NONAME
+ _ZN20QGraphicsItemPrivate13clearSubFocusEP13QGraphicsItem @ 4664 NONAME ABSENT
_ZN20QGraphicsItemPrivate14setFocusHelperEN2Qt11FocusReasonEb @ 4665 NONAME ABSENT
_ZN20QGraphicsItemPrivate15resetFocusProxyEv @ 4666 NONAME
_ZN20QGraphicsItemPrivate16setEnabledHelperEbbb @ 4667 NONAME
@@ -12105,4 +12105,7 @@ EXPORTS
_ZN15QStaticTextItemD1Ev @ 12104 NONAME
_ZN15QStaticTextItemD2Ev @ 12105 NONAME
_ZN19QEventDispatcherS6031reactivateDeferredActiveObjectsEv @ 12106 NONAME
+ _ZN20QGraphicsItemPrivate11setSubFocusEP13QGraphicsItemS1_ @ 12107 NONAME
+ _ZN20QGraphicsItemPrivate13clearSubFocusEP13QGraphicsItemS1_ @ 12108 NONAME
+ _ZN12QLineControl21resetCursorBlinkTimerEv @ 12109 NONAME
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/forceActiveFocus.qml b/tests/auto/declarative/qdeclarativefocusscope/data/forceActiveFocus.qml
new file mode 100644
index 0000000..6c39d4a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/forceActiveFocus.qml
@@ -0,0 +1,26 @@
+import QtQuick 1.0
+
+Rectangle {
+ objectName: "root"
+ FocusScope {
+ objectName: "scope"
+ Item {
+ objectName: "item-a1"
+ FocusScope {
+ objectName: "scope-a"
+ Item {
+ objectName: "item-a2"
+ }
+ }
+ }
+ Item {
+ objectName: "item-b1"
+ FocusScope {
+ objectName: "scope-b"
+ Item {
+ objectName: "item-b2"
+ }
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
index 1645dac..6a3627b 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
+++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
@@ -71,6 +71,7 @@ private slots:
void noParentFocus();
void signalEmission();
void qtBug13380();
+ void forceActiveFocus();
};
/*
@@ -432,6 +433,114 @@ void tst_qdeclarativefocusscope::qtBug13380()
delete view;
}
+void tst_qdeclarativefocusscope::forceActiveFocus()
+{
+ QDeclarativeView *view = new QDeclarativeView;
+ view->setSource(QUrl::fromLocalFile(SRCDIR "/data/forceActiveFocus.qml"));
+
+ QGraphicsObject *rootObject = view->rootObject();
+ QVERIFY(rootObject);
+
+ QDeclarativeItem *scope = findItem<QDeclarativeItem>(rootObject, QLatin1String("scope"));
+ QDeclarativeItem *itemA1 = findItem<QDeclarativeItem>(rootObject, QLatin1String("item-a1"));
+ QDeclarativeItem *scopeA = findItem<QDeclarativeItem>(rootObject, QLatin1String("scope-a"));
+ QDeclarativeItem *itemA2 = findItem<QDeclarativeItem>(rootObject, QLatin1String("item-a2"));
+ QDeclarativeItem *itemB1 = findItem<QDeclarativeItem>(rootObject, QLatin1String("item-b1"));
+ QDeclarativeItem *scopeB = findItem<QDeclarativeItem>(rootObject, QLatin1String("scope-b"));
+ QDeclarativeItem *itemB2 = findItem<QDeclarativeItem>(rootObject, QLatin1String("item-b2"));
+
+ QVERIFY(scope);
+ QVERIFY(itemA1);
+ QVERIFY(scopeA);
+ QVERIFY(itemA2);
+ QVERIFY(itemB1);
+ QVERIFY(scopeB);
+ QVERIFY(itemB2);
+
+ QSignalSpy rootSpy(rootObject, SIGNAL(activeFocusChanged(bool)));
+ QSignalSpy scopeSpy(scope, SIGNAL(activeFocusChanged(bool)));
+ QSignalSpy scopeASpy(scopeA, SIGNAL(activeFocusChanged(bool)));
+ QSignalSpy scopeBSpy(scopeB, SIGNAL(activeFocusChanged(bool)));
+
+ // First, walk the focus from item-a1 down to item-a2 and back again
+ itemA1->forceActiveFocus();
+ QVERIFY(itemA1->hasActiveFocus());
+ QCOMPARE(rootSpy.count(), 1);
+ QCOMPARE(scopeSpy.count(), 1);
+
+ scopeA->forceActiveFocus();
+ QVERIFY(!itemA1->hasActiveFocus());
+ QVERIFY(scopeA->hasActiveFocus());
+ QCOMPARE(scopeASpy.count(), 1);
+ QCOMPARE(rootSpy.count(), 1);
+ QCOMPARE(scopeSpy.count(), 1);
+
+ itemA2->forceActiveFocus();
+ QVERIFY(!itemA1->hasActiveFocus());
+ QVERIFY(itemA2->hasActiveFocus());
+ QVERIFY(scopeA->hasActiveFocus());
+ QCOMPARE(scopeASpy.count(), 1);
+ QCOMPARE(rootSpy.count(), 1);
+ QCOMPARE(scopeSpy.count(), 1);
+
+ scopeA->forceActiveFocus();
+ QVERIFY(!itemA1->hasActiveFocus());
+ QVERIFY(itemA2->hasActiveFocus());
+ QVERIFY(scopeA->hasActiveFocus());
+ QCOMPARE(scopeASpy.count(), 1);
+ QCOMPARE(rootSpy.count(), 1);
+ QCOMPARE(scopeSpy.count(), 1);
+
+ itemA1->forceActiveFocus();
+ QVERIFY(itemA1->hasActiveFocus());
+ QVERIFY(!scopeA->hasActiveFocus());
+ QVERIFY(!itemA2->hasActiveFocus());
+ QCOMPARE(scopeASpy.count(), 2);
+ QCOMPARE(rootSpy.count(), 1);
+ QCOMPARE(scopeSpy.count(), 1);
+
+ // Then jump back and forth between branch 'a' and 'b'
+ itemB1->forceActiveFocus();
+ QVERIFY(itemB1->hasActiveFocus());
+ QCOMPARE(rootSpy.count(), 1);
+ QCOMPARE(scopeSpy.count(), 1);
+
+ scopeA->forceActiveFocus();
+ QVERIFY(!itemA1->hasActiveFocus());
+ QVERIFY(!itemB1->hasActiveFocus());
+ QVERIFY(scopeA->hasActiveFocus());
+ QCOMPARE(scopeASpy.count(), 3);
+ QCOMPARE(rootSpy.count(), 1);
+ QCOMPARE(scopeSpy.count(), 1);
+
+ scopeB->forceActiveFocus();
+ QVERIFY(!scopeA->hasActiveFocus());
+ QVERIFY(!itemB1->hasActiveFocus());
+ QVERIFY(scopeB->hasActiveFocus());
+ QCOMPARE(scopeASpy.count(), 4);
+ QCOMPARE(scopeBSpy.count(), 1);
+ QCOMPARE(rootSpy.count(), 1);
+ QCOMPARE(scopeSpy.count(), 1);
+
+ itemA2->forceActiveFocus();
+ QVERIFY(!scopeB->hasActiveFocus());
+ QVERIFY(itemA2->hasActiveFocus());
+ QCOMPARE(scopeASpy.count(), 5);
+ QCOMPARE(scopeBSpy.count(), 2);
+ QCOMPARE(rootSpy.count(), 1);
+ QCOMPARE(scopeSpy.count(), 1);
+
+ itemB2->forceActiveFocus();
+ QVERIFY(!itemA2->hasActiveFocus());
+ QVERIFY(itemB2->hasActiveFocus());
+ QCOMPARE(scopeASpy.count(), 6);
+ QCOMPARE(scopeBSpy.count(), 3);
+ QCOMPARE(rootSpy.count(), 1);
+ QCOMPARE(scopeSpy.count(), 1);
+
+ delete view;
+}
+
QTEST_MAIN(tst_qdeclarativefocusscope)
#include "tst_qdeclarativefocusscope.moc"
diff --git a/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml b/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml
index 7bb2c95..d082847 100644
--- a/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml
+++ b/tests/auto/declarative/qdeclarativegridview/data/manual-highlight.qml
@@ -28,8 +28,8 @@ Item {
objectName: "highlight"
width: 80; height: 80
color: "lightsteelblue"; radius: 5
- y: grid.currentItem.y
- x: grid.currentItem.x
+ y: grid.currentItem.y+5
+ x: grid.currentItem.x+5
}
}
diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
index 7998e30..fd5d140 100644
--- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
+++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
@@ -1215,15 +1215,22 @@ void tst_QDeclarativeGridView::manualHighlight()
QTRY_COMPARE(gridview->currentIndex(), 0);
QTRY_COMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 0));
- QTRY_COMPARE(gridview->highlightItem()->y(), gridview->currentItem()->y());
- QTRY_COMPARE(gridview->highlightItem()->x(), gridview->currentItem()->x());
+ QTRY_COMPARE(gridview->highlightItem()->y() - 5, gridview->currentItem()->y());
+ QTRY_COMPARE(gridview->highlightItem()->x() - 5, gridview->currentItem()->x());
gridview->setCurrentIndex(2);
QTRY_COMPARE(gridview->currentIndex(), 2);
QTRY_COMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 2));
- QTRY_COMPARE(gridview->highlightItem()->y(), gridview->currentItem()->y());
- QTRY_COMPARE(gridview->highlightItem()->x(), gridview->currentItem()->x());
+ QTRY_COMPARE(gridview->highlightItem()->y() - 5, gridview->currentItem()->y());
+ QTRY_COMPARE(gridview->highlightItem()->x() - 5, gridview->currentItem()->x());
+
+ gridview->positionViewAtIndex(8, QDeclarativeGridView::Contain);
+
+ QTRY_COMPARE(gridview->currentIndex(), 2);
+ QTRY_COMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 2));
+ QTRY_COMPARE(gridview->highlightItem()->y() - 5, gridview->currentItem()->y());
+ QTRY_COMPARE(gridview->highlightItem()->x() - 5, gridview->currentItem()->x());
}
void tst_QDeclarativeGridView::footer()
diff --git a/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml b/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml
index 487b70e..9d58530 100644
--- a/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml
+++ b/tests/auto/declarative/qdeclarativelistview/data/displaylist.qml
@@ -1,6 +1,8 @@
import QtQuick 1.0
Rectangle {
+ id: root
+ property real delegateHeight: 20
width: 240
height: 320
color: "#ffffff"
@@ -10,7 +12,8 @@ Rectangle {
Rectangle {
id: wrapper
objectName: "wrapper"
- height: 20
+ height: root.delegateHeight
+ Behavior on height { NumberAnimation {} }
width: 240
Text {
text: index
@@ -20,6 +23,10 @@ Rectangle {
objectName: "displayText"
text: display
}
+ Text {
+ x: 200
+ text: wrapper.y
+ }
color: ListView.isCurrentItem ? "lightsteelblue" : "white"
}
},
diff --git a/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml b/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml
index d8cfd9a..a32a194 100644
--- a/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml
+++ b/tests/auto/declarative/qdeclarativelistview/data/manual-highlight.qml
@@ -28,7 +28,7 @@ Item {
objectName: "highlight"
width: 180; height: 20
color: "lightsteelblue"; radius: 5
- y: list.currentItem.y
+ y: list.currentItem.y+5
}
}
diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
index 759caf2..ff90d32 100644
--- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
+++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
@@ -103,6 +103,7 @@ private slots:
void resizeView();
void sizeLessThan1();
void QTBUG_14821();
+ void resizeDelegate();
private:
template <class T> void items();
@@ -1406,6 +1407,8 @@ void tst_QDeclarativeListView::resetModel()
QTRY_VERIFY(display != 0);
QTRY_COMPARE(display->text(), strings.at(i));
}
+
+ delete canvas;
}
void tst_QDeclarativeListView::propertyChanges()
@@ -1606,13 +1609,22 @@ void tst_QDeclarativeListView::manualHighlight()
QTRY_COMPARE(listview->currentIndex(), 0);
QTRY_COMPARE(listview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 0));
- QTRY_COMPARE(listview->highlightItem()->y(), listview->currentItem()->y());
+ QTRY_COMPARE(listview->highlightItem()->y() - 5, listview->currentItem()->y());
listview->setCurrentIndex(2);
QTRY_COMPARE(listview->currentIndex(), 2);
QTRY_COMPARE(listview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 2));
- QTRY_COMPARE(listview->highlightItem()->y(), listview->currentItem()->y());
+ QTRY_COMPARE(listview->highlightItem()->y() - 5, listview->currentItem()->y());
+
+ // QTBUG-15972
+ listview->positionViewAtIndex(3, QDeclarativeListView::Contain);
+
+ QTRY_COMPARE(listview->currentIndex(), 2);
+ QTRY_COMPARE(listview->currentItem(), findItem<QDeclarativeItem>(contentItem, "wrapper", 2));
+ QTRY_COMPARE(listview->highlightItem()->y() - 5, listview->currentItem()->y());
+
+ delete canvas;
}
void tst_QDeclarativeListView::QTBUG_11105()
@@ -1752,6 +1764,8 @@ void tst_QDeclarativeListView::footer()
model.clear();
QTRY_COMPARE(footer->y(), 0.0);
+
+ delete canvas;
}
void tst_QDeclarativeListView::resizeView()
@@ -1794,6 +1808,8 @@ void tst_QDeclarativeListView::resizeView()
QMetaObject::invokeMethod(canvas->rootObject(), "heightRatio", Q_RETURN_ARG(QVariant, heightRatio));
QCOMPARE(heightRatio.toReal(), 0.25);
+
+ delete canvas;
}
void tst_QDeclarativeListView::sizeLessThan1()
@@ -1849,6 +1865,83 @@ void tst_QDeclarativeListView::QTBUG_14821()
listview->incrementCurrentIndex();
QCOMPARE(listview->currentIndex(), 0);
+
+ delete canvas;
+}
+
+void tst_QDeclarativeListView::resizeDelegate()
+{
+ QDeclarativeView *canvas = createView();
+
+ QStringList strings;
+ for (int i = 0; i < 30; ++i)
+ strings << QString::number(i);
+ QStringListModel model(strings);
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/displaylist.qml"));
+ qApp->processEvents();
+
+ QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
+ QTRY_VERIFY(listview != 0);
+
+ QDeclarativeItem *contentItem = listview->contentItem();
+ QTRY_VERIFY(contentItem != 0);
+
+ QTRY_COMPARE(listview->count(), model.rowCount());
+
+ listview->setCurrentIndex(25);
+ listview->setContentY(0);
+
+ for (int i = 0; i < 16; ++i) {
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
+ QVERIFY(item != 0);
+ QCOMPARE(item->y(), i*20.0);
+ }
+
+ QCOMPARE(listview->currentItem()->y(), 500.0);
+ QTRY_COMPARE(listview->highlightItem()->y(), 500.0);
+
+ canvas->rootObject()->setProperty("delegateHeight", 30);
+ qApp->processEvents();
+
+ for (int i = 0; i < 11; ++i) {
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
+ QVERIFY(item != 0);
+ QTRY_COMPARE(item->y(), i*30.0);
+ }
+
+ QTRY_COMPARE(listview->currentItem()->y(), 750.0);
+ QTRY_COMPARE(listview->highlightItem()->y(), 750.0);
+
+ listview->setCurrentIndex(1);
+ listview->positionViewAtIndex(25, QDeclarativeListView::Beginning);
+ listview->positionViewAtIndex(5, QDeclarativeListView::Beginning);
+
+ for (int i = 5; i < 16; ++i) {
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
+ QVERIFY(item != 0);
+ QCOMPARE(item->y(), i*30.0);
+ }
+
+ QTRY_COMPARE(listview->currentItem()->y(), 30.0);
+ QTRY_COMPARE(listview->highlightItem()->y(), 30.0);
+
+ canvas->rootObject()->setProperty("delegateHeight", 20);
+ qApp->processEvents();
+
+ for (int i = 5; i < 11; ++i) {
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(contentItem, "wrapper", i);
+ QVERIFY(item != 0);
+ QTRY_COMPARE(item->y(), 150 + (i-5)*20.0);
+ }
+
+ QTRY_COMPARE(listview->currentItem()->y(), 70.0);
+ QTRY_COMPARE(listview->highlightItem()->y(), 70.0);
+
+ delete canvas;
}
void tst_QDeclarativeListView::qListModelInterface_items()
diff --git a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
index a2a5363..9193707 100644
--- a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
+++ b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
@@ -429,6 +429,10 @@ void tst_QDeclarativePathView::dataModel()
pathview->setOffset(0);
QCOMPARE(findItems<QDeclarativeItem>(pathview, "wrapper").count(), 5);
+ pathview->setCurrentIndex(model.count()-1);
+ model.removeItem(model.count()-1);
+ QCOMPARE(pathview->currentIndex(), model.count()-1);
+
delete canvas;
}
diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png
index d1f06fa..63a594e 100644
--- a/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png
index 9e6e29c..05e24c6 100644
--- a/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/ListView/data/listview.qml b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml
index b1ffe8f..059128d 100644
--- a/tests/auto/declarative/qmlvisual/ListView/data/listview.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml
@@ -1550,7 +1550,7 @@ VisualTest {
}
Frame {
msec: 4240
- hash: "ad913e53e63c030ffdf4560766722760"
+ hash: "84b477b46c313d6dcb0a77628182905b"
}
Mouse {
type: 5
@@ -1570,7 +1570,7 @@ VisualTest {
}
Frame {
msec: 4256
- hash: "ef31f8a4d5bde5a2e308d19ee6d5e759"
+ hash: "281c0499db31ca78175ca7af6292b853"
}
Mouse {
type: 5
@@ -1582,7 +1582,7 @@ VisualTest {
}
Frame {
msec: 4272
- hash: "3ba07527f66e8bea5a8fb7647b0b4f3f"
+ hash: "5c29d61f037e4636988fdc99ee2ed8a4"
}
Mouse {
type: 5
@@ -1594,7 +1594,7 @@ VisualTest {
}
Frame {
msec: 4288
- hash: "70e5fe656f5fd843383964825690b678"
+ hash: "a18f5e9f7be932dcd1bcb4c7fe0797e8"
}
Mouse {
type: 5
@@ -1614,7 +1614,7 @@ VisualTest {
}
Frame {
msec: 4304
- hash: "b7d8738be4cd6caa63dbecdb0f810a2f"
+ hash: "85a4130b4a57ef79e90d350cf4816801"
}
Mouse {
type: 5
@@ -1626,7 +1626,7 @@ VisualTest {
}
Frame {
msec: 4320
- hash: "d6312191f9d7bbddc07f9253d8a93469"
+ hash: "364dd89fd6f96e1c77723436c7078a7b"
}
Mouse {
type: 5
@@ -1638,7 +1638,7 @@ VisualTest {
}
Frame {
msec: 4336
- hash: "b182da64886cf4f444296e5fde26701e"
+ hash: "3e37312c45aa92de34d9661f9b482c48"
}
Mouse {
type: 5
@@ -1650,7 +1650,7 @@ VisualTest {
}
Frame {
msec: 4352
- hash: "ebefef14b6fb990e0c6900884528bbd3"
+ hash: "dc2d63ad430ea6214f962629793925f3"
}
Mouse {
type: 5
@@ -1662,7 +1662,7 @@ VisualTest {
}
Frame {
msec: 4368
- hash: "9a3451ed091b1bb6b975a9c5506b1ea4"
+ hash: "188fe1e6af9d02b2680426127ef1d39e"
}
Mouse {
type: 5
@@ -1674,7 +1674,7 @@ VisualTest {
}
Frame {
msec: 4384
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Mouse {
type: 5
@@ -1686,7 +1686,7 @@ VisualTest {
}
Frame {
msec: 4400
- hash: "eaaf9ea1d7fcf4a2a9dd58b1b5bb3cae"
+ hash: "bb74813667f49b15978aa78843436205"
}
Mouse {
type: 5
@@ -1698,7 +1698,7 @@ VisualTest {
}
Frame {
msec: 4416
- hash: "7ca8e3d76cf913d85f84f0b96acde829"
+ hash: "8e88500470517ed1d7c3ca10edd4e230"
}
Mouse {
type: 5
@@ -1710,7 +1710,7 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "7cfef56b24a552c6d4ecb3d0b88a1d08"
+ hash: "614dc45593db51f467adeda87d84f9a4"
}
Mouse {
type: 5
@@ -1730,7 +1730,7 @@ VisualTest {
}
Frame {
msec: 4448
- hash: "d032b257259810b4fe514c63ca5c9e4b"
+ hash: "b170583b9b284debdd04af643752aa6b"
}
Mouse {
type: 5
@@ -1742,7 +1742,7 @@ VisualTest {
}
Frame {
msec: 4464
- hash: "568f6a57e6f1644b0dc245d03a1d7b85"
+ hash: "dba0394b92f3ee166bc397439a86e6dc"
}
Mouse {
type: 5
@@ -1754,87 +1754,87 @@ VisualTest {
}
Frame {
msec: 4480
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4496
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4512
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4528
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4544
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4560
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4576
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4592
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4608
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4624
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4640
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4656
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4672
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4688
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4704
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4720
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4736
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4752
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4768
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4784
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4800
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4816
@@ -1842,11 +1842,11 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Frame {
msec: 4848
- hash: "5cb4cf2c527d821db2a5072dd3702653"
+ hash: "74b499d5d764bf53efbee8932bab3cc3"
}
Mouse {
type: 5
@@ -1866,7 +1866,7 @@ VisualTest {
}
Frame {
msec: 4864
- hash: "d48ecbd0661e08b2117fe2fd96ffeb2c"
+ hash: "95ab953fc04389396da9a38d97262d98"
}
Mouse {
type: 5
@@ -1878,7 +1878,7 @@ VisualTest {
}
Frame {
msec: 4880
- hash: "7cfef56b24a552c6d4ecb3d0b88a1d08"
+ hash: "614dc45593db51f467adeda87d84f9a4"
}
Mouse {
type: 5
@@ -1890,7 +1890,7 @@ VisualTest {
}
Frame {
msec: 4896
- hash: "5b12e9d17d9d464b055601db9cf0da44"
+ hash: "0d884cdb22e3668203d07c72055bcb85"
}
Mouse {
type: 5
@@ -1902,7 +1902,7 @@ VisualTest {
}
Frame {
msec: 4912
- hash: "25333e1f0cc9cfc664fd7369af544c06"
+ hash: "23bd71236829253fb3ef18ebc9dd3136"
}
Mouse {
type: 5
@@ -1914,39 +1914,39 @@ VisualTest {
}
Frame {
msec: 4928
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 4944
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 4960
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 4976
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 4992
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5008
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5024
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5040
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5056
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Mouse {
type: 3
@@ -1958,179 +1958,179 @@ VisualTest {
}
Frame {
msec: 5072
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5088
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5104
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5120
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5136
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5152
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5168
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5184
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5200
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5216
- hash: "04290d8d62436c8a812f886e0a56ec1b"
+ hash: "bdb784f5ccf428f8b8a9d29310069808"
}
Frame {
msec: 5232
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5248
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5264
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5280
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5296
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5312
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5328
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5344
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5360
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5376
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5392
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5408
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5424
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5440
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5456
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5472
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5488
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5504
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5520
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5536
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5552
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5568
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5584
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5600
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5616
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5632
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5648
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5664
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5680
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5696
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5712
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5728
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5744
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5760
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5776
@@ -2138,90 +2138,90 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5808
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5824
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5840
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5856
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5872
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5888
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5904
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5920
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5936
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5952
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5968
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 5984
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6000
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6016
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6032
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6048
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6064
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6080
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6096
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6112
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
Frame {
msec: 6128
- hash: "dbd87bf02d698b7f053d307ef0c98452"
+ hash: "9ba43cbdd92c077f64e4a59c6c1c42ac"
}
}
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
new file mode 100644
index 0000000..99748a7
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.0.png
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
new file mode 100644
index 0000000..5393dd8
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.1.png
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
new file mode 100644
index 0000000..8c17bf7
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/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-X11/colorAnimation-visual.3.png
new file mode 100644
index 0000000..1317eef
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.3.png
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
new file mode 100644
index 0000000..930f08f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data-X11/colorAnimation-visual.qml
@@ -0,0 +1,951 @@
+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: 67108864
+ 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/focusscope/data/test2.0.png b/tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png
index 22d7496..396bf2d 100644
--- a/tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png b/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png
index 22d7496..396bf2d 100644
--- a/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml
index 62eff17..8669071 100644
--- a/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 48
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 64
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 80
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 96
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 112
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 128
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 144
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 160
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 176
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 192
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 208
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 224
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 240
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 256
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 272
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 288
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 304
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 320
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 336
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 352
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 368
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 384
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 400
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 416
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 432
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 448
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 464
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 480
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 496
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 512
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 528
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 544
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 560
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 576
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 592
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 608
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 624
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 640
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 656
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 672
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 688
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 704
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 720
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 736
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 752
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 768
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 784
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 800
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 816
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 832
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 848
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 864
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 880
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 896
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 912
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 928
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 944
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 960
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 976
@@ -250,74 +250,74 @@ VisualTest {
}
Frame {
msec: 992
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1008
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1024
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1040
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1056
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1072
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1088
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1104
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1120
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1136
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1152
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1168
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1184
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1200
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1216
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1232
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1248
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
Frame {
msec: 1264
- hash: "4823f4520db0c1f64d887f172b3efa17"
+ hash: "f4041fcc91346361df95e344a0ee8e2d"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png
index 75a6c49..0efb20a 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml
index 3365d40..365c25f 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml
@@ -10,126 +10,126 @@ VisualTest {
}
Frame {
msec: 32
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 48
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 64
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 80
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 96
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 112
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 128
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 144
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 160
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 176
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 192
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 208
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 224
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 240
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 256
- hash: "1a396cf01a6c31155609532654653599"
+ hash: "e76f50af76d6ee5925b183f9e2316b78"
}
Frame {
msec: 272
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 288
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 304
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 320
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 336
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 352
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 368
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 384
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 400
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 416
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 432
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 448
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 464
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 480
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 496
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
Frame {
msec: 512
- hash: "8a4565aee33d40840bda26b65b6a0d90"
+ hash: "c98a904eb5da750f4cabf787e253b2ec"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png
index ae89849..6525dbb 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png
index 7b7db05..5b8d209 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.png
index 7c1442f..cf012ba 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.png
index c01c980..57e77a4 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.png
index 8806e4c..24d26bd 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.png
index b331119..a540734 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.png
index 76e3c6f..17da643 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png
index 141753c..e03cfe4 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml
index 4548e5b..2cbd278 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "e94ba580322887dbbbf9cb6309e39c23"
+ hash: "2ddcb50f5d285eb80a8136f0cf4cf85a"
}
Frame {
msec: 48
- hash: "787a59cda2c0b27d8959026e6d1b9427"
+ hash: "519d93a844e05f8215139d91c9aef58b"
}
Frame {
msec: 64
- hash: "9ca724d4b31aa16015b5cbb50eea0c3a"
+ hash: "9f075a5547e4dc67cbe2ace2766395bb"
}
Frame {
msec: 80
- hash: "8a2c62a0190da1b7c1bade243baea6b8"
+ hash: "8fc48f74a51d45b4ea1fb7bd1d48002f"
}
Frame {
msec: 96
- hash: "e129bebca7ad348c3134569d8eee4efc"
+ hash: "a28fc4be5a5bb9ff36f796d9b071f02c"
}
Frame {
msec: 112
- hash: "fd6387415e1c02fe6d17d9c3aa1d1ed8"
+ hash: "ebc14c2905f3596ec451dd96409e6001"
}
Frame {
msec: 128
- hash: "a82a4042fdca7c30facd2c4740c455f7"
+ hash: "4f270bdcff44006a56055edb1cda522a"
}
Frame {
msec: 144
- hash: "62195722eb3acbfbad137ec71fd50bfe"
+ hash: "571f347e764bf38985768c85c2a13ba1"
}
Frame {
msec: 160
- hash: "449819cdc880d59650732b5447ec6237"
+ hash: "b1aa23268167b7e2a1190288926f52c0"
}
Frame {
msec: 176
- hash: "552a838ebcacc0e08fa93b64a2433831"
+ hash: "06d548aef9a678edbf3ab4d3ce62a647"
}
Frame {
msec: 192
- hash: "3984992606d54f05eb31dd0974af2183"
+ hash: "daf6af0ae78f39566913c656450a66e5"
}
Frame {
msec: 208
- hash: "3fd7225bbb0215ca8b6397580f2352a5"
+ hash: "f101cd0c026ee0ed6ccef7a4aed302a0"
}
Frame {
msec: 224
- hash: "0fd8f26f40a9049de1cf2a9493d579d1"
+ hash: "b3caa673f072c53d31d71109c9b33357"
}
Frame {
msec: 240
- hash: "d08f0c57f071dc42e79fc5e0e3c32eeb"
+ hash: "8596f1d305d6b8f97b9feda9e69bdefe"
}
Frame {
msec: 256
- hash: "084c2db330ee82cd032df248ecc9629d"
+ hash: "23c23df2c130aafb2092fe47a958a4cd"
}
Frame {
msec: 272
- hash: "98da0d7f280d7fc4579c970c9a173b51"
+ hash: "66a4f2d8213264437a5f4d6cf10cd442"
}
Frame {
msec: 288
- hash: "4c819c54ced1b6ef0574417a7e11f2e7"
+ hash: "6392490111813bad0a9467cc0c1746ed"
}
Frame {
msec: 304
- hash: "3dc5f7b412cb176c3b23d37cda3ef87c"
+ hash: "c115a47e0ecab63b881e2ec492d24e68"
}
Frame {
msec: 320
- hash: "c368a01b43d94205c03f9c750c37f330"
+ hash: "c2a2b57e6f9ea2975c0846124d2dbc66"
}
Frame {
msec: 336
- hash: "8842bd0c8b17cac4fc9df84835999174"
+ hash: "8286c315dfda4241607b2de1154f869d"
}
Frame {
msec: 352
- hash: "26829e9c7ca44dfcb0c03852f4158a18"
+ hash: "3f0f7cae80357176892ff7628ec3153a"
}
Frame {
msec: 368
- hash: "ecffdb0888f1721e27b163e1f29a1950"
+ hash: "d13bde4a5b5ed8202f92ae33913166c9"
}
Frame {
msec: 384
- hash: "eaead96f2683c464a12df8aadba20691"
+ hash: "b70cc32134b1b0d31a5e7f145af09495"
}
Frame {
msec: 400
- hash: "1e931963925bd208dce1ec9011372a3b"
+ hash: "03ebc2ff317ac840f4508e8701d66955"
}
Frame {
msec: 416
- hash: "1c3fd049001c1e883f21d0d1e0e32cba"
+ hash: "8dff08e72365e8e2fee8088c386dedca"
}
Frame {
msec: 432
- hash: "e8c3422ca637750ac52565594737d092"
+ hash: "720f3bbaf3fa3e3a064747d5689e47a0"
}
Frame {
msec: 448
- hash: "b1c36322cf89e15a80af7c43f2aebca1"
+ hash: "350e3ebfcfef96969ef5b8d5944f7e62"
}
Frame {
msec: 464
- hash: "f676c3171495f7bb2cb1812cfebaa17a"
+ hash: "1e4e6e68b3a8eac0c5cd039164eec166"
}
Frame {
msec: 480
- hash: "255119e2efa99c8e31fee611aaaa5137"
+ hash: "62a10c4250ad025139a3f9e72109e8e1"
}
Frame {
msec: 496
- hash: "e0bd32e3d44cfc2351db105f4595f18a"
+ hash: "23cfd643adfc98f6a06c7e7b15dac954"
}
Frame {
msec: 512
- hash: "b7f23b8f3769f929b42491efda7ebe19"
+ hash: "3a78930d5b86b886723fad85e77dd075"
}
Frame {
msec: 528
- hash: "718cee11d869a8a8c5191cc0c09f2d30"
+ hash: "64dc878e2f527e80403c766e61fe14a6"
}
Frame {
msec: 544
- hash: "fbdbf92f8c5f507605ff50abc594682b"
+ hash: "d79160989d2584044042271e79a88e69"
}
Frame {
msec: 560
- hash: "c07fdc69c72b40d3c8dd1cc499008888"
+ hash: "22cbaea4affc88433834c7d0dc1f1644"
}
Frame {
msec: 576
- hash: "38e17ecd537dc0f51211ad672a2ebb21"
+ hash: "77cb616902257e1f239a0e6bfaabb33c"
}
Frame {
msec: 592
- hash: "2cbdc8728ef779c62f9938672986658a"
+ hash: "a2fe73dced03b23c4acb9aae9b774b41"
}
Frame {
msec: 608
- hash: "7fb66509d5d1df34861e9c70f9a579f0"
+ hash: "230e21d3a9ed0e185593677233af1275"
}
Frame {
msec: 624
- hash: "410b89392e859058718a08b79ec3d8fa"
+ hash: "4e10ecffac4e06d624855d3f8917f76c"
}
Frame {
msec: 640
- hash: "9bd90f80700217d08dafed93b81ee9cf"
+ hash: "84f49d56baace4a02e50d3eafaea04ec"
}
Frame {
msec: 656
- hash: "6d83671504a4274887b4e0d9bd2b24e7"
+ hash: "e3cd0b334551a9f91723eb2c876d335a"
}
Frame {
msec: 672
- hash: "51ff7bd3fd4a776af33fce7b935b145c"
+ hash: "259330f3ec390c9926d9c2ddc2d77319"
}
Frame {
msec: 688
- hash: "20f27392368b63b248bcd455cf3c9106"
+ hash: "cc659623bfa385d282d608684d7cdc2b"
}
Frame {
msec: 704
- hash: "1a5ab296bd55aa215c9b04a7ff6c73a1"
+ hash: "47ed75d077143a6bfa0e10158550c542"
}
Frame {
msec: 720
- hash: "020fd7b14e8662fc006b0c39adca7c6a"
+ hash: "0de93bbd9f9ee63e97968089321003e1"
}
Frame {
msec: 736
- hash: "2619120bdb25a153963bdf05c4a16d44"
+ hash: "b33d867d4399879256a01344ce0b81f2"
}
Frame {
msec: 752
- hash: "fd321314031efeb9ce71146764289d9f"
+ hash: "97c31fce937d11f62bebc6169b464a42"
}
Frame {
msec: 768
- hash: "378a71f09445dfff284db919787cbf87"
+ hash: "ea4166b8a4001bca3f27af30f251267f"
}
Frame {
msec: 784
- hash: "d59eefe82ab8a00c903141dd9ea767ef"
+ hash: "b56d270b7893565f8d7ed2a0bfe10d60"
}
Frame {
msec: 800
- hash: "0a65004d69a4567f2a5c7e84dab3a905"
+ hash: "88a42559fe22b45cff379258dd40ced9"
}
Frame {
msec: 816
- hash: "92a4631716a51ff484ca14d9cfe05b2e"
+ hash: "4ee1a711cb8d26087e1b75a3166ca5f0"
}
Frame {
msec: 832
- hash: "87203f627cf410cad56d6ba38a140efa"
+ hash: "9b88a00d041092e79b4a08bccbaca0e1"
}
Frame {
msec: 848
- hash: "054cc085998cc059a6b7b4a7300dd36b"
+ hash: "afea397b3d740dc42f0313624fc10efd"
}
Frame {
msec: 864
- hash: "af3fefeb908a0485c723d36f61eff0a4"
+ hash: "39fd8e4cefbd9fed283d62a7aecded22"
}
Frame {
msec: 880
- hash: "3f905d1e1ea79858b5a9bbfeab4eb255"
+ hash: "916b783d2379ac054c749e7b6eae7ddf"
}
Frame {
msec: 896
- hash: "f935f1fc5f26a201098d894fca9a4d1f"
+ hash: "fccd44740ff7ffb0f2adccf00a7588bd"
}
Frame {
msec: 912
- hash: "42b003dbb531da514716b9c32bdd3614"
+ hash: "c064f20703a13543e8273d251fd645fe"
}
Frame {
msec: 928
- hash: "a82fed83ee4efee7896b639c7691b13a"
+ hash: "1b9b0755101841e3d1cbe208d81575d5"
}
Frame {
msec: 944
- hash: "31ad8cbf875233ea495330b0d3d4d2dd"
+ hash: "1eb5e4a301b565012bc8f6af8e879eb9"
}
Frame {
msec: 960
- hash: "00586f2f1d49fa81f90f7b06614311b4"
+ hash: "032db65eb5c405e433f88df3975c322b"
}
Frame {
msec: 976
@@ -250,175 +250,175 @@ VisualTest {
}
Frame {
msec: 992
- hash: "5d71ff48b865ad4266eb8292f981b04e"
+ hash: "fdb67e11d7cc767b2389a8bbef752c7e"
}
Frame {
msec: 1008
- hash: "df599d934d131c92b209284277009efb"
+ hash: "ed89cb161336c61b13e3514fdf816023"
}
Frame {
msec: 1024
- hash: "5aaf33d11eb70ffdfe89246c637caed7"
+ hash: "331b873c5367e0aaa62af85cb54a6a96"
}
Frame {
msec: 1040
- hash: "9648cf623a66ded145c4fd23a42917b3"
+ hash: "cde4503f02f0c3732e310a7d0418cd1e"
}
Frame {
msec: 1056
- hash: "9d33c2cc44ceac5a527ddcf809a51df6"
+ hash: "f8c028c591fc1495d5bec8763da6f011"
}
Frame {
msec: 1072
- hash: "6d0ad2e0d012e53a03e246e6d5e49e13"
+ hash: "9dc68483218335afe41aa3cd052a98b5"
}
Frame {
msec: 1088
- hash: "d33fa68796e38b19f44571d11c1bcd33"
+ hash: "31105c455418a3284700cf9c88571507"
}
Frame {
msec: 1104
- hash: "636680f49bbf30b0fac31a6c581f18dd"
+ hash: "72724947167a1ac600aaa1d7f331f7ec"
}
Frame {
msec: 1120
- hash: "66801dbc39301e6b46b244fe502e0340"
+ hash: "a4a1243326de6b9e93948fcb22fecac4"
}
Frame {
msec: 1136
- hash: "f8fa6a033483279e78636f26493b10ac"
+ hash: "c3e26e62f12dd658f21a0330fefb0533"
}
Frame {
msec: 1152
- hash: "11b46611550173df42986dee4339d907"
+ hash: "15d85b4a9ad761a911bbaa3e0c4b2b61"
}
Frame {
msec: 1168
- hash: "5c9afdb519006079ee8d28b2b60d0b76"
+ hash: "bce1400b437cc43b8ff57b1a5fbc9551"
}
Frame {
msec: 1184
- hash: "9a55c38b2cd8abf25fbe448c7ef80971"
+ hash: "5d05848afcd8f697c1b3762f00a759f6"
}
Frame {
msec: 1200
- hash: "27ebdf1424e892b35c93ec009d942407"
+ hash: "6c83f68ea72cd54793149f4c9e759d44"
}
Frame {
msec: 1216
- hash: "2d9e3f0ae56f7337012b51c4dd173108"
+ hash: "5206b93666e51cee3e25a7a85e27b5b8"
}
Frame {
msec: 1232
- hash: "e6f89ca892131d68ff1f4ca95c95d807"
+ hash: "a3ef5c76efece4455e5ad12bcc8bd8f5"
}
Frame {
msec: 1248
- hash: "f75791f1b12a217d37acb09bdb114cc5"
+ hash: "c36c6ee7b6c8074f5dc1af7446fad1ad"
}
Frame {
msec: 1264
- hash: "94c5ab1460fb1b0f957a9718b45bca36"
+ hash: "bb0887f1f10548bb53f0dc1ffeec25ee"
}
Frame {
msec: 1280
- hash: "e246c8a0ec3d01ea20258b24a5673fe1"
+ hash: "ebffe547a7c3528e5deddc590510506d"
}
Frame {
msec: 1296
- hash: "529de7735e73409dff266d8c1275215c"
+ hash: "18962faef1a1a1207a3c6783116154a2"
}
Frame {
msec: 1312
- hash: "330400763a670580570cb62241ebec62"
+ hash: "8aaa876e4a6c4de04e557f35ddd4fb61"
}
Frame {
msec: 1328
- hash: "ae444d1de9c509fc6f74136ca90f927a"
+ hash: "c66123bb4e01ce267629f5b50d147db1"
}
Frame {
msec: 1344
- hash: "c43631ca8ee90ea5dc7664be5bc45429"
+ hash: "334e5acf84d90e70ca3085b9d5e057a7"
}
Frame {
msec: 1360
- hash: "b366ac4a5b66c331a7667e9df0fc4eda"
+ hash: "9bb49ddcc775307c3c1159908323e010"
}
Frame {
msec: 1376
- hash: "1c7f4c47a9c57a34787cc9703e99bff1"
+ hash: "1b3cfb8b6b6c39a34ea86a66ea1cc6b1"
}
Frame {
msec: 1392
- hash: "5555535609d512e8d34549b6624f74b8"
+ hash: "d2a68c6eb2b05390ab1049137f96f227"
}
Frame {
msec: 1408
- hash: "be59df714541923494b59f31f57e310e"
+ hash: "91e254fd2376ba35a283b18b947ca1a8"
}
Frame {
msec: 1424
- hash: "63e434f053032e54298f6e61c8d4da7d"
+ hash: "fe94e2e8b4978390e9e8cbfe77dfc241"
}
Frame {
msec: 1440
- hash: "b0bb838637eceb6f8993ebc5b887afed"
+ hash: "e3d32b73c5c50e7aa59f4e4725de170e"
}
Frame {
msec: 1456
- hash: "fc39f33add4ebcaf578558ecd4aea281"
+ hash: "a73b90254d7da5557cc3941db0017a65"
}
Frame {
msec: 1472
- hash: "3f36faa7cc1e5898d4d5890c47633ff3"
+ hash: "9aa49cce5d63f8dd6409995ac6d91d63"
}
Frame {
msec: 1488
- hash: "4b328002b4461869b1f7de48e7291902"
+ hash: "0ba674df46accec28a3c1b81e656adc7"
}
Frame {
msec: 1504
- hash: "26252c63924d2abcaebea2c7caf1d7aa"
+ hash: "025a45417b8c75d47b5dac6c5ef913e9"
}
Frame {
msec: 1520
- hash: "a9a6023484ae439be86b2c2ff59dc40b"
+ hash: "742527b97c7f580b0b7ff9d6aa105d31"
}
Frame {
msec: 1536
- hash: "620dab11bd4aab84cc0d949c48dd9a5d"
+ hash: "965ec8315d45894e704fcc5a3efc8c55"
}
Frame {
msec: 1552
- hash: "3b45ef80ee3e6fbbd3533bfa0d666e2f"
+ hash: "6abdd59e6bd2c31124eab254418a5322"
}
Frame {
msec: 1568
- hash: "b33306abcb6a8402e491b7216495c778"
+ hash: "9f6d06b176c55fa292e7f0ef4b5cd1cb"
}
Frame {
msec: 1584
- hash: "3cc52e8649a02e87785f1dc63f5c1efd"
+ hash: "05eba8c6e02c0d4af49e59b3346c9e68"
}
Frame {
msec: 1600
- hash: "fe21141f48da685213ed9d7641b2e7a0"
+ hash: "3c4215f6253aba836516cd51368bc471"
}
Frame {
msec: 1616
- hash: "205aac4e822e20bd32f637256250f3c8"
+ hash: "c6339a290007c0106cb18ecef5b7392b"
}
Frame {
msec: 1632
- hash: "124df0948f36aaf6151556d301f4b930"
+ hash: "39a4bcd2ce84035f9db70f196ca00971"
}
Frame {
msec: 1648
- hash: "c1701edd5eaf143fd1dbdc4a5324b48a"
+ hash: "b75a4be472583c3b893fc894ebe7d4d8"
}
Frame {
msec: 1664
- hash: "117402df55367c918a3835958f4ab1d6"
+ hash: "d1efebbe748c43b3c1241753612e100d"
}
Mouse {
type: 2
@@ -430,67 +430,67 @@ VisualTest {
}
Frame {
msec: 1680
- hash: "73e3b86a1da28490cae4b03fdceefe19"
+ hash: "f6f3ad64fb71ffb68a5ea0375cc94bae"
}
Frame {
msec: 1696
- hash: "172e329fb47d6db0180242990a84fe3b"
+ hash: "778ecbafb5d235edde1683cabe3c3cfe"
}
Frame {
msec: 1712
- hash: "82cf704cdfd406bab22689bc888ddc8d"
+ hash: "5a41b9196fe4a97e6ba2400806299bd8"
}
Frame {
msec: 1728
- hash: "4c288f198a06d1b2815d34c3c8f97051"
+ hash: "1c8ddbc5910e35be389a1cb34fab9dec"
}
Frame {
msec: 1744
- hash: "6404d81456bb95a6b1c1ae55a181e40e"
+ hash: "5e8b236c00087a067d366afde67184f3"
}
Frame {
msec: 1760
- hash: "b2b4b3de77e2b7fd58d3da1ad52355a9"
+ hash: "72fe42361833054cd9388bb98ac9b150"
}
Frame {
msec: 1776
- hash: "95388037c1f79a9dab951031f1d7c307"
+ hash: "bbe9f0b030efa716f34a05f0af929c66"
}
Frame {
msec: 1792
- hash: "c4ee57d9bffbb5f0ff173db48eadf2e3"
+ hash: "cd393fc19a30d896bfe62aa0000308f8"
}
Frame {
msec: 1808
- hash: "703ac9672a9c55cf08e6381ef76ac13c"
+ hash: "c390f5b1bcff54de203490d8f2616fcd"
}
Frame {
msec: 1824
- hash: "ea7726d2a2923290398262c8f70d511e"
+ hash: "b5da2ea467c334dd13c75b811b94efb1"
}
Frame {
msec: 1840
- hash: "5d1af6cbdb4ee5b00045751204408632"
+ hash: "49887c9312c3a4dfc2d9719f47c83a15"
}
Frame {
msec: 1856
- hash: "a52aa37b10a05382f1b136896b7e00e8"
+ hash: "7f077703e49f154d01c12a44f53469c5"
}
Frame {
msec: 1872
- hash: "a5acc1a45c95a67725e5e15084b7be18"
+ hash: "7be4130ed767f0e0bf41c3bebf050cac"
}
Frame {
msec: 1888
- hash: "c9fac8b5a4110493958d49b073ea96ed"
+ hash: "cc1590486c172000557b76c6eadb51e0"
}
Frame {
msec: 1904
- hash: "6fca3a5c6d1cfbf1b905aca25b7785c5"
+ hash: "7ccd05236d9c1f8af0e9645404326122"
}
Frame {
msec: 1920
- hash: "a40e5e2744d1d84c8b9a45525801a745"
+ hash: "2da165bf7e868b53b85bb630649ddc3e"
}
Frame {
msec: 1936
@@ -498,239 +498,239 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "b2f980ab19d44ee98ab3e82a19adfe2d"
+ hash: "2b6a24b6ceeaa956527c872af70fb5f9"
}
Frame {
msec: 1968
- hash: "e01732623930aebefd76ab62c81dc722"
+ hash: "8c882de21f4ed0fb68433c19b114c3f8"
}
Frame {
msec: 1984
- hash: "3a59c6851bc89eb31100092b1ceddbd9"
+ hash: "f75226c58726a687079d0d24e865ee6f"
}
Frame {
msec: 2000
- hash: "2949de19eacb9f35816aa7ba69614f2c"
+ hash: "2fa9b69fe85b4e1361ba260545c10e06"
}
Frame {
msec: 2016
- hash: "f2c4c1f4429cbb6bd10f2318b2cb6904"
+ hash: "6d513bc03f2798fbce1a0790969da6b5"
}
Frame {
msec: 2032
- hash: "2c48af64162e7e028cd536dba03eab71"
+ hash: "7e359e605483493e9a865f6eb912c394"
}
Frame {
msec: 2048
- hash: "7fe13b8f9253f720b6591b396cfba2d1"
+ hash: "497c7c82c24408dcaff5ec981d3d4f35"
}
Frame {
msec: 2064
- hash: "559947a03e650575a764801366cc504b"
+ hash: "8738b024cf75ef970ffe20166e85141c"
}
Frame {
msec: 2080
- hash: "a8d09f6c862fd5ec2dcf34f06d1ef744"
+ hash: "014b805eb1ecf2ea1cd61727bfd1ca08"
}
Frame {
msec: 2096
- hash: "e3bb4b62209631ff84134f2243bfdb42"
+ hash: "a81cde60979300f397054ea017382114"
}
Frame {
msec: 2112
- hash: "a1956a9d1939bc154ea0c88d596948cc"
+ hash: "c46183b5224e762335eea98d9da65465"
}
Frame {
msec: 2128
- hash: "c98a375727860da1e827d4dd74af8f63"
+ hash: "11afbb88994f298a1fed6575fae3d7fd"
}
Frame {
msec: 2144
- hash: "df4edcbb2ef5348341ff55c808609b6c"
+ hash: "0195fa503143561d9ae3ffe68739ca3f"
}
Frame {
msec: 2160
- hash: "6287564be85b7cbadc6bb6f0232bc837"
+ hash: "6d298df37d2116eb9a62b58853cb3344"
}
Frame {
msec: 2176
- hash: "9826fdb48f7ea770fa5f198ec49d7cb7"
+ hash: "1660865f00ea9adf94c8e56c7a8a73b2"
}
Frame {
msec: 2192
- hash: "56f82641a5591df9bb929cc0d32eb95d"
+ hash: "9835b5527b84e8e8a8fea2bdf9653a99"
}
Frame {
msec: 2208
- hash: "526c55e555fb2e58796561efa3568c50"
+ hash: "ec1158b83daa9e98437abc9ce90b70f0"
}
Frame {
msec: 2224
- hash: "6b4b74613421c1841a17c369cb316754"
+ hash: "11ce5e37747e05ff5f5071b13324ce9e"
}
Frame {
msec: 2240
- hash: "37f785c30947d5eec113dcf6af649abf"
+ hash: "6d7d427d5a15a31fd395f26c94ea455e"
}
Frame {
msec: 2256
- hash: "5ff2c975dd9e261c764537c836627c4d"
+ hash: "828949e0fbdb7c79719fb533febb5b35"
}
Frame {
msec: 2272
- hash: "efe554981583749c3d09988bce7fed02"
+ hash: "7ef7f73ef6a59c9210cfa37df3894cb1"
}
Frame {
msec: 2288
- hash: "0f7204b4afb0ea5d58e49650e8027c0c"
+ hash: "e74bec397b32ba2934ffdde23a3d60c6"
}
Frame {
msec: 2304
- hash: "817291f91f4b309710ad3aed53a7d47a"
+ hash: "09c2ca9c22e9b77bc166b4567b29bca7"
}
Frame {
msec: 2320
- hash: "c15c9cd03089090cf8a777c1f0d88de7"
+ hash: "44d87983f33c4e03f4be70b406bb9bd9"
}
Frame {
msec: 2336
- hash: "05f45cb8d0856dcc81091351615e35d6"
+ hash: "92844b36c2f30e618f04bfbc5cfbcad6"
}
Frame {
msec: 2352
- hash: "99785a16fed6d6409b4b47ec55afb56b"
+ hash: "0245f39a8966c4addb3f8dbcee93cd3f"
}
Frame {
msec: 2368
- hash: "39032cb4432ee9536af500673fccf526"
+ hash: "eb1e81cfa29295d4b1522c69d4501f51"
}
Frame {
msec: 2384
- hash: "9057653e3cd6042831037d3590e7595b"
+ hash: "2af9c3bea11b25c0f6c2b780d533a968"
}
Frame {
msec: 2400
- hash: "76c772eb2ab8f117c260c9c96bc99e1d"
+ hash: "5062e9ab29c4a7a9657a4d29249ca822"
}
Frame {
msec: 2416
- hash: "b6474665b8f8bcdd76d1a38efecad889"
+ hash: "d7652ddc85d3be3bb3a2fc268ae9bc29"
}
Frame {
msec: 2432
- hash: "106c2d2efafad0181e3ded3a6805f2c6"
+ hash: "7c924bf2ad6167db439723679b373a3a"
}
Frame {
msec: 2448
- hash: "5275fa4ffef6c1909f9d03bb1e7b9cae"
+ hash: "a93b61dd26a2ca72100b747ac3ed81b6"
}
Frame {
msec: 2464
- hash: "0c1043c0087d60000dc7259d4ac03618"
+ hash: "5fedc849d3d21e0acf0ab4a4815a1285"
}
Frame {
msec: 2480
- hash: "645748569b4f5cb9b206b0808bb7d23d"
+ hash: "4313d2458f4bede8d3b02ac60135e728"
}
Frame {
msec: 2496
- hash: "dd95dfa80e1b3ff511e7c75efd0d87ce"
+ hash: "0f09e81d89262b569c56a9c876f3898d"
}
Frame {
msec: 2512
- hash: "86b3dd03b04d7610837cdc67cad07e0a"
+ hash: "ea932789ded14fc5c8bae565b67d004c"
}
Frame {
msec: 2528
- hash: "8264f67ac92e4ebcfe4cc8e954f8c5d2"
+ hash: "fd1f7b9b51f1284fee4d777ef83bba3f"
}
Frame {
msec: 2544
- hash: "6bf52377d822b09eb28a1ec36d3a36a9"
+ hash: "e98b884a1ec8ce4b4dc20749b85b571e"
}
Frame {
msec: 2560
- hash: "7ae1d65cdaf7fa71eb4ec318b37bb0aa"
+ hash: "d144072bb87bb88750b9df9cd92f7a4b"
}
Frame {
msec: 2576
- hash: "860f5ce9844c90cf9e6a6d383ff0972f"
+ hash: "9d8ad80d3367292d7e89d67cf49862b8"
}
Frame {
msec: 2592
- hash: "5502229c038dfc59d966f69ae6ed8957"
+ hash: "c09b89e71e862da15d2b9edb0e00aa7b"
}
Frame {
msec: 2608
- hash: "21843c027bc1434ae60b3bb0fced2c54"
+ hash: "551277add3f8f09951d9c8f55ccd40f7"
}
Frame {
msec: 2624
- hash: "962df45680949c3eb6c968f98cd76b20"
+ hash: "1d0be0e7108516869374a9b985fd7543"
}
Frame {
msec: 2640
- hash: "f313c26fa76a0edce61244bdf92528e4"
+ hash: "12e7cfb6c4a26af54c4b35182294a7b7"
}
Frame {
msec: 2656
- hash: "b7bbde239e98cbd66b1e51b54b747f51"
+ hash: "a666a5a59d5854973668798eb8d508ba"
}
Frame {
msec: 2672
- hash: "62340707fbc832fcb805c8f80ab353d1"
+ hash: "420d2e21461dc45f134b7dfa11d04d25"
}
Frame {
msec: 2688
- hash: "d008a3f7af1810ff70b68b38a4cd0f0d"
+ hash: "95f848874899fb58a81c62b5921cf857"
}
Frame {
msec: 2704
- hash: "e651dd628af24faf34d716beb392b052"
+ hash: "fa3ea7a0f90ca549cc9a857f0647b061"
}
Frame {
msec: 2720
- hash: "a97733963c7a7616b25741545b07ffba"
+ hash: "cbc5338de6157cd5dad511b246f5093b"
}
Frame {
msec: 2736
- hash: "3e017cc1db720cf16521bd17308e4f44"
+ hash: "e26b43c83197abab3746830bbfacc0f4"
}
Frame {
msec: 2752
- hash: "13652ebaa610cca71486517e2eed21a5"
+ hash: "5225e854ff2763e562dee2810331d560"
}
Frame {
msec: 2768
- hash: "09f0f500c6f7d11be39c31f9e589b38a"
+ hash: "a1d114ea67233ac4c6351e18e3afa64e"
}
Frame {
msec: 2784
- hash: "b87968cbc60ddc6a5f5699e830410eab"
+ hash: "bc9f12af2d0816bb84fd5040ed29bdad"
}
Frame {
msec: 2800
- hash: "50e65b043d1f07a321a08ee4c25204f6"
+ hash: "d9337da38caa4ad3385249602a830df3"
}
Frame {
msec: 2816
- hash: "122d1ffa1510468e8c4067e0f511588f"
+ hash: "6ce20e0c89181b0f11e609b248da71d7"
}
Frame {
msec: 2832
- hash: "585f6c25caaafb99a22a23d8a998d202"
+ hash: "bbc8337950a78c7bfa48aab2635120a8"
}
Frame {
msec: 2848
- hash: "9b245a00ad576666c10f509d8a80a61e"
+ hash: "0e28ade7f52f3c27e1dbdd6e98be8c7d"
}
Frame {
msec: 2864
- hash: "9b245a00ad576666c10f509d8a80a61e"
+ hash: "0e28ade7f52f3c27e1dbdd6e98be8c7d"
}
Frame {
msec: 2880
- hash: "3c5d3d10bacc093afc6a9c0b5aa4cddc"
+ hash: "b496af17513d60d4028bd7402fbfba93"
}
Frame {
msec: 2896
@@ -738,215 +738,215 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "31926d69c2309fdf13fbd7f0e9868c3d"
+ hash: "29aa7ce0fb1aa350753d3ec6da05bdf9"
}
Frame {
msec: 2928
- hash: "eb3acacce5dd31b0e94b59b9e546ccae"
+ hash: "fde474797d8105d9d004a7020e010fa4"
}
Frame {
msec: 2944
- hash: "9a51cff3276d75803a0a6e480f7ecb70"
+ hash: "5a553d9a4bd2ef5d86f5eb37a863d28f"
}
Frame {
msec: 2960
- hash: "fbbd8b9d519993a699815d935bcd2b9f"
+ hash: "2dcbf6c84abd49529f0b5d85bfb74808"
}
Frame {
msec: 2976
- hash: "0314190c6de73f9f374a4eaed0709645"
+ hash: "e96ec3b7d37bbf4c9ca297ad5afde31c"
}
Frame {
msec: 2992
- hash: "8ca1a203bdb5446094eb948aeb0a333e"
+ hash: "9d824068affe32c143226b0b530206fc"
}
Frame {
msec: 3008
- hash: "301e1b86ce38e11ad9d0d7aba0909985"
+ hash: "3e85f0ace68cffed47f4c9b00145f0f0"
}
Frame {
msec: 3024
- hash: "922095867d0a91b73ab7a63df2041279"
+ hash: "540b8e1e2bee7d2ba5e29fd3b1086cd1"
}
Frame {
msec: 3040
- hash: "ba8275f3ba4633bf64a1f81f630c90f1"
+ hash: "0786585d11934c5e4a7e965eaac9a152"
}
Frame {
msec: 3056
- hash: "efe39545279a7bd015d2de75d2b9d8b1"
+ hash: "8271705df2ca697f4343007a7810d4ac"
}
Frame {
msec: 3072
- hash: "78926c3c0c6fcf89b9291f9902710964"
+ hash: "b98e1cd20ab2e4239f35d04df5e5175a"
}
Frame {
msec: 3088
- hash: "ea63dcb7f00d3ddede0d8be59ad9d6bc"
+ hash: "ab1a7eaa5c5d919ee76cba405d0dd4cd"
}
Frame {
msec: 3104
- hash: "286ad493301b713a49e378f123482a53"
+ hash: "52682386448379a395dc6c541224b7d4"
}
Frame {
msec: 3120
- hash: "a4bbbb8bb88188d3e99996502e3eebd1"
+ hash: "31dffcb9da94dfc085ab8c561404c248"
}
Frame {
msec: 3136
- hash: "a6100e79f3dc5af594e86ab6cd8dfb76"
+ hash: "f3703eed8ebf9ece776ebe51e4c60ae6"
}
Frame {
msec: 3152
- hash: "d9e3f777dc89bcf1b7f712206db768e2"
+ hash: "1126b90345bb42691cd17f37ecec6bdb"
}
Frame {
msec: 3168
- hash: "768045c600c0aa0b1e9e6f012733c600"
+ hash: "7a63ab96d1c8d4992c03a6f59bba4e7e"
}
Frame {
msec: 3184
- hash: "d8b4caa641ddee786f7898359efe9d07"
+ hash: "91f4a00c9a7ea6164b334aa4b90da862"
}
Frame {
msec: 3200
- hash: "f7c3b76d5bb7c263ac9447eaad685158"
+ hash: "485471140f6a5336837377612e7a85bf"
}
Frame {
msec: 3216
- hash: "f7f97db815d653ec29fa31b87f72af2a"
+ hash: "96881b4021aff05020e0a9342fbae75d"
}
Frame {
msec: 3232
- hash: "18524623762487b60943312cd8bd4388"
+ hash: "9891326646c3da4ff250aab69c862f96"
}
Frame {
msec: 3248
- hash: "5823dee5dd56e9f7515601f9629ccbae"
+ hash: "f00f36bbb5a828824c596ee6f85bec2f"
}
Frame {
msec: 3264
- hash: "5823dee5dd56e9f7515601f9629ccbae"
+ hash: "f00f36bbb5a828824c596ee6f85bec2f"
}
Frame {
msec: 3280
- hash: "5823dee5dd56e9f7515601f9629ccbae"
+ hash: "f00f36bbb5a828824c596ee6f85bec2f"
}
Frame {
msec: 3296
- hash: "5823dee5dd56e9f7515601f9629ccbae"
+ hash: "f00f36bbb5a828824c596ee6f85bec2f"
}
Frame {
msec: 3312
- hash: "18524623762487b60943312cd8bd4388"
+ hash: "9891326646c3da4ff250aab69c862f96"
}
Frame {
msec: 3328
- hash: "430995770b655054aaeda383df8e27f7"
+ hash: "c766238db55f4704c2f29a6be6ee6907"
}
Frame {
msec: 3344
- hash: "16a3a00f2b89aed676f80d63c4933ec3"
+ hash: "0254665427dcbd1c155bc954cc7aa7cd"
}
Frame {
msec: 3360
- hash: "6c55aa62079ec546522edbf69c37b270"
+ hash: "33ae1012816b997ef5c61c03ccfcc590"
}
Frame {
msec: 3376
- hash: "0d68ca3ccecdd831013950cc7405e46e"
+ hash: "4c7857bbbcb9aa812fc2503af2b395cf"
}
Frame {
msec: 3392
- hash: "9da2511bc8b434218695fa74ed543439"
+ hash: "3a570e4af992d35e55923cea23c3c11b"
}
Frame {
msec: 3408
- hash: "05afdd0b99dab81a500cdc2b2f0786fe"
+ hash: "533ef554538005512ce37c73c6def722"
}
Frame {
msec: 3424
- hash: "e6f8882d146ae60bcc6ea47ff41a637b"
+ hash: "f863fa215d0642708bfa82780c766dc4"
}
Frame {
msec: 3440
- hash: "154542ed0e88321294f382501819aefc"
+ hash: "fcca3ec34521c4b9087a102ba1e47293"
}
Frame {
msec: 3456
- hash: "8f47b6980c387c5020145bf04645fd2d"
+ hash: "47d67cd74cb96b12801842b288a8b9ff"
}
Frame {
msec: 3472
- hash: "b34b055c7602f1f4e1cde875b258120c"
+ hash: "34c5ea76f297ec68cba70521caa468e4"
}
Frame {
msec: 3488
- hash: "5a697f675575f05e297d4877604b9a47"
+ hash: "7be247cc7a4032ff0478fca1a2aace8a"
}
Frame {
msec: 3504
- hash: "729dff1d1b357d19fc81804ec8940d0e"
+ hash: "3ade2a1a48edef15f522b9fc016e137e"
}
Frame {
msec: 3520
- hash: "c6f3fee46baa94a6139d2ee40254b160"
+ hash: "8b37b9d123504931d82bb06f6981bade"
}
Frame {
msec: 3536
- hash: "af0e700bb8ae34834510830f8b44afdb"
+ hash: "5eb39825003f405f353f629e236b3395"
}
Frame {
msec: 3552
- hash: "9c87bb54c2dfe58c2da9194dae6f7502"
+ hash: "c4550722260c4a30ab1176c7e5cb62bf"
}
Frame {
msec: 3568
- hash: "2132356a92c75d725f9feafb8201b142"
+ hash: "bd33e3ecd4b59cd659588c0298b61095"
}
Frame {
msec: 3584
- hash: "50d855d2595eeae2bfd6aaa8c2fa0454"
+ hash: "4b3a62bff0019df7412aa2e1c07c0a23"
}
Frame {
msec: 3600
- hash: "5fde3c62d6e53a9056e3586f9dcda59e"
+ hash: "a9b98adcc3350febbb89dbf725b81436"
}
Frame {
msec: 3616
- hash: "8f04460254a1e9fb949d5165894cd92a"
+ hash: "66eb8c84e75141d1575caf7d3cbc1ceb"
}
Frame {
msec: 3632
- hash: "2b514c5e3b20d30f9c7e71092c69f081"
+ hash: "238f2b1dc5bf5b65e827c860f9ee76b5"
}
Frame {
msec: 3648
- hash: "2c1ba6224037790e15f5c0f2864ace4d"
+ hash: "6d1fed0697370b2a2163c369fe559739"
}
Frame {
msec: 3664
- hash: "0d5b8e7bd5f560888aacaf2b3c6827a8"
+ hash: "04ea478c785586d900bbe3472371bbc7"
}
Frame {
msec: 3680
- hash: "ae25004530e7df134414018e4a34780e"
+ hash: "ba429e711c9363eebfb20e641fa44c84"
}
Frame {
msec: 3696
- hash: "1a8fd9eaf9a91f1b42924f8986fbed9a"
+ hash: "0129dfba166ffcbaa15087467c864068"
}
Frame {
msec: 3712
- hash: "2ea6de2025d40ed5beeff12a5b70ccc9"
+ hash: "3fb340c874eee94e8baa1453b37c3fb5"
}
Frame {
msec: 3728
- hash: "624e417718d3cac1e4b7e4ce258ce6ea"
+ hash: "068c51d99c458f3edefe3371f46de260"
}
Frame {
msec: 3744
- hash: "8b56d29391257c7be8966af6be26ea9f"
+ hash: "dd1e04ed3d610c2712158d73ee2c5b9d"
}
Mouse {
type: 3
@@ -958,27 +958,27 @@ VisualTest {
}
Frame {
msec: 3760
- hash: "5c0d977d8b446d9191bde57335cf1062"
+ hash: "840154afb9e7e0c859c66667bb6944b6"
}
Frame {
msec: 3776
- hash: "100be2b21d069e3a5dbb694a90da4d4f"
+ hash: "239c2e33800e386b468a95341d0e23f4"
}
Frame {
msec: 3792
- hash: "caab03f6c81080dd8fdbedb4e94ae4a5"
+ hash: "0a00515f2d297362862c1a5cf6519845"
}
Frame {
msec: 3808
- hash: "3328a4d06f2f80a7e9ccf2ff21522fca"
+ hash: "f855df3495e44291aed8f085163c804b"
}
Frame {
msec: 3824
- hash: "a534e6cc28daf3eff6a9cf8379bd6375"
+ hash: "b4eb31e48c65550bb78d175b48e0e9fb"
}
Frame {
msec: 3840
- hash: "6686f9c1a814c6a6b785b70f94937b68"
+ hash: "70243664f9db83614e5972fc18ee81a1"
}
Frame {
msec: 3856
@@ -986,239 +986,239 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "d3f1c3593375ca5c022a1361a7ec70bd"
+ hash: "c48ce2a4cf28ab706b9c097bddc74c27"
}
Frame {
msec: 3888
- hash: "67843e6192e2ecaa3820c37dc2f93106"
+ hash: "754a957e0df02839dd2fe33fefb7a721"
}
Frame {
msec: 3904
- hash: "19a022f678e5b8f4ebdff936162323dc"
+ hash: "ec3ebe7b941af9bf2163634d7f15e8aa"
}
Frame {
msec: 3920
- hash: "34e55ae70c9e156db339ae15642359c3"
+ hash: "a76423ff2184cd9dac47abf7ae52ce5a"
}
Frame {
msec: 3936
- hash: "3784778c817f9d9bb73d990cfe12685a"
+ hash: "559bec54f51c36c6e90004ca5e77c23c"
}
Frame {
msec: 3952
- hash: "0403fdf79e3ba339c7e3786db0c9c0f0"
+ hash: "dc6fdd6a867a675afcb58f7052605614"
}
Frame {
msec: 3968
- hash: "93e4a0d5645d1cfc916f1e8422655555"
+ hash: "b2fb0dbbec01490243f37fe5f80ab6c7"
}
Frame {
msec: 3984
- hash: "29080bfabb87160b7c51385fb36b474b"
+ hash: "2bc1df7a913b1948ee7bb77eeaa55aa2"
}
Frame {
msec: 4000
- hash: "9da2d83edc9d35f00fb8a159e79de4d9"
+ hash: "82c6430d85c6a94c4b55a9529d2bc78f"
}
Frame {
msec: 4016
- hash: "5505a42d4788f00cfc7499fbfda851ce"
+ hash: "463e70dc9a9bdabdc158199bdcd7d2fa"
}
Frame {
msec: 4032
- hash: "bdd3040ab16fa9ffdd2fbc66b06699f8"
+ hash: "c1e9553327f060b70caa713bf3015342"
}
Frame {
msec: 4048
- hash: "2a347e30a20c693a9440caa60ade0a0f"
+ hash: "42f7f505d4e5ef316240e4f287a039bf"
}
Frame {
msec: 4064
- hash: "0307f1857c091a639d47f112ce1a2f5a"
+ hash: "200500f600ffe43c5ad4d057bcfc0831"
}
Frame {
msec: 4080
- hash: "778d18e539bbd562ebe39283a6315df1"
+ hash: "22e78edb813f7830776b2603b0aaae5c"
}
Frame {
msec: 4096
- hash: "0369cf6c3d1f5db2e92ee1f7c5d3b8ed"
+ hash: "32ebf3490832fd0693b1b922b4501251"
}
Frame {
msec: 4112
- hash: "9f7413587ab50f1abf776bf180ec2d6f"
+ hash: "1be622caa5ef94f87e2ec8297b6e1caa"
}
Frame {
msec: 4128
- hash: "7d04a27236485808e571e8a39f23ea17"
+ hash: "d1480529e0cb94c51c412109663e5fab"
}
Frame {
msec: 4144
- hash: "a1dff63b723473d5a4c9c59975a2fb81"
+ hash: "e55e627d6d13b647f35233f18f0cbe89"
}
Frame {
msec: 4160
- hash: "9795ea70a3b9d3b7805221a58c19e5da"
+ hash: "87d7b349cd2898de7686e5f1a14f6338"
}
Frame {
msec: 4176
- hash: "f1392c489e21107136eb8e0d1e8b427e"
+ hash: "2ac974836ee5e6092b55fcda20d7c35d"
}
Frame {
msec: 4192
- hash: "95c225ef07171a96335e99078195b06a"
+ hash: "53867256c1dac4de2f02af1ae000b49f"
}
Frame {
msec: 4208
- hash: "d46ef3e7f9cec06e8c18afc0d07be4f3"
+ hash: "08623509e9e5089fdaa1af2bf9a77eb1"
}
Frame {
msec: 4224
- hash: "b017f5b51d423bb0fca0d6df3aaded8b"
+ hash: "e4692f42c12593ee865048aef00cbeb2"
}
Frame {
msec: 4240
- hash: "60584d085b0cd6fbc436773be678597e"
+ hash: "981ad6459e3e7483bb323ab4bc514630"
}
Frame {
msec: 4256
- hash: "117951465dfd5c386826b295560d2dec"
+ hash: "79e8adfcdc9d6dae0d2b6a69e8e322fa"
}
Frame {
msec: 4272
- hash: "1b70137da5f4e024593999e93121fe8b"
+ hash: "58f967a607972faa9daa13402eeb9912"
}
Frame {
msec: 4288
- hash: "bd50dffd41941fef127f39b55c4748e0"
+ hash: "1fd5b002b049132565b6a963fb7b3bb6"
}
Frame {
msec: 4304
- hash: "8eec34d8e1d2e22d11b85a671cd4d3aa"
+ hash: "a16c96598f47404ec5f4ef55e87a1e70"
}
Frame {
msec: 4320
- hash: "9e3c97cfad5002ef5f3fcc365aeb7bd0"
+ hash: "3c632899804812c93c7edd3e3f3d2bac"
}
Frame {
msec: 4336
- hash: "28e1cf1ee033915ea2ee39c9ab00a73d"
+ hash: "af0eb810e0273f9bacb082d9f90612df"
}
Frame {
msec: 4352
- hash: "99101a156a553f441f00221f6facbf1f"
+ hash: "728d7ac4a5410482c7d86d03c2d8a996"
}
Frame {
msec: 4368
- hash: "419023e5d59d16c26b35bee7d3cea559"
+ hash: "416e76064f2be71a03eddddf61a33cb0"
}
Frame {
msec: 4384
- hash: "485d23519293975b04031fe4baa5c276"
+ hash: "c41f20b4ac9a7b34eefd066f77ea351a"
}
Frame {
msec: 4400
- hash: "c8bc60735e0ede26dbaf228294853f9a"
+ hash: "821d51db415a210b09ebdf8d861aadf2"
}
Frame {
msec: 4416
- hash: "ada3680b807d59843e3adf6640704066"
+ hash: "9394266815a52f1779858bb088d557dc"
}
Frame {
msec: 4432
- hash: "3e28f3adf9241512cd0d6918d81ffffb"
+ hash: "cc475d1589665414e5aef051ec237ef4"
}
Frame {
msec: 4448
- hash: "8f339acc33cbc89ae1c62391ce021bb3"
+ hash: "a95f3b8128faa7820f36391fa9bd579f"
}
Frame {
msec: 4464
- hash: "d303960c0853a90557d64a04b8283c94"
+ hash: "d52687293a11891c364de52525039203"
}
Frame {
msec: 4480
- hash: "f907dbdacf2cfa9fdf8f9c8dead5b4c4"
+ hash: "5333dc4f65b2f1e066edcd23f7621bd7"
}
Frame {
msec: 4496
- hash: "30c6e6f283f4a3f538cdda9c2e92de8c"
+ hash: "797bb5e27b2fe2b733a54402433901b4"
}
Frame {
msec: 4512
- hash: "04d2ac55774b43107a43a7d33764199b"
+ hash: "84c610cdff7f8b04a34977216e37847d"
}
Frame {
msec: 4528
- hash: "cddf3e111cbc59e721725daa1d8a0c31"
+ hash: "0317f0406a566b2851c8bda62900e40c"
}
Frame {
msec: 4544
- hash: "15b1b63cd1695207ebf9f04387be0739"
+ hash: "6538ecd7abd35234c5cc5c2a17249fc1"
}
Frame {
msec: 4560
- hash: "690769b9bbe86a3c5b1fbdee39615fbd"
+ hash: "f9019150a132eb5f5cfafcd5337aff7a"
}
Frame {
msec: 4576
- hash: "2bd640d8ddbf878d808f22656fef1ed9"
+ hash: "0f0136fffbc65c02cee249ece4c8c0ef"
}
Frame {
msec: 4592
- hash: "a654f1e4519bf883d554276ebbe96323"
+ hash: "0027e0d236b8b33a451a0cc35e81b4ce"
}
Frame {
msec: 4608
- hash: "68f0313cfc3f51a0bb9b47c5407c19b6"
+ hash: "ac2f86b2d4f29f223fb78440d67ccd31"
}
Frame {
msec: 4624
- hash: "77f29806b084de4cabf7ab9bf1a93d5e"
+ hash: "a6eb112a10c849e337f816ee408f22a6"
}
Frame {
msec: 4640
- hash: "f9991189e3282d107b98fb0ae5f5ef00"
+ hash: "dafbb01f2615a2513310478ebe484a05"
}
Frame {
msec: 4656
- hash: "0cd1f2f6e347d48feea1b26a4968dec7"
+ hash: "17c400c4c29652dc278980ab578b75b3"
}
Frame {
msec: 4672
- hash: "e75a6f6a088e2289042572a161ffb0e9"
+ hash: "48696c02a2a4839b893a4c0b431b78a3"
}
Frame {
msec: 4688
- hash: "5a541081444c0a71128223a4c4c3144c"
+ hash: "04e05c7e722e53299d24cd0f1b7d17ee"
}
Frame {
msec: 4704
- hash: "6813d442cc610f346a5441ed0cd723e5"
+ hash: "55d158f13ffc7ccde5ee368656d2830b"
}
Frame {
msec: 4720
- hash: "24ec539bc57899819915f833f26deacd"
+ hash: "fa478e1575acedae023322a520171a5b"
}
Frame {
msec: 4736
- hash: "3a7ed1b4b533b817674aa141c420cd61"
+ hash: "e2147ddd6e19fde80bb76da24011400c"
}
Frame {
msec: 4752
- hash: "d0a643fae97bb152e97ca60e96299003"
+ hash: "44ee0144db4c55aa90d2a931d83a895e"
}
Frame {
msec: 4768
- hash: "c84093931520f4661eff6645091a294b"
+ hash: "552e87bbce4ad48006c899052a2c8cad"
}
Frame {
msec: 4784
- hash: "81e7ceaece82505a4a16ead195a66162"
+ hash: "3b6efe225303566f751c3f884ac8c069"
}
Frame {
msec: 4800
- hash: "315764d20b647f6ab1ba30239a69bf72"
+ hash: "3a7175916d1dc103506061607b910550"
}
Frame {
msec: 4816
@@ -1226,239 +1226,239 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "d1824ced8af34ad9edb36a58ae9aa7f5"
+ hash: "b2e5d5c14b02a13bca62673f87e85627"
}
Frame {
msec: 4848
- hash: "167b9a49fbb94908e09e7e9c9147cd8b"
+ hash: "bd89a911d6fb13e4e841f8ee5b8b42af"
}
Frame {
msec: 4864
- hash: "442d5f0906840de526d59a80ada322c0"
+ hash: "89795784185e83d0299e656f2eec73c8"
}
Frame {
msec: 4880
- hash: "78206c4d4d23c7c1ba888b9062b09432"
+ hash: "5b6d6fe78f341bdf0eb4bedfe3d975d0"
}
Frame {
msec: 4896
- hash: "e898202cfebbff1952efc6e01254d855"
+ hash: "e246bc451ee48e16ef6dee20d6256e9c"
}
Frame {
msec: 4912
- hash: "ab31dc7bbad2b0552359866bb8d92f0c"
+ hash: "8c1bc37b1b268743aa314247ea949ef5"
}
Frame {
msec: 4928
- hash: "f093304e88964376baf9721d53d4fb49"
+ hash: "04f34203c34dc87efc708bfb232663df"
}
Frame {
msec: 4944
- hash: "3ef76f3e1c44d13c3a469bd192ff7b5d"
+ hash: "d37a48545e81970d16951e3388f0ff8c"
}
Frame {
msec: 4960
- hash: "5d3b6d0d91f8cc5b89e39407bc3b5a15"
+ hash: "9411e846c9f59cc915288efb59d4c9de"
}
Frame {
msec: 4976
- hash: "3c73573f12f49b34e1d990a55ad913fa"
+ hash: "6ee179741ac74837708afb55943f15bd"
}
Frame {
msec: 4992
- hash: "d1bac071b01a1c6fddab90cdc435fad4"
+ hash: "f626fc3166bd5b01171271ae9bfa9b22"
}
Frame {
msec: 5008
- hash: "36a219aadec910f1dbef616c641e1d2b"
+ hash: "e22898b2c0c566bbf531223234f98327"
}
Frame {
msec: 5024
- hash: "5871fc67d361cc988551592ee21dfb23"
+ hash: "1343d90c5eae70713cd49110fe61237b"
}
Frame {
msec: 5040
- hash: "6e65ee6c814b9a9da205c36925e663bf"
+ hash: "493d9322da6d01979a3f1a120c265f8c"
}
Frame {
msec: 5056
- hash: "290b20fa8e91d34000d7c2d81745f6d2"
+ hash: "defccc76caf3a7c7c67e8abf5ccc2def"
}
Frame {
msec: 5072
- hash: "19e7405a9083a8143f7bb040f8837b29"
+ hash: "fe3cad9227fcfa7ba2238465078f2ac7"
}
Frame {
msec: 5088
- hash: "c0a0fa2b4c1ceb6c70594994a1ac8713"
+ hash: "66ebfeee3a63323c7d8b949db9aafd7e"
}
Frame {
msec: 5104
- hash: "c236224c16743fb606deb78bcb8afc8d"
+ hash: "805820b382d005894f9a615004b97b0d"
}
Frame {
msec: 5120
- hash: "7d44db15eb300b4338ffc26e9bcfce20"
+ hash: "eee1620f47bb071de8a9c788d1fd258e"
}
Frame {
msec: 5136
- hash: "067a79148a194c45c6f32d85316a1e11"
+ hash: "f5a7d9a81fcfc8cfb9e7cc8ead0f1ff8"
}
Frame {
msec: 5152
- hash: "9075c379044476994a87f0fdcce8e332"
+ hash: "249903ee123090b27019350f120c8b79"
}
Frame {
msec: 5168
- hash: "b2316988fbd51096a4f512e71fe7d0a2"
+ hash: "019793a363c905809af32bf34ef52ec0"
}
Frame {
msec: 5184
- hash: "280f70877d93af5f84e178aad6a102d8"
+ hash: "4f5ad5a3ebb6eca73dd7567199d07b08"
}
Frame {
msec: 5200
- hash: "3eef4ae7e43a8cf1cd9dd562237296f8"
+ hash: "fdc1b42d50c7a5c45458498788ff0abd"
}
Frame {
msec: 5216
- hash: "e3184f77ce3a47ca4dca6386f42d7fec"
+ hash: "cc091469598cad28d0a00690f1acb412"
}
Frame {
msec: 5232
- hash: "a2a5df66fe4808ea8d466cac84ba910c"
+ hash: "5c8757e1f8f34a31d8b3717b64b84c07"
}
Frame {
msec: 5248
- hash: "9f8a0e54788112d6c30482e840504f35"
+ hash: "5da75559f60eac1b9f518ed55a174e5b"
}
Frame {
msec: 5264
- hash: "ae69cf84798844f9f360c86790feaecd"
+ hash: "1214c08daec4dcfb27690fdc18f2ac28"
}
Frame {
msec: 5280
- hash: "0244526572acb6266db5b7eb9d29c6fc"
+ hash: "87d92c1ba694d0cf187d8616b0f622f0"
}
Frame {
msec: 5296
- hash: "8fb53d60b95ddb5aef27442934ea9983"
+ hash: "d4af63638fe69b6c4f087a935351057e"
}
Frame {
msec: 5312
- hash: "930fcfde491b4f5681e3861764003895"
+ hash: "0573c41f34c2c117cada987e4ee813a5"
}
Frame {
msec: 5328
- hash: "bcdcd0a637112d113ebe11dc18823237"
+ hash: "f179ef4b7bf0f915e25ffd8168a9126f"
}
Frame {
msec: 5344
- hash: "65a564d5a5afbc14c0cdad4d52753507"
+ hash: "1618bf7c94e7898392eb5ffbf44b8aff"
}
Frame {
msec: 5360
- hash: "0c5056d438d2d54938f31ef5f996673a"
+ hash: "5af24b902e3729d544f70c77e189b8a7"
}
Frame {
msec: 5376
- hash: "11c157ad2236fc390ffbdf339366cbc1"
+ hash: "4e5789404e58113cc2d8aa737a03ab58"
}
Frame {
msec: 5392
- hash: "6cb341b1f281a97a35c2e41bfd4c4d9d"
+ hash: "e4bf91a249e47597e959bbaf25f0724d"
}
Frame {
msec: 5408
- hash: "553a945f7f19f70ddae4ebe88e52a79b"
+ hash: "39a3e3d6269522ed57a0e37319ab94d5"
}
Frame {
msec: 5424
- hash: "d10b42b4095a2474e66a5a322f72e936"
+ hash: "f2e2e47922e7e058e14537a0455cd77f"
}
Frame {
msec: 5440
- hash: "0f943d61e8072d70eddee8aa1ba0de5a"
+ hash: "64abb3f2c9e05fd1dd7490d11c74f06a"
}
Frame {
msec: 5456
- hash: "3df18e237b666e78d57857739b759e6d"
+ hash: "a9bf45c29536ca34c42aa916747b485b"
}
Frame {
msec: 5472
- hash: "1ddc0bfdb2ca7b6dee63f1024e62f26e"
+ hash: "da21839b6635e5c4e0a589d163e62752"
}
Frame {
msec: 5488
- hash: "aaa397714528f41238059e3a88833abc"
+ hash: "f31e49258bcbb2a144daa320e4567df1"
}
Frame {
msec: 5504
- hash: "c94bd69f925c782656afc5f9618180a6"
+ hash: "f96c5b39f94bf2ac1e3f4de96767d720"
}
Frame {
msec: 5520
- hash: "824ff8c0e1ab43e3c0eaa79b7cc19b9c"
+ hash: "281b90d1056803093cc37f30465f0e73"
}
Frame {
msec: 5536
- hash: "6c440a0b2293811335bdbf2c4f25f47d"
+ hash: "d63a2424e1947328957ad8f5f0bec043"
}
Frame {
msec: 5552
- hash: "bfc7936cdf833d5b720ec9baca740112"
+ hash: "bd510a0de7df02b1b5741824b6f90944"
}
Frame {
msec: 5568
- hash: "375fa305dbae2872dc9b20e59381cc0c"
+ hash: "47dc4e5ff91cb84c89dd0fc0459f75f2"
}
Frame {
msec: 5584
- hash: "fffd6173aa49e74164dc17a238bcd830"
+ hash: "4bc46b5e116dd30e1db4d4bb650ed6ed"
}
Frame {
msec: 5600
- hash: "44d9007e00fab161fd393b653255d7f4"
+ hash: "c6964b89f1962f120028057d1c588694"
}
Frame {
msec: 5616
- hash: "f669ee25c58b4fa20a01705d334f0065"
+ hash: "39a77544a1c88b68cb63da9a8910a35e"
}
Frame {
msec: 5632
- hash: "2dbb7d57711b67d5d9e1b81f70e22d34"
+ hash: "bd8ac21d7a507a8e195437ccac254ecc"
}
Frame {
msec: 5648
- hash: "19351b91448265cb95c1670ee283c611"
+ hash: "7b39b2667a8f8efae20ec8696e35dbc4"
}
Frame {
msec: 5664
- hash: "19351b91448265cb95c1670ee283c611"
+ hash: "7b39b2667a8f8efae20ec8696e35dbc4"
}
Frame {
msec: 5680
- hash: "3a24b99d048348a21f4e4bd69393de89"
+ hash: "8628f4f24670d17965fec40a02e0196f"
}
Frame {
msec: 5696
- hash: "35a6fe955a52950bbfa954a453e4008e"
+ hash: "515903d9896a853cb18cc7b7c45c1cce"
}
Frame {
msec: 5712
- hash: "896f4ec28c976237b34fb2725a44460e"
+ hash: "b7a3f70bedcb3f90a2e294b447e05f70"
}
Frame {
msec: 5728
- hash: "ed3008ea950ec84c57518e573ea36d15"
+ hash: "8e8b104ef82b1e219021aa38276f8b45"
}
Frame {
msec: 5744
- hash: "3447c7be992759f772c1db2033eead99"
+ hash: "70abe79da860bebd2d17a8c7abb20b4e"
}
Frame {
msec: 5760
- hash: "b7133225daa03563d3f5b1dac5f56a23"
+ hash: "d99af176fb6cf9d9cbcf7cf4286a165c"
}
Frame {
msec: 5776
@@ -1466,239 +1466,239 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "adc55f2fcf312a90b025a75fa80aa079"
+ hash: "67809c7daad6716d0a664c52de9906ce"
}
Frame {
msec: 5808
- hash: "3ac85cad400d2b8e4f33798f4f6b7b42"
+ hash: "29a27fd59b7316ce305803482686ea58"
}
Frame {
msec: 5824
- hash: "1c115efd84ccbe489d24c3c521c4a61c"
+ hash: "25b9ca40d1d6208d026e5c965923f8fb"
}
Frame {
msec: 5840
- hash: "39518f1bbc0c4aba6ff517bc3dc7c279"
+ hash: "126b1542415aea11dbb35492be4f66aa"
}
Frame {
msec: 5856
- hash: "7bd28d32996f4de61c415d3217da16d0"
+ hash: "26ca7034536e0e690236797df740f19a"
}
Frame {
msec: 5872
- hash: "f5d06e25d775bf8db07e95625a712733"
+ hash: "fec9db60af63a4712b0da037cf1d89cd"
}
Frame {
msec: 5888
- hash: "4820ea6ea3be88af2f86111c547a19d7"
+ hash: "d9b7e2729c75ca0c0f33b542525c4880"
}
Frame {
msec: 5904
- hash: "fa6e681c368118b7f135a47ae8fc12ff"
+ hash: "89149d16b893ea432b6d0fb05ead48cb"
}
Frame {
msec: 5920
- hash: "f6b30e618aeeb837d2b3eca270b0a060"
+ hash: "8e389d2ca706277ce06e1da557e2e6c1"
}
Frame {
msec: 5936
- hash: "ac8504bde8d3063a8bf02b9d4b69d755"
+ hash: "fc5c74473410da1ddd451c5901572172"
}
Frame {
msec: 5952
- hash: "9670537bb77caa8e23fda7bbfa96ca60"
+ hash: "54514970eadff9362d31499a737e4c95"
}
Frame {
msec: 5968
- hash: "8cd292865ce5c1d240e9ddc93881a0ed"
+ hash: "d5953bc29532ec49c20ee552c8756ba1"
}
Frame {
msec: 5984
- hash: "de112013e526203d151c46e6cfba9f92"
+ hash: "5f03be3ed5824e6a6f8f371ce6a47997"
}
Frame {
msec: 6000
- hash: "cd61066e697de8c055aaa168791c2d8c"
+ hash: "0431e2ec4765167d0099c59df400f3fd"
}
Frame {
msec: 6016
- hash: "cd61066e697de8c055aaa168791c2d8c"
+ hash: "0431e2ec4765167d0099c59df400f3fd"
}
Frame {
msec: 6032
- hash: "e68b27ff14aac03c827fd43ac488d23e"
+ hash: "403e1f235770f2b7c8b1b2e86aea69a5"
}
Frame {
msec: 6048
- hash: "e68b27ff14aac03c827fd43ac488d23e"
+ hash: "403e1f235770f2b7c8b1b2e86aea69a5"
}
Frame {
msec: 6064
- hash: "1f61d857a8c26587fbda5895c603441a"
+ hash: "32ff9f959598972f5a264418587dca1f"
}
Frame {
msec: 6080
- hash: "1e0dffdd02e05ade1ae444427d4aa345"
+ hash: "b4c7c07e52a684f7ce21e47a4d66356a"
}
Frame {
msec: 6096
- hash: "9a416ee7a1de9ac45ab2d609233c9520"
+ hash: "e0f214bed2c3a31f473952929b8f3ea9"
}
Frame {
msec: 6112
- hash: "dfa35bf1cd908011c3214a506bcbdcb8"
+ hash: "15328b8a205965f3f29fc63a6a8ac8ed"
}
Frame {
msec: 6128
- hash: "bd502dc72dce4af3036f7af9ed7cf9e9"
+ hash: "72c46ed63633e6879373f4783df25d8b"
}
Frame {
msec: 6144
- hash: "8cd5edce652013a2ed4bf95693259538"
+ hash: "ae73e0adbdaacc648c2e97840cef4194"
}
Frame {
msec: 6160
- hash: "a38ed1532a40210ad7da4c0d4d1a7195"
+ hash: "df9451c6634d72e6f794e962b3591086"
}
Frame {
msec: 6176
- hash: "8ac8a8df937da526bbffb9a3590d89ac"
+ hash: "773e10bbd133e64457e7ddbc73a10fc2"
}
Frame {
msec: 6192
- hash: "07527cb9a4494e11f4c9f99eb72598b9"
+ hash: "c79abb97eb86761b69053d77156dffd4"
}
Frame {
msec: 6208
- hash: "655b0327ef0f8711810714ba50f2f8cc"
+ hash: "d927934b19ffd55ea7cea1916983351a"
}
Frame {
msec: 6224
- hash: "4c1ce8b4eb16c69614e2560c04ad48cf"
+ hash: "ae5058d935c1e44d103be66921b19e77"
}
Frame {
msec: 6240
- hash: "7a382ae4e6a48826eaa2c83ee7a73fb2"
+ hash: "b6a1446b6be054d5785ba52ac23f8aa8"
}
Frame {
msec: 6256
- hash: "5acd5f250c5b32d9006ed68dfecbfa1c"
+ hash: "3dffbffded44249fdbe58aecd24ab97f"
}
Frame {
msec: 6272
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6288
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6304
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Frame {
msec: 6320
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Frame {
msec: 6336
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Frame {
msec: 6352
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Frame {
msec: 6368
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Frame {
msec: 6384
- hash: "877aca1c64e588845329ca8a38222604"
+ hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e"
}
Frame {
msec: 6400
- hash: "877aca1c64e588845329ca8a38222604"
+ hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e"
}
Frame {
msec: 6416
- hash: "877aca1c64e588845329ca8a38222604"
+ hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e"
}
Frame {
msec: 6432
- hash: "877aca1c64e588845329ca8a38222604"
+ hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e"
}
Frame {
msec: 6448
- hash: "877aca1c64e588845329ca8a38222604"
+ hash: "cb2b0ddbc7b8485fbf32a537e5a98d0e"
}
Frame {
msec: 6464
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6480
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6496
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6512
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6528
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6544
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6560
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6576
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6592
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6608
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6624
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6640
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6656
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6672
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6688
- hash: "b0f28e923f93dcdcea8460ca9d8cd674"
+ hash: "fa87436d5e51122022a005d815f97c32"
}
Frame {
msec: 6704
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6720
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6736
@@ -1706,58 +1706,58 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6768
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6784
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6800
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6816
- hash: "228920e994ebf71d542c71ce8263614e"
+ hash: "da52e87ccd157c0330c07e480b8b0c06"
}
Frame {
msec: 6832
- hash: "07e5f1277558bfe7638b00cf9d967baf"
+ hash: "257ce16f529b99f28beb2e57625f52ee"
}
Key {
type: 6
key: 16777249
- modifiers: 67108864
+ modifiers: 0
text: ""
autorep: false
count: 1
}
Frame {
msec: 6848
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6864
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6880
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6896
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6912
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
Frame {
msec: 6928
- hash: "3189e5a89d7b2ba1e6a06f6e3070e8c1"
+ hash: "56445ab8554a23a786b70e4fd9f40451"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.png
index 38f2051..666d272 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml
index d431bb8..75e6859 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.qml
@@ -10,238 +10,238 @@ VisualTest {
}
Frame {
msec: 32
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 48
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 64
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 80
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 96
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 112
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 128
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 144
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 160
- hash: "d80fd046c582a26230e547471f290f12"
+ hash: "377fd9e347a2e6e0930d1422ce744c5c"
}
Frame {
msec: 176
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 192
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 208
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 224
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 240
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 256
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 272
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 288
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 304
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 320
- hash: "f9e466557e920150c638621536d94e5b"
+ hash: "36106ba13106d262c02c67e82bba1443"
}
Frame {
msec: 336
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 352
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 368
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 384
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 400
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 416
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 432
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 448
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 464
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 480
- hash: "40b5718a9370c332f254a3ead05dfe5b"
+ hash: "509d31a486ae2f83055b52ec12f33e76"
}
Frame {
msec: 496
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 512
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 528
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 544
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 560
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 576
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 592
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 608
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 624
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 640
- hash: "3249c560c69e915020f9632acd1c5eca"
+ hash: "09b9249750ba637ef659cbc7b9a6055f"
}
Frame {
msec: 656
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 672
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 688
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 704
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 720
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 736
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 752
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 768
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 784
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 800
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 816
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 832
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 848
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 864
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 880
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 896
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 912
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 928
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 944
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
Frame {
msec: 960
- hash: "2df61c56ba08ef258a0d493760127a8d"
+ hash: "1ac7017fcf7c9775b66ed1fb78930a45"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png
index d85498b..823199c 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml
index 26cd97b..4bf0697 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml
@@ -10,122 +10,122 @@ VisualTest {
}
Frame {
msec: 32
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 48
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 64
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 80
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 96
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 112
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 128
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 144
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 160
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 176
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 192
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 208
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 224
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 240
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 256
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 272
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 288
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 304
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 320
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 336
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 352
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 368
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 384
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 400
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 416
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 432
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 448
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 464
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 480
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
Frame {
msec: 496
- hash: "8e36621abce059cb8579dd04b28e8d58"
+ hash: "7e082fa05e000cc20fcda7cb61d98edd"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png
index 026d06c..6119f92 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.png
index 026d06c..6119f92 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml
index 26d0656..481c9aa 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 48
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 64
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 80
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 96
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 112
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 128
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 144
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 160
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 176
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 192
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 208
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 224
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 240
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 256
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 272
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 288
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 304
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 320
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 336
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 352
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 368
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 384
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 400
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 416
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 432
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 448
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 464
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 480
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 496
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 512
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 528
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 544
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 560
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 576
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 592
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 608
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 624
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 640
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 656
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 672
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 688
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 704
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 720
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 736
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 752
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 768
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 784
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 800
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 816
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 832
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 848
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 864
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 880
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 896
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 912
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 928
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 944
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 960
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 976
@@ -250,198 +250,198 @@ VisualTest {
}
Frame {
msec: 992
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 1008
- hash: "4235bd6abcbdf6621c4c41153fbaada5"
+ hash: "bd09363ea401e07a38d216bf29806592"
}
Frame {
msec: 1024
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1040
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1056
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1072
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1088
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1104
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1120
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1136
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1152
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1168
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1184
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1200
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1216
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1232
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1248
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1264
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1280
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1296
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1312
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1328
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1344
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1360
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1376
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1392
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1408
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1424
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1440
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1456
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1472
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1488
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1504
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1520
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1536
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1552
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1568
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1584
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1600
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1616
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1632
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1648
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1664
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1680
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1696
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1712
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1728
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1744
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
Frame {
msec: 1760
- hash: "3ccd3d26158a50d8f0567bafd7a23e06"
+ hash: "a3e4ab9c6151c9acb4c9dd41c9c2c596"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png
index 16202c4..f2e6117 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png
index 16202c4..f2e6117 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml
index c911b0a9..f306f5c 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 48
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 64
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 80
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 96
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 112
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 128
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 144
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 160
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 176
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 192
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 208
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 224
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 240
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 256
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 272
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 288
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 304
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 320
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 336
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 352
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 368
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 384
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 400
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 416
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 432
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 448
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 464
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 480
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 496
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 512
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 528
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 544
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 560
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 576
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 592
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 608
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 624
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 640
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 656
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 672
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 688
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 704
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 720
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 736
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 752
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 768
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 784
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 800
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 816
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 832
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 848
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 864
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 880
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 896
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 912
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 928
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 944
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 960
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 976
@@ -251,29 +251,29 @@ VisualTest {
Key {
type: 6
key: 16777249
- modifiers: 67108864
+ modifiers: 0
text: ""
autorep: false
count: 1
}
Frame {
msec: 992
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 1008
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 1024
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 1040
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
Frame {
msec: 1056
- hash: "bfcbea92ed5278c01642fd3cd6d3175c"
+ hash: "a2003f5b238564e9b68b38db156431d2"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.png
index 38b9668..2f4c84a 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png
index 801ec2b..ae786a2 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml
index 5275c05..6e9057c 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 48
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 64
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 80
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 96
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 112
- hash: "0922fd48af050774d53e0b3815d57d8e"
+ hash: "716f5d150bd8757952d7b4ba327fb8bd"
}
Frame {
msec: 128
- hash: "6ed734d7092a34e440628dc70db97ac5"
+ hash: "8ec55fba2017a56c641c7baca5345b8b"
}
Frame {
msec: 144
- hash: "6ed734d7092a34e440628dc70db97ac5"
+ hash: "8ec55fba2017a56c641c7baca5345b8b"
}
Frame {
msec: 160
- hash: "6ed734d7092a34e440628dc70db97ac5"
+ hash: "8ec55fba2017a56c641c7baca5345b8b"
}
Frame {
msec: 176
- hash: "6ed734d7092a34e440628dc70db97ac5"
+ hash: "8ec55fba2017a56c641c7baca5345b8b"
}
Frame {
msec: 192
- hash: "a74b735016141dccf2c84fe9ee1e3ab2"
+ hash: "79dc1645a5486ddfa3d957f3bd4ffbda"
}
Frame {
msec: 208
- hash: "a74b735016141dccf2c84fe9ee1e3ab2"
+ hash: "79dc1645a5486ddfa3d957f3bd4ffbda"
}
Frame {
msec: 224
- hash: "a74b735016141dccf2c84fe9ee1e3ab2"
+ hash: "79dc1645a5486ddfa3d957f3bd4ffbda"
}
Frame {
msec: 240
- hash: "a74b735016141dccf2c84fe9ee1e3ab2"
+ hash: "79dc1645a5486ddfa3d957f3bd4ffbda"
}
Frame {
msec: 256
- hash: "047416b9368fb352b7da1e073d863e96"
+ hash: "476eae8ca9f6698cf67e2d20c5c24b66"
}
Frame {
msec: 272
- hash: "047416b9368fb352b7da1e073d863e96"
+ hash: "476eae8ca9f6698cf67e2d20c5c24b66"
}
Frame {
msec: 288
- hash: "047416b9368fb352b7da1e073d863e96"
+ hash: "476eae8ca9f6698cf67e2d20c5c24b66"
}
Frame {
msec: 304
- hash: "047416b9368fb352b7da1e073d863e96"
+ hash: "476eae8ca9f6698cf67e2d20c5c24b66"
}
Frame {
msec: 320
- hash: "f2d62e8675b8bba924b27db689c9cd7f"
+ hash: "bef1a9585daf30f1739a190ffa2e4b46"
}
Frame {
msec: 336
- hash: "f2d62e8675b8bba924b27db689c9cd7f"
+ hash: "bef1a9585daf30f1739a190ffa2e4b46"
}
Frame {
msec: 352
- hash: "f2d62e8675b8bba924b27db689c9cd7f"
+ hash: "bef1a9585daf30f1739a190ffa2e4b46"
}
Frame {
msec: 368
- hash: "f2d62e8675b8bba924b27db689c9cd7f"
+ hash: "bef1a9585daf30f1739a190ffa2e4b46"
}
Frame {
msec: 384
- hash: "f2d62e8675b8bba924b27db689c9cd7f"
+ hash: "bef1a9585daf30f1739a190ffa2e4b46"
}
Frame {
msec: 400
- hash: "9498a80d60ab24d82ffb935979e1cf1b"
+ hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f"
}
Frame {
msec: 416
- hash: "9498a80d60ab24d82ffb935979e1cf1b"
+ hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f"
}
Frame {
msec: 432
- hash: "9498a80d60ab24d82ffb935979e1cf1b"
+ hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f"
}
Frame {
msec: 448
- hash: "9498a80d60ab24d82ffb935979e1cf1b"
+ hash: "156dfc4e9fbc1af5e8c6c48ecd2afe8f"
}
Frame {
msec: 464
- hash: "ee3cb45a15460f4235fc22ca97e0303d"
+ hash: "2fe675a360e61452c31dda42070c137f"
}
Frame {
msec: 480
- hash: "ee3cb45a15460f4235fc22ca97e0303d"
+ hash: "2fe675a360e61452c31dda42070c137f"
}
Frame {
msec: 496
- hash: "ee3cb45a15460f4235fc22ca97e0303d"
+ hash: "2fe675a360e61452c31dda42070c137f"
}
Frame {
msec: 512
- hash: "ee3cb45a15460f4235fc22ca97e0303d"
+ hash: "2fe675a360e61452c31dda42070c137f"
}
Frame {
msec: 528
- hash: "94464db418aec12b451e9dc106deec73"
+ hash: "0f1bac7c35b9f5bdbce10fb577c9cf28"
}
Frame {
msec: 544
- hash: "94464db418aec12b451e9dc106deec73"
+ hash: "0f1bac7c35b9f5bdbce10fb577c9cf28"
}
Frame {
msec: 560
- hash: "94464db418aec12b451e9dc106deec73"
+ hash: "0f1bac7c35b9f5bdbce10fb577c9cf28"
}
Frame {
msec: 576
- hash: "94464db418aec12b451e9dc106deec73"
+ hash: "0f1bac7c35b9f5bdbce10fb577c9cf28"
}
Frame {
msec: 592
- hash: "94464db418aec12b451e9dc106deec73"
+ hash: "0f1bac7c35b9f5bdbce10fb577c9cf28"
}
Frame {
msec: 608
- hash: "22b23a55986e912cf38239d5e68f0c4a"
+ hash: "c79f68e9481f91f6f6a6816a655efc24"
}
Frame {
msec: 624
- hash: "22b23a55986e912cf38239d5e68f0c4a"
+ hash: "c79f68e9481f91f6f6a6816a655efc24"
}
Frame {
msec: 640
- hash: "22b23a55986e912cf38239d5e68f0c4a"
+ hash: "c79f68e9481f91f6f6a6816a655efc24"
}
Frame {
msec: 656
- hash: "22b23a55986e912cf38239d5e68f0c4a"
+ hash: "c79f68e9481f91f6f6a6816a655efc24"
}
Frame {
msec: 672
- hash: "3836d0aaf354d147dc6ffe3ace184ba5"
+ hash: "9a189e9d9249fb04fd98c4e91aba1cb5"
}
Frame {
msec: 688
- hash: "3836d0aaf354d147dc6ffe3ace184ba5"
+ hash: "9a189e9d9249fb04fd98c4e91aba1cb5"
}
Frame {
msec: 704
- hash: "3836d0aaf354d147dc6ffe3ace184ba5"
+ hash: "9a189e9d9249fb04fd98c4e91aba1cb5"
}
Frame {
msec: 720
- hash: "3836d0aaf354d147dc6ffe3ace184ba5"
+ hash: "9a189e9d9249fb04fd98c4e91aba1cb5"
}
Frame {
msec: 736
- hash: "3836d0aaf354d147dc6ffe3ace184ba5"
+ hash: "9a189e9d9249fb04fd98c4e91aba1cb5"
}
Frame {
msec: 752
- hash: "20ccea5bc4c15401a7c660b1801488dd"
+ hash: "42c1ac48858ab5901601dc5a950a398f"
}
Frame {
msec: 768
- hash: "20ccea5bc4c15401a7c660b1801488dd"
+ hash: "42c1ac48858ab5901601dc5a950a398f"
}
Frame {
msec: 784
- hash: "20ccea5bc4c15401a7c660b1801488dd"
+ hash: "42c1ac48858ab5901601dc5a950a398f"
}
Frame {
msec: 800
- hash: "20ccea5bc4c15401a7c660b1801488dd"
+ hash: "42c1ac48858ab5901601dc5a950a398f"
}
Frame {
msec: 816
- hash: "31ffa9cfd6f60a33ed3b052e45ee5080"
+ hash: "f05bf4e3cc562c5a900fb389a7c093de"
}
Frame {
msec: 832
- hash: "31ffa9cfd6f60a33ed3b052e45ee5080"
+ hash: "f05bf4e3cc562c5a900fb389a7c093de"
}
Frame {
msec: 848
- hash: "31ffa9cfd6f60a33ed3b052e45ee5080"
+ hash: "f05bf4e3cc562c5a900fb389a7c093de"
}
Frame {
msec: 864
- hash: "31ffa9cfd6f60a33ed3b052e45ee5080"
+ hash: "f05bf4e3cc562c5a900fb389a7c093de"
}
Frame {
msec: 880
- hash: "7138b38fcff27e85aaf3179c6e81ac69"
+ hash: "1b5d1234aa02009ec447ac8fefc403bb"
}
Frame {
msec: 896
- hash: "7138b38fcff27e85aaf3179c6e81ac69"
+ hash: "1b5d1234aa02009ec447ac8fefc403bb"
}
Frame {
msec: 912
- hash: "7138b38fcff27e85aaf3179c6e81ac69"
+ hash: "1b5d1234aa02009ec447ac8fefc403bb"
}
Frame {
msec: 928
- hash: "7138b38fcff27e85aaf3179c6e81ac69"
+ hash: "1b5d1234aa02009ec447ac8fefc403bb"
}
Frame {
msec: 944
- hash: "7138b38fcff27e85aaf3179c6e81ac69"
+ hash: "1b5d1234aa02009ec447ac8fefc403bb"
}
Frame {
msec: 960
- hash: "78854022288d4cd50bb9141896403d35"
+ hash: "ec7cfc539d7bde448c631da211de8f44"
}
Frame {
msec: 976
@@ -250,151 +250,151 @@ VisualTest {
}
Frame {
msec: 992
- hash: "78854022288d4cd50bb9141896403d35"
+ hash: "ec7cfc539d7bde448c631da211de8f44"
}
Frame {
msec: 1008
- hash: "78854022288d4cd50bb9141896403d35"
+ hash: "ec7cfc539d7bde448c631da211de8f44"
}
Frame {
msec: 1024
- hash: "8730d8adb4029b157e39b90e3cb2b879"
+ hash: "646394dd534a32bc3a066e606cc485f3"
}
Frame {
msec: 1040
- hash: "8730d8adb4029b157e39b90e3cb2b879"
+ hash: "646394dd534a32bc3a066e606cc485f3"
}
Frame {
msec: 1056
- hash: "8730d8adb4029b157e39b90e3cb2b879"
+ hash: "646394dd534a32bc3a066e606cc485f3"
}
Frame {
msec: 1072
- hash: "8730d8adb4029b157e39b90e3cb2b879"
+ hash: "646394dd534a32bc3a066e606cc485f3"
}
Frame {
msec: 1088
- hash: "9edb542976d1acd86be3d516276dee1f"
+ hash: "6b66b968aaed1896e2e9fafe27bba50f"
}
Frame {
msec: 1104
- hash: "9edb542976d1acd86be3d516276dee1f"
+ hash: "6b66b968aaed1896e2e9fafe27bba50f"
}
Frame {
msec: 1120
- hash: "9edb542976d1acd86be3d516276dee1f"
+ hash: "6b66b968aaed1896e2e9fafe27bba50f"
}
Frame {
msec: 1136
- hash: "9edb542976d1acd86be3d516276dee1f"
+ hash: "6b66b968aaed1896e2e9fafe27bba50f"
}
Frame {
msec: 1152
- hash: "9edb542976d1acd86be3d516276dee1f"
+ hash: "6b66b968aaed1896e2e9fafe27bba50f"
}
Frame {
msec: 1168
- hash: "1a394542b01712fbd67b78a69733b324"
+ hash: "869f75182b9a4b452da1689a5921085f"
}
Frame {
msec: 1184
- hash: "1a394542b01712fbd67b78a69733b324"
+ hash: "869f75182b9a4b452da1689a5921085f"
}
Frame {
msec: 1200
- hash: "1a394542b01712fbd67b78a69733b324"
+ hash: "869f75182b9a4b452da1689a5921085f"
}
Frame {
msec: 1216
- hash: "1a394542b01712fbd67b78a69733b324"
+ hash: "869f75182b9a4b452da1689a5921085f"
}
Frame {
msec: 1232
- hash: "4825f9a6679fdee8efe89507d384c07c"
+ hash: "b2017890ac543b9224e85a44157d9fbb"
}
Frame {
msec: 1248
- hash: "4825f9a6679fdee8efe89507d384c07c"
+ hash: "b2017890ac543b9224e85a44157d9fbb"
}
Frame {
msec: 1264
- hash: "4825f9a6679fdee8efe89507d384c07c"
+ hash: "b2017890ac543b9224e85a44157d9fbb"
}
Frame {
msec: 1280
- hash: "4825f9a6679fdee8efe89507d384c07c"
+ hash: "b2017890ac543b9224e85a44157d9fbb"
}
Frame {
msec: 1296
- hash: "4825f9a6679fdee8efe89507d384c07c"
+ hash: "b2017890ac543b9224e85a44157d9fbb"
}
Frame {
msec: 1312
- hash: "0ed5382fd2e370bad934647d7abf293f"
+ hash: "acac3eb92619e01b3470511cef1a91c8"
}
Frame {
msec: 1328
- hash: "0ed5382fd2e370bad934647d7abf293f"
+ hash: "acac3eb92619e01b3470511cef1a91c8"
}
Frame {
msec: 1344
- hash: "0ed5382fd2e370bad934647d7abf293f"
+ hash: "acac3eb92619e01b3470511cef1a91c8"
}
Frame {
msec: 1360
- hash: "0ed5382fd2e370bad934647d7abf293f"
+ hash: "acac3eb92619e01b3470511cef1a91c8"
}
Frame {
msec: 1376
- hash: "6206435ab4d05d5d5f84b362d45c30f9"
+ hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1"
}
Frame {
msec: 1392
- hash: "6206435ab4d05d5d5f84b362d45c30f9"
+ hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1"
}
Frame {
msec: 1408
- hash: "6206435ab4d05d5d5f84b362d45c30f9"
+ hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1"
}
Frame {
msec: 1424
- hash: "6206435ab4d05d5d5f84b362d45c30f9"
+ hash: "7f6d45b22e5cb86a7fb45d3f9bcebfc1"
}
Frame {
msec: 1440
- hash: "b0eb92df767e7cb61cc69d7363041263"
+ hash: "481f661e2613242d253498e467c91105"
}
Frame {
msec: 1456
- hash: "b0eb92df767e7cb61cc69d7363041263"
+ hash: "481f661e2613242d253498e467c91105"
}
Frame {
msec: 1472
- hash: "b0eb92df767e7cb61cc69d7363041263"
+ hash: "481f661e2613242d253498e467c91105"
}
Frame {
msec: 1488
- hash: "b0eb92df767e7cb61cc69d7363041263"
+ hash: "481f661e2613242d253498e467c91105"
}
Frame {
msec: 1504
- hash: "b0eb92df767e7cb61cc69d7363041263"
+ hash: "481f661e2613242d253498e467c91105"
}
Frame {
msec: 1520
- hash: "0306262c9594536e0eecf3d67e5910cf"
+ hash: "4c342918351f0165ce63129afbd60074"
}
Frame {
msec: 1536
- hash: "0306262c9594536e0eecf3d67e5910cf"
+ hash: "4c342918351f0165ce63129afbd60074"
}
Frame {
msec: 1552
- hash: "0306262c9594536e0eecf3d67e5910cf"
+ hash: "4c342918351f0165ce63129afbd60074"
}
Frame {
msec: 1568
- hash: "0306262c9594536e0eecf3d67e5910cf"
+ hash: "4c342918351f0165ce63129afbd60074"
}
Frame {
msec: 1584
@@ -443,7 +443,7 @@ VisualTest {
Key {
type: 6
key: 16777249
- modifiers: 0
+ modifiers: 67108864
text: ""
autorep: false
count: 1
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png
index 730925e..f71c1ac 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png
index ddd6cc5..93c16dc 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png
index 4679774..acec1ee 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png
index 51018b4..f380c08 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png
index f5ed905..18142dd 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.png
index 5005724..c7f59b8 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml
index faf7240..6e802f4 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml
@@ -10,239 +10,239 @@ VisualTest {
}
Frame {
msec: 32
- hash: "12cd5401549bc43283d6c46964528b9b"
+ hash: "fde26fa3d17fb92d676afe61ca6a2170"
}
Frame {
msec: 48
- hash: "ae042a0f3c6e32550288a9b0e6a0ce0d"
+ hash: "54c7a0ea10fa212959dc4f7606c31f3c"
}
Frame {
msec: 64
- hash: "9124b4e5f5dd374e44f3f57fe3d6809b"
+ hash: "e73c4521144b2c810f15239e6d8fa468"
}
Frame {
msec: 80
- hash: "54dabe45069a00c8759bb5560c9b269f"
+ hash: "31a68bfd57846795db57bb30d1d60341"
}
Frame {
msec: 96
- hash: "0d908ef6e3ea15455e35a9ebbc90c735"
+ hash: "55edcaeed37c1390eee2619d52a2eb03"
}
Frame {
msec: 112
- hash: "de5fcf719cd096b99a531e7af9b26e35"
+ hash: "2c27d9c3dc215c68630495e255c1670e"
}
Frame {
msec: 128
- hash: "d48ccb7c22c2606ef814cd5abd3888f3"
+ hash: "b27dd9260f6da3ab414076e83bf5a2bd"
}
Frame {
msec: 144
- hash: "2ec7418477158ee60afe123fa2b7ce4b"
+ hash: "bfcbba7e970af922ee87fbbe936eaa84"
}
Frame {
msec: 160
- hash: "418d6d46726c688bee6f415eb2ff2e43"
+ hash: "75af84ff6f21648737cef4a215410cc6"
}
Frame {
msec: 176
- hash: "e754141341d9f81366f21820e46bd1ca"
+ hash: "71fd1fe13a14632ff54ad7a87be68bca"
}
Frame {
msec: 192
- hash: "89b4b5f7563bfdb5d1e636a5462e0d8e"
+ hash: "69f553a1893403dc6fc82d3c9c47f501"
}
Frame {
msec: 208
- hash: "46c3a7d4700a9599d474b7de1ab44a18"
+ hash: "9456b12d49cc2a1f9212dba98a83c8ab"
}
Frame {
msec: 224
- hash: "c50698470bc6c1ea04633b9e819a2d4d"
+ hash: "cfd826f91f6f880816d505c93a8f125a"
}
Frame {
msec: 240
- hash: "dc7d5345363cad6ee007f162f9ea75e2"
+ hash: "d8e3291525eff9f905102ed7654f986b"
}
Frame {
msec: 256
- hash: "3b9ccb93f6375ea401c1fc3bcdf847d5"
+ hash: "044c1f37e37a68fbfbb9ddbc2da4300a"
}
Frame {
msec: 272
- hash: "6d034da407af9e27ce70e9dbfee3bb38"
+ hash: "d640cba5f14d9c065bec6f6c23f2831f"
}
Frame {
msec: 288
- hash: "3bce938e5db4c2295cd25a6e2b33738c"
+ hash: "9e15b68dace4b39b937dfea8777ae503"
}
Frame {
msec: 304
- hash: "68266f4f9da256b9df499285ebb842fb"
+ hash: "7ea72711e3f8bdd1087181e127e093c7"
}
Frame {
msec: 320
- hash: "a9c912fd159baadc4afcd963f857e91b"
+ hash: "c45dae8eb1768c8aba2d92dea4f268a2"
}
Frame {
msec: 336
- hash: "85cb9086774297b2772e71229f7d84fc"
+ hash: "181ebf6597be2d9e54c1d01a5ab54b46"
}
Frame {
msec: 352
- hash: "585e6f2d28ec70d10741a52fb68d718c"
+ hash: "094b6cc486b60882836a9ba35411ae7d"
}
Frame {
msec: 368
- hash: "bfd552ccaccc569d2478ac4d92fe2eb0"
+ hash: "031f1bcb864b4507bf93caab88756317"
}
Frame {
msec: 384
- hash: "748d57dff4cdc09a842353e51de41e5a"
+ hash: "42b4d89a1026327f180ecc414dcd0ef0"
}
Frame {
msec: 400
- hash: "e0012622a4ef1d5b2090c02020b676c2"
+ hash: "a99c5d1d434687e2f16e7054bcff8a69"
}
Frame {
msec: 416
- hash: "8e4d4a808564a8ba80578600104f230d"
+ hash: "91cf18d3f8538ee8550f7e190911b072"
}
Frame {
msec: 432
- hash: "d92e44d8e1f7651a9d256e9e4f3e8168"
+ hash: "1c11a328d74bc7bf77da10f094db8d4a"
}
Frame {
msec: 448
- hash: "d99b016a0dfdb332dbb1a2c10f53bc05"
+ hash: "e4da6dc99c962e8f37dc8d99669616d0"
}
Frame {
msec: 464
- hash: "3ce4357881a34f4c9e2f0d684218e253"
+ hash: "628d4c1455f58a304887050c0552499a"
}
Frame {
msec: 480
- hash: "07ee4bb59f7ee591bd7a6f117d9f1aa6"
+ hash: "dd17a403f45bcd1001cb08e7f4ae8443"
}
Frame {
msec: 496
- hash: "f66ce51f2eece9f0fa89c41340245976"
+ hash: "1ed042d0289fc6167143ddcd92f708f6"
}
Frame {
msec: 512
- hash: "a9d2b2d4f6ae5e071897d17469a5bad3"
+ hash: "b55abb6249925cf06439b3177310dcfc"
}
Frame {
msec: 528
- hash: "55db2dbd65cae186d59cb2edb5841880"
+ hash: "251c3346640a2aa7a9c18ca84ff2d5bb"
}
Frame {
msec: 544
- hash: "576297445ee3f89994538fcd8c8b102c"
+ hash: "6f5e18d84c4107213599b57bf7284c4b"
}
Frame {
msec: 560
- hash: "6ca41b83b8ff27f97c71a23d1c7f9765"
+ hash: "2179c1d7d7acb3c2f6354b493cfe74e0"
}
Frame {
msec: 576
- hash: "7e41ef79cae5966821106df39f6a748d"
+ hash: "bbc757e8f3c08f93ffcdd68b392c8cdb"
}
Frame {
msec: 592
- hash: "9e8b750bbb3680f90d6bbddb6e394d5e"
+ hash: "7eefd9c7291c1a23679efd42f2c29539"
}
Frame {
msec: 608
- hash: "9a61dddcc33ff2b778097b5edb706912"
+ hash: "fa375510d3850614aebceb2bc31ab4de"
}
Frame {
msec: 624
- hash: "395d015e538dde494059df392379ba26"
+ hash: "f643c5ba39bb90f396f00c0a9df995c8"
}
Frame {
msec: 640
- hash: "d1db5dc62ca702f4241e45811aebe6f3"
+ hash: "c6b7792f780b00b1b07c0ce948dff13b"
}
Frame {
msec: 656
- hash: "18f1a038041bd8a51f3375ca64084251"
+ hash: "d43d82ee9b0da8f237469c555b48bee8"
}
Frame {
msec: 672
- hash: "6c0f6360156cb806a8b30cafc69013af"
+ hash: "addaa9d2aa8f54d6a4e82dc7e029f19d"
}
Frame {
msec: 688
- hash: "69525e71fe8fe9847ff956e40c2c45ec"
+ hash: "b12af2fd05a1ccd4664c5093456bae01"
}
Frame {
msec: 704
- hash: "ac7ae453f35a05e760976df6d91206e2"
+ hash: "982d3505c51fc1bac026c744e2d1db11"
}
Frame {
msec: 720
- hash: "c96358482f0900a906b2fc4742981e3a"
+ hash: "a67a0705ce893dcafdcfc3a7fe71f608"
}
Frame {
msec: 736
- hash: "2cccb8f6a63f21d01cd3b61a97730bf8"
+ hash: "6e00f746695ca67fb4c4462740b13c8f"
}
Frame {
msec: 752
- hash: "bf01c0cb968768199f3158e6cefcb09f"
+ hash: "bc4235d556a1e18d591b9afd87b29826"
}
Frame {
msec: 768
- hash: "0ac63c33649462f06979de77c042476c"
+ hash: "830ebf4b9214f1dc31975c83cf49d31e"
}
Frame {
msec: 784
- hash: "61931edba8d1abcdc07bb43e17446f4e"
+ hash: "bac049ae3d6676db8bca99620c9f5bd3"
}
Frame {
msec: 800
- hash: "e8122f997a4076055d8addda88c4ad6e"
+ hash: "0f9623c23e4e45126078c3c93015d26c"
}
Frame {
msec: 816
- hash: "cc7e654138605c25cb21aa8966361cf4"
+ hash: "bedde76baa8905970ea5fa8da62355a6"
}
Frame {
msec: 832
- hash: "177aaec34c677b21798de1e024860490"
+ hash: "018b9b1444d921b8cfd823265556c8f6"
}
Frame {
msec: 848
- hash: "d0fe9544e55f6876908d9c118366f038"
+ hash: "2be3e0693f54ffefd24e44f552d59e3f"
}
Frame {
msec: 864
- hash: "f713b7e11bf61a0f0a06e6aedb36b7f1"
+ hash: "c8c99f68125df2a1f41f6b44fdcc0406"
}
Frame {
msec: 880
- hash: "b703bd46b9f355711318882194f28d52"
+ hash: "3e18d6a24a1c6983f3f2ce984d22dbe4"
}
Frame {
msec: 896
- hash: "047dad73e6c845704f3de6b317ce9290"
+ hash: "aa336c4e5ace2b33689ca280de2299db"
}
Frame {
msec: 912
- hash: "8c48b0963af8d71fc245373083c14a93"
+ hash: "fd7245f879bbd72b6e72c563a588eea7"
}
Frame {
msec: 928
- hash: "d11944e0d9035b6eff85ca9fc5adc2c0"
+ hash: "e484656517fcb5763c0c8992b22efe91"
}
Frame {
msec: 944
- hash: "d650943a979c7bf52fff77063406c46d"
+ hash: "fbd58b050963fc7cdbd5ae89aa7a4a70"
}
Frame {
msec: 960
- hash: "13d533b5b3b01be7dbad7b8403ce1c24"
+ hash: "b47ad6fb8b364e3c2764bf31e62f21e0"
}
Frame {
msec: 976
@@ -250,239 +250,239 @@ VisualTest {
}
Frame {
msec: 992
- hash: "ba51fa05accf637b31328ab0a11e4b61"
+ hash: "ac1a6692030ed80cd34c082ac70ea06e"
}
Frame {
msec: 1008
- hash: "25c783c07b5eb03c351274c3b6494e24"
+ hash: "068a6b82a35d94e3db3eae772c7da56a"
}
Frame {
msec: 1024
- hash: "5665113db0b932b07ac707875e5d77e6"
+ hash: "8252bb45e74bc09e1d5e6b3951fbb08e"
}
Frame {
msec: 1040
- hash: "aceeb64e5935f1889828f3487767db3e"
+ hash: "a5d7ad9287238780cb45c61bb70d6cd4"
}
Frame {
msec: 1056
- hash: "7c66c51a9fd694940a93a7acf036e6d3"
+ hash: "e0307f3a1193af0df0cd52d7dac44db9"
}
Frame {
msec: 1072
- hash: "8b699d11b0a8c7df7df448f5c27a0bc2"
+ hash: "d649cf0c4a768dba1a0380b64bc7e48b"
}
Frame {
msec: 1088
- hash: "c592cebdfadf68eecbddb0add92afa42"
+ hash: "3fd512a0860c17abbb6ed71488cd7255"
}
Frame {
msec: 1104
- hash: "e175f718809eea5b38a1de46f061871f"
+ hash: "26032efe6efd1de4b5fae23ce4e28a0a"
}
Frame {
msec: 1120
- hash: "3182ba22228e8cd056db81eea4678b5d"
+ hash: "846652a87d93e397d1a84b187b7aafea"
}
Frame {
msec: 1136
- hash: "e09776f37769f34bd2d856c6af3a1e53"
+ hash: "4dfdaa030da4c72a0e1a19bfd70b5856"
}
Frame {
msec: 1152
- hash: "085f9dd2539b950d9f62bdcdf4f3b172"
+ hash: "365ad99db7302dfe078f4283af13f5ca"
}
Frame {
msec: 1168
- hash: "3c290084b9c251e039aef4df8581ed31"
+ hash: "f378a096243bd2c6f7e33e0baf24716a"
}
Frame {
msec: 1184
- hash: "893f5dc3cd01ace8d31ebc63e0d7e132"
+ hash: "e972a84715d314e8814cb7fcab1ad379"
}
Frame {
msec: 1200
- hash: "5cadde434641daffa52965659a4a056f"
+ hash: "8826dbafd12ba2a7437623c8967f2699"
}
Frame {
msec: 1216
- hash: "741d34abca5ba1a2e5678f3ca272dbd3"
+ hash: "effa889b33b97f665a21d6562acc45fc"
}
Frame {
msec: 1232
- hash: "96dd3f940c637b085026e224021239bd"
+ hash: "6ebb408651cf5fbb2fa8788e0ec544d6"
}
Frame {
msec: 1248
- hash: "df8334c4ce1ca5f2317a771e787aea96"
+ hash: "c4f45fd05b7b4f00acf80f768e99af38"
}
Frame {
msec: 1264
- hash: "aeef63be208b75c9246248025c977b75"
+ hash: "735a7c461f6b10cd967b03c173bfd81d"
}
Frame {
msec: 1280
- hash: "8722a8e9b1cca4cf20ec31da27f38614"
+ hash: "608cf5ebac88726ffe7e66d763d74e27"
}
Frame {
msec: 1296
- hash: "bdc1392f8e1a55e7c970502785024a89"
+ hash: "6322c5aebdf814bfc5bfaef8b6bb4d91"
}
Frame {
msec: 1312
- hash: "ed2be797ca3d623ca532fea7ca5b1f2c"
+ hash: "730b7cef2e0cf57a4721e77e6849b862"
}
Frame {
msec: 1328
- hash: "bb79d75488df131bf5443371c6b4464f"
+ hash: "13879c0772938e39d820b6fc10e0f7e5"
}
Frame {
msec: 1344
- hash: "0b7dd91d5bc8290d4be1a0af6b2756c2"
+ hash: "0710bf8a2beff02009d4bb02f2404b7b"
}
Frame {
msec: 1360
- hash: "4f1c88a745105934fb94a6a3e3620602"
+ hash: "2cd38c2cbf3d8b7eb3a50b9db4bb8f7f"
}
Frame {
msec: 1376
- hash: "c5a3b476c66e9b6a33f93d5114303669"
+ hash: "4e988a74a3846171f86d4d69ce3407d9"
}
Frame {
msec: 1392
- hash: "3104791545798f8e43ca976c893d078f"
+ hash: "82cc4b40fe1190de5a2cbbf3f11ac7b0"
}
Frame {
msec: 1408
- hash: "3c8c329b4c757ab37054cbcc93840a75"
+ hash: "f15bd345b992b39167165a640ad45794"
}
Frame {
msec: 1424
- hash: "36b1fc7d93664005449d818dd063c8e7"
+ hash: "be5ca66da00327ecc9f5dde2aa3660d2"
}
Frame {
msec: 1440
- hash: "25927d84d7394e912977d25ddf555ddf"
+ hash: "f97a1e863c36477d31a78342c7aa21b7"
}
Frame {
msec: 1456
- hash: "6f226e26d6a40b3688923fb833ce0fd9"
+ hash: "d137a2a6ae95aba3f7a2b2a0560718a5"
}
Frame {
msec: 1472
- hash: "75aaa5301fc8d716371d9fcec6491e81"
+ hash: "e7529db7cf310e41eb0ac42ab86ae317"
}
Frame {
msec: 1488
- hash: "fb87bcb1b620d48d6bfa6eeb94025907"
+ hash: "66914e90881a4a8751ba5391ac41a70b"
}
Frame {
msec: 1504
- hash: "88231c28ef82974f8eb47060e64176d0"
+ hash: "249863a5ef1a14ca0eb4397d206dfc1e"
}
Frame {
msec: 1520
- hash: "06db390a17fc2fa4a93012a168801d05"
+ hash: "26095384b724a5e704c7b627930f4e22"
}
Frame {
msec: 1536
- hash: "41400211939574696e04bcd615130f34"
+ hash: "98281eed5ae9d9f933e47a8fba8709f1"
}
Frame {
msec: 1552
- hash: "ca979c24603d8cd31583c1670f15b1a9"
+ hash: "d9b50c54255edb300e36af2648ef8f30"
}
Frame {
msec: 1568
- hash: "515a32b5c4567c8dec3004c41214daa1"
+ hash: "9bde860d92f5ec979fa5c274fd1c13a1"
}
Frame {
msec: 1584
- hash: "d4fbe8e354db8b1b5fc543daf7007fdb"
+ hash: "39c13a42f920f57d9f9fe85ebc4e68fa"
}
Frame {
msec: 1600
- hash: "ec6351064566a120836cb115bb81e46a"
+ hash: "e80bd130bad05078212089586d6c2731"
}
Frame {
msec: 1616
- hash: "74dcd99e1ba3e5e8447d2695e4c4acd9"
+ hash: "753732b5309fd8dd7daa16761dd7dad0"
}
Frame {
msec: 1632
- hash: "7a751f44c384b87b0c2f633932587795"
+ hash: "2eb56a98f728b224f7db073c6ea3c3b9"
}
Frame {
msec: 1648
- hash: "04e45b241cf498777835f74feeea0c15"
+ hash: "21ab167d173e244ffb471faddf704e81"
}
Frame {
msec: 1664
- hash: "66096d2ef700bb64771fa192219e034a"
+ hash: "9964a0386ae349b909424f588d8decf5"
}
Frame {
msec: 1680
- hash: "1dd2437b0f63a8acaa8c62819d7de10e"
+ hash: "cee42f46df4c879fa6fc378481ec728c"
}
Frame {
msec: 1696
- hash: "89e6b25fc16c5d1eba04cd0f7bd2f910"
+ hash: "4779aeed276cbe4112484d189d1baf8b"
}
Frame {
msec: 1712
- hash: "7cd23dbc40340bc3652255d4a65ce7ec"
+ hash: "d482cd14db734f5fed2eaec7d8c0c555"
}
Frame {
msec: 1728
- hash: "5f94c6ba73d2dbeb8ec90b17cb7fab6f"
+ hash: "1f8b0681711c46afcf8af66df6d7caf8"
}
Frame {
msec: 1744
- hash: "e8e01bc97bbd349e2f64a59d13ca25a3"
+ hash: "44b0e6d69fcd2b7acb499dfdfced026b"
}
Frame {
msec: 1760
- hash: "a0cf054ef1005191637173a22e325891"
+ hash: "b6e25c4a276917b7f7f9189e65d965a8"
}
Frame {
msec: 1776
- hash: "fa8b35c0141049d691735b26eb9410ac"
+ hash: "07e5da936f8d5c84606fcdc49fc6aca2"
}
Frame {
msec: 1792
- hash: "c55b4d3a3ee530480d0a0e0aa52f340f"
+ hash: "f27a54a8d37ec62f54e083f1ca65aada"
}
Frame {
msec: 1808
- hash: "b2639e3e32e513c991525a87448e805d"
+ hash: "074403259022efd08fcbd9d3a3052c79"
}
Frame {
msec: 1824
- hash: "d66f25378bbec3eca675a90795567825"
+ hash: "a126762087c8f94beef81216b6010f0c"
}
Frame {
msec: 1840
- hash: "13bb009108dfcdc861a16ab33a3c4f3a"
+ hash: "96b8c7cebbb9676ea4f028907de71bbf"
}
Frame {
msec: 1856
- hash: "3a09ccaf62d8929def529260da98dc7a"
+ hash: "e6f073522d0af8e504fdb7df971f5e0a"
}
Frame {
msec: 1872
- hash: "79564d7447732fcfdbb81ff2bcd85a4f"
+ hash: "9223ed285f322fae3ba2b52afb408586"
}
Frame {
msec: 1888
- hash: "149c65ef5ec18af4fd264fa284bfa027"
+ hash: "b24575dd4c0b0da0b99a03c46209ed3a"
}
Frame {
msec: 1904
- hash: "e5370728e870ac9f907aafbd17526631"
+ hash: "5c82bc860f64183e66aead451ee5b893"
}
Frame {
msec: 1920
- hash: "98034cff5b93c905bbc53cf9582bc4be"
+ hash: "3172ab9c62b0870d6894b13720e54918"
}
Frame {
msec: 1936
@@ -490,239 +490,239 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "05c3a8016110ad576c349964af3d4d05"
+ hash: "5f8e85839f9ac82f46a17f871c3fffbc"
}
Frame {
msec: 1968
- hash: "91caa4f007dfd1ab7994a11bf4b4fa94"
+ hash: "245219fb6c4aa37d8cba7b5e1f74265f"
}
Frame {
msec: 1984
- hash: "d1fb233313ef6e7be742a504e171f6c0"
+ hash: "b68cfc5366c4ed8d1e5950a1facf0d85"
}
Frame {
msec: 2000
- hash: "0e20bbd3c80189a6d8ea23205bf7b278"
+ hash: "dd5c2d2470cc87d57d35ecc9ae8a3528"
}
Frame {
msec: 2016
- hash: "6f2b8de20e5800bda7a533353bb5805a"
+ hash: "1a15d7f02b35d046305b40f9e6a6839d"
}
Frame {
msec: 2032
- hash: "e25e8c3e7df20b0b7e8f25fba5d2608a"
+ hash: "d44c382ea28d429e6f8bbef9ae17338a"
}
Frame {
msec: 2048
- hash: "8802faef3121ac361b448b42b89d2176"
+ hash: "63598cb09d5ecbeb991c6db778c5c002"
}
Frame {
msec: 2064
- hash: "567c710da8f36b51192a8994611a50a8"
+ hash: "b3fcd0180ecd01e2ad0c0114b3dfbf78"
}
Frame {
msec: 2080
- hash: "d45309aabf9c510234276c28ef4e3c35"
+ hash: "8d441044f5f10da23708d7ddf0472989"
}
Frame {
msec: 2096
- hash: "ef698cc1ea8eee480c57f38a8f704e6b"
+ hash: "6e87518a368c39d68521046773c2f922"
}
Frame {
msec: 2112
- hash: "5301682074b5343d18748cf6e7bada1c"
+ hash: "59e377ccc851ee361e3874ad5ec18e55"
}
Frame {
msec: 2128
- hash: "dd5220c0d94b747cd462e35e41945ae8"
+ hash: "57a9b0431c7db130bfe4d6603f98c1f5"
}
Frame {
msec: 2144
- hash: "0d1c246956283f80eff128bbb5241e03"
+ hash: "526c93727c6321782a373ea6952a8784"
}
Frame {
msec: 2160
- hash: "7b57a3c6ee9b8ae316e2a2d7a1ab630d"
+ hash: "fcd0a4605e27ecb0bac18686e7846b3b"
}
Frame {
msec: 2176
- hash: "61780d8d53f21b275f9ee795c5519cbf"
+ hash: "d697892f9944c67b5aadd7ad641e3ee5"
}
Frame {
msec: 2192
- hash: "1876746b0b6bdc40c808c3afb0ad00e8"
+ hash: "f46fd7e568d0995c518749ec0f5a0882"
}
Frame {
msec: 2208
- hash: "6f7e9a1d8240b037501b486245eb5c33"
+ hash: "31cd2243fb23d4332c02e91f9956f648"
}
Frame {
msec: 2224
- hash: "8a5f3d8d9e0147072690740d567f8a2a"
+ hash: "3b29a9c0121ff127b69abba9c0b13c2c"
}
Frame {
msec: 2240
- hash: "2ea7f42b92e407b50ebf82c841e77f7f"
+ hash: "ecd789e744ebb5dee7f25ebb089407bf"
}
Frame {
msec: 2256
- hash: "7ce3e829b75be2f2f72952c614748b51"
+ hash: "c99a6dfad8d750b7e67c1e3ef1021cbb"
}
Frame {
msec: 2272
- hash: "112cbf9bf521c2fb0f0573081feb6051"
+ hash: "82d18b0c193f0ada9cae68e9f6ad5ff5"
}
Frame {
msec: 2288
- hash: "c6d16bde84f714d3f14a105deb68e989"
+ hash: "a09e8144b06db76f5849561d880f037e"
}
Frame {
msec: 2304
- hash: "f1e3f7416233bc8b3bce90672185cbd2"
+ hash: "3e6922ca54c809a32ed5ef72e19d7ff0"
}
Frame {
msec: 2320
- hash: "009fd4bfc354c91f3766bcf32732b027"
+ hash: "28e46da32bf34b3e1cd3d351e4c40317"
}
Frame {
msec: 2336
- hash: "67220a780fc2cd8e9fbd314c5f000f7c"
+ hash: "297aeeaadc5f3268d95320bc3b33a429"
}
Frame {
msec: 2352
- hash: "c306d1be1dc40fb115b583a83497fbb0"
+ hash: "31721528cdb17b03d3d6ca9f9a91370b"
}
Frame {
msec: 2368
- hash: "f6bedbbffec4447da8fda2d75169644c"
+ hash: "52fd1721330321daaea0b56122a72e5b"
}
Frame {
msec: 2384
- hash: "be4f28bd814ce3688bd7a28a2dc71606"
+ hash: "739c5179b9739021dbb522d01812388c"
}
Frame {
msec: 2400
- hash: "130ec2ff6e06927a02df769743de19b5"
+ hash: "4ae07f58d3a514f5c08f314c5dd445c4"
}
Frame {
msec: 2416
- hash: "34ffeec40133a30903809a30d9108887"
+ hash: "4305ea97d47bac3fb0eebf9181b3ce48"
}
Frame {
msec: 2432
- hash: "133a89cf6c784106066b96f51e43f43a"
+ hash: "21c99059dba068bc145896217cc0883c"
}
Frame {
msec: 2448
- hash: "6336801efb0d62e5b790ff67b76754a5"
+ hash: "0a514ae5d36acc07c7809a7b4f21ed8e"
}
Frame {
msec: 2464
- hash: "04d50179982fdf346a33e346eeb9eb62"
+ hash: "550ce887f462ace686bc6a9021c5cb73"
}
Frame {
msec: 2480
- hash: "5432d629a9bce20e041841d79acf91ab"
+ hash: "b65857dcfa0b1281dd5b9821a12dd8e8"
}
Frame {
msec: 2496
- hash: "afbdef35aae3d79f0ba992a34c46b1dc"
+ hash: "5a6bb448a570e1a3eef142b8054f3717"
}
Frame {
msec: 2512
- hash: "18a051efc4bf47515d2220549970fa69"
+ hash: "b38e2f6b4063e1b8a40292017c5ed4ec"
}
Frame {
msec: 2528
- hash: "a0cde51080347ba164227c8a40cf37c1"
+ hash: "fa7545e6e3fc92d62af2f7651077da5b"
}
Frame {
msec: 2544
- hash: "b2eeabc7208b7a3f9e5a7d16f984be86"
+ hash: "ebf0c79720a5692b761b62c4ba360875"
}
Frame {
msec: 2560
- hash: "ee5c97a5bd22b22a4e18998b6d056517"
+ hash: "cb5356376d97308a4d102c9a53e93abe"
}
Frame {
msec: 2576
- hash: "84f4575d2c4ba3a91ef72cb8caf64e63"
+ hash: "879f434f4901bdcb166294336c60e26a"
}
Frame {
msec: 2592
- hash: "bd14115e10086864de3ab6a7bc13f9a2"
+ hash: "3ab575ac04bdd455346c0460aed413a0"
}
Frame {
msec: 2608
- hash: "9b3672f731fad142ae7e3621a325cf21"
+ hash: "8f08366cb474ca2a1988ebba9d65ecaa"
}
Frame {
msec: 2624
- hash: "17d1887942d2b7297b6f3a2545ec8bf2"
+ hash: "2939cf0235f98aeaf48b3f28964cdddd"
}
Frame {
msec: 2640
- hash: "c5c8b41e74b90fcb9d4da432fa01e361"
+ hash: "9cf4b339914e48f896dda17e08759472"
}
Frame {
msec: 2656
- hash: "a2992b652305077906db9dcbb90c1a23"
+ hash: "3f5568ac7a4386f1d5072f1cda0c35b8"
}
Frame {
msec: 2672
- hash: "bfb30aa4caa43833eca59ceaaca04084"
+ hash: "107edbf8181f79cd7847d0154b6eda11"
}
Frame {
msec: 2688
- hash: "cbb06915ae6176ef52fdb518fb5a12de"
+ hash: "9254497b95b89a7d40903edb04a3764a"
}
Frame {
msec: 2704
- hash: "a894d34c39b274149a9391a5956f0666"
+ hash: "7e7d25a2ee3fbfd67a3b8fecb9fe9202"
}
Frame {
msec: 2720
- hash: "7dcc1008d2287ca15f726854e5e204f2"
+ hash: "03759f59bbd2be573acd6c03eb088edd"
}
Frame {
msec: 2736
- hash: "811db22f9a25dd594f59d97adb41b9ce"
+ hash: "58689762be6c7d3d6de6f23580ec8886"
}
Frame {
msec: 2752
- hash: "6535cb3f4cf2839158f172bd0c1baf88"
+ hash: "0d4e315f9b079a30e6a4294a667f9ebc"
}
Frame {
msec: 2768
- hash: "1919a3d079c06fbb00b6a23d4a47951a"
+ hash: "3f3dfa1c8d160238dae2da79a6a569f3"
}
Frame {
msec: 2784
- hash: "69f3525379f7628c4435d2681a2a0bb8"
+ hash: "b3cd7c3034e2a34c4ae9ed7f3144b2cc"
}
Frame {
msec: 2800
- hash: "4ce4253e733c24a1a988de018916d0b2"
+ hash: "c27d3a9057d1f15c6e0b2d427ac12ad2"
}
Frame {
msec: 2816
- hash: "7610bee04c98b9af5e6ae34f4a1a4a09"
+ hash: "9b25ab315d9bfc582e41c05e88812cbe"
}
Frame {
msec: 2832
- hash: "5e2a2c16c0a218afc3eb9095f3432f41"
+ hash: "e75671bfb99741dcff476690ede42166"
}
Frame {
msec: 2848
- hash: "0124a41ff860d31b3e36973226db2916"
+ hash: "7dd3307fb41277ebcc4339cdb7747d7c"
}
Frame {
msec: 2864
- hash: "a1126e1d8cce43dfb571803a62f790de"
+ hash: "a148bce140f1637e27ae5f0207b75351"
}
Frame {
msec: 2880
- hash: "6eee371fe5cc8b052ca49bb5e3509307"
+ hash: "64e57a31c1baa16bcf47f2202fd6e2ed"
}
Frame {
msec: 2896
@@ -730,239 +730,239 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "331bcae7bd6aeaede3556cf926bd1a0c"
+ hash: "83381c54b1923356c403cad2ae2c3519"
}
Frame {
msec: 2928
- hash: "a7561f3a6ce4fee43e4b06dfe5ee7844"
+ hash: "e110f28619c2ec7c1c8d479793b93e54"
}
Frame {
msec: 2944
- hash: "712e52e72cc01ae29cd7e736a78f94b3"
+ hash: "996a9a698f1a7c673eeef67501d7b81b"
}
Frame {
msec: 2960
- hash: "d34a4414fca4ef7a2cce288d438bfcc1"
+ hash: "6cf2465c8b7c70343a26e981e6492212"
}
Frame {
msec: 2976
- hash: "1c2c5241aee7efcc9a6adcbe01f56609"
+ hash: "3a9078adf3d4ca207c97b62ad525998f"
}
Frame {
msec: 2992
- hash: "90a8547113c36002f62405aac41de5b1"
+ hash: "0bf0d9a6a202119daa6a44f17d03b9ed"
}
Frame {
msec: 3008
- hash: "5726801ea37dcfd2c087c9523b360b55"
+ hash: "6dfadc21810c9176dad599a6f7f672b9"
}
Frame {
msec: 3024
- hash: "a371d1f9ef687f50d433b0efb6bb57c9"
+ hash: "f1f866c6245bd6fd8141abfb8a040d46"
}
Frame {
msec: 3040
- hash: "75e0e2728e2160dcc012a21c759c62d0"
+ hash: "84329287c7555bc6207039ea632632b2"
}
Frame {
msec: 3056
- hash: "428e6d8adbd0e85790365d7537dc37c8"
+ hash: "da7e80527f58c93bce9267958ce4c5d7"
}
Frame {
msec: 3072
- hash: "798babedde2192b4ac9becc5bae3ea62"
+ hash: "cd8eea7543ebc42971b3f41ea21dd4ed"
}
Frame {
msec: 3088
- hash: "39745e87e8e96993fccfed6710c3c14f"
+ hash: "b9abb526dc3447370d847a5bca868b50"
}
Frame {
msec: 3104
- hash: "08624110f2bba4e676b4a339ead23f78"
+ hash: "b8d63ac8331a9375ca06adacb56d12ea"
}
Frame {
msec: 3120
- hash: "1d45fc90eb70a3c21d503284637355de"
+ hash: "20fcdd73a4cc2abebbc462c32fb9b2c8"
}
Frame {
msec: 3136
- hash: "37c6eed126e265f4a60a1bc92879e18e"
+ hash: "3f656f80771828ee6696a2e0a0626ae4"
}
Frame {
msec: 3152
- hash: "a25f2accf6e19eb293a5540efa9447ec"
+ hash: "0d99110edca4f8ec544d10d680d27092"
}
Frame {
msec: 3168
- hash: "5212d86075595cb1a9c47cf683ac411a"
+ hash: "48026f803bd17f56d13dd946fb359e3a"
}
Frame {
msec: 3184
- hash: "8f43028def9e949ca3a15fdec9932a59"
+ hash: "40759d794139327e2e66685c9fcb047b"
}
Frame {
msec: 3200
- hash: "90b55602b8aa530d634db72c202f2d75"
+ hash: "419953a3f882008e82bd733e63e66ab6"
}
Frame {
msec: 3216
- hash: "f5a84978918f8987b49ce500959d81ef"
+ hash: "ddcd288b0a825ef6899755fbad56f2dd"
}
Frame {
msec: 3232
- hash: "588382357311925157e12ae7a576426c"
+ hash: "bc203d9f0f32efdd177353b9589bd127"
}
Frame {
msec: 3248
- hash: "ce3e9a93f60579f77f6503637cb316d0"
+ hash: "a4ae6c449b53545a683cd33bc9274d59"
}
Frame {
msec: 3264
- hash: "63c2ba78f5a81375fe79c5b2b2030b55"
+ hash: "59e7c218b5a1b857469972f966489a43"
}
Frame {
msec: 3280
- hash: "7dceb950e0cae31bddeca1d279a688f3"
+ hash: "521fc5833ab0e3088200e1fea9a887b0"
}
Frame {
msec: 3296
- hash: "c6681bcf60562b16eb515f6b0bfdc751"
+ hash: "bd2386f85afb7516d147bff4c07e239f"
}
Frame {
msec: 3312
- hash: "cd2b41f01af6b80622158bf38a13c609"
+ hash: "5298fdee07ff2ff34121f064fed3db4e"
}
Frame {
msec: 3328
- hash: "69401bc38be274791a26f6ea161eb296"
+ hash: "311a8f163cebf7bafcb47c8e6db40ed1"
}
Frame {
msec: 3344
- hash: "425238342219c4fc66c4a0a8b16c5345"
+ hash: "ad6342bed57257a1616a74e19f2bb484"
}
Frame {
msec: 3360
- hash: "a501082add225fa59f468808d34d1c16"
+ hash: "4eb186c5f4963dc72b3dbc3a9da4df65"
}
Frame {
msec: 3376
- hash: "58bba6d1eb3166e7ac9bfe36cd9a4fa9"
+ hash: "58f1f128001dd1ce0d405595acbaab2a"
}
Frame {
msec: 3392
- hash: "293df1a2bdd526e97d5783f46f74262c"
+ hash: "ba4a39b66cac22fceba9c4ecfdbae363"
}
Frame {
msec: 3408
- hash: "6808ee202e8eae3c72474126b59aa0dc"
+ hash: "bbfde54a4de637bc1c54248e2e342544"
}
Frame {
msec: 3424
- hash: "7ef977f275851649324e333d58777156"
+ hash: "ddc3b4e87782e0472630e2f9f8a57099"
}
Frame {
msec: 3440
- hash: "12007edff45f9cc21a2f633052e4b9d6"
+ hash: "1bf1212686520da772fc18ca7684a924"
}
Frame {
msec: 3456
- hash: "bc1d362d3a42ab3610136727605222dc"
+ hash: "706ec5a3b48123d3b5113d55b71f7968"
}
Frame {
msec: 3472
- hash: "6bfead8d9644f5abdd3b896714521002"
+ hash: "62b08db0c3c4f1313bcf4a1e7b90badb"
}
Frame {
msec: 3488
- hash: "341c311e4b08d69a053c1faffc208838"
+ hash: "ae8409fed9d8919b1af2b4d0eafce670"
}
Frame {
msec: 3504
- hash: "54e4c8001d06c7c48180865598f5f5df"
+ hash: "9f6ed6ada78e42f06f33514e363c736f"
}
Frame {
msec: 3520
- hash: "e69c142bf2a6cf85194de5df91e54886"
+ hash: "97e9a504c2c4ba5329a616810fc19505"
}
Frame {
msec: 3536
- hash: "fb9fda1e790c64aea264a6af0020ce33"
+ hash: "348b6d15b8ef6862818b4fbdb938f241"
}
Frame {
msec: 3552
- hash: "74c27a13090e8eb78bc157daff840e07"
+ hash: "c1845df466f5690a8d7a439d33a27f7d"
}
Frame {
msec: 3568
- hash: "f9a8c1764b0a1625ce336e80a91db00e"
+ hash: "aee2486331275b9f4116b61588ce169e"
}
Frame {
msec: 3584
- hash: "11fd6f7cee3971ebce744f20da77139f"
+ hash: "efca3eaffa3421d68d788ee3f0ec068c"
}
Frame {
msec: 3600
- hash: "6cea030cfc1c53772f14d760d046d7f8"
+ hash: "35f2940b51ed8c4734c23a43bf6fe448"
}
Frame {
msec: 3616
- hash: "599cf14ec73f6812ffb49312d3d8f742"
+ hash: "92b7d34480b7fab4dd39bbccfa8455a5"
}
Frame {
msec: 3632
- hash: "879798ae161f1550096abdfa113e3eac"
+ hash: "4408049f405ecf5c3c696780390e2155"
}
Frame {
msec: 3648
- hash: "4cc9b679554a2a8b809a88504c17f86a"
+ hash: "29aa30678d5c87c79ac67198e4dd7bd4"
}
Frame {
msec: 3664
- hash: "943bca80ab42c1856aa095add705a3fe"
+ hash: "2f88ac156017b20795f01716d9e9f2e8"
}
Frame {
msec: 3680
- hash: "0386a55ebc0cd32b4b7727eac2908a59"
+ hash: "4d72dec4a2e8edcff806c11f3742cf07"
}
Frame {
msec: 3696
- hash: "74ed8ea60f1c1b3fb097eb7f5bca43e8"
+ hash: "3f5ebad282a4aa9c03a17d32aea03151"
}
Frame {
msec: 3712
- hash: "225f78966947d20268f1bea32093c0c9"
+ hash: "a8d289d15353d45159607377de285732"
}
Frame {
msec: 3728
- hash: "d2ed6af6fbdfbdcd9c82a588b72c5f6b"
+ hash: "af2d2fcfa4510e0d26ea90fc7711b0cf"
}
Frame {
msec: 3744
- hash: "3c0e45078e5223335a4204fb8904d116"
+ hash: "aed6897bc8b2163822a052e1cc9ad36b"
}
Frame {
msec: 3760
- hash: "58ad3d7030b079cdedf1a84d6c6a59fc"
+ hash: "bf7077614b5045f79c8697bab1e83839"
}
Frame {
msec: 3776
- hash: "2c8ce9f237a2c373584b661defe84e7f"
+ hash: "e5c8c0bf1fce3a964f4bb911ffee0bdb"
}
Frame {
msec: 3792
- hash: "c2f2ae8c7481036ddda01776db61ef0a"
+ hash: "bcfe4aebc880809f56d480f23b17dfd1"
}
Frame {
msec: 3808
- hash: "7236e9d1e086479acd5047070a4ae700"
+ hash: "2ce342f7864ab26124093edc88585c97"
}
Frame {
msec: 3824
- hash: "7f95776ac1804971cc939f8f1f0fee70"
+ hash: "8be15d95125e03a0282e897096abb443"
}
Frame {
msec: 3840
- hash: "d6d76b50b7d2ec522a51d2512a5aeff8"
+ hash: "a4486f30becceca3ec3cc5c8718af82a"
}
Frame {
msec: 3856
@@ -970,239 +970,239 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "29b8b535c9321752a68b17400c7133ac"
+ hash: "38de7ed0d05015f9b06a4bb278fc96c1"
}
Frame {
msec: 3888
- hash: "846f4f5718bce8dc7a333d8603bfe729"
+ hash: "1cd9a38bb1fc8b06d5c05cd28719d4b3"
}
Frame {
msec: 3904
- hash: "b285f6a417bfb46add698f4193b39552"
+ hash: "682ba6e2eb83ce1b6bf8526b21cf2694"
}
Frame {
msec: 3920
- hash: "b79708e4aa2b05a1c285dd075127460d"
+ hash: "3da075fccb3d26f30530a69f86d999a8"
}
Frame {
msec: 3936
- hash: "0cdded9c7796292cd38a3bc2fdc65597"
+ hash: "b0fb39798dfa94d0898e5e0d7afd1277"
}
Frame {
msec: 3952
- hash: "6f8855c20666a58bbf4ade762403180e"
+ hash: "7e41bbe233d6bc7354ba4516edec4841"
}
Frame {
msec: 3968
- hash: "1a7979b578c8b330099a5e840d5d2bd8"
+ hash: "1d3f24f20ba123940d97f09949cfcc0f"
}
Frame {
msec: 3984
- hash: "30fb74a2bf4e1ec57332713994e405cd"
+ hash: "abc7a82d91e28c5a3ee9ffd663c8c7bd"
}
Frame {
msec: 4000
- hash: "1c7df42f90a867350adca840106d3ba1"
+ hash: "e685c0218a3d80584013806707693eb0"
}
Frame {
msec: 4016
- hash: "5509a232afe047f365465ef8fd9f0af0"
+ hash: "6ff98dc7eb0453f058a5d4cadf86ddf4"
}
Frame {
msec: 4032
- hash: "2149d59ffd7c07bdc0bcb2d8ad9b1ca3"
+ hash: "5a3d0c2c95cb85678f32a8b68dc8d399"
}
Frame {
msec: 4048
- hash: "4b8848019eaf4af67db4db09b98b183e"
+ hash: "d5bde2f063d524ac0e7bcef26d543668"
}
Frame {
msec: 4064
- hash: "e3f6f9db89bd81ce68f8dfd401f1baa8"
+ hash: "64e7bc5e0798ecd009fd05cbc1523977"
}
Frame {
msec: 4080
- hash: "6e8d991c83094c89025148bc0943e554"
+ hash: "3c87a9ee92661da2aacc09b71dd393ca"
}
Frame {
msec: 4096
- hash: "ed4d8bde61581cdcf6128c65d427846c"
+ hash: "bf4806e0e8cb73cded37ca97966078d7"
}
Frame {
msec: 4112
- hash: "c63d0baaa43c4f6a0f0150ecf268b06d"
+ hash: "a5956031dac15dba64bf49c9d308c9c7"
}
Frame {
msec: 4128
- hash: "b36c6a0092f400bb99b2c68a0ba4e6ce"
+ hash: "51395284acf731266eaed86387ad768a"
}
Frame {
msec: 4144
- hash: "b4b1059c1e00ee77fda538f9e71a6206"
+ hash: "489ab28b773d48b8fdf9cf674b1da87f"
}
Frame {
msec: 4160
- hash: "e7c36e10dee12ea2d22d7c17cde9d8ca"
+ hash: "4c6a5b7442a4ff241329157657b8c9f7"
}
Frame {
msec: 4176
- hash: "78d070c37bbc707e38db98896f997349"
+ hash: "629faa780676c705ca8349b8765ed38b"
}
Frame {
msec: 4192
- hash: "e56cb5fbb7713a66ef1f1577eff20db8"
+ hash: "28654cb8801bea906a4f181004ed0e85"
}
Frame {
msec: 4208
- hash: "17e466af39cdde893cf93fa38392bb90"
+ hash: "2abf774ccf33e6d0af4a8c4154e2ab2a"
}
Frame {
msec: 4224
- hash: "75bf32afe1071794bba58623d7165a22"
+ hash: "f1cbdf35081b08b676d1661834829c9a"
}
Frame {
msec: 4240
- hash: "6de50f6748021b99731f6cb25d6d6ec3"
+ hash: "a49ef4ec40d59be1e872c6f8bcdbbb4c"
}
Frame {
msec: 4256
- hash: "cbd224a02668f57413b6999dfb141723"
+ hash: "dab02c8afd3914177bfdf29e68b54291"
}
Frame {
msec: 4272
- hash: "f770a74ce40615095798b244af3cc097"
+ hash: "7bdca9571a346117277b0de6fa1f6e5e"
}
Frame {
msec: 4288
- hash: "faea3d28eb65656392860d888ec087b1"
+ hash: "11dc19768b1a4a787f46082a583c068c"
}
Frame {
msec: 4304
- hash: "1f1d5ee10403184ab83ec5c1f94c4290"
+ hash: "5e72d13702108d55d650a01c1caf2cfb"
}
Frame {
msec: 4320
- hash: "501253b40939d98beac9db85d3cd5b4b"
+ hash: "e5a379841ae54f07d54c4baa78fa7b69"
}
Frame {
msec: 4336
- hash: "0819ece70a98a3ea4371947375b52d46"
+ hash: "88d2363709d377cad251dc956b0ff866"
}
Frame {
msec: 4352
- hash: "2b5f64e4a03aa416a4cf172c99aec498"
+ hash: "5e6db7322e69f41d37efdd35a769df4e"
}
Frame {
msec: 4368
- hash: "931a6fa175b8d540fc745d425a9b93b3"
+ hash: "cc781d136bb48a1a41bd9243327bacc3"
}
Frame {
msec: 4384
- hash: "fa6f54fae79a428029fbd0ae6481bcc5"
+ hash: "69612d6379a204fa1e1c6d7b58f78370"
}
Frame {
msec: 4400
- hash: "7796756dfd30688ed74c2e6e0b05ca5a"
+ hash: "a81c15225bc81a19e22375532a5457ab"
}
Frame {
msec: 4416
- hash: "b42cfbfe1527412b977b8e2c7506cdf0"
+ hash: "a97bb0ac528a1377ef8f6bf655795b69"
}
Frame {
msec: 4432
- hash: "c81300e8d29770c0efd2ab91d75a669a"
+ hash: "7fa6d66219c66ae8aec43e44626b427a"
}
Frame {
msec: 4448
- hash: "923494f5147a85432e6efbcf5b79e26a"
+ hash: "99f47bc80b706692f16c6c5fa3c0c85d"
}
Frame {
msec: 4464
- hash: "3aaffee732cb243bbda5df938f487b2d"
+ hash: "55d6cf7f545c74ed59a8bf040f9d5d58"
}
Frame {
msec: 4480
- hash: "ce8e33f621c7f5cd5047da86bdef4084"
+ hash: "1a07d14fa7866c5268e622d0925cbf4d"
}
Frame {
msec: 4496
- hash: "55e2bc371ea853ee4f3ba22e35c20e8e"
+ hash: "a41b281563c401d0e4ff55f4a3c45e18"
}
Frame {
msec: 4512
- hash: "e8bec4813a6c8f212c70019f907ba904"
+ hash: "6bff67c2f53a4e620c63eea539f4abe0"
}
Frame {
msec: 4528
- hash: "aae9dd25ca9935c478e5d9fa629c6f70"
+ hash: "a5f06e5ff2fd7f390279f7df822c8297"
}
Frame {
msec: 4544
- hash: "30828a796072deb6e6505090dbc2c840"
+ hash: "213b174770c13105b89a1d88cd2f0b7c"
}
Frame {
msec: 4560
- hash: "c8ebeb539a6ebb2ca47544f7f1617da9"
+ hash: "dde34ca92317a54ddaa2f9bff515d91c"
}
Frame {
msec: 4576
- hash: "3ad9a23b57b0938a430c636910dc312f"
+ hash: "12446cca2aae19fd721cda11bbb51bae"
}
Frame {
msec: 4592
- hash: "1a12587ebbae18dd761c70c4ed845fa5"
+ hash: "f4d00502cab0a843563fcfd336b74596"
}
Frame {
msec: 4608
- hash: "f1d6ee0cd7aaa221d151c2d32e963358"
+ hash: "b6ae2b396adf6068ef3a6027e4b175db"
}
Frame {
msec: 4624
- hash: "e9bbf398abc09d9740dce4e3843c53f4"
+ hash: "370dabffdfc0bebf5d25abfaefff399c"
}
Frame {
msec: 4640
- hash: "f839c105f1897f028611d557b11f5814"
+ hash: "fd496e8c03f85a872bd5ee6e8a85db7f"
}
Frame {
msec: 4656
- hash: "b923b46ccfe53ceb7ea228b12f44842d"
+ hash: "0999335427d63f318e166ea8662c4c22"
}
Frame {
msec: 4672
- hash: "8e3708a8f2ba63f7cb01b8d66d1b3dec"
+ hash: "5a4eb9267cd35a71f6c2daaca1a582be"
}
Frame {
msec: 4688
- hash: "68659fce94c9d019a1d5da6273186674"
+ hash: "4270d7a26d56f1d805b647c5ec7cc6ce"
}
Frame {
msec: 4704
- hash: "56797caf6f2987b7d03c0401871d87e3"
+ hash: "334f1e3c8520196016352bf4d00fbc18"
}
Frame {
msec: 4720
- hash: "de0d89aaa5b1ce0ed99d2906b63e7434"
+ hash: "2bf704e85c197c776a188927a80deaad"
}
Frame {
msec: 4736
- hash: "e3802a76b64eeaeae06b23134b5198a9"
+ hash: "e2c5c42e55dc185977bd5049eb4bd3d2"
}
Frame {
msec: 4752
- hash: "1a3ddf57aa429a407705ae268441c5b5"
+ hash: "7ead4353fdc135d6b959be0ce22955e3"
}
Frame {
msec: 4768
- hash: "319b09c0e4a8c0d1f507594b53a407c4"
+ hash: "ab42998e1e17ac8637d76dc0cf356c7a"
}
Frame {
msec: 4784
- hash: "fd54c9ee19133b0f75c56e4d6472cdad"
+ hash: "030f34f8caf0814eaaf18ea5fda669dd"
}
Frame {
msec: 4800
- hash: "e6b983b491133a41b753411c587c69ec"
+ hash: "6e12a04ac25553142875a10a5c8e46e8"
}
Frame {
msec: 4816
@@ -1210,114 +1210,114 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "2760407d7defa4738d7b9ecb243f41a9"
+ hash: "e2f2ab9a3fe6a3a375341010c91017bd"
}
Frame {
msec: 4848
- hash: "1ff562f05454980d4f677e783ba4bf75"
+ hash: "9301889debd3932772a1c81314eb1ef2"
}
Frame {
msec: 4864
- hash: "43ad6e0926f812af5553e3a8492404e9"
+ hash: "671feec6eb1166c612a22405db9c044e"
}
Frame {
msec: 4880
- hash: "b9c34d52c0c44dcdf8a2ca8a0e20ae65"
+ hash: "648215ffa5448dc173165d24389c014e"
}
Frame {
msec: 4896
- hash: "4fd7f6d183626686569462a9828837d2"
+ hash: "a70806b54806f29d0e240cd63d86b77e"
}
Frame {
msec: 4912
- hash: "3b904440f68aa0009707b5f3a0c2af74"
+ hash: "4bf9ffe611c52c21fbdb84221d3d4dba"
}
Frame {
msec: 4928
- hash: "cc58910f0881ec5b3cb2eec404c19e16"
+ hash: "ae78202b0ebd4c13a92d468a7470bdc9"
}
Frame {
msec: 4944
- hash: "8b638f369c3629530d91e6acac8c5fdf"
+ hash: "fb0c3d6c3e3479abb6a1b44b1a5f3785"
}
Frame {
msec: 4960
- hash: "b403e21b14646ac0cdaee2027125c0ad"
+ hash: "48906c21e17479807f736d7f7713f6b0"
}
Frame {
msec: 4976
- hash: "d037545cc68b7582c400c8c9da49ff2a"
+ hash: "a661a461542b3078dd1dad25bf6d8414"
}
Frame {
msec: 4992
- hash: "551435ecb008ff217eb65a5a77a28090"
+ hash: "387deb0df0c59cfb120313946c4e5c9a"
}
Frame {
msec: 5008
- hash: "a1684c1c0938386bbfb309969114beee"
+ hash: "f2473c6e4877f3035f0b511ff2d27684"
}
Frame {
msec: 5024
- hash: "f803bd7bdc97bb8bbb5103a54901d756"
+ hash: "f88d3767ccd773930ef9d99dfd0e8c17"
}
Frame {
msec: 5040
- hash: "de956b3223e24a615713c35faa403128"
+ hash: "aef8a93d2caafec839d425184176bcc7"
}
Frame {
msec: 5056
- hash: "9124b4e5f5dd374e44f3f57fe3d6809b"
+ hash: "e73c4521144b2c810f15239e6d8fa468"
}
Frame {
msec: 5072
- hash: "5b8313c622796aa87248b38ab336bcf8"
+ hash: "a66856750cc5aa7a21ffb6e0a9c94306"
}
Frame {
msec: 5088
- hash: "de6477fc7e6b8f14a7a51f9cf762ee79"
+ hash: "22bce57e360790c356564a0568ec3bee"
}
Frame {
msec: 5104
- hash: "0d908ef6e3ea15455e35a9ebbc90c735"
+ hash: "55edcaeed37c1390eee2619d52a2eb03"
}
Frame {
msec: 5120
- hash: "bd1d7ad510cd5e04283f6167a5a8e2df"
+ hash: "51d8495324954f1bd62caa67d15e9ab2"
}
Frame {
msec: 5136
- hash: "2ec7418477158ee60afe123fa2b7ce4b"
+ hash: "bfcbba7e970af922ee87fbbe936eaa84"
}
Frame {
msec: 5152
- hash: "04c671070b1eba13380aa2fbb672d3a1"
+ hash: "a7652fe427ca7b8ef37dbf9a6097f8af"
}
Frame {
msec: 5168
- hash: "ce031ba5b388dfaff34674eb71f790f2"
+ hash: "d5ab00fc274a7fd568af514c55f24e04"
}
Frame {
msec: 5184
- hash: "e754141341d9f81366f21820e46bd1ca"
+ hash: "71fd1fe13a14632ff54ad7a87be68bca"
}
Frame {
msec: 5200
- hash: "acf56542617bc742ad729709645ac919"
+ hash: "761f9b41ce4136619f89c73746ab176e"
}
Frame {
msec: 5216
- hash: "c50698470bc6c1ea04633b9e819a2d4d"
+ hash: "cfd826f91f6f880816d505c93a8f125a"
}
Frame {
msec: 5232
- hash: "c156d3540c3cf6d406b72696fd6e9148"
+ hash: "33fbc77640cc73c17a0f68db5f70ddec"
}
Frame {
msec: 5248
- hash: "82a04f09cd35db0dbf012797625368e4"
+ hash: "ef925f6709f7603d8acddbbe3e3b0426"
}
Frame {
msec: 5264
- hash: "3b9ccb93f6375ea401c1fc3bcdf847d5"
+ hash: "044c1f37e37a68fbfbb9ddbc2da4300a"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png
index 56d98ff..b4e1d3a 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png
index 1ab1eb5..4177b9e 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png
index 68921f6..36e5d35 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png
index c9450c7..34f8e38 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.png
index 59fc0fc..8d74b8d 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.png
index 2747b50..8a642d2 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.png
index 74efe73..5698741 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.png
index 02f6e17..7f56f34 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.png
index 59fc0fc..8d74b8d 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml
index 760a831..a4ba005 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.qml
@@ -10,95 +10,95 @@ VisualTest {
}
Frame {
msec: 32
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 48
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 64
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 80
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 96
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 112
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 128
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 144
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 160
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 176
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 192
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 208
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 224
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 240
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 256
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 272
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 288
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 304
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 320
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 336
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 352
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 368
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 384
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Key {
type: 6
@@ -110,15 +110,15 @@ VisualTest {
}
Frame {
msec: 400
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 416
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 432
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Key {
type: 7
@@ -130,27 +130,27 @@ VisualTest {
}
Frame {
msec: 448
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 464
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 480
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 496
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 512
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 528
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Key {
type: 6
@@ -162,15 +162,15 @@ VisualTest {
}
Frame {
msec: 544
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 560
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 576
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Key {
type: 7
@@ -182,27 +182,27 @@ VisualTest {
}
Frame {
msec: 592
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 608
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 624
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 640
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 656
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 672
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Key {
type: 6
@@ -214,19 +214,19 @@ VisualTest {
}
Frame {
msec: 688
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 704
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 720
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 736
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Key {
type: 7
@@ -238,23 +238,23 @@ VisualTest {
}
Frame {
msec: 752
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 768
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 784
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 800
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 816
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Key {
type: 6
@@ -266,19 +266,19 @@ VisualTest {
}
Frame {
msec: 832
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 848
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 864
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 880
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Key {
type: 7
@@ -290,19 +290,19 @@ VisualTest {
}
Frame {
msec: 896
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 912
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 928
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 944
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Key {
type: 6
@@ -314,7 +314,7 @@ VisualTest {
}
Frame {
msec: 960
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 976
@@ -322,11 +322,11 @@ VisualTest {
}
Frame {
msec: 992
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 1008
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Key {
type: 7
@@ -338,23 +338,23 @@ VisualTest {
}
Frame {
msec: 1024
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 1040
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 1056
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 1072
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 1088
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Key {
type: 6
@@ -366,15 +366,15 @@ VisualTest {
}
Frame {
msec: 1104
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1120
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1136
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Key {
type: 7
@@ -386,23 +386,23 @@ VisualTest {
}
Frame {
msec: 1152
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1168
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1184
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1200
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 1216
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Key {
type: 6
@@ -414,19 +414,19 @@ VisualTest {
}
Frame {
msec: 1232
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1248
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1264
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1280
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Key {
type: 7
@@ -438,19 +438,19 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1312
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1328
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 1344
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Key {
type: 6
@@ -462,19 +462,19 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1376
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1392
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1408
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Key {
type: 7
@@ -486,23 +486,23 @@ VisualTest {
}
Frame {
msec: 1424
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1440
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1456
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1472
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1488
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Key {
type: 6
@@ -514,15 +514,15 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1520
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1536
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Key {
type: 7
@@ -534,79 +534,79 @@ VisualTest {
}
Frame {
msec: 1552
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1568
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1584
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1600
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1616
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1632
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1648
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1664
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1680
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1696
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1712
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1728
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1744
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1760
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1776
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1792
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1808
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1824
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Frame {
msec: 1840
- hash: "64f5712c1f96345f2a2ad103e6fbd734"
+ hash: "da047993eb77afffee6b8f0f210ca2d6"
}
Key {
type: 6
@@ -618,23 +618,23 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1872
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1888
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1904
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1920
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1936
@@ -642,15 +642,15 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1968
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 1984
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Key {
type: 7
@@ -662,23 +662,23 @@ VisualTest {
}
Frame {
msec: 2000
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 2016
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 2032
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 2048
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Frame {
msec: 2064
- hash: "7f895d1255301397298cd6b92282e4f7"
+ hash: "6f08f7b6337d5ebb305579bb71ba31d8"
}
Key {
type: 6
@@ -690,23 +690,23 @@ VisualTest {
}
Frame {
msec: 2080
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2096
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2112
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2128
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2144
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Key {
type: 7
@@ -718,23 +718,23 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2176
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2192
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2208
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Frame {
msec: 2224
- hash: "6ec9e863238467c249f62bdd38b68490"
+ hash: "b80db720c6371aeaf99f4787fec2c5a3"
}
Key {
type: 6
@@ -746,11 +746,11 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 2256
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Key {
type: 7
@@ -762,23 +762,23 @@ VisualTest {
}
Frame {
msec: 2272
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 2288
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 2304
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 2320
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Frame {
msec: 2336
- hash: "fe998f3c7c780fddfa6a595936d2e78e"
+ hash: "c8b5e39f4930399527236905cdbcb546"
}
Key {
type: 6
@@ -790,15 +790,15 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2368
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2384
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Key {
type: 7
@@ -810,55 +810,55 @@ VisualTest {
}
Frame {
msec: 2400
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2416
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2432
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2448
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2464
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2480
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2496
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2512
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2528
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2544
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2560
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2576
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Frame {
msec: 2592
- hash: "a7415d0abcc670ba02c2a00b3b5fc647"
+ hash: "3624b85c9362dfeff911cd5426f11ada"
}
Key {
type: 6
@@ -870,23 +870,23 @@ VisualTest {
}
Frame {
msec: 2608
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2624
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2640
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2656
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2672
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Key {
type: 7
@@ -898,23 +898,23 @@ VisualTest {
}
Frame {
msec: 2688
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2704
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2720
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2736
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Frame {
msec: 2752
- hash: "9eda76efdd179847e89b9e96ead51e4a"
+ hash: "fa22742b8778a3b63ce7d6699dbf7482"
}
Key {
type: 6
@@ -926,15 +926,15 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 2784
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 2800
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Key {
type: 7
@@ -946,19 +946,19 @@ VisualTest {
}
Frame {
msec: 2816
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 2832
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 2848
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Frame {
msec: 2864
- hash: "1bcb9bc9d6606329ad5376ea6f608bf8"
+ hash: "b069c174a1b9589ed3137cd01f870b17"
}
Key {
type: 6
@@ -970,7 +970,7 @@ VisualTest {
}
Frame {
msec: 2880
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 2896
@@ -978,11 +978,11 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 2928
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Key {
type: 7
@@ -994,23 +994,23 @@ VisualTest {
}
Frame {
msec: 2944
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 2960
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 2976
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 2992
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Frame {
msec: 3008
- hash: "1465f1f32ba4a6180ab3460298febe26"
+ hash: "53f9d63bacad27fd73c2f84b82599dbc"
}
Key {
type: 6
@@ -1022,23 +1022,23 @@ VisualTest {
}
Frame {
msec: 3024
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3040
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3056
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3072
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3088
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Key {
type: 7
@@ -1050,155 +1050,155 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3120
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3136
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3152
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3168
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3184
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3200
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3216
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3232
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3248
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3264
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3280
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3296
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3312
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3328
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3344
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3360
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3376
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3392
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3408
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3424
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3440
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3456
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3472
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3488
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3504
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3520
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3536
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3552
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3568
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3584
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3600
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3616
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3632
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3648
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3664
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3680
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Frame {
msec: 3696
- hash: "89f3a1c5080d5d742e4455a8818a715c"
+ hash: "9294b20b7160322e1f2eecaee6ebf856"
}
Key {
type: 6
@@ -1210,27 +1210,27 @@ VisualTest {
}
Frame {
msec: 3712
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3728
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3744
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3760
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3776
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3792
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Key {
type: 7
@@ -1242,15 +1242,15 @@ VisualTest {
}
Frame {
msec: 3808
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3824
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3840
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3856
@@ -1258,114 +1258,114 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3888
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3904
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3920
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3936
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3952
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3968
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 3984
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4000
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4016
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4032
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4048
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4064
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4080
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4096
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4112
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4128
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4144
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4160
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4176
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4192
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4208
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4224
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4240
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4256
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4272
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4288
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
Frame {
msec: 4304
- hash: "0051b27d72a917e2af72c4b953877d42"
+ hash: "80122e3e0d124c01b2769c1c88aa4a13"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png
index d63f753..da3b971 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png
index bb7daa3..8ea0787 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png
index bcad242..33328db 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png
index 7be45e7..222ba53 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png
index 42f7f51..970e73d 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png
index 147632a..4dc64a1 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png
index d624a71..99d451c 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.png
index d624a71..99d451c 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml
index 72f68e7..13834f0 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml
@@ -18,7 +18,7 @@ VisualTest {
}
Frame {
msec: 32
- hash: "3e34b9a8c5df08caa18f37289c25138f"
+ hash: "ca07773bf0df96be1f23d13c4d6e2bfd"
}
Key {
type: 7
@@ -30,11 +30,11 @@ VisualTest {
}
Frame {
msec: 48
- hash: "3e34b9a8c5df08caa18f37289c25138f"
+ hash: "ca07773bf0df96be1f23d13c4d6e2bfd"
}
Frame {
msec: 64
- hash: "3e34b9a8c5df08caa18f37289c25138f"
+ hash: "ca07773bf0df96be1f23d13c4d6e2bfd"
}
Key {
type: 7
@@ -46,11 +46,11 @@ VisualTest {
}
Frame {
msec: 80
- hash: "3e34b9a8c5df08caa18f37289c25138f"
+ hash: "ca07773bf0df96be1f23d13c4d6e2bfd"
}
Frame {
msec: 96
- hash: "3e34b9a8c5df08caa18f37289c25138f"
+ hash: "ca07773bf0df96be1f23d13c4d6e2bfd"
}
Key {
type: 6
@@ -62,15 +62,15 @@ VisualTest {
}
Frame {
msec: 112
- hash: "4242081446f2a3122bbd4f8c03a67e5c"
+ hash: "fc223de2e1f35db08d9689bc41f02304"
}
Frame {
msec: 128
- hash: "4242081446f2a3122bbd4f8c03a67e5c"
+ hash: "fc223de2e1f35db08d9689bc41f02304"
}
Frame {
msec: 144
- hash: "4242081446f2a3122bbd4f8c03a67e5c"
+ hash: "fc223de2e1f35db08d9689bc41f02304"
}
Key {
type: 6
@@ -82,15 +82,15 @@ VisualTest {
}
Frame {
msec: 160
- hash: "79c4a9defe89f99b3f6b3c25bd81fc7e"
+ hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd"
}
Frame {
msec: 176
- hash: "79c4a9defe89f99b3f6b3c25bd81fc7e"
+ hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd"
}
Frame {
msec: 192
- hash: "79c4a9defe89f99b3f6b3c25bd81fc7e"
+ hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd"
}
Key {
type: 7
@@ -102,11 +102,11 @@ VisualTest {
}
Frame {
msec: 208
- hash: "79c4a9defe89f99b3f6b3c25bd81fc7e"
+ hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd"
}
Frame {
msec: 224
- hash: "79c4a9defe89f99b3f6b3c25bd81fc7e"
+ hash: "dc208fb5236b0a2a54bf9aaf7a9d60cd"
}
Key {
type: 6
@@ -118,7 +118,7 @@ VisualTest {
}
Frame {
msec: 240
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Key {
type: 7
@@ -130,19 +130,19 @@ VisualTest {
}
Frame {
msec: 256
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Frame {
msec: 272
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Frame {
msec: 288
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Frame {
msec: 304
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Key {
type: 7
@@ -154,11 +154,11 @@ VisualTest {
}
Frame {
msec: 320
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Frame {
msec: 336
- hash: "0bee22de7793974cadec12dfb5df16aa"
+ hash: "c017468afd522089b5c9f42dd61be1b4"
}
Key {
type: 6
@@ -170,19 +170,19 @@ VisualTest {
}
Frame {
msec: 352
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 368
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 384
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 400
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Key {
type: 7
@@ -194,19 +194,19 @@ VisualTest {
}
Frame {
msec: 416
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 432
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 448
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Frame {
msec: 464
- hash: "07393d1c1bb6da436700881ebcd38195"
+ hash: "84b1f1bf26af0da07006bb102d22693f"
}
Key {
type: 6
@@ -218,19 +218,19 @@ VisualTest {
}
Frame {
msec: 480
- hash: "b12a4550ae068d157d340c008047d6f1"
+ hash: "a16f5aa01bd07de4ef7f868b7b6116f7"
}
Frame {
msec: 496
- hash: "b12a4550ae068d157d340c008047d6f1"
+ hash: "a16f5aa01bd07de4ef7f868b7b6116f7"
}
Frame {
msec: 512
- hash: "b12a4550ae068d157d340c008047d6f1"
+ hash: "a16f5aa01bd07de4ef7f868b7b6116f7"
}
Frame {
msec: 528
- hash: "b12a4550ae068d157d340c008047d6f1"
+ hash: "a16f5aa01bd07de4ef7f868b7b6116f7"
}
Key {
type: 6
@@ -250,23 +250,23 @@ VisualTest {
}
Frame {
msec: 544
- hash: "f291de0963549b92d607f38d2d08c551"
+ hash: "e25e16d0d7b223b243d466630b901f68"
}
Frame {
msec: 560
- hash: "f291de0963549b92d607f38d2d08c551"
+ hash: "e25e16d0d7b223b243d466630b901f68"
}
Frame {
msec: 576
- hash: "f291de0963549b92d607f38d2d08c551"
+ hash: "e25e16d0d7b223b243d466630b901f68"
}
Frame {
msec: 592
- hash: "f291de0963549b92d607f38d2d08c551"
+ hash: "e25e16d0d7b223b243d466630b901f68"
}
Frame {
msec: 608
- hash: "f291de0963549b92d607f38d2d08c551"
+ hash: "e25e16d0d7b223b243d466630b901f68"
}
Key {
type: 7
@@ -286,19 +286,19 @@ VisualTest {
}
Frame {
msec: 624
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Frame {
msec: 640
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Frame {
msec: 656
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Frame {
msec: 672
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Key {
type: 7
@@ -310,11 +310,11 @@ VisualTest {
}
Frame {
msec: 688
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Frame {
msec: 704
- hash: "b7eedae59cc521aa8222596cd97bf129"
+ hash: "a53520edb9c117aa53abc42fce3505be"
}
Key {
type: 6
@@ -326,23 +326,23 @@ VisualTest {
}
Frame {
msec: 720
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Frame {
msec: 736
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Frame {
msec: 752
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Frame {
msec: 768
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Frame {
msec: 784
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Key {
type: 7
@@ -354,7 +354,7 @@ VisualTest {
}
Frame {
msec: 800
- hash: "98ef281d984841075f2fc82cebcba3a9"
+ hash: "a7ef30038b24e8bf946bdd38aaac6430"
}
Key {
type: 6
@@ -366,15 +366,15 @@ VisualTest {
}
Frame {
msec: 816
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Frame {
msec: 832
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Frame {
msec: 848
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Key {
type: 7
@@ -386,15 +386,15 @@ VisualTest {
}
Frame {
msec: 864
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Frame {
msec: 880
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Frame {
msec: 896
- hash: "e7b8f24ba55765e2fc1f386d510b402f"
+ hash: "026b29fc03bd22e15ff725d34dee91eb"
}
Key {
type: 6
@@ -406,19 +406,19 @@ VisualTest {
}
Frame {
msec: 912
- hash: "38a3062cb4f23993416f83ff6acbe189"
+ hash: "2b1cef34dff32e36e3c44f2ffb2be66e"
}
Frame {
msec: 928
- hash: "38a3062cb4f23993416f83ff6acbe189"
+ hash: "2b1cef34dff32e36e3c44f2ffb2be66e"
}
Frame {
msec: 944
- hash: "38a3062cb4f23993416f83ff6acbe189"
+ hash: "2b1cef34dff32e36e3c44f2ffb2be66e"
}
Frame {
msec: 960
- hash: "38a3062cb4f23993416f83ff6acbe189"
+ hash: "2b1cef34dff32e36e3c44f2ffb2be66e"
}
Frame {
msec: 976
@@ -426,7 +426,7 @@ VisualTest {
}
Frame {
msec: 992
- hash: "38a3062cb4f23993416f83ff6acbe189"
+ hash: "2b1cef34dff32e36e3c44f2ffb2be66e"
}
Key {
type: 6
@@ -446,23 +446,23 @@ VisualTest {
}
Frame {
msec: 1008
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1024
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1040
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1056
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1072
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Key {
type: 7
@@ -474,31 +474,31 @@ VisualTest {
}
Frame {
msec: 1088
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1104
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1120
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1136
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1152
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1168
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Frame {
msec: 1184
- hash: "daef9995a008f0ca672adc98315a6b9f"
+ hash: "f619bc4148876effc459127009d4cc3a"
}
Key {
type: 6
@@ -510,23 +510,23 @@ VisualTest {
}
Frame {
msec: 1200
- hash: "da27d35f241ccc7c1ee2832e491fa726"
+ hash: "c7fbee3129141e8493b7bc4f85fdc2d0"
}
Frame {
msec: 1216
- hash: "da27d35f241ccc7c1ee2832e491fa726"
+ hash: "c7fbee3129141e8493b7bc4f85fdc2d0"
}
Frame {
msec: 1232
- hash: "da27d35f241ccc7c1ee2832e491fa726"
+ hash: "c7fbee3129141e8493b7bc4f85fdc2d0"
}
Frame {
msec: 1248
- hash: "da27d35f241ccc7c1ee2832e491fa726"
+ hash: "c7fbee3129141e8493b7bc4f85fdc2d0"
}
Frame {
msec: 1264
- hash: "da27d35f241ccc7c1ee2832e491fa726"
+ hash: "c7fbee3129141e8493b7bc4f85fdc2d0"
}
Key {
type: 7
@@ -546,11 +546,11 @@ VisualTest {
}
Frame {
msec: 1280
- hash: "7136f5cfcca4a86b8764667895efa813"
+ hash: "f2a45d80148ee1b5f1cd8cb6ddd0c5ed"
}
Frame {
msec: 1296
- hash: "7136f5cfcca4a86b8764667895efa813"
+ hash: "f2a45d80148ee1b5f1cd8cb6ddd0c5ed"
}
Key {
type: 6
@@ -562,15 +562,15 @@ VisualTest {
}
Frame {
msec: 1312
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1328
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1344
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Key {
type: 7
@@ -582,11 +582,11 @@ VisualTest {
}
Frame {
msec: 1360
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1376
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Key {
type: 7
@@ -598,19 +598,19 @@ VisualTest {
}
Frame {
msec: 1392
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1408
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1424
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Frame {
msec: 1440
- hash: "b99aec3d97f4442378a18ac88d50b97d"
+ hash: "147efa341e4dc39cdd555c2c81e5c603"
}
Key {
type: 6
@@ -622,23 +622,23 @@ VisualTest {
}
Frame {
msec: 1456
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Frame {
msec: 1472
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Frame {
msec: 1488
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Frame {
msec: 1504
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Frame {
msec: 1520
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Key {
type: 7
@@ -650,11 +650,11 @@ VisualTest {
}
Frame {
msec: 1536
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Frame {
msec: 1552
- hash: "c32293903502fd1964cfbc10515b2ef7"
+ hash: "d5b19a6d767a08f488cc8fc5c427a2dd"
}
Key {
type: 6
@@ -666,23 +666,23 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "47371eb93a2a8fac7afb53990fac9130"
+ hash: "bf6265ca859f700fb07f8b992255787d"
}
Frame {
msec: 1584
- hash: "47371eb93a2a8fac7afb53990fac9130"
+ hash: "bf6265ca859f700fb07f8b992255787d"
}
Frame {
msec: 1600
- hash: "47371eb93a2a8fac7afb53990fac9130"
+ hash: "bf6265ca859f700fb07f8b992255787d"
}
Frame {
msec: 1616
- hash: "47371eb93a2a8fac7afb53990fac9130"
+ hash: "bf6265ca859f700fb07f8b992255787d"
}
Frame {
msec: 1632
- hash: "47371eb93a2a8fac7afb53990fac9130"
+ hash: "bf6265ca859f700fb07f8b992255787d"
}
Key {
type: 6
@@ -702,23 +702,23 @@ VisualTest {
}
Frame {
msec: 1648
- hash: "5c22c2566b437497dd6fd908135ec39e"
+ hash: "329e4cd26283eb08188d96b2b0325733"
}
Frame {
msec: 1664
- hash: "5c22c2566b437497dd6fd908135ec39e"
+ hash: "329e4cd26283eb08188d96b2b0325733"
}
Frame {
msec: 1680
- hash: "5c22c2566b437497dd6fd908135ec39e"
+ hash: "329e4cd26283eb08188d96b2b0325733"
}
Frame {
msec: 1696
- hash: "5c22c2566b437497dd6fd908135ec39e"
+ hash: "329e4cd26283eb08188d96b2b0325733"
}
Frame {
msec: 1712
- hash: "5c22c2566b437497dd6fd908135ec39e"
+ hash: "329e4cd26283eb08188d96b2b0325733"
}
Key {
type: 6
@@ -730,15 +730,15 @@ VisualTest {
}
Frame {
msec: 1728
- hash: "29b4e69de4c83ccdee6ef116ab3785ee"
+ hash: "7b5ac2afafbbaf1e13c70a11461820ad"
}
Frame {
msec: 1744
- hash: "29b4e69de4c83ccdee6ef116ab3785ee"
+ hash: "7b5ac2afafbbaf1e13c70a11461820ad"
}
Frame {
msec: 1760
- hash: "29b4e69de4c83ccdee6ef116ab3785ee"
+ hash: "7b5ac2afafbbaf1e13c70a11461820ad"
}
Key {
type: 7
@@ -750,7 +750,7 @@ VisualTest {
}
Frame {
msec: 1776
- hash: "29b4e69de4c83ccdee6ef116ab3785ee"
+ hash: "7b5ac2afafbbaf1e13c70a11461820ad"
}
Key {
type: 6
@@ -762,11 +762,11 @@ VisualTest {
}
Frame {
msec: 1792
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1808
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Key {
type: 7
@@ -778,19 +778,19 @@ VisualTest {
}
Frame {
msec: 1824
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1840
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1856
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1872
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Key {
type: 7
@@ -802,15 +802,15 @@ VisualTest {
}
Frame {
msec: 1888
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1904
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1920
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Frame {
msec: 1936
@@ -818,7 +818,7 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "5ab8ecb0ca9fed70f1d8add6b7b3972d"
+ hash: "bcfa1aa48767f70541a70cb5f85792ba"
}
Key {
type: 6
@@ -830,27 +830,27 @@ VisualTest {
}
Frame {
msec: 1968
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Frame {
msec: 1984
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Frame {
msec: 2000
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Frame {
msec: 2016
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Frame {
msec: 2032
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Frame {
msec: 2048
- hash: "2a43f5ac0c7bdf38e367b0cdb0bccea9"
+ hash: "e89f7cf38b3b596298d6c649a1207469"
}
Key {
type: 6
@@ -862,7 +862,7 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Key {
type: 7
@@ -874,15 +874,15 @@ VisualTest {
}
Frame {
msec: 2080
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2096
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2112
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Key {
type: 7
@@ -894,27 +894,27 @@ VisualTest {
}
Frame {
msec: 2128
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2144
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2160
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2176
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2192
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Frame {
msec: 2208
- hash: "0f28c7855c7fde3390d16a2638e23bd0"
+ hash: "18e71331b42a115f7f9d5c09e235b944"
}
Key {
type: 6
@@ -926,23 +926,23 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "b56e002e5eddde0245f7ad4c75339968"
+ hash: "3630abd7cc6ab303d08f30dea7b1eec1"
}
Frame {
msec: 2240
- hash: "b56e002e5eddde0245f7ad4c75339968"
+ hash: "3630abd7cc6ab303d08f30dea7b1eec1"
}
Frame {
msec: 2256
- hash: "b56e002e5eddde0245f7ad4c75339968"
+ hash: "3630abd7cc6ab303d08f30dea7b1eec1"
}
Frame {
msec: 2272
- hash: "b56e002e5eddde0245f7ad4c75339968"
+ hash: "3630abd7cc6ab303d08f30dea7b1eec1"
}
Frame {
msec: 2288
- hash: "b56e002e5eddde0245f7ad4c75339968"
+ hash: "3630abd7cc6ab303d08f30dea7b1eec1"
}
Key {
type: 6
@@ -954,7 +954,7 @@ VisualTest {
}
Frame {
msec: 2304
- hash: "0bdd50e3c8b382b464c82d791ae6c1e5"
+ hash: "83e7b8c680cda95ec0a669b8030a3efd"
}
Key {
type: 7
@@ -966,15 +966,15 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "0bdd50e3c8b382b464c82d791ae6c1e5"
+ hash: "83e7b8c680cda95ec0a669b8030a3efd"
}
Frame {
msec: 2336
- hash: "0bdd50e3c8b382b464c82d791ae6c1e5"
+ hash: "83e7b8c680cda95ec0a669b8030a3efd"
}
Frame {
msec: 2352
- hash: "0bdd50e3c8b382b464c82d791ae6c1e5"
+ hash: "83e7b8c680cda95ec0a669b8030a3efd"
}
Key {
type: 6
@@ -986,11 +986,11 @@ VisualTest {
}
Frame {
msec: 2368
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Frame {
msec: 2384
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Key {
type: 7
@@ -1002,15 +1002,15 @@ VisualTest {
}
Frame {
msec: 2400
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Frame {
msec: 2416
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Frame {
msec: 2432
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Key {
type: 7
@@ -1022,15 +1022,15 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Frame {
msec: 2464
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Frame {
msec: 2480
- hash: "b61b475b84c6e6a149f6262fc560b741"
+ hash: "cc826833607ae754e633d21ca67a6b5a"
}
Key {
type: 6
@@ -1042,19 +1042,19 @@ VisualTest {
}
Frame {
msec: 2496
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2512
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2528
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2544
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Key {
type: 7
@@ -1066,27 +1066,27 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2576
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2592
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2608
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2624
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Frame {
msec: 2640
- hash: "1acd6152f317a6c8f6aca52ccf62a8c6"
+ hash: "2b4c812fac4e84909cc8fc70d8966a27"
}
Key {
type: 6
@@ -1098,19 +1098,19 @@ VisualTest {
}
Frame {
msec: 2656
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Frame {
msec: 2672
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Frame {
msec: 2688
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Frame {
msec: 2704
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Key {
type: 7
@@ -1122,15 +1122,15 @@ VisualTest {
}
Frame {
msec: 2720
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Frame {
msec: 2736
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Frame {
msec: 2752
- hash: "90ab887de5fbf34f4d45e13c4b211490"
+ hash: "c1aabf4b43cbae0d7654ba78fc870fdd"
}
Key {
type: 6
@@ -1142,23 +1142,23 @@ VisualTest {
}
Frame {
msec: 2768
- hash: "fc91281749bf1a844a19f20d87a17126"
+ hash: "a707dd726c777a661e4f12d27a75cf63"
}
Frame {
msec: 2784
- hash: "fc91281749bf1a844a19f20d87a17126"
+ hash: "a707dd726c777a661e4f12d27a75cf63"
}
Frame {
msec: 2800
- hash: "fc91281749bf1a844a19f20d87a17126"
+ hash: "a707dd726c777a661e4f12d27a75cf63"
}
Frame {
msec: 2816
- hash: "fc91281749bf1a844a19f20d87a17126"
+ hash: "a707dd726c777a661e4f12d27a75cf63"
}
Frame {
msec: 2832
- hash: "fc91281749bf1a844a19f20d87a17126"
+ hash: "a707dd726c777a661e4f12d27a75cf63"
}
Key {
type: 6
@@ -1178,15 +1178,15 @@ VisualTest {
}
Frame {
msec: 2848
- hash: "dcf6e510866fa20e54255c2c980d7b4b"
+ hash: "bdaa69c1074f9820901ce31ea24383ca"
}
Frame {
msec: 2864
- hash: "dcf6e510866fa20e54255c2c980d7b4b"
+ hash: "bdaa69c1074f9820901ce31ea24383ca"
}
Frame {
msec: 2880
- hash: "dcf6e510866fa20e54255c2c980d7b4b"
+ hash: "bdaa69c1074f9820901ce31ea24383ca"
}
Frame {
msec: 2896
@@ -1202,11 +1202,11 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 2928
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Key {
type: 7
@@ -1218,11 +1218,11 @@ VisualTest {
}
Frame {
msec: 2944
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 2960
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Key {
type: 7
@@ -1234,35 +1234,35 @@ VisualTest {
}
Frame {
msec: 2976
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 2992
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3008
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3024
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3040
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3056
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3072
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Frame {
msec: 3088
- hash: "a26b06714f951084f2ee5ee4b4e67e43"
+ hash: "f703f87031be4f9d7409fb145343c02b"
}
Key {
type: 6
@@ -1274,23 +1274,23 @@ VisualTest {
}
Frame {
msec: 3104
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3120
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3136
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3152
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3168
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Key {
type: 7
@@ -1302,23 +1302,23 @@ VisualTest {
}
Frame {
msec: 3184
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3200
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3216
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3232
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Frame {
msec: 3248
- hash: "832c43553cea6d22b7664ef6f145d1c6"
+ hash: "cb2660df955b757b00661a1acb5f22d2"
}
Key {
type: 6
@@ -1330,15 +1330,15 @@ VisualTest {
}
Frame {
msec: 3264
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Frame {
msec: 3280
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Frame {
msec: 3296
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Key {
type: 7
@@ -1350,15 +1350,15 @@ VisualTest {
}
Frame {
msec: 3312
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Frame {
msec: 3328
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Frame {
msec: 3344
- hash: "081c183901aadcc6406f4ad9f41efa7e"
+ hash: "8ea510d25195956fa42eabfe3bb9f230"
}
Key {
type: 6
@@ -1370,23 +1370,23 @@ VisualTest {
}
Frame {
msec: 3360
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3376
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3392
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3408
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3424
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Key {
type: 7
@@ -1398,15 +1398,15 @@ VisualTest {
}
Frame {
msec: 3440
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3456
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Frame {
msec: 3472
- hash: "9bd3c76a58f942880f40566cfbaa2e99"
+ hash: "26b58aef7b1f50a5d261718e8266a3fb"
}
Key {
type: 6
@@ -1418,19 +1418,19 @@ VisualTest {
}
Frame {
msec: 3488
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Frame {
msec: 3504
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Frame {
msec: 3520
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Frame {
msec: 3536
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Key {
type: 7
@@ -1442,11 +1442,11 @@ VisualTest {
}
Frame {
msec: 3552
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Frame {
msec: 3568
- hash: "204a2ee8a33e5452d47d95ad4142d417"
+ hash: "012854de1c9d1a772994d02f52bdcd7c"
}
Key {
type: 6
@@ -1458,27 +1458,27 @@ VisualTest {
}
Frame {
msec: 3584
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Frame {
msec: 3600
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Frame {
msec: 3616
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Frame {
msec: 3632
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Frame {
msec: 3648
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Frame {
msec: 3664
- hash: "4729d1f555fe604d4660f02673f9c5f3"
+ hash: "660a31e1c0d573f4155cfa8fe2323413"
}
Key {
type: 6
@@ -1490,7 +1490,7 @@ VisualTest {
}
Frame {
msec: 3680
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Key {
type: 7
@@ -1502,23 +1502,23 @@ VisualTest {
}
Frame {
msec: 3696
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3712
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3728
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3744
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3760
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Key {
type: 7
@@ -1530,23 +1530,23 @@ VisualTest {
}
Frame {
msec: 3776
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3792
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3808
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3824
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3840
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3856
@@ -1554,15 +1554,15 @@ VisualTest {
}
Frame {
msec: 3872
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3888
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Frame {
msec: 3904
- hash: "2c0e0951ce4839b302a6e2735adc6c09"
+ hash: "bea00f5e628e40b679eb8829c16c6260"
}
Key {
type: 6
@@ -1574,23 +1574,23 @@ VisualTest {
}
Frame {
msec: 3920
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Frame {
msec: 3936
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Frame {
msec: 3952
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Frame {
msec: 3968
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Frame {
msec: 3984
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Key {
type: 7
@@ -1602,11 +1602,11 @@ VisualTest {
}
Frame {
msec: 4000
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Frame {
msec: 4016
- hash: "28c2ffe2ad35010dc077625cde7d21b6"
+ hash: "c5c60cd10a1106161cde5f51dbdec5ad"
}
Key {
type: 6
@@ -1618,15 +1618,15 @@ VisualTest {
}
Frame {
msec: 4032
- hash: "6f206482adcd45a2b0d8d3c8b85f53c6"
+ hash: "41c26e6a4c911f9ecd082c4d3366806b"
}
Frame {
msec: 4048
- hash: "6f206482adcd45a2b0d8d3c8b85f53c6"
+ hash: "41c26e6a4c911f9ecd082c4d3366806b"
}
Frame {
msec: 4064
- hash: "6f206482adcd45a2b0d8d3c8b85f53c6"
+ hash: "41c26e6a4c911f9ecd082c4d3366806b"
}
Key {
type: 7
@@ -1638,7 +1638,7 @@ VisualTest {
}
Frame {
msec: 4080
- hash: "6f206482adcd45a2b0d8d3c8b85f53c6"
+ hash: "41c26e6a4c911f9ecd082c4d3366806b"
}
Key {
type: 6
@@ -1650,19 +1650,19 @@ VisualTest {
}
Frame {
msec: 4096
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Frame {
msec: 4112
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Frame {
msec: 4128
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Frame {
msec: 4144
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Key {
type: 7
@@ -1674,15 +1674,15 @@ VisualTest {
}
Frame {
msec: 4160
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Frame {
msec: 4176
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Frame {
msec: 4192
- hash: "4685a786f36cb821a69b0ac059145a5f"
+ hash: "e212938ce981ed4e8d7a993468bc9377"
}
Key {
type: 6
@@ -1694,23 +1694,23 @@ VisualTest {
}
Frame {
msec: 4208
- hash: "d0efb89ee3e2d2b18429b57dcfe13f33"
+ hash: "55df0528a97d77d0a4b513aeedd34440"
}
Frame {
msec: 4224
- hash: "d0efb89ee3e2d2b18429b57dcfe13f33"
+ hash: "55df0528a97d77d0a4b513aeedd34440"
}
Frame {
msec: 4240
- hash: "d0efb89ee3e2d2b18429b57dcfe13f33"
+ hash: "55df0528a97d77d0a4b513aeedd34440"
}
Frame {
msec: 4256
- hash: "d0efb89ee3e2d2b18429b57dcfe13f33"
+ hash: "55df0528a97d77d0a4b513aeedd34440"
}
Frame {
msec: 4272
- hash: "d0efb89ee3e2d2b18429b57dcfe13f33"
+ hash: "55df0528a97d77d0a4b513aeedd34440"
}
Key {
type: 6
@@ -1722,7 +1722,7 @@ VisualTest {
}
Frame {
msec: 4288
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Key {
type: 7
@@ -1734,15 +1734,15 @@ VisualTest {
}
Frame {
msec: 4304
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4320
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4336
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Key {
type: 7
@@ -1754,23 +1754,23 @@ VisualTest {
}
Frame {
msec: 4352
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4368
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4384
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4400
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Frame {
msec: 4416
- hash: "cbe0bb714b2e9b63af978f666292d8f0"
+ hash: "2165091c97a891560bf3afab879e6dbc"
}
Key {
type: 6
@@ -1782,15 +1782,15 @@ VisualTest {
}
Frame {
msec: 4432
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4448
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4464
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Key {
type: 7
@@ -1802,23 +1802,23 @@ VisualTest {
}
Frame {
msec: 4480
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4496
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4512
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4528
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Frame {
msec: 4544
- hash: "d15a45a86874daaff5f2e6afae43b2f4"
+ hash: "a3d7968e13768c4ec538fe9ba7edf142"
}
Key {
type: 6
@@ -1830,19 +1830,19 @@ VisualTest {
}
Frame {
msec: 4560
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4576
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4592
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4608
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Key {
type: 7
@@ -1854,19 +1854,19 @@ VisualTest {
}
Frame {
msec: 4624
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4640
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4656
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Frame {
msec: 4672
- hash: "b0c3ef9c5331af8768b23537d1d38311"
+ hash: "3b18ada8637d4024acfe88718765f71c"
}
Key {
type: 6
@@ -1878,19 +1878,19 @@ VisualTest {
}
Frame {
msec: 4688
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Frame {
msec: 4704
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Frame {
msec: 4720
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Frame {
msec: 4736
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Key {
type: 7
@@ -1902,15 +1902,15 @@ VisualTest {
}
Frame {
msec: 4752
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Frame {
msec: 4768
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Frame {
msec: 4784
- hash: "3be1d2faec1ab5d3d1ab72c25db95059"
+ hash: "c419775870b0c5e41b5156c840e6a298"
}
Key {
type: 6
@@ -1922,7 +1922,7 @@ VisualTest {
}
Frame {
msec: 4800
- hash: "db999862fcf827930098b3f129ff567f"
+ hash: "81a744f02650728c7557a27c94056e64"
}
Frame {
msec: 4816
@@ -1938,19 +1938,19 @@ VisualTest {
}
Frame {
msec: 4832
- hash: "db999862fcf827930098b3f129ff567f"
+ hash: "81a744f02650728c7557a27c94056e64"
}
Frame {
msec: 4848
- hash: "db999862fcf827930098b3f129ff567f"
+ hash: "81a744f02650728c7557a27c94056e64"
}
Frame {
msec: 4864
- hash: "db999862fcf827930098b3f129ff567f"
+ hash: "81a744f02650728c7557a27c94056e64"
}
Frame {
msec: 4880
- hash: "db999862fcf827930098b3f129ff567f"
+ hash: "81a744f02650728c7557a27c94056e64"
}
Key {
type: 6
@@ -1962,19 +1962,19 @@ VisualTest {
}
Frame {
msec: 4896
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 4912
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 4928
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 4944
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Key {
type: 7
@@ -1986,207 +1986,207 @@ VisualTest {
}
Frame {
msec: 4960
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 4976
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 4992
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5008
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5024
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5040
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5056
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5072
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5088
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5104
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5120
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5136
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5152
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5168
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5184
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5200
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5216
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5232
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5248
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5264
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5280
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5296
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5312
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5328
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5344
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5360
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5376
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5392
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5408
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5424
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5440
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5456
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5472
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5488
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5504
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5520
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5536
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5552
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5568
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5584
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5600
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5616
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5632
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5648
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5664
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5680
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5696
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5712
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5728
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5744
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5760
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5776
@@ -2194,239 +2194,239 @@ VisualTest {
}
Frame {
msec: 5792
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5808
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5824
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5840
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5856
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5872
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5888
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5904
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5920
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5936
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5952
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5968
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 5984
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6000
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6016
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6032
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6048
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6064
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6080
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6096
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6112
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6128
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6144
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6160
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6176
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6192
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6208
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6224
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6240
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6256
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6272
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6288
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6304
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6320
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6336
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6352
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6368
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6384
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6400
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6416
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6432
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6448
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6464
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6480
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6496
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6512
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6528
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6544
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6560
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6576
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6592
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6608
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6624
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6640
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6656
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6672
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6688
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6704
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6720
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6736
@@ -2434,34 +2434,34 @@ VisualTest {
}
Frame {
msec: 6752
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6768
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6784
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6800
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6816
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6832
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6848
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
Frame {
msec: 6864
- hash: "6557c4982e2c23d0ef5ec8a594df7277"
+ hash: "ed1520bf20159e60c6a75bbf07f3a6ee"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png
index a6593c9..63b1779 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png
index 914f1b1..7924652 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png
index dd2b946..e77bfde 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png
index 629b84b..67d7e52 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml
index 211ca68..ee29db6 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml
@@ -10,7 +10,7 @@ VisualTest {
}
Frame {
msec: 32
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Key {
type: 6
@@ -22,83 +22,83 @@ VisualTest {
}
Frame {
msec: 48
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 64
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 80
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 96
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 112
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 128
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 144
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 160
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 176
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 192
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 208
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 224
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 240
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 256
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 272
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 288
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 304
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 320
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 336
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Frame {
msec: 352
- hash: "eff6a4491bc00e5570ea73a1371f63fc"
+ hash: "75bcecaf83ffc9b851894db0be2c02bc"
}
Key {
type: 6
@@ -110,23 +110,23 @@ VisualTest {
}
Frame {
msec: 368
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 384
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 400
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 416
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 432
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Key {
type: 7
@@ -138,27 +138,27 @@ VisualTest {
}
Frame {
msec: 448
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 464
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 480
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 496
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 512
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 528
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Key {
type: 7
@@ -170,43 +170,43 @@ VisualTest {
}
Frame {
msec: 544
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 560
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 576
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 592
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 608
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 624
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 640
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 656
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 672
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Frame {
msec: 688
- hash: "00097f2bb5cf4ea412db48acb93ffd76"
+ hash: "1a9f4d47e3982ce68eee8446fd735487"
}
Key {
type: 6
@@ -218,23 +218,23 @@ VisualTest {
}
Frame {
msec: 704
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 720
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 736
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 752
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 768
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Key {
type: 7
@@ -246,23 +246,23 @@ VisualTest {
}
Frame {
msec: 784
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 800
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 816
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 832
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Frame {
msec: 848
- hash: "94e683223900efc840296b86ce934ec3"
+ hash: "9ab137169f2ea0f4b140a6e668f59ad2"
}
Key {
type: 6
@@ -274,15 +274,15 @@ VisualTest {
}
Frame {
msec: 864
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 880
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 896
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Key {
type: 7
@@ -294,19 +294,19 @@ VisualTest {
}
Frame {
msec: 912
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 928
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 944
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 960
- hash: "a1c7aeece2891f3ca0103761ffa7f424"
+ hash: "3080734a2da042b87ef9177cbb314835"
}
Frame {
msec: 976
@@ -322,19 +322,19 @@ VisualTest {
}
Frame {
msec: 992
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1008
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1024
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1040
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Key {
type: 7
@@ -346,51 +346,51 @@ VisualTest {
}
Frame {
msec: 1056
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1072
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1088
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1104
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1120
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1136
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1152
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1168
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1184
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1200
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1216
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Frame {
msec: 1232
- hash: "7a4ebe5f0875ded07b44c9ff2d6a4d75"
+ hash: "e591963b05361595383b1a60eec289cb"
}
Key {
type: 6
@@ -402,15 +402,15 @@ VisualTest {
}
Frame {
msec: 1248
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Frame {
msec: 1264
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Frame {
msec: 1280
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Key {
type: 7
@@ -422,15 +422,15 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Frame {
msec: 1312
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Frame {
msec: 1328
- hash: "b7cdd294253e065c06fabc60895a29c2"
+ hash: "8a528bf3110bace8275f6fe33ce528b9"
}
Key {
type: 6
@@ -442,39 +442,39 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1360
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1376
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1392
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1408
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1424
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1440
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1456
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Frame {
msec: 1472
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Key {
type: 7
@@ -486,7 +486,7 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "d8669a3194f485aaef3a1421f7fd50f6"
+ hash: "03d56caa0c86b5544d1f5148e0dccd92"
}
Key {
type: 6
@@ -498,19 +498,19 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1520
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1536
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1552
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Key {
type: 7
@@ -522,27 +522,27 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1584
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1600
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1616
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1632
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Frame {
msec: 1648
- hash: "b53fd36f58dc692856e6a789371aaf33"
+ hash: "d9aac9ed4ca0ad97b440db3ac7384001"
}
Key {
type: 6
@@ -554,23 +554,23 @@ VisualTest {
}
Frame {
msec: 1664
- hash: "98de66666f6ea1a87bd493db3f67a7c6"
+ hash: "a2e8a6a742b11b4f30a2d75df14d5f47"
}
Frame {
msec: 1680
- hash: "98de66666f6ea1a87bd493db3f67a7c6"
+ hash: "a2e8a6a742b11b4f30a2d75df14d5f47"
}
Frame {
msec: 1696
- hash: "98de66666f6ea1a87bd493db3f67a7c6"
+ hash: "a2e8a6a742b11b4f30a2d75df14d5f47"
}
Frame {
msec: 1712
- hash: "98de66666f6ea1a87bd493db3f67a7c6"
+ hash: "a2e8a6a742b11b4f30a2d75df14d5f47"
}
Frame {
msec: 1728
- hash: "98de66666f6ea1a87bd493db3f67a7c6"
+ hash: "a2e8a6a742b11b4f30a2d75df14d5f47"
}
Key {
type: 6
@@ -582,7 +582,7 @@ VisualTest {
}
Frame {
msec: 1744
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Key {
type: 7
@@ -594,15 +594,15 @@ VisualTest {
}
Frame {
msec: 1760
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Frame {
msec: 1776
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Frame {
msec: 1792
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Key {
type: 7
@@ -614,19 +614,19 @@ VisualTest {
}
Frame {
msec: 1808
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Frame {
msec: 1824
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Frame {
msec: 1840
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Frame {
msec: 1856
- hash: "696807419ef2b228dfb9d85dd79dd293"
+ hash: "021641e69fef4720acf6af15d4a2da82"
}
Key {
type: 6
@@ -638,19 +638,19 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 1888
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 1904
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 1920
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Key {
type: 7
@@ -666,23 +666,23 @@ VisualTest {
}
Frame {
msec: 1952
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 1968
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 1984
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 2000
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Frame {
msec: 2016
- hash: "4c0a528609872cf65180d336bbca4231"
+ hash: "46ece14e3a61aefcb28b3c888ac7ea59"
}
Key {
type: 6
@@ -694,11 +694,11 @@ VisualTest {
}
Frame {
msec: 2032
- hash: "03b670f413abfa1811d4020de969b2ea"
+ hash: "ffa55ac51f20c82725cadbb445908fd2"
}
Frame {
msec: 2048
- hash: "03b670f413abfa1811d4020de969b2ea"
+ hash: "ffa55ac51f20c82725cadbb445908fd2"
}
Key {
type: 7
@@ -710,11 +710,11 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "03b670f413abfa1811d4020de969b2ea"
+ hash: "ffa55ac51f20c82725cadbb445908fd2"
}
Frame {
msec: 2080
- hash: "03b670f413abfa1811d4020de969b2ea"
+ hash: "ffa55ac51f20c82725cadbb445908fd2"
}
Key {
type: 6
@@ -726,19 +726,19 @@ VisualTest {
}
Frame {
msec: 2096
- hash: "6d478c62fa5bb37f0178e94914473174"
+ hash: "e9e2edb9176cb57506a3f130fca15d1e"
}
Frame {
msec: 2112
- hash: "6d478c62fa5bb37f0178e94914473174"
+ hash: "e9e2edb9176cb57506a3f130fca15d1e"
}
Frame {
msec: 2128
- hash: "6d478c62fa5bb37f0178e94914473174"
+ hash: "e9e2edb9176cb57506a3f130fca15d1e"
}
Frame {
msec: 2144
- hash: "6d478c62fa5bb37f0178e94914473174"
+ hash: "e9e2edb9176cb57506a3f130fca15d1e"
}
Key {
type: 6
@@ -758,19 +758,19 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "2f9803e906ce38a6ade3874bbeb27216"
+ hash: "87c3cf93b47a766d6373ecaec7239dd4"
}
Frame {
msec: 2176
- hash: "2f9803e906ce38a6ade3874bbeb27216"
+ hash: "87c3cf93b47a766d6373ecaec7239dd4"
}
Frame {
msec: 2192
- hash: "2f9803e906ce38a6ade3874bbeb27216"
+ hash: "87c3cf93b47a766d6373ecaec7239dd4"
}
Frame {
msec: 2208
- hash: "2f9803e906ce38a6ade3874bbeb27216"
+ hash: "87c3cf93b47a766d6373ecaec7239dd4"
}
Key {
type: 6
@@ -782,7 +782,7 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Key {
type: 7
@@ -794,23 +794,23 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Frame {
msec: 2256
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Frame {
msec: 2272
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Frame {
msec: 2288
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Frame {
msec: 2304
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Key {
type: 7
@@ -822,11 +822,11 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Frame {
msec: 2336
- hash: "d93582b0c7de46d5ff1c9959c158bfe7"
+ hash: "1fb4aa190807d169d1ceaff7d9fa92ad"
}
Key {
type: 6
@@ -838,27 +838,27 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2368
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2384
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2400
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2416
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2432
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Key {
type: 7
@@ -870,19 +870,19 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2464
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2480
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Frame {
msec: 2496
- hash: "8accfa30ddc59803d8f9d2f60dd6a891"
+ hash: "e9cd789b114befb4637fcff39d4413b0"
}
Key {
type: 6
@@ -894,15 +894,15 @@ VisualTest {
}
Frame {
msec: 2512
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2528
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2544
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Key {
type: 7
@@ -914,87 +914,87 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2576
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2592
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2608
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2624
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2640
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2656
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2672
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2688
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2704
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2720
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2736
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2752
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2768
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2784
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2800
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2816
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2832
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2848
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2864
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2880
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2896
@@ -1002,42 +1002,42 @@ VisualTest {
}
Frame {
msec: 2912
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2928
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2944
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2960
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2976
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 2992
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 3008
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 3024
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 3040
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
Frame {
msec: 3056
- hash: "a444ce402f5dc0d892f66a88b8252301"
+ hash: "15f91fda9bcc8a2a9ebf3b9c32f61efb"
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png
index a12db0a..4c04a1b 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml
index acc646c..74ee95f 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml
@@ -10,98 +10,98 @@ VisualTest {
}
Frame {
msec: 32
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 48
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 64
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 80
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 96
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 112
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 128
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 144
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 160
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 176
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 192
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 208
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 224
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 240
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 256
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 272
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 288
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 304
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 320
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 336
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 352
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 368
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 384
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
Frame {
msec: 400
- hash: "fe5a0e7ac7ea0796d8cf3e49b513669d"
+ hash: "93758371bdc69b81077989e911f62fb0"
}
}
diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
index ef0d4dc..3ca6d93 100644
--- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
+++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
@@ -104,13 +104,8 @@ void tst_qmlvisual::visual_data()
QStringList files;
files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR));
if (qgetenv("QMLVISUAL_ALL") != "1") {
-#if defined(Q_WS_X11)
- //Text on X11 varies per version - and the CI system is currently using something outdated.
- foreach(const QString &str, files.filter(QRegExp(".*text.*")))
- files.removeAll(str);
-#endif
#if defined(Q_WS_MAC)
- //Text on Mac also varies per version. Only check the text on 10.6
+ //Text on Mac varies per version. Only check the text on 10.6
if(QSysInfo::MacintoshVersion != QSysInfo::MV_10_6)
foreach(const QString &str, files.filter(QRegExp(".*text.*")))
files.removeAll(str);
@@ -138,6 +133,9 @@ void tst_qmlvisual::visual()
QFETCH(QString, testdata);
QStringList arguments;
+#ifdef Q_WS_MAC
+ arguments << "-no-opengl";
+#endif
arguments << "-script" << testdata
<< "-scriptopts" << "play,testimages,testerror,testskip,exitoncomplete,exitonfailure"
<< file;
@@ -241,6 +239,9 @@ void action(Mode mode, const QString &file)
QString testdata = tst_qmlvisual::toTestScript(file,mode);
QStringList arguments;
+#ifdef Q_WS_MAC
+ arguments << "-no-opengl";
+#endif
switch (mode) {
case Test:
// Don't run qml
diff --git a/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml b/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml
index 6063226..af09389 100644
--- a/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml
+++ b/tests/auto/declarative/qmlvisual/webview/flickable/flickweb.qml
@@ -1,35 +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"
- }
- }
-}
+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/qgraphicsscene/tst_qgraphicsscene.cpp b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
index 6a2f849..588c476 100644
--- a/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
+++ b/tests/auto/qgraphicsscene/tst_qgraphicsscene.cpp
@@ -288,6 +288,7 @@ private slots:
void taskQT657_paintIntoCacheWithTransparentParts();
void taskQTBUG_7863_paintIntoCacheWithTransparentParts();
void taskQT_3674_doNotCrash();
+ void taskQTBUG_15977_renderWithDeviceCoordinateCache();
};
void tst_QGraphicsScene::initTestCase()
@@ -4629,5 +4630,27 @@ void tst_QGraphicsScene::zeroScale()
QTRY_COMPARE(cl.changes.count(), 2);
}
+void tst_QGraphicsScene::taskQTBUG_15977_renderWithDeviceCoordinateCache()
+{
+ QGraphicsScene scene;
+ scene.setSceneRect(0, 0, 100, 100);
+ QGraphicsRectItem *rect = scene.addRect(0, 0, 100, 100);
+ rect->setPen(Qt::NoPen);
+ rect->setBrush(Qt::red);
+ rect->setCacheMode(QGraphicsItem::DeviceCoordinateCache);
+
+ QImage image(100, 100, QImage::Format_RGB32);
+ QPainter p(&image);
+ scene.render(&p);
+ p.end();
+
+ QImage expected(100, 100, QImage::Format_RGB32);
+ p.begin(&expected);
+ p.fillRect(expected.rect(), Qt::red);
+ p.end();
+
+ QCOMPARE(image, expected);
+}
+
QTEST_MAIN(tst_QGraphicsScene)
#include "tst_qgraphicsscene.moc"
diff --git a/tests/auto/qimage/tst_qimage.cpp b/tests/auto/qimage/tst_qimage.cpp
index b446941..b2c59fc 100644
--- a/tests/auto/qimage/tst_qimage.cpp
+++ b/tests/auto/qimage/tst_qimage.cpp
@@ -142,6 +142,8 @@ private slots:
void rgbSwapped_data();
void rgbSwapped();
+
+ void deepCopyWhenPaintingActive();
};
tst_QImage::tst_QImage()
@@ -1886,5 +1888,19 @@ void tst_QImage::rgbSwapped()
QCOMPARE(memcmp(image.constBits(), imageSwappedTwice.constBits(), image.numBytes()), 0);
}
+void tst_QImage::deepCopyWhenPaintingActive()
+{
+ QImage image(64, 64, QImage::Format_ARGB32_Premultiplied);
+ image.fill(0);
+
+ QPainter painter(&image);
+ QImage copy = image;
+
+ painter.setBrush(Qt::black);
+ painter.drawEllipse(image.rect());
+
+ QVERIFY(copy != image);
+}
+
QTEST_MAIN(tst_QImage)
#include "tst_qimage.moc"
diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
index 9cf61f9..cff0ae9 100644
--- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
@@ -336,10 +336,10 @@ private Q_SLOTS:
void parentingRepliesToTheApp();
};
-QT_BEGIN_NAMESPACE
-
bool tst_QNetworkReply::seedCreated = false;
+QT_BEGIN_NAMESPACE
+
namespace QTest {
template<>
char *toString(const QNetworkReply::NetworkError& code)
diff --git a/tests/auto/qpixmap/tst_qpixmap.cpp b/tests/auto/qpixmap/tst_qpixmap.cpp
index 51e6cf5..419518a1 100644
--- a/tests/auto/qpixmap/tst_qpixmap.cpp
+++ b/tests/auto/qpixmap/tst_qpixmap.cpp
@@ -129,10 +129,7 @@ private slots:
void isNull();
void task_246446();
-#ifdef Q_WS_QWS
void convertFromImageNoDetach();
-#endif
-
void convertFromImageDetach();
#if defined(Q_WS_WIN)
@@ -185,6 +182,8 @@ private slots:
void preserveDepth();
void splash_crash();
+ void toImageDeepCopy();
+
void loadAsBitmapOrPixmap();
};
@@ -911,11 +910,13 @@ void tst_QPixmap::isNull()
}
}
-#ifdef Q_WS_QWS
void tst_QPixmap::convertFromImageNoDetach()
{
+ QPixmap randomPixmap(10, 10);
+ if (randomPixmap.pixmapData()->classId() != QPixmapData::RasterClass)
+ QSKIP("Test only valid for raster pixmaps", SkipAll);
+
//first get the screen format
- QPixmap randomPixmap(10,10);
QImage::Format screenFormat = randomPixmap.toImage().format();
QVERIFY(screenFormat != QImage::Format_Invalid);
@@ -930,7 +931,6 @@ void tst_QPixmap::convertFromImageNoDetach()
const QImage constCopy = copy;
QVERIFY(constOrig.bits() == constCopy.bits());
}
-#endif //Q_WS_QWS
void tst_QPixmap::convertFromImageDetach()
{
@@ -1751,6 +1751,21 @@ void tst_QPixmap::loadAsBitmapOrPixmap()
QVERIFY(bitmap.isQBitmap());
}
+void tst_QPixmap::toImageDeepCopy()
+{
+ QPixmap pixmap(64, 64);
+ pixmap.fill(Qt::white);
+
+ QPainter painter(&pixmap);
+ QImage first = pixmap.toImage();
+
+ painter.setBrush(Qt::black);
+ painter.drawEllipse(pixmap.rect());
+
+ QImage second = pixmap.toImage();
+
+ QVERIFY(first != second);
+}
QTEST_MAIN(tst_QPixmap)
diff --git a/tests/auto/qsortfilterproxymodel/qsortfilterproxymodel.pro b/tests/auto/qsortfilterproxymodel/qsortfilterproxymodel.pro
index d2c1147..7edd4a5 100644
--- a/tests/auto/qsortfilterproxymodel/qsortfilterproxymodel.pro
+++ b/tests/auto/qsortfilterproxymodel/qsortfilterproxymodel.pro
@@ -1,6 +1,7 @@
load(qttest_p4)
-SOURCES += tst_qsortfilterproxymodel.cpp
-
+INCLUDEPATH += $$PWD/../modeltest
+SOURCES += tst_qsortfilterproxymodel.cpp ../modeltest/dynamictreemodel.cpp ../modeltest/modeltest.cpp
+HEADERS += ../modeltest/dynamictreemodel.h ../modeltest/modeltest.h
diff --git a/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp b/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
index 66caf4a..93b9d30 100644
--- a/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
+++ b/tests/auto/qsortfilterproxymodel/tst_qsortfilterproxymodel.cpp
@@ -43,6 +43,9 @@
#include <QtTest/QtTest>
#include "../../shared/util.h"
+#include "dynamictreemodel.h"
+#include "modeltest.h"
+
#include <QtCore>
#include <QtGui>
@@ -144,6 +147,7 @@ private slots:
void testMultipleProxiesWithSelection();
void mapSelectionFromSource();
+ void filteredColumns();
protected:
void buildHierarchy(const QStringList &data, QAbstractItemModel *model);
@@ -3174,5 +3178,40 @@ void tst_QSortFilterProxyModel::taskQTBUG_10287_unnecessaryMapCreation()
// No assert failure, it passes.
}
+class FilteredColumnProxyModel : public QSortFilterProxyModel
+{
+ Q_OBJECT
+public:
+ FilteredColumnProxyModel(QObject *parent = 0)
+ : QSortFilterProxyModel(parent)
+ {
+
+ }
+
+protected:
+ bool filterAcceptsColumn(int column, const QModelIndex &source_parent) const
+ {
+ return column % 2 != 0;
+ }
+};
+
+void tst_QSortFilterProxyModel::filteredColumns()
+{
+ DynamicTreeModel *model = new DynamicTreeModel(this);
+
+ FilteredColumnProxyModel *proxy = new FilteredColumnProxyModel(this);
+ proxy->setSourceModel(model);
+
+ new ModelTest(proxy, this);
+
+ ModelInsertCommand *insertCommand = new ModelInsertCommand(model, this);
+ insertCommand->setNumCols(2);
+ insertCommand->setStartRow(0);
+ insertCommand->setEndRow(0);
+ // Parent is QModelIndex()
+ insertCommand->doCommand();
+
+}
+
QTEST_MAIN(tst_QSortFilterProxyModel)
#include "tst_qsortfilterproxymodel.moc"
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index 5521873..6069383 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -10029,6 +10029,28 @@ void tst_QWidget::openModal_taskQTBUG_5804()
}
#ifdef Q_OS_SYMBIAN
+
+static CEikButtonGroupContainer* cba()
+{
+ CEikButtonGroupContainer *oldCba = NULL;
+
+ // Due to convoluted/buggy implementation of MEikAppUiFactory interface in Symbian,
+ // the only way to get the correct cba is to use SwapButtonGroup function.
+ // Calling SwapButtonGroup doesn't trigger anything, it only changes the value of iToolbar
+ // member variable, so this double switching should not cause any interference for test.
+ QT_TRAP_THROWING(
+ CEikButtonGroupContainer *dummyCba = CEikButtonGroupContainer::NewL(
+ CEikButtonGroupContainer::ECba, CEikButtonGroupContainer::EHorizontal, NULL, 0);
+
+ oldCba = CEikonEnv::Static()->AppUiFactory()->SwapButtonGroup(dummyCba);
+ CEikonEnv::Static()->AppUiFactory()->SwapButtonGroup(oldCba);
+
+ delete dummyCba;
+ )
+
+ return oldCba;
+}
+
void tst_QWidget::cbaVisibility()
{
// Test case for task 261048
@@ -10061,7 +10083,7 @@ void tst_QWidget::cbaVisibility()
// Verify window decorations i.e. status pane and CBA are visible.
CEikStatusPane* statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
QVERIFY(statusPane->IsVisible());
- CEikButtonGroupContainer* buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba();
+ CEikButtonGroupContainer* buttonGroup = cba();
QVERIFY(buttonGroup->IsVisible());
}
@@ -10078,7 +10100,7 @@ void tst_QWidget::fullScreenWindowModeTransitions()
const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget);
const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget);
CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
- CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba();
+ CEikButtonGroupContainer *buttonGroup = cba();
//Enter
widget.showNormal();
@@ -10132,7 +10154,7 @@ void tst_QWidget::maximizedWindowModeTransitions()
const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget);
const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget);
CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
- CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba();
+ CEikButtonGroupContainer *buttonGroup = cba();
//Enter
widget.showNormal();
@@ -10188,7 +10210,7 @@ void tst_QWidget::minimizedWindowModeTransitions()
const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget);
const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget);
CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
- CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba();
+ CEikButtonGroupContainer *buttonGroup = cba();
//Enter
widget.showNormal();
@@ -10244,7 +10266,7 @@ void tst_QWidget::normalWindowModeTransitions()
const QRect fullScreenGeometry = qApp->desktop()->screenGeometry(&widget);
const QRect maximumScreenGeometry = qApp->desktop()->availableGeometry(&widget);
CEikStatusPane *statusPane = CEikonEnv::Static()->AppUiFactory()->StatusPane();
- CEikButtonGroupContainer *buttonGroup = CEikonEnv::Static()->AppUiFactory()->Cba();
+ CEikButtonGroupContainer *buttonGroup = cba();
//Enter
widget.showMaximized();
diff --git a/tools/configure/configureapp.cpp b/tools/configure/configureapp.cpp
index f4fd7c6..c967dad 100644
--- a/tools/configure/configureapp.cpp
+++ b/tools/configure/configureapp.cpp
@@ -741,6 +741,23 @@ void Configure::parseCmdLine()
} else if (configCmdLine.at(i) == "-opengl-es-2") {
dictionary[ "OPENGL" ] = "yes";
dictionary[ "OPENGL_ES_2" ] = "yes";
+ } else if (configCmdLine.at(i) == "-opengl") {
+ dictionary[ "OPENGL" ] = "yes";
+ i++;
+ if (i == argCount)
+ break;
+
+ if (configCmdLine.at(i) == "es1") {
+ dictionary[ "OPENGL_ES_CM" ] = "yes";
+ } else if ( configCmdLine.at(i) == "es2" ) {
+ dictionary[ "OPENGL_ES_2" ] = "yes";
+ } else if ( configCmdLine.at(i) == "desktop" ) {
+ dictionary[ "OPENGL_ES_2" ] = "yes";
+ } else {
+ cout << "Argument passed to -opengl option is not valid." << endl;
+ dictionary[ "DONE" ] = "error";
+ break;
+ }
}
// OpenVG Support -------------------------------------------
@@ -1012,6 +1029,8 @@ void Configure::parseCmdLine()
if (dictionary.contains("XQMAKESPEC") && dictionary["XQMAKESPEC"].startsWith("symbian")) {
dictionary[ "QT_INSTALL_PLUGINS" ] =
QString("\\resource\\qt%1\\plugins").arg(dictionary[ "QT_LIBINFIX" ]);
+ dictionary[ "QT_INSTALL_IMPORTS" ] =
+ QString("\\resource\\qt%1\\imports").arg(dictionary[ "QT_LIBINFIX" ]);
}
} else if (configCmdLine.at(i) == "-D") {
++i;
@@ -1735,6 +1754,11 @@ bool Configure::displayHelp()
desc("QT3SUPPORT", "no","-no-qt3support", "Disables the Qt 3 support functionality.\n");
desc("OPENGL", "no","-no-opengl", "Disables OpenGL functionality\n");
+ desc("OPENGL", "no","-opengl <api>", "Enable OpenGL support with specified API version.\n"
+ "Available values for <api>:");
+ desc("", "", "", " desktop - Enable support for Desktop OpenGL", ' ');
+ desc("OPENGL_ES_CM", "no", "", " es1 - Enable support for OpenGL ES Common Profile", ' ');
+ desc("OPENGL_ES_2", "no", "", " es2 - Enable support for OpenGL ES 2.0", ' ');
desc("OPENVG", "no","-no-openvg", "Disables OpenVG functionality\n");
desc("OPENVG", "yes","-openvg", "Enables OpenVG functionality");
@@ -1895,8 +1919,7 @@ bool Configure::displayHelp()
desc("CETEST", "no", "-no-cetest", "Do not compile Windows CE remote test application");
desc("CETEST", "yes", "-cetest", "Compile Windows CE remote test application");
desc( "-signature <file>", "Use file for signing the target project");
- desc("OPENGL_ES_CM", "no", "-opengl-es-cm", "Enable support for OpenGL ES Common");
- desc("OPENGL_ES_2", "no", "-opengl-es-2", "Enable support for OpenGL ES 2.0");
+
desc("DIRECTSHOW", "no", "-phonon-wince-ds9", "Enable Phonon Direct Show 9 backend for Windows CE");
// Qt\Symbian only options go below here -----------------------------------------------------------------------------
@@ -2471,15 +2494,11 @@ void Configure::generateOutputVars()
qtConfig += "no-gif";
else if (dictionary[ "GIF" ] == "yes")
qtConfig += "gif";
- else if (dictionary[ "GIF" ] == "plugin")
- qmakeFormatPlugins += "gif";
if (dictionary[ "TIFF" ] == "no")
qtConfig += "no-tiff";
else if (dictionary[ "TIFF" ] == "yes")
qtConfig += "tiff";
- else if (dictionary[ "TIFF" ] == "plugin")
- qmakeFormatPlugins += "tiff";
if (dictionary[ "LIBTIFF" ] == "system")
qtConfig += "system-tiff";
@@ -2487,8 +2506,6 @@ void Configure::generateOutputVars()
qtConfig += "no-jpeg";
else if (dictionary[ "JPEG" ] == "yes")
qtConfig += "jpeg";
- else if (dictionary[ "JPEG" ] == "plugin")
- qmakeFormatPlugins += "jpeg";
if (dictionary[ "LIBJPEG" ] == "system")
qtConfig += "system-jpeg";
@@ -2807,8 +2824,6 @@ void Configure::generateOutputVars()
qmakeVars += QString("styles += ") + qmakeStyles.join(" ");
if (!qmakeStylePlugins.isEmpty())
qmakeVars += QString("style-plugins += ") + qmakeStylePlugins.join(" ");
- if (!qmakeFormatPlugins.isEmpty())
- qmakeVars += QString("imageformat-plugins += ") + qmakeFormatPlugins.join(" ");
if (dictionary["QMAKESPEC"].endsWith("-g++")) {
QString includepath = qgetenv("INCLUDE");
diff --git a/tools/configure/configureapp.h b/tools/configure/configureapp.h
index b3c07f7..32d1860 100644
--- a/tools/configure/configureapp.h
+++ b/tools/configure/configureapp.h
@@ -122,8 +122,6 @@ private:
QStringList qmakeStyles;
QStringList qmakeStylePlugins;
- QStringList qmakeFormatPlugins;
-
QStringList qmakeVars;
QStringList qmakeDefines;
// makeList[0] for qt and qtmain
diff --git a/tools/linguist/linguist/messagemodel.cpp b/tools/linguist/linguist/messagemodel.cpp
index 39ba9fd..c2edc75 100644
--- a/tools/linguist/linguist/messagemodel.cpp
+++ b/tools/linguist/linguist/messagemodel.cpp
@@ -209,6 +209,13 @@ bool DataModel::load(const QString &fileName, bool *langGuessed, QWidget *parent
return false;
}
+ if (!tor.messageCount()) {
+ QMessageBox::warning(parent, QObject::tr("Qt Linguist"),
+ tr("The translation file '%1' will not be loaded because it is empty.")
+ .arg(Qt::escape(fileName)));
+ return false;
+ }
+
Translator::Duplicates dupes = tor.resolveDuplicates();
if (!dupes.byId.isEmpty() || !dupes.byContents.isEmpty()) {
QString err = tr("<qt>Duplicate messages found in '%1':").arg(Qt::escape(fileName));
diff --git a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h
index d47c829..6df3c22 100644
--- a/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h
+++ b/tools/qmeegographicssystemhelper/qmeegographicssystemhelper.h
@@ -181,6 +181,9 @@ public:
This function needs to be called *before* any widget/content is created.
When called with true, the base window surface will be translucent and initialized
with QGLFormat.alpha == true.
+
+ This function is *deprecated*. Set Qt::WA_TranslucentBackground attribute
+ on the top-level widget *before* you show it instead.
*/
static void setTranslucent(bool translucent);
};
diff --git a/tools/qml/browser/Browser.qml b/tools/qml/browser/Browser.qml
index b9573da..968d077 100644
--- a/tools/qml/browser/Browser.qml
+++ b/tools/qml/browser/Browser.qml
@@ -173,7 +173,7 @@ Rectangle {
width: parent.width
model: folders1
delegate: folderDelegate
- highlight: Rectangle {
+ highlight: Rectangle {
color: palette.highlight
visible: root.showFocusHighlight && view1.count != 0
gradient: Gradient {
diff --git a/tools/qml/deviceorientation.h b/tools/qml/deviceorientation.h
index 487ebd4..88ceb1b 100644
--- a/tools/qml/deviceorientation.h
+++ b/tools/qml/deviceorientation.h
@@ -52,8 +52,8 @@ class DeviceOrientation : public QObject
Q_OBJECT
Q_ENUMS(Orientation)
public:
- enum Orientation {
- UnknownOrientation,
+ enum Orientation {
+ UnknownOrientation,
Portrait,
Landscape,
PortraitInverted,
diff --git a/tools/qml/main.cpp b/tools/qml/main.cpp
index 209c72f..b9513b9 100644
--- a/tools/qml/main.cpp
+++ b/tools/qml/main.cpp
@@ -59,6 +59,19 @@ QtMsgHandler systemMsgOutput = 0;
static QDeclarativeViewer *openFile(const QString &fileName);
static void showViewer(QDeclarativeViewer *viewer);
+QString warnings;
+void exitApp(int i)
+{
+#ifdef Q_OS_WIN
+ // Debugging output is not visible by default on Windows -
+ // therefore show modal dialog with errors instead.
+ if (!warnings.isEmpty()) {
+ QMessageBox::warning(0, QApplication::tr("Qt QML Viewer"), warnings);
+ }
+#endif
+ exit(i);
+}
+
#if defined (Q_OS_SYMBIAN)
#include <unistd.h>
#include <sys/types.h>
@@ -85,31 +98,22 @@ void myMessageOutput(QtMsgType type, const char *msg)
QWeakPointer<LoggerWidget> logger;
-QString warnings;
-void showWarnings()
-{
- if (!warnings.isEmpty()) {
- int argc = 0; char **argv = 0;
- QApplication application(argc, argv); // QApplication() in main has been destroyed already.
- Q_UNUSED(application)
- QMessageBox::warning(0, QApplication::tr("Qt QML Viewer"), warnings);
- }
-}
-
static QAtomicInt recursiveLock(0);
void myMessageOutput(QtMsgType type, const char *msg)
{
QString strMsg = QString::fromLatin1(msg);
- if (!logger.isNull() && !QCoreApplication::closingDown()) {
- if (recursiveLock.testAndSetOrdered(0, 1)) {
- QMetaObject::invokeMethod(logger.data(), "append", Q_ARG(QString, strMsg));
- recursiveLock = 0;
+ if (!QCoreApplication::closingDown()) {
+ if (!logger.isNull()) {
+ if (recursiveLock.testAndSetOrdered(0, 1)) {
+ QMetaObject::invokeMethod(logger.data(), "append", Q_ARG(QString, strMsg));
+ recursiveLock = 0;
+ }
+ } else {
+ warnings += strMsg;
+ warnings += QLatin1Char('\n');
}
- } else {
- warnings += strMsg;
- warnings += QLatin1Char('\n');
}
if (systemMsgOutput) { // Windows
systemMsgOutput(type, msg);
@@ -165,7 +169,8 @@ void usage()
qWarning(" ");
qWarning(" Press F1 for interactive help");
- exit(1);
+
+ exitApp(1);
}
void scriptOptsUsage()
@@ -184,7 +189,8 @@ void scriptOptsUsage()
qWarning(" saveonexit ............................... save recording on viewer exit");
qWarning(" ");
qWarning(" One of record, play or both must be specified.");
- exit(1);
+
+ exitApp(1);
}
enum WarningsConfig { ShowWarnings, HideWarnings, DefaultWarnings };
@@ -370,7 +376,7 @@ static void parseCommandLineOptions(const QStringList &arguments)
qApp->setStartDragDistance(arguments.at(++i).toInt());
} else if (arg == QLatin1String("-v") || arg == QLatin1String("-version")) {
qWarning("Qt QML Viewer version %s", QT_VERSION_STR);
- exit(0);
+ exitApp(0);
} else if (arg == "-translation") {
if (lastArg) usage();
opts.translationFile = arguments.at(++i);
@@ -400,7 +406,7 @@ static void parseCommandLineOptions(const QStringList &arguments)
QDeclarativeEngine tmpEngine;
QString paths = tmpEngine.importPathList().join(QLatin1String(":"));
qWarning("Current search path: %s", paths.toLocal8Bit().constData());
- exit(0);
+ exitApp(0);
}
opts.imports << arguments.at(++i);
} else if (arg == "-P") {
@@ -529,12 +535,6 @@ int main(int argc, char ** argv)
systemMsgOutput = qInstallMsgHandler(myMessageOutput);
#endif
-#if defined (Q_OS_WIN)
- // Debugging output is not visible by default on Windows -
- // therefore show modal dialog with errors instead.
- atexit(showWarnings);
-#endif
-
#if defined (Q_WS_X11) || defined (Q_WS_MAC)
//### default to using raster graphics backend for now
bool gsSpecified = false;
diff --git a/tools/qml/qdeclarativetester.cpp b/tools/qml/qdeclarativetester.cpp
index e3a1f59..1bcdb04 100644
--- a/tools/qml/qdeclarativetester.cpp
+++ b/tools/qml/qdeclarativetester.cpp
@@ -54,9 +54,9 @@ QT_BEGIN_NAMESPACE
extern Q_GUI_EXPORT bool qt_applefontsmoothing_enabled;
-QDeclarativeTester::QDeclarativeTester(const QString &script, QDeclarativeViewer::ScriptOptions opts,
+QDeclarativeTester::QDeclarativeTester(const QString &script, QDeclarativeViewer::ScriptOptions opts,
QDeclarativeView *parent)
-: QAbstractAnimation(parent), m_script(script), m_view(parent), filterEvents(true), options(opts),
+: QAbstractAnimation(parent), m_script(script), m_view(parent), filterEvents(true), options(opts),
testscript(0), hasCompleted(false), hasFailed(false)
{
parent->viewport()->installEventFilter(this);
@@ -75,8 +75,8 @@ QDeclarativeTester::QDeclarativeTester(const QString &script, QDeclarativeViewer
QDeclarativeTester::~QDeclarativeTester()
{
- if (!hasFailed &&
- options & QDeclarativeViewer::Record &&
+ if (!hasFailed &&
+ options & QDeclarativeViewer::Record &&
options & QDeclarativeViewer::SaveOnExit)
save();
}
@@ -228,7 +228,7 @@ void QDeclarativeTester::save()
}
ts << " }\n";
- while (!mouseevents.isEmpty() &&
+ while (!mouseevents.isEmpty() &&
mouseevents.first().msec == fe.msec) {
MouseEvent me = mouseevents.takeFirst();
@@ -345,7 +345,7 @@ void QDeclarativeTester::updateCurrentTime(int msec)
if (QDeclarativeVisualTestFrame *frame = qobject_cast<QDeclarativeVisualTestFrame *>(event)) {
if (frame->msec() < msec) {
if (options & QDeclarativeViewer::TestImages && !(options & QDeclarativeViewer::Record)) {
- qWarning() << "QDeclarativeTester(" << m_script << "): Extra frame. Seen:"
+ qWarning() << "QDeclarativeTester(" << m_script << "): Extra frame. Seen:"
<< msec << "Expected:" << frame->msec();
imagefailure();
}
@@ -371,7 +371,7 @@ void QDeclarativeTester::updateCurrentTime(int msec)
}
if (goodImage != img) {
QString reject(frame->image().toLocalFile() + ".reject.png");
- qWarning() << "QDeclarativeTester(" << m_script << "): Image mismatch. Reject saved to:"
+ qWarning() << "QDeclarativeTester(" << m_script << "): Image mismatch. Reject saved to:"
<< reject;
img.save(reject);
bool doDiff = (goodImage.size() == img.size());
@@ -424,7 +424,7 @@ void QDeclarativeTester::updateCurrentTime(int msec)
ke.destination = ViewPort;
}
m_savedKeyEvents.append(ke);
- }
+ }
testscriptidx++;
}
diff --git a/tools/qml/qdeclarativetester.h b/tools/qml/qdeclarativetester.h
index 0cf508a..6fdf495 100644
--- a/tools/qml/qdeclarativetester.h
+++ b/tools/qml/qdeclarativetester.h
@@ -122,7 +122,7 @@ public:
int type() const { return m_type; }
void setType(int t) { m_type = t; }
-
+
int button() const { return m_button; }
void setButton(int b) { m_button = b; }
@@ -237,7 +237,7 @@ private:
struct MouseEvent {
MouseEvent(QMouseEvent *e)
- : type(e->type()), button(e->button()), buttons(e->buttons()),
+ : type(e->type()), button(e->button()), buttons(e->buttons()),
pos(e->pos()), modifiers(e->modifiers()), destination(View) {}
QEvent::Type type;
diff --git a/tools/qml/qml.pro b/tools/qml/qml.pro
index 3927dd6..bdac6e3 100644
--- a/tools/qml/qml.pro
+++ b/tools/qml/qml.pro
@@ -4,7 +4,7 @@ DESTDIR = ../../bin
include(qml.pri)
-SOURCES += main.cpp
+SOURCES += main.cpp
INCLUDEPATH += ../../include/QtDeclarative
INCLUDEPATH += ../../src/declarative/util
@@ -26,7 +26,7 @@ wince* {
QT += xmlpatterns
}
contains(QT_CONFIG, webkit) {
- QT += webkit
+ QT += webkit
}
}
maemo5 {
diff --git a/tools/qml/qmlruntime.cpp b/tools/qml/qmlruntime.cpp
index 7ea77d1..142e4c5 100644
--- a/tools/qml/qmlruntime.cpp
+++ b/tools/qml/qmlruntime.cpp
@@ -820,7 +820,7 @@ void QDeclarativeViewer::createMenu()
fileMenu->addAction(reloadAction);
fileMenu->addSeparator();
fileMenu->addAction(closeAction);
-#if !defined(Q_OS_SYMBIAN)
+#if !defined(Q_OS_SYMBIAN)
fileMenu->addAction(quitAction);
QMenu *recordMenu = menu->addMenu(tr("&Recording"));
@@ -836,7 +836,7 @@ void QDeclarativeViewer::createMenu()
settingsMenu->addAction(proxyAction);
#if defined(Q_OS_SYMBIAN)
settingsMenu->addAction(fullscreenAction);
-#else
+#else
settingsMenu->addAction(recordOptions);
settingsMenu->addMenu(loggerWindow->preferencesMenu());
#endif // !Q_OS_SYMBIAN
@@ -1520,7 +1520,7 @@ void QDeclarativeViewer::updateSizeHints(bool initial)
//qWarning() << "USH: R2V: setting free size ";
layout()->setSizeConstraint(QLayout::SetNoConstraint);
layout()->activate();
- setMinimumSize(QSize(1,1));
+ setMinimumSize(minimumSizeHint());
setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
canvas->setMinimumSize(QSize(0,0));
canvas->setMaximumSize(QSize(QWIDGETSIZE_MAX, QWIDGETSIZE_MAX));
diff --git a/tools/qml/startup/startup.qml b/tools/qml/startup/startup.qml
index 9ca50a3..35c44c2 100644
--- a/tools/qml/startup/startup.qml
+++ b/tools/qml/startup/startup.qml
@@ -92,8 +92,8 @@ Rectangle {
to: 360
loops: NumberAnimation.Infinite
running: true
- duration: 2000
- }
+ duration: 2000
+ }
}
}
}
@@ -168,6 +168,6 @@ Rectangle {
}
}
}
- ]
+ ]
} // treatsApp