summaryrefslogtreecommitdiffstats
path: root/tests/auto/declarative
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/declarative')
-rw-r--r--tests/auto/declarative/.gitignore1
-rw-r--r--tests/auto/declarative/declarative.pro16
-rw-r--r--tests/auto/declarative/examples/examples.pro7
-rw-r--r--tests/auto/declarative/examples/tst_examples.cpp77
-rw-r--r--tests/auto/declarative/graphicswidgets/data/graphicswidgets.qml85
-rw-r--r--tests/auto/declarative/graphicswidgets/graphicswidgets.pro2
-rw-r--r--tests/auto/declarative/graphicswidgets/tst_graphicswidgets.cpp7
-rw-r--r--tests/auto/declarative/layouts/data/layouts.qml34
-rw-r--r--tests/auto/declarative/layouts/layouts.pro7
-rw-r--r--tests/auto/declarative/layouts/tst_layouts.cpp147
-rw-r--r--tests/auto/declarative/parserstress/parserstress.pro3
-rw-r--r--tests/auto/declarative/parserstress/tst_parserstress.cpp6
-rw-r--r--tests/auto/declarative/qdeclarativeanchors/data/anchorsqgraphicswidget.qml163
-rw-r--r--tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp107
-rw-r--r--tests/auto/declarative/qdeclarativeanimatedimage/data/qmldir1
-rw-r--r--tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanerror1.qml6
-rw-r--r--tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanscaled.qml7
-rw-r--r--tests/auto/declarative/qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp30
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/badtype1.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/badtype2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/badtype3.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/dontAutoStart.qml4
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/dontStart.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/properties.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/properties2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/properties3.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/properties4.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/properties5.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/rotation.qml48
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/valuesource.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/data/valuesource2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/qdeclarativeanimations.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp78
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/binding.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/color.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/cpptrigger.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/disabled.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/dontStart.qml4
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/empty.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/explicit.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/groupProperty.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/groupProperty2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/loop.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/nonSelecting2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/parent.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/reassignedAnimation.qml6
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/scripttrigger.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/simple.qml4
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/startup.qml17
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro3
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp199
-rw-r--r--tests/auto/declarative/qdeclarativebinding/data/test-binding.qml2
-rw-r--r--tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro3
-rw-r--r--tests/auto/declarative/qdeclarativebinding/tst_qdeclarativebinding.cpp10
-rw-r--r--tests/auto/declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp40
-rw-r--r--tests/auto/declarative/qdeclarativecomponent/qdeclarativecomponent.pro11
-rw-r--r--tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp75
-rw-r--r--tests/auto/declarative/qdeclarativeconnection/qdeclarativeconnection.pro3
-rw-r--r--tests/auto/declarative/qdeclarativecontext/qdeclarativecontext.pro3
-rw-r--r--tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp107
-rw-r--r--tests/auto/declarative/qdeclarativedatetimeformatter/qdeclarativedatetimeformatter.pro5
-rw-r--r--tests/auto/declarative/qdeclarativedatetimeformatter/tst_qdeclarativedatetimeformatter.cpp150
-rw-r--r--tests/auto/declarative/qdeclarativedebug/qdeclarativedebug.pro3
-rw-r--r--tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp6
-rw-r--r--tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro3
-rw-r--r--tests/auto/declarative/qdeclarativedom/data/import/Bar.qml (renamed from tests/auto/declarative/qdeclarativedom/data/importdir/Bar.qml)0
-rw-r--r--tests/auto/declarative/qdeclarativedom/data/importlib/sublib/Foo.qml (renamed from tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir/Foo.qml)0
-rw-r--r--tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro3
-rw-r--r--tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp162
-rw-r--r--tests/auto/declarative/qdeclarativeeasefollow/data/easefollow1.qml3
-rw-r--r--tests/auto/declarative/qdeclarativeeasefollow/data/easefollow2.qml5
-rw-r--r--tests/auto/declarative/qdeclarativeeasefollow/data/easefollow3.qml6
-rw-r--r--tests/auto/declarative/qdeclarativeeasefollow/qdeclarativeeasefollow.pro8
-rw-r--r--tests/auto/declarative/qdeclarativeeasefollow/tst_qdeclarativeeasefollow.cpp122
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/SpuriousWarning.qml5
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/attachedPropertyScope.qml9
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml44
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/deletedEngine.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml6
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/extensionObjects.qml9
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/functionErrors.qml10
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.1.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.js6
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.qml7
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/listProperties.qml13
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/listToVariant.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/methods.5.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.2.qml10
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.qml9
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/nullObjectBinding.qml8
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/numberAssignment.qml18
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/objectsCompareAsEqual.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/ownership.qml5
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/propertyAssignmentErrors.qml22
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/qlistqobjectMethods.qml6
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/qtbug_9792.qml5
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/regExp.qml7
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scope.3.qml13
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scope.4.qml12
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml16
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml22
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.3.qml15
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.4.qml12
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.5.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml20
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml18
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml19
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml19
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml20
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.1.qml13
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.2.qml11
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.js5
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/signalParameterTypes.qml4
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/strictlyEquals.qml17
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.qml4
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/variantsAssignedUndefined.qml9
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp17
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/testtypes.h167
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp630
-rw-r--r--tests/auto/declarative/qdeclarativeengine/qdeclarativeengine.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp4
-rw-r--r--tests/auto/declarative/qdeclarativeerror/qdeclarativeerror.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp8
-rw-r--r--tests/auto/declarative/qdeclarativeflipable/data/crash.qml9
-rw-r--r--tests/auto/declarative/qdeclarativeflipable/data/flipable-abort.qml10
-rw-r--r--tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp25
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test.qml77
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test2.qml39
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test3.qml52
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test4.qml76
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test5.qml84
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro7
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp278
-rw-r--r--tests/auto/declarative/qdeclarativefontloader/qdeclarativefontloader.pro8
-rw-r--r--tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp43
-rw-r--r--tests/auto/declarative/qdeclarativegridview/data/gridview-enforcerange.qml56
-rw-r--r--tests/auto/declarative/qdeclarativegridview/data/gridview-initCurrent.qml1
-rw-r--r--tests/auto/declarative/qdeclarativegridview/data/gridview.qml50
-rw-r--r--tests/auto/declarative/qdeclarativegridview/data/gridview1.qml56
-rw-r--r--tests/auto/declarative/qdeclarativegridview/data/propertychangestest.qml69
-rw-r--r--tests/auto/declarative/qdeclarativegridview/data/setindex.qml10
-rw-r--r--tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro3
-rw-r--r--tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp711
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/aspectratio.qml6
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/big.jpegbin0 -> 1700081 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/big256.pngbin0 -> 3566 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart-mac.pngbin0 -> 12621 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart-win32.pngbin0 -> 12621 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart.pngbin0 -> 12577 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart.svg55
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart200-mac.pngbin0 -> 8062 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart200-win32.pngbin0 -> 8062 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/data/heart200.pngbin0 -> 8063 bytes
-rw-r--r--tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp132
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp40
-rw-r--r--tests/auto/declarative/qdeclarativeinfo/data/NestedObject.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeinfo/data/nestedQmlObject.qml4
-rw-r--r--tests/auto/declarative/qdeclarativeinfo/data/qmlObject.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeinstruction/qdeclarativeinstruction.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp52
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/childrenProperty.qml14
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/keynavigation.qml39
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml47
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/keys.qml18
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/keystest.qml20
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/mapCoordinates.qml43
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/propertychanges.qml10
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/resourcesProperty.qml21
-rw-r--r--tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp258
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/LocalLast.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/OnDestructionType.qml8
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/assignBasicTypes.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/assignLiteralToVariant.qml14
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/component.3.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/customOnProperty.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml3
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/emptySignal.2.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/emptySignal.2.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/enumTypes.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/enumTypes.qml4
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/failingComponent.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/i18nScript.qml9
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/idProperty.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/importNewerVersion.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/importNewerVersion.qml3
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/importNonExist.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/importNonExist.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/importscript.1.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/importscript.1.qml3
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.10.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.10.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.8.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.8.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.9.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.9.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidID.7.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidID.7.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidID.8.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidID.8.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidID.9.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidID.9.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/invalidID.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml4
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/LocalLast.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/method.1.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/method.1.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.1.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.1.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.10.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.10.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.2.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.2.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.3.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.3.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.4.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.4.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.5.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.5.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.6.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.6.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.7.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.7.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.8.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.8.qml8
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.9.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/multiSet.9.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/onDestruction.qml17
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/property.6.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/property.6.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/property.7.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/property.7.qml5
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.1.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.1.qml4
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.10.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.10.qml9
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.11.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.11.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.12.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.12.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.2.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.2.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.3.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.3.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.4.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.4.qml8
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.5.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.5.qml9
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.6.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.6.qml11
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.7.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.7.qml11
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.8.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.8.qml9
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.9.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/script.9.qml7
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/signal.4.errors.txt1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/signal.4.qml6
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.errors.txt2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestNamed.qml1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml3
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/WrongTestLocal.qml1
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir8
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/testtypes.cpp21
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/testtypes.h103
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp380
-rw-r--r--tests/auto/declarative/qdeclarativelayouts/data/layouts.qml31
-rw-r--r--tests/auto/declarative/qdeclarativelayouts/qdeclarativelayouts.pro10
-rw-r--r--tests/auto/declarative/qdeclarativelayouts/tst_qdeclarativelayouts.cpp147
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/data/model.qml22
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/data/script.js13
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro6
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp300
-rw-r--r--tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelistreference/qdeclarativelistreference.pro3
-rw-r--r--tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp6
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/listview-initCurrent.qml1
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/listview.qml119
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml117
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/propertychangestest.qml71
-rw-r--r--tests/auto/declarative/qdeclarativelistview/data/strictlyenforcerange.qml29
-rw-r--r--tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro2
-rw-r--r--tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp769
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/BlueRect.qml8
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/GreenRect.qml7
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/VmeError.qml7
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/crash.qml14
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/differentorigin.qml3
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/nonItem.qml5
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/qmldir1
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/sameorigin-load.qml3
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/sameorigin.qml3
-rw-r--r--tests/auto/declarative/qdeclarativeloader/data/vmeErrors.qml6
-rw-r--r--tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro2
-rw-r--r--tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp95
-rw-r--r--tests/auto/declarative/qdeclarativemetatype/qdeclarativemetatype.pro3
-rw-r--r--tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp14
-rw-r--r--tests/auto/declarative/qdeclarativemoduleplugin/data/works.qml (renamed from tests/auto/declarative/qdeclarativemoduleplugin/plugin.qml)0
-rw-r--r--tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType/qmldir (renamed from tests/auto/declarative/qdeclarativemoduleplugin/com/nokia/AutoTestQmlPluginType/qmldir)0
-rw-r--r--tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.pro2
-rw-r--r--tests/auto/declarative/qdeclarativemoduleplugin/qdeclarativemoduleplugin.pro1
-rw-r--r--tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp10
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/data/clickandhold.qml13
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/data/dragreset.qml28
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnClick.qml20
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro3
-rw-r--r--tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp110
-rw-r--r--tests/auto/declarative/qdeclarativenumberformatter/qdeclarativenumberformatter.pro5
-rw-r--r--tests/auto/declarative/qdeclarativenumberformatter/tst_qdeclarativenumberformatter.cpp222
-rw-r--r--tests/auto/declarative/qdeclarativeparticles/data/particlemotion.qml33
-rw-r--r--tests/auto/declarative/qdeclarativeparticles/data/particlemotiontest.qml35
-rw-r--r--tests/auto/declarative/qdeclarativeparticles/data/particles.qml15
-rw-r--r--tests/auto/declarative/qdeclarativeparticles/data/particlestest.qml17
-rw-r--r--tests/auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeparticles/tst_qdeclarativeparticles.cpp133
-rw-r--r--tests/auto/declarative/qdeclarativepathview/data/displaypath.qml1
-rw-r--r--tests/auto/declarative/qdeclarativepathview/data/pathtest.qml (renamed from tests/auto/declarative/qdeclarativepathview/data/path.qml)0
-rw-r--r--tests/auto/declarative/qdeclarativepathview/data/pathview.qml66
-rw-r--r--tests/auto/declarative/qdeclarativepathview/data/pathview0.qml79
-rw-r--r--tests/auto/declarative/qdeclarativepathview/data/pathview2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativepathview/data/pathview3.qml8
-rw-r--r--tests/auto/declarative/qdeclarativepathview/data/propertychanges.qml116
-rw-r--r--tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro3
-rw-r--r--tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp248
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/data/http/exists.png (renamed from tests/auto/declarative/visual/webview/zooming/qtlogo.png)bin2738 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/data/http/exists1.png (renamed from tests/auto/declarative/visual/webview/settings/qtlogo.png)bin2738 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/data/http/exists2.png (renamed from tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png)bin2738 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/data/http/exists3.png (renamed from tests/auto/declarative/visual/animation/easing/pics/qtlogo.png)bin2738 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/data/http/exists4.pngbin0 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/data/http/exists5.pngbin0 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro9
-rw-r--r--tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp51
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/flowtest.qml40
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/grid-animated.qml1
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/grid-spacing.qml1
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/grid-toptobottom.qml41
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/grid.qml39
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/gridtest.qml40
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/gridzerocolumns.qml40
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/horizontal-animated.qml1
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/horizontal-spacing.qml1
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/horizontal.qml1
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/propertychangestest.qml (renamed from tests/auto/declarative/qdeclarativepositioners/data/propertychanges.qml)0
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/repeatertest.qml (renamed from tests/auto/declarative/qdeclarativepositioners/data/repeater.qml)0
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/vertical-animated.qml1
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/vertical-spacing.qml1
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/data/vertical.qml1
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/qdeclarativepositioners.pro3
-rw-r--r--tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp186
-rw-r--r--tests/auto/declarative/qdeclarativeproperty/data/TestType.qml6
-rw-r--r--tests/auto/declarative/qdeclarativeproperty/data/readSynthesizedObject.qml9
-rw-r--r--tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro5
-rw-r--r--tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp210
-rw-r--r--tests/auto/declarative/qdeclarativepropertymap/qdeclarativepropertymap.pro3
-rw-r--r--tests/auto/declarative/qdeclarativepropertymap/tst_qdeclarativepropertymap.cpp22
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/closestangle.qml12
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml4
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/darker.qml12
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/formatting.qml19
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/isQtObject.qml14
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/lighter.qml12
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/openUrlExternally.qml5
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/point.qml8
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/rect.qml10
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/size.qml10
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/tint.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/vector.qml8
-rw-r--r--tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro3
-rw-r--r--tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp104
-rw-r--r--tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml8
-rw-r--r--tests/auto/declarative/qdeclarativerepeater/data/properties.qml2
-rw-r--r--tests/auto/declarative/qdeclarativerepeater/data/repeater1.qml (renamed from tests/auto/declarative/qdeclarativerepeater/data/repeater.qml)0
-rw-r--r--tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro2
-rw-r--r--tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp16
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation1.qml3
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation2.qml5
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation3.qml6
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml24
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationValueSource.qml13
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedanimation/qdeclarativesmoothedanimation.pro11
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedanimation/tst_qdeclarativesmoothedanimation.cpp207
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow1.qml3
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow2.qml5
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow3.qml6
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowDisabled.qml13
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowValueSource.qml13
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/qdeclarativesmoothedfollow.pro11
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedfollow/tst_qdeclarativesmoothedfollow.cpp189
-rw-r--r--tests/auto/declarative/qdeclarativespringfollow/data/springfollow2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativespringfollow/data/springfollow3.qml2
-rw-r--r--tests/auto/declarative/qdeclarativespringfollow/qdeclarativespringfollow.pro3
-rw-r--r--tests/auto/declarative/qdeclarativespringfollow/tst_qdeclarativespringfollow.cpp6
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/README (renamed from tests/auto/declarative/sql/data/README)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/changeversion.js (renamed from tests/auto/declarative/sql/data/changeversion.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/creation-a.js (renamed from tests/auto/declarative/sql/data/creation-a.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/creation.js (renamed from tests/auto/declarative/sql/data/creation.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/error-a.js (renamed from tests/auto/declarative/sql/data/error-a.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/error-b.js (renamed from tests/auto/declarative/sql/data/error-b.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/error-creation.js14
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/error-notransaction.js (renamed from tests/auto/declarative/sql/data/error-notransaction.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/error-outsidetransaction.js (renamed from tests/auto/declarative/sql/data/error-outsidetransaction.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/iteration-forwardonly.js (renamed from tests/auto/declarative/sql/data/iteration-forwardonly.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/iteration.js (renamed from tests/auto/declarative/sql/data/iteration.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/readonly-error.js (renamed from tests/auto/declarative/sql/data/readonly-error.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/readonly.js (renamed from tests/auto/declarative/sql/data/readonly.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/reopen1.js (renamed from tests/auto/declarative/sql/data/reopen1.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/reopen2.js (renamed from tests/auto/declarative/sql/data/reopen2.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/selection-bindnames.js (renamed from tests/auto/declarative/sql/data/selection-bindnames.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/data/selection.js (renamed from tests/auto/declarative/sql/data/selection.js)0
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/qdeclarativesqldatabase.pro12
-rw-r--r--tests/auto/declarative/qdeclarativesqldatabase/tst_qdeclarativesqldatabase.cpp239
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/Implementation/MyType.qml32
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/Implementation/images/qt-logo.pngbin0 -> 5149 bytes
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/anchorChanges.qml23
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/anchorChanges1.qml23
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/anchorChanges2.qml4
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/anchorChanges3.qml8
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/anchorChanges4.qml4
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/anchorChanges5.qml4
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/anchorChangesCrash.qml14
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/illegalObj.qml12
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/parentChange1.qml (renamed from tests/auto/declarative/qdeclarativestates/data/parentChange.qml)0
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/reset.qml6
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/urlResolution.qml12
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/whenOrdering.qml11
-rw-r--r--tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro2
-rw-r--r--tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp131
-rw-r--r--tests/auto/declarative/qdeclarativestyledtext/qdeclarativestyledtext.pro2
-rw-r--r--tests/auto/declarative/qdeclarativestyledtext/tst_qdeclarativestyledtext.cpp5
-rw-r--r--tests/auto/declarative/qdeclarativesystempalette/qdeclarativesystempalette.pro3
-rw-r--r--tests/auto/declarative/qdeclarativesystempalette/tst_qdeclarativesystempalette.cpp8
-rw-r--r--tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocal.qml5
-rw-r--r--tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocalError.qml5
-rw-r--r--tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemote.qml5
-rw-r--r--tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemoteError.qml5
-rw-r--r--tests/auto/declarative/qdeclarativetext/data/http/exists.pngbin0 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro10
-rw-r--r--tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp177
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/data/http/qmldir4
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/data/navigation.qml2
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/data/readOnly.qml2
-rw-r--r--tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp124
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml11
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/data/navigation.qml2
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/data/readOnly.qml2
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/data/validators.qml13
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro1
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp173
-rw-r--r--tests/auto/declarative/qdeclarativetimer/qdeclarativetimer.pro2
-rw-r--r--tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp53
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/autoBindingRemoval.3.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/bindingVariantCopy.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.1.qml42
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.2.qml42
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.3.qml42
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.qml9
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/enums.1.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/enums.2.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/enums.3.qml6
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/enums.4.qml7
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/font_read.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/font_write.4.qml7
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/font_write.5.qml14
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/point_read.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/pointf_read.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/rect_read.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/rectf_read.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml17
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/scriptVariantCopy.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/size_read.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/sizef_read.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_read.qml8
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror.qml6
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror2.qml7
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror3.qml7
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror4.qml10
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/valueInterceptors.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/valueSources.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/data/vector3d_read.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro3
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/testtypes.cpp6
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/testtypes.h22
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp184
-rw-r--r--tests/auto/declarative/qdeclarativewebview/data/basic.qml1
-rw-r--r--tests/auto/declarative/qdeclarativewebview/data/elements.qml1
-rw-r--r--tests/auto/declarative/qdeclarativewebview/data/forward.pngbin0 -> 2377 bytes
-rw-r--r--tests/auto/declarative/qdeclarativewebview/data/javaScript.qml1
-rw-r--r--tests/auto/declarative/qdeclarativewebview/data/loadError.qml1
-rw-r--r--tests/auto/declarative/qdeclarativewebview/data/newwindows.qml5
-rw-r--r--tests/auto/declarative/qdeclarativewebview/data/propertychanges.qml3
-rw-r--r--tests/auto/declarative/qdeclarativewebview/data/sethtml.qml1
-rw-r--r--tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro5
-rw-r--r--tests/auto/declarative/qdeclarativewebview/testtypes.cpp52
-rw-r--r--tests/auto/declarative/qdeclarativewebview/testtypes.h66
-rw-r--r--tests/auto/declarative/qdeclarativewebview/tst_qdeclarativewebview.cpp356
-rw-r--r--tests/auto/declarative/qdeclarativeworkerscript/data/script.js5
-rw-r--r--tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml24
-rw-r--r--tests/auto/declarative/qdeclarativeworkerscript/qdeclarativeworkerscript.pro11
-rw-r--r--tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp182
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.expect2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.qml68
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.qml136
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/document.qml40
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/element.qml168
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.expect2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.expect2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.expect2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.expect2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.expect2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_GET.expect2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_PUT.expect2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.expect2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml1
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/status.expect2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml2
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/text.qml134
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml28
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.xmlbin0 -> 154 bytes
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro3
-rw-r--r--tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp560
-rw-r--r--tests/auto/declarative/qdeclarativexmllistmodel/data/model2.xml14
-rw-r--r--tests/auto/declarative/qdeclarativexmllistmodel/data/propertychanges.qml10
-rw-r--r--tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro3
-rw-r--r--tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp418
-rw-r--r--tests/auto/declarative/qmetaobjectbuilder/qmetaobjectbuilder.pro1
-rw-r--r--tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp8
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/basic1.qml (renamed from tests/auto/declarative/visual/ListView/basic1.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/basic2.qml (renamed from tests/auto/declarative/visual/ListView/basic2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/basic3.qml29
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/basic4.qml33
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/basic1.qml (renamed from tests/auto/declarative/visual/ListView/data-MAC/basic1.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/basic2.qml (renamed from tests/auto/declarative/visual/ListView/data-MAC/basic2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/basic3.qml (renamed from tests/auto/declarative/visual/ListView/data-MAC/basic3.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/basic4.qml (renamed from tests/auto/declarative/visual/ListView/data-MAC/basic4.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.0.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/itemlist.0.png)bin961 -> 961 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.1.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/itemlist.1.png)bin972 -> 972 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.2.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/itemlist.2.png)bin962 -> 962 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.3.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/itemlist.3.png)bin962 -> 962 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.4.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/itemlist.4.png)bin962 -> 962 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.5.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/itemlist.5.png)bin970 -> 970 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.6.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/itemlist.6.png)bin961 -> 961 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.qml (renamed from tests/auto/declarative/visual/ListView/data/itemlist.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.0.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.0.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.1.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.1.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.10.png (renamed from tests/auto/declarative/visual/ListView/data/listview.10.png)bin1588 -> 1588 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.11.png (renamed from tests/auto/declarative/visual/ListView/data/listview.11.png)bin1575 -> 1575 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.12.png (renamed from tests/auto/declarative/visual/ListView/data/listview.12.png)bin1502 -> 1502 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.13.png (renamed from tests/auto/declarative/visual/ListView/data/listview.13.png)bin1583 -> 1583 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.14.png (renamed from tests/auto/declarative/visual/ListView/data/listview.14.png)bin1681 -> 1681 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.15.png (renamed from tests/auto/declarative/visual/ListView/data/listview.15.png)bin1524 -> 1524 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.16.png (renamed from tests/auto/declarative/visual/ListView/data/listview.16.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.17.png (renamed from tests/auto/declarative/visual/ListView/data/listview.17.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.18.png (renamed from tests/auto/declarative/visual/ListView/data/listview.18.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.19.png (renamed from tests/auto/declarative/visual/ListView/data/listview.19.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.2.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.2.png)bin1627 -> 1627 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.3.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.3.png)bin1524 -> 1524 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.4.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.4.png)bin1678 -> 1678 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.5.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.5.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.6.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.6.png)bin1573 -> 1573 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.7.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.7.png)bin1670 -> 1670 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.8.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.8.png)bin1658 -> 1658 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.9.png (renamed from tests/auto/declarative/visual/ListView/data/listview.9.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.qml (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-X11/basic1.qml (renamed from tests/auto/declarative/visual/ListView/data-X11/basic1.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-X11/basic2.qml (renamed from tests/auto/declarative/visual/ListView/data-X11/basic2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-X11/basic3.qml (renamed from tests/auto/declarative/visual/ListView/data-X11/basic3.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data-X11/basic4.qml (renamed from tests/auto/declarative/visual/ListView/data-X11/basic4.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/basic1.qml (renamed from tests/auto/declarative/visual/ListView/data/basic1.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/basic2.qml (renamed from tests/auto/declarative/visual/ListView/data/basic2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/basic3.qml (renamed from tests/auto/declarative/visual/ListView/data/basic3.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/basic4.qml (renamed from tests/auto/declarative/visual/ListView/data/basic4.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/itemlist.0.png (renamed from tests/auto/declarative/visual/ListView/data/itemlist.0.png)bin961 -> 961 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/itemlist.1.png (renamed from tests/auto/declarative/visual/ListView/data/itemlist.1.png)bin972 -> 972 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/itemlist.2.png (renamed from tests/auto/declarative/visual/ListView/data/itemlist.2.png)bin962 -> 962 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/itemlist.3.png (renamed from tests/auto/declarative/visual/ListView/data/itemlist.3.png)bin962 -> 962 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/itemlist.4.png (renamed from tests/auto/declarative/visual/ListView/data/itemlist.4.png)bin962 -> 962 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/itemlist.5.png (renamed from tests/auto/declarative/visual/ListView/data/itemlist.5.png)bin970 -> 970 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/itemlist.6.png (renamed from tests/auto/declarative/visual/ListView/data/itemlist.6.png)bin961 -> 961 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml (renamed from tests/auto/declarative/visual/ListView/data-MAC/itemlist.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.0.png (renamed from tests/auto/declarative/visual/ListView/data/listview.0.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.1.png (renamed from tests/auto/declarative/visual/ListView/data/listview.1.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.10.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.10.png)bin1588 -> 1588 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.11.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.11.png)bin1575 -> 1575 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.12.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.12.png)bin1502 -> 1502 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.13.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.13.png)bin1583 -> 1583 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.14.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.14.png)bin1681 -> 1681 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.15.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.15.png)bin1524 -> 1524 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.16.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.16.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.17.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.17.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.18.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.18.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.19.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.19.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.2.png (renamed from tests/auto/declarative/visual/ListView/data/listview.2.png)bin1656 -> 1656 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.3.png (renamed from tests/auto/declarative/visual/ListView/data/listview.3.png)bin1524 -> 1524 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.4.png (renamed from tests/auto/declarative/visual/ListView/data/listview.4.png)bin1678 -> 1678 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.5.png (renamed from tests/auto/declarative/visual/ListView/data/listview.5.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.6.png (renamed from tests/auto/declarative/visual/ListView/data/listview.6.png)bin1573 -> 1573 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.7.png (renamed from tests/auto/declarative/visual/ListView/data/listview.7.png)bin1669 -> 1669 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.8.png (renamed from tests/auto/declarative/visual/ListView/data/listview.8.png)bin1658 -> 1658 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.9.png (renamed from tests/auto/declarative/visual/ListView/data-MAC/listview.9.png)bin1510 -> 1510 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/data/listview.qml (renamed from tests/auto/declarative/visual/ListView/data/listview.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/itemlist.qml (renamed from tests/auto/declarative/visual/ListView/itemlist.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/ListView/listview.qml (renamed from tests/auto/declarative/visual/ListView/listview.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.0.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.0.png)bin714 -> 714 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.1.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.1.png)bin798 -> 798 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.10.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.10.png)bin773 -> 773 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.11.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.11.png)bin773 -> 773 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.12.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.12.png)bin754 -> 754 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.13.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.13.png)bin742 -> 742 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.14.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.14.png)bin733 -> 733 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.15.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.15.png)bin712 -> 712 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.16.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.16.png)bin730 -> 730 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.17.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.17.png)bin730 -> 730 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.18.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.18.png)bin730 -> 730 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.19.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.19.png)bin744 -> 744 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.2.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.2.png)bin757 -> 757 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.20.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.20.png)bin754 -> 754 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.21.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.21.png)bin721 -> 721 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.22.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.22.png)bin732 -> 732 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.3.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.3.png)bin813 -> 813 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.4.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.4.png)bin756 -> 756 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.5.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.5.png)bin752 -> 752 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.6.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.6.png)bin752 -> 752 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.7.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.7.png)bin774 -> 774 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.8.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.8.png)bin774 -> 774 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.9.png (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.9.png)bin754 -> 754 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml (renamed from tests/auto/declarative/visual/Package_Views/data/packageviews.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/Package_Views/packageviews.qml90
-rw-r--r--tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml (renamed from tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png (renamed from tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png)bin817 -> 817 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png (renamed from tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png)bin815 -> 815 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png (renamed from tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png)bin817 -> 817 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png (renamed from tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png)bin815 -> 815 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.4.png (renamed from tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png)bin813 -> 813 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.5.png (renamed from tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png)bin815 -> 815 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.6.png (renamed from tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png)bin817 -> 817 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml (renamed from tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation-visual.qml (renamed from tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.pngbin0 -> 627 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.pngbin0 -> 626 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.pngbin0 -> 625 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml951
-rw-r--r--tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png (renamed from tests/auto/declarative/visual/animation/easing/data/easing.0.png)bin3393 -> 3393 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/easing/data/easing.1.png (renamed from tests/auto/declarative/visual/animation/easing/data/easing.1.png)bin3381 -> 3381 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/easing/data/easing.2.png (renamed from tests/auto/declarative/visual/animation/easing/data/easing.2.png)bin3101 -> 3101 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/easing/data/easing.3.png (renamed from tests/auto/declarative/visual/animation/easing/data/easing.3.png)bin16542 -> 16542 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml (renamed from tests/auto/declarative/visual/animation/easing/data/easing.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/easing/easing.qml (renamed from tests/auto/declarative/visual/animation/easing/easing.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/loop/data/loop.0.png (renamed from tests/auto/declarative/visual/animation/loop/data/loop.0.png)bin508 -> 508 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/loop/data/loop.1.png (renamed from tests/auto/declarative/visual/animation/loop/data/loop.1.png)bin507 -> 507 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/loop/data/loop.2.png (renamed from tests/auto/declarative/visual/animation/loop/data/loop.2.png)bin508 -> 508 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/loop/data/loop.3.png (renamed from tests/auto/declarative/visual/animation/loop/data/loop.3.png)bin508 -> 508 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/loop/data/loop.4.png (renamed from tests/auto/declarative/visual/animation/loop/data/loop.4.png)bin505 -> 505 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/loop/data/loop.5.png (renamed from tests/auto/declarative/visual/animation/loop/data/loop.5.png)bin508 -> 508 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml (renamed from tests/auto/declarative/visual/animation/loop/data/loop.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/loop/loop.qml24
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml (renamed from tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.0.png (renamed from tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png)bin774 -> 774 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.1.png (renamed from tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png)bin762 -> 762 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.2.png (renamed from tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png)bin773 -> 773 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml51
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml1663
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.0.pngbin0 -> 3742 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.1.pngbin0 -> 3727 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.2.pngbin0 -> 3742 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.3.pngbin0 -> 3628 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.4.pngbin0 -> 3610 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.5.pngbin0 -> 3742 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml68
-rw-r--r--tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml (renamed from tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.0.png (renamed from tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png)bin3211 -> 3211 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.1.png (renamed from tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png)bin3214 -> 3214 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.2.png (renamed from tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png)bin3209 -> 3209 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.3.png (renamed from tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png)bin3211 -> 3211 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.4.png (renamed from tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png)bin3214 -> 3214 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.5.png (renamed from tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png)bin3214 -> 3214 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/pauseAnimation/pauseAnimation-visual.qml36
-rw-r--r--tests/auto/declarative/qmlvisual/animation/pauseAnimation/pics/qtlogo.pngbin0 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.0.png (renamed from tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png)bin1418 -> 1418 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.1.png (renamed from tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png)bin1430 -> 1430 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.2.png (renamed from tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png)bin1431 -> 1431 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml939
-rw-r--r--tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml41
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.0.pngbin0 -> 637 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.1.pngbin0 -> 642 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.2.pngbin0 -> 637 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.3.pngbin0 -> 637 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.4.pngbin0 -> 647 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.5.pngbin0 -> 637 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.6.pngbin0 -> 637 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.7.pngbin0 -> 637 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.8.pngbin0 -> 642 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml2471
-rw-r--r--tests/auto/declarative/qmlvisual/animation/reanchor/reanchor.qml69
-rw-r--r--tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml (renamed from tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction.0.png (renamed from tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png)bin1418 -> 1418 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction.1.png (renamed from tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png)bin1431 -> 1431 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml40
-rw-r--r--tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png (renamed from tests/auto/declarative/visual/fillmode/data/fillmode.0.png)bin26099 -> 26099 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml11
-rw-r--r--tests/auto/declarative/qmlvisual/fillmode/face.png (renamed from tests/auto/declarative/visual/fillmode/face.png)bin905 -> 905 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/fillmode/fillmode.qml21
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.0.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test.0.png)bin14875 -> 14875 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.1.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test.1.png)bin14875 -> 14875 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.2.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test.2.png)bin14863 -> 14863 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.3.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test.3.png)bin14877 -> 14877 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.4.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test.4.png)bin14877 -> 14877 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.5.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test.5.png)bin14877 -> 14877 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.qml (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test2.0.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test2.0.png)bin5375 -> 5375 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test2.1.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test2.1.png)bin5375 -> 5375 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test2.qml (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.0.png)bin12749 -> 12749 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.1.png)bin12667 -> 12667 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.2.png)bin12373 -> 12373 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.3.png)bin12150 -> 12150 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.4.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.4.png)bin11944 -> 11944 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.5.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.5.png)bin12150 -> 12150 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.6.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.6.png)bin12373 -> 12373 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.7.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.7.png)bin12667 -> 12667 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.8.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.8.png)bin12749 -> 12749 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.9.png (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.9.png)bin12710 -> 12710 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml (renamed from tests/auto/declarative/visual/focusscope/data-MAC/test3.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test.0.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test.0.png)bin11501 -> 11501 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test.1.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test.1.png)bin11501 -> 11501 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test.2.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test.2.png)bin11486 -> 11486 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test.3.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test.3.png)bin11500 -> 11500 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test.4.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test.4.png)bin11500 -> 11500 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test.5.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test.5.png)bin11500 -> 11500 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test.qml (renamed from tests/auto/declarative/visual/focusscope/data-X11/test.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test2.0.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test2.0.png)bin4656 -> 4656 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test2.1.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test2.1.png)bin4656 -> 4656 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test2.qml (renamed from tests/auto/declarative/visual/focusscope/data-X11/test2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.0.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.0.png)bin10093 -> 10093 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.1.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.1.png)bin10051 -> 10051 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.2.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.2.png)bin9812 -> 9812 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.3.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.3.png)bin9625 -> 9625 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.4.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.4.png)bin9458 -> 9458 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.5.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.5.png)bin9645 -> 9645 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.6.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.6.png)bin9812 -> 9812 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.7.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.7.png)bin10051 -> 10051 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.8.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.8.png)bin10087 -> 10087 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.9.png (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.9.png)bin10072 -> 10072 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.qml (renamed from tests/auto/declarative/visual/focusscope/data-X11/test3.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test.0.png (renamed from tests/auto/declarative/visual/focusscope/data/test.0.png)bin14836 -> 14836 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test.1.png (renamed from tests/auto/declarative/visual/focusscope/data/test.1.png)bin14836 -> 14836 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test.2.png (renamed from tests/auto/declarative/visual/focusscope/data/test.2.png)bin14821 -> 14821 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test.3.png (renamed from tests/auto/declarative/visual/focusscope/data/test.3.png)bin14833 -> 14833 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test.4.png (renamed from tests/auto/declarative/visual/focusscope/data/test.4.png)bin14833 -> 14833 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test.5.png (renamed from tests/auto/declarative/visual/focusscope/data/test.5.png)bin14833 -> 14833 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test.qml (renamed from tests/auto/declarative/visual/focusscope/data/test.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png (renamed from tests/auto/declarative/visual/focusscope/data/test2.0.png)bin5359 -> 5359 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png (renamed from tests/auto/declarative/visual/focusscope/data/test2.1.png)bin5359 -> 5359 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test2.qml (renamed from tests/auto/declarative/visual/focusscope/data/test2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png (renamed from tests/auto/declarative/visual/focusscope/data/test3.0.png)bin12616 -> 12616 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png (renamed from tests/auto/declarative/visual/focusscope/data/test3.1.png)bin12538 -> 12538 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png (renamed from tests/auto/declarative/visual/focusscope/data/test3.2.png)bin12257 -> 12257 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png (renamed from tests/auto/declarative/visual/focusscope/data/test3.3.png)bin12035 -> 12035 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.4.png (renamed from tests/auto/declarative/visual/focusscope/data/test3.4.png)bin11877 -> 11877 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.5.png (renamed from tests/auto/declarative/visual/focusscope/data/test3.5.png)bin12046 -> 12046 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.6.png (renamed from tests/auto/declarative/visual/focusscope/data/test3.6.png)bin12257 -> 12257 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.7.png (renamed from tests/auto/declarative/visual/focusscope/data/test3.7.png)bin12538 -> 12538 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.8.png (renamed from tests/auto/declarative/visual/focusscope/data/test3.8.png)bin12616 -> 12616 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.9.png (renamed from tests/auto/declarative/visual/focusscope/data/test3.9.png)bin12581 -> 12581 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/data/test3.qml (renamed from tests/auto/declarative/visual/focusscope/data/test3.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/test.qml (renamed from tests/auto/declarative/visual/focusscope/test.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/test2.qml (renamed from tests/auto/declarative/visual/focusscope/test2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/focusscope/test3.qml52
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/animated-smooth.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/animated.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/borders.qml (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/borders.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml38
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/bw.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/content/bw.png)bin1357 -> 1357 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-round.sci (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/content/colors-round.sci)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-stretch.sci (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/content/colors-stretch.sci)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/content/colors.png)bin1655 -> 1655 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.0.png)bin61731 -> 61731 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.1.pngbin0 -> 98927 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.2.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.2.png)bin48780 -> 48780 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.3.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.3.png)bin32431 -> 32431 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.4.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.4.png)bin35835 -> 35835 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.5.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.5.png)bin79428 -> 79428 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.6.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.6.png)bin45928 -> 45928 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml1823
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.0.png)bin23684 -> 23684 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.1.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.1.png)bin29115 -> 29115 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.2.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.2.png)bin27580 -> 27580 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.3.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.3.png)bin14822 -> 14822 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.4.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.4.png)bin21356 -> 21356 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.5.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.5.png)bin31143 -> 31143 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.6.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.6.png)bin26468 -> 26468 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.7.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.7.png)bin16225 -> 16225 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.0.png (renamed from tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.0.png)bin23029 -> 23029 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.qml11
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.0.png)bin1427 -> 1427 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.1.png)bin1357 -> 1357 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.2.png)bin1405 -> 1405 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.3.png)bin1427 -> 1427 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.0.png)bin1951 -> 1951 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.1.png)bin1951 -> 1951 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.10.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.10.png)bin1952 -> 1952 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.11.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.11.png)bin1930 -> 1930 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.12.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.12.png)bin1974 -> 1974 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.13.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.13.png)bin1961 -> 1961 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.14.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.14.png)bin1959 -> 1959 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.15.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.15.png)bin1937 -> 1937 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.16.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.16.png)bin1618 -> 1618 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.17.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.17.png)bin1952 -> 1952 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.18.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.18.png)bin1952 -> 1952 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.19.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.19.png)bin1930 -> 1930 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.2.png)bin1976 -> 1976 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.20.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.20.png)bin1930 -> 1930 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.21.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.21.png)bin1947 -> 1947 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.22.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.22.png)bin1941 -> 1941 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.23.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.23.png)bin1951 -> 1951 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.24.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.24.png)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.3.png)bin1987 -> 1987 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.4.png)bin1947 -> 1947 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.5.png)bin1975 -> 1975 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.6.png)bin1928 -> 1928 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.7.png)bin1928 -> 1928 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.8.png)bin1928 -> 1928 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.9.png (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.9.png)bin1928 -> 1928 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml (renamed from tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-horizontal.qml (renamed from tests/auto/declarative/visual/qdeclarativeflickable/flickable-horizontal.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml (renamed from tests/auto/declarative/visual/qdeclarativeflickable/flickable-vertical.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.0.png (renamed from tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.0.png)bin1090 -> 1090 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.1.png (renamed from tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.1.png)bin1134 -> 1134 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.2.png (renamed from tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.2.png)bin961 -> 961 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.3.png (renamed from tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.3.png)bin1076 -> 1076 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.4.png (renamed from tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.4.png)bin1134 -> 1134 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.5.png (renamed from tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.5.png)bin969 -> 969 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml (renamed from tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeflipable/test-flipable.qml (renamed from tests/auto/declarative/visual/qdeclarativeflipable/test-flipable.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.0.png)bin1303 -> 1303 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.1.png)bin1317 -> 1317 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.2.png)bin1318 -> 1318 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.3.png)bin1306 -> 1306 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.4.png)bin1308 -> 1308 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.5.png)bin1303 -> 1303 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.6.png)bin1323 -> 1323 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.7.png)bin1325 -> 1325 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.8.png)bin1346 -> 1346 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.9.png)bin1303 -> 1303 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.0.png)bin1310 -> 1310 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.1.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.1.png)bin1322 -> 1322 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.10.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.10.png)bin1313 -> 1313 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.2.png)bin1341 -> 1341 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.3.png)bin1368 -> 1368 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.4.png)bin1319 -> 1319 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.5.png)bin1352 -> 1352 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.6.png)bin1309 -> 1309 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.7.png)bin1347 -> 1347 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.8.png)bin1310 -> 1310 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.9.png)bin1354 -> 1354 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml (renamed from tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml (renamed from tests/auto/declarative/visual/qdeclarativegridview/gridview.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml61
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.pngbin0 -> 1578 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.pngbin0 -> 1585 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.pngbin0 -> 1568 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.pngbin0 -> 1578 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.pngbin0 -> 1584 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.pngbin0 -> 1584 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.pngbin0 -> 1581 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.pngbin0 -> 1581 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.8.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.8.png)bin1567 -> 1567 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml5207
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.qml (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.0.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.0.png)bin471 -> 471 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.1.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.1.png)bin474 -> 474 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.10.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.10.png)bin479 -> 479 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.11.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.11.png)bin479 -> 479 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.12.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.12.png)bin479 -> 479 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.13.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.13.png)bin479 -> 479 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.14.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.14.png)bin479 -> 479 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.15.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.15.png)bin479 -> 479 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.16.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.16.png)bin1454 -> 1454 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.17.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.17.png)bin1454 -> 1454 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.18.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.18.png)bin1454 -> 1454 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.19.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.19.png)bin1454 -> 1454 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.2.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.2.png)bin474 -> 474 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.20.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.20.png)bin1454 -> 1454 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.21.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.21.png)bin1454 -> 1454 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.22.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.22.png)bin1454 -> 1454 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.3.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.3.png)bin474 -> 474 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.4.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.4.png)bin481 -> 481 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.5.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.5.png)bin481 -> 481 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.6.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.6.png)bin481 -> 481 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.7.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.7.png)bin481 -> 481 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.8.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.8.png)bin479 -> 479 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.9.png (renamed from tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.9.png)bin479 -> 479 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/drag.qml26
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-visual.qml135
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.0.png (renamed from tests/auto/declarative/visual/qdeclarativeparticles/data/particles.0.png)bin10219 -> 10219 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.1.png (renamed from tests/auto/declarative/visual/qdeclarativeparticles/data/particles.1.png)bin13469 -> 13469 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.2.png (renamed from tests/auto/declarative/visual/qdeclarativeparticles/data/particles.2.png)bin14051 -> 14051 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml (renamed from tests/auto/declarative/visual/qdeclarativeparticles/data/particles.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml55
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativeparticles/star.png (renamed from tests/auto/declarative/visual/qdeclarativeparticles/star.png)bin262 -> 262 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.0.png)bin2263 -> 2263 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.1.png)bin2329 -> 2329 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.2.png)bin2279 -> 2279 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.3.png)bin2263 -> 2263 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.4.png)bin2263 -> 2263 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.5.png)bin2308 -> 2308 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.6.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.6.png)bin2280 -> 2280 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.0.png)bin2321 -> 2321 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.1.png)bin2380 -> 2380 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.2.png)bin2315 -> 2315 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.3.png)bin2372 -> 2372 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.4.png)bin2327 -> 2327 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml (renamed from tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml (renamed from tests/auto/declarative/visual/qdeclarativepathview/test-pathview-2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml (renamed from tests/auto/declarative/visual/qdeclarativepathview/test-pathview.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png (renamed from tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.0.png)bin1429 -> 1429 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png (renamed from tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.1.png)bin1433 -> 1433 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png (renamed from tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.2.png)bin1431 -> 1431 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png (renamed from tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.3.png)bin1428 -> 1428 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png (renamed from tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.4.png)bin1432 -> 1432 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png (renamed from tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.5.png)bin1434 -> 1434 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml (renamed from tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/repeater.0.png (renamed from tests/auto/declarative/visual/qdeclarativepositioners/data/repeater.0.png)bin2790 -> 2790 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml (renamed from tests/auto/declarative/visual/qdeclarativepositioners/data/repeater.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml (renamed from tests/auto/declarative/visual/qdeclarativepositioners/dynamic.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativepositioners/usingRepeater.qml (renamed from tests/auto/declarative/visual/qdeclarativepositioners/repeater.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.0.png (renamed from tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.0.png)bin1305 -> 1305 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.1.png (renamed from tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.1.png)bin1306 -> 1306 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.2.png (renamed from tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.2.png)bin1305 -> 1305 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.3.png (renamed from tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.3.png)bin1303 -> 1303 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.4.png (renamed from tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.4.png)bin1303 -> 1303 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.5.png (renamed from tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.5.png)bin1305 -> 1305 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.6.png (renamed from tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.6.png)bin1306 -> 1306 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.qml (renamed from tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedanimation.qml45
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml40
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml64
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/background.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/content/background.png)bin46895 -> 46895 bytes
-rwxr-xr-xtests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/center.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/content/center.png)bin765 -> 765 bytes
-rwxr-xr-xtests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/clock.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/content/clock.png)bin20653 -> 20653 bytes
-rwxr-xr-xtests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/hour.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/content/hour.png)bin625 -> 625 bytes
-rwxr-xr-xtests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/minute.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/content/minute.png)bin625 -> 625 bytes
-rwxr-xr-xtests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/second.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/content/second.png)bin303 -> 303 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.0.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.0.png)bin17294 -> 17294 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.1.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.1.png)bin17394 -> 17394 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.2.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.2.png)bin17524 -> 17524 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.3.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.3.png)bin17572 -> 17572 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.qml (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.0.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.0.png)bin959 -> 959 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.1.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.1.png)bin1244 -> 1244 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.10.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.10.png)bin1299 -> 1299 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.2.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.2.png)bin1224 -> 1224 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.3.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.3.png)bin1243 -> 1243 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.4.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.4.png)bin1230 -> 1230 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.5.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.5.png)bin1231 -> 1231 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.6.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.6.png)bin1239 -> 1239 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.7.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.7.png)bin1241 -> 1241 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.8.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.8.png)bin1237 -> 1237 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.9.png (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.9.png)bin1229 -> 1229 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.qml (renamed from tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml71
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/baseline/data/parentanchor.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data/parentanchor.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/baseline/data-X11/parentanchor.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/baseline/parentanchor.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide.0.png)bin2276 -> 2276 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.0.png)bin4818 -> 4818 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.1.png)bin4089 -> 4089 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.2.png)bin3128 -> 3128 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.3.png)bin1963 -> 1963 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/multilength.0.png)bin736 -> 736 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/multilength.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-X11/elide.0.png)bin1002 -> 1002 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-X11/elide.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-X11/multilength.0.png)bin596 -> 596 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-X11/multilength.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data/elide.0.png)bin1604 -> 1604 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data/elide.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.0.png)bin4818 -> 4818 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.1.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.1.png)bin4089 -> 4089 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.2.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.2.png)bin3128 -> 3128 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.3.png (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.3.png)bin1963 -> 1963 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/elide/elide.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml12
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml19
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/plaintext.0.png)bin103018 -> 103018 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/plaintext.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/richtext.0.png)bin136492 -> 136492 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/richtext.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/font/data/plaintext.0.png)bin94120 -> 94120 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/font/data/plaintext.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext.0.png (renamed from tests/auto/declarative/visual/qdeclarativetext/font/data/richtext.0.png)bin121122 -> 121122 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext.qml (renamed from tests/auto/declarative/visual/qdeclarativetext/font/data/richtext.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml91
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml91
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml35
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png)bin793 -> 793 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png)bin795 -> 795 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png)bin803 -> 803 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png)bin805 -> 805 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png)bin805 -> 805 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png)bin805 -> 805 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.6.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.6.png)bin799 -> 799 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.7.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.7.png)bin799 -> 799 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.8.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.8.png)bin803 -> 803 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.0.png)bin365 -> 365 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.1.png)bin365 -> 365 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.2.png)bin366 -> 366 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.3.png)bin362 -> 362 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.0.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.1.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.2.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.3.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.4.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.5.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.6.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.0.png)bin3322 -> 3322 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.1.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.1.png)bin3323 -> 3323 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.2.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.2.png)bin3325 -> 3325 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.3.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.3.png)bin3332 -> 3332 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.4.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.4.png)bin3329 -> 3329 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.5.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.5.png)bin3818 -> 3818 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.6.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.6.png)bin3333 -> 3333 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.7.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.7.png)bin3332 -> 3332 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.8.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.8.png)bin3347 -> 3347 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.qml (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.0.png)bin4802 -> 4802 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.1.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.1.png)bin4804 -> 4804 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.2.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.2.png)bin4801 -> 4801 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.3.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.3.png)bin4791 -> 4791 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.qml (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.0.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.1.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.1.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.2.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.2.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.3.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.3.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.4.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.4.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.5.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.5.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.6.png (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.6.png)bin1110 -> 1110 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.qml (renamed from tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml (renamed from tests/auto/declarative/visual/qdeclarativetextedit/qt-669.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml34
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml67
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml35
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png)bin793 -> 793 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png)bin796 -> 796 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png)bin804 -> 804 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png)bin805 -> 805 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png)bin805 -> 805 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png)bin805 -> 805 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.6.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.6.png)bin801 -> 801 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.7.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.7.png)bin802 -> 802 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.8.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.8.png)bin802 -> 802 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.pngbin0 -> 716 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.pngbin0 -> 1352 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.pngbin0 -> 2047 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.3.png)bin2827 -> 2827 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.4.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.4.png)bin2827 -> 2827 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml1043
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/hAlign.0.png)bin1245 -> 1245 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/hAlign.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.0.pngbin0 -> 3137 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.pngbin0 -> 3195 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.pngbin0 -> 3853 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.pngbin0 -> 3171 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.3.pngbin0 -> 3228 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.4.pngbin0 -> 3198 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.5.pngbin0 -> 3310 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.6.pngbin0 -> 3233 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.7.pngbin0 -> 3607 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.8.pngbin0 -> 3657 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.pngbin0 -> 3262 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml4335
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.0.png)bin3314 -> 3314 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.1.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.1.png)bin3377 -> 3377 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.2.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.2.png)bin3323 -> 3323 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.3.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.3.png)bin3325 -> 3325 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.4.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.4.png)bin3322 -> 3322 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.5.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.5.png)bin3322 -> 3322 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.6.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.6.png)bin3326 -> 3326 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.7.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.7.png)bin3814 -> 3814 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.8.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.8.png)bin3324 -> 3324 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.qml (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.0.png)bin999 -> 999 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.1.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.1.png)bin1880 -> 1880 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.2.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.2.png)bin2962 -> 2962 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.3.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.3.png)bin2827 -> 2827 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.4.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.4.png)bin2827 -> 2827 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.qml (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/hAlign.0.png (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-X11/hAlign.0.png)bin1245 -> 1245 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/hAlign.qml (renamed from tests/auto/declarative/visual/qdeclarativetextinput/data-X11/hAlign.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml10
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml (renamed from tests/auto/declarative/visual/qdeclarativetextinput/hAlign.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml10
-rw-r--r--tests/auto/declarative/qmlvisual/qfxwebview/autosize/autosize.qml61
-rw-r--r--tests/auto/declarative/qmlvisual/qfxwebview/autosize/data-X11/autosize.0.png (renamed from tests/auto/declarative/visual/qfxwebview/autosize/data/autosize.0.png)bin6886 -> 6886 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qfxwebview/autosize/data-X11/autosize.qml (renamed from tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qfxwebview/autosize/data/autosize.0.png (renamed from tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.0.png)bin6886 -> 6886 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qfxwebview/autosize/data/autosize.qml (renamed from tests/auto/declarative/visual/qfxwebview/autosize/data/autosize.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/qmlvisual.pro10
-rw-r--r--tests/auto/declarative/qmlvisual/rect/GradientRect.qml (renamed from tests/auto/declarative/visual/rect/GradientRect.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/rect/MyRect.qml (renamed from tests/auto/declarative/visual/rect/MyRect.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png (renamed from tests/auto/declarative/visual/rect/data/rect-painting.0.png)bin29725 -> 29725 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/rect/data/rect-painting.qml (renamed from tests/auto/declarative/visual/rect/data/rect-painting.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/rect/rect-painting.qml (renamed from tests/auto/declarative/visual/rect/rect-painting.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/basic1.qml (renamed from tests/auto/declarative/visual/repeater/basic1.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/basic2.qml (renamed from tests/auto/declarative/visual/repeater/basic2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/basic3.qml (renamed from tests/auto/declarative/visual/repeater/basic3.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/basic4.qml (renamed from tests/auto/declarative/visual/repeater/basic4.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-MAC/basic1.0.png (renamed from tests/auto/declarative/visual/repeater/data-MAC/basic1.0.png)bin1550 -> 1550 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-MAC/basic1.qml (renamed from tests/auto/declarative/visual/repeater/data-MAC/basic1.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-MAC/basic2.0.png (renamed from tests/auto/declarative/visual/repeater/data-MAC/basic2.0.png)bin1550 -> 1550 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-MAC/basic2.qml (renamed from tests/auto/declarative/visual/repeater/data-MAC/basic2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-MAC/basic3.0.png (renamed from tests/auto/declarative/visual/repeater/data-MAC/basic3.0.png)bin1550 -> 1550 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-MAC/basic3.qml (renamed from tests/auto/declarative/visual/repeater/data-MAC/basic3.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-MAC/basic4.0.png (renamed from tests/auto/declarative/visual/repeater/data-MAC/basic4.0.png)bin1550 -> 1550 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-MAC/basic4.qml (renamed from tests/auto/declarative/visual/repeater/data-MAC/basic4.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-X11/basic1.0.png (renamed from tests/auto/declarative/visual/repeater/data-X11/basic1.0.png)bin1354 -> 1354 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-X11/basic1.qml (renamed from tests/auto/declarative/visual/repeater/data-X11/basic1.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-X11/basic2.0.png (renamed from tests/auto/declarative/visual/repeater/data-X11/basic2.0.png)bin1354 -> 1354 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-X11/basic2.qml (renamed from tests/auto/declarative/visual/repeater/data-X11/basic2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-X11/basic3.0.png (renamed from tests/auto/declarative/visual/repeater/data-X11/basic3.0.png)bin1354 -> 1354 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-X11/basic3.qml (renamed from tests/auto/declarative/visual/repeater/data-X11/basic3.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-X11/basic4.0.png (renamed from tests/auto/declarative/visual/repeater/data-X11/basic4.0.png)bin1354 -> 1354 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data-X11/basic4.qml (renamed from tests/auto/declarative/visual/repeater/data-X11/basic4.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data/basic1.0.png (renamed from tests/auto/declarative/visual/repeater/data/basic1.0.png)bin1513 -> 1513 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data/basic1.qml (renamed from tests/auto/declarative/visual/repeater/data/basic1.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data/basic2.0.png (renamed from tests/auto/declarative/visual/repeater/data/basic2.0.png)bin1513 -> 1513 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data/basic2.qml (renamed from tests/auto/declarative/visual/repeater/data/basic2.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data/basic3.0.png (renamed from tests/auto/declarative/visual/repeater/data/basic3.0.png)bin1513 -> 1513 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data/basic3.qml (renamed from tests/auto/declarative/visual/repeater/data/basic3.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data/basic4.0.png (renamed from tests/auto/declarative/visual/repeater/data/basic4.0.png)bin1513 -> 1513 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/repeater/data/basic4.qml (renamed from tests/auto/declarative/visual/repeater/data/basic4.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/selftest_noimages/data/selftest_noimages.qml (renamed from tests/auto/declarative/visual/selftest_noimages/data/selftest_noimages.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/selftest_noimages/selftest_noimages.qml (renamed from tests/auto/declarative/visual/selftest_noimages/selftest_noimages.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp417
-rw-r--r--tests/auto/declarative/qmlvisual/webview/embedding/data/nesting.0.png (renamed from tests/auto/declarative/visual/webview/embedding/data/nesting.0.png)bin5659 -> 5659 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/embedding/data/nesting.qml (renamed from tests/auto/declarative/visual/webview/embedding/data/nesting.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/embedding/egg.qml26
-rw-r--r--tests/auto/declarative/qmlvisual/webview/embedding/nesting.html (renamed from tests/auto/declarative/visual/webview/embedding/nesting.html)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/embedding/nesting.qml9
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.0.png (renamed from tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.0.png)bin7999 -> 7999 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.1.png (renamed from tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.1.png)bin8020 -> 8020 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.2.png (renamed from tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.2.png)bin8143 -> 8143 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.3.png (renamed from tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.3.png)bin8158 -> 8158 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.4.png (renamed from tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.4.png)bin8284 -> 8284 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.5.png (renamed from tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.5.png)bin8284 -> 8284 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.6.png (renamed from tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.6.png)bin8284 -> 8284 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.7.png (renamed from tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.7.png)bin8284 -> 8284 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.8.png (renamed from tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.8.png)bin8284 -> 8284 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.qml (renamed from tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.0.png (renamed from tests/auto/declarative/visual/webview/javascript/data/windowObjects.0.png)bin7991 -> 7991 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.1.png (renamed from tests/auto/declarative/visual/webview/javascript/data/windowObjects.1.png)bin7991 -> 7991 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.2.png (renamed from tests/auto/declarative/visual/webview/javascript/data/windowObjects.2.png)bin7643 -> 7643 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.3.png (renamed from tests/auto/declarative/visual/webview/javascript/data/windowObjects.3.png)bin7733 -> 7733 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.4.png (renamed from tests/auto/declarative/visual/webview/javascript/data/windowObjects.4.png)bin8116 -> 8116 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.qml (renamed from tests/auto/declarative/visual/webview/javascript/data/windowObjects.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml32
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/test-objects.html (renamed from tests/auto/declarative/visual/webview/javascript/test-objects.html)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml27
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.0.png (renamed from tests/auto/declarative/visual/webview/settings/data/fontFamily.0.png)bin3774 -> 3774 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.qml (renamed from tests/auto/declarative/visual/webview/settings/data/fontFamily.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.0.png (renamed from tests/auto/declarative/visual/webview/settings/data/fontSize.0.png)bin32180 -> 32180 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.qml (renamed from tests/auto/declarative/visual/webview/settings/data/fontSize.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.0.png (renamed from tests/auto/declarative/visual/webview/settings/data/noAutoLoadImages.0.png)bin6609 -> 6609 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.1.png (renamed from tests/auto/declarative/visual/webview/settings/data/noAutoLoadImages.1.png)bin6609 -> 6609 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.qml (renamed from tests/auto/declarative/visual/webview/settings/data/noAutoLoadImages.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.0.png (renamed from tests/auto/declarative/visual/webview/settings/data/setFontFamily.0.png)bin12132 -> 12132 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.qml (renamed from tests/auto/declarative/visual/webview/settings/data/setFontFamily.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml17
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml71
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml21
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/qtlogo.pngbin0 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml11
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/tarzeau_ocr_a.ttf (renamed from tests/auto/declarative/visual/webview/settings/tarzeau_ocr_a.ttf)bin24544 -> 24544 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/test-img.html (renamed from tests/auto/declarative/visual/webview/settings/test-img.html)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/settings/test.html (renamed from tests/auto/declarative/visual/webview/settings/test.html)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/pageWidth.qml (renamed from tests/auto/declarative/visual/webview/zooming/data/pageWidth.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.0.png (renamed from tests/auto/declarative/visual/webview/zooming/data/renderControl.0.png)bin7589 -> 7589 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.qml (renamed from tests/auto/declarative/visual/webview/zooming/data/renderControl.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.0.png (renamed from tests/auto/declarative/visual/webview/zooming/data/resolution.0.png)bin6275 -> 6275 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.1.png (renamed from tests/auto/declarative/visual/webview/zooming/data/resolution.1.png)bin3553 -> 3553 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.2.png (renamed from tests/auto/declarative/visual/webview/zooming/data/resolution.2.png)bin5838 -> 5838 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.3.png (renamed from tests/auto/declarative/visual/webview/zooming/data/resolution.3.png)bin8005 -> 8005 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.4.png (renamed from tests/auto/declarative/visual/webview/zooming/data/resolution.4.png)bin6087 -> 6087 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.qml (renamed from tests/auto/declarative/visual/webview/zooming/data/resolution.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.0.png (renamed from tests/auto/declarative/visual/webview/zooming/data/zoomTextOnly.0.png)bin5589 -> 5589 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.1.png (renamed from tests/auto/declarative/visual/webview/zooming/data/zoomTextOnly.1.png)bin6848 -> 6848 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.qml (renamed from tests/auto/declarative/visual/webview/zooming/data/zoomTextOnly.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.0.png (renamed from tests/auto/declarative/visual/webview/zooming/data/zooming.0.png)bin735 -> 735 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.1.png (renamed from tests/auto/declarative/visual/webview/zooming/data/zooming.1.png)bin735 -> 735 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.2.png (renamed from tests/auto/declarative/visual/webview/zooming/data/zooming.2.png)bin735 -> 735 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.3.png (renamed from tests/auto/declarative/visual/webview/zooming/data/zooming.3.png)bin735 -> 735 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.qml (renamed from tests/auto/declarative/visual/webview/zooming/data/zooming.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml10
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/qtlogo.pngbin0 -> 2738 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/renderControl.html (renamed from tests/auto/declarative/visual/webview/zooming/renderControl.html)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml21
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/resolution.html (renamed from tests/auto/declarative/visual/webview/zooming/resolution.html)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml16
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.html (renamed from tests/auto/declarative/visual/webview/zooming/zoomTextOnly.html)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml14
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/zooming.html (renamed from tests/auto/declarative/visual/webview/zooming/zooming.html)0
-rw-r--r--tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml18
-rw-r--r--tests/auto/declarative/qpacketprotocol/qpacketprotocol.pro2
-rwxr-xr-xtests/auto/declarative/runall.sh81
-rw-r--r--tests/auto/declarative/sql/data/error-creation.js12
-rw-r--r--tests/auto/declarative/sql/sql.pro9
-rw-r--r--tests/auto/declarative/sql/tst_sql.cpp237
-rw-r--r--tests/auto/declarative/visual/ListView/basic3.qml29
-rw-r--r--tests/auto/declarative/visual/ListView/basic4.qml33
-rw-r--r--tests/auto/declarative/visual/Package_Views/packageviews.qml89
-rw-r--r--tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.pngbin610 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.pngbin610 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.pngbin610 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml951
-rw-r--r--tests/auto/declarative/visual/animation/loop/loop.qml24
-rw-r--r--tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml43
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.pngbin1652 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.pngbin1492 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.pngbin1424 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.pngbin1583 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.pngbin1640 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.pngbin1640 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml1207
-rw-r--r--tests/auto/declarative/visual/animation/parentAction/parentAction.qml55
-rw-r--r--tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml29
-rw-r--r--tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml939
-rw-r--r--tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml34
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/data/reanchor.0.pngbin622 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/data/reanchor.1.pngbin626 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/data/reanchor.2.pngbin622 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/data/reanchor.3.pngbin622 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/data/reanchor.4.pngbin632 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/data/reanchor.5.pngbin622 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/data/reanchor.6.pngbin622 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/data/reanchor.7.pngbin622 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/data/reanchor.8.pngbin634 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/data/reanchor.qml2471
-rw-r--r--tests/auto/declarative/visual/animation/reanchor/reanchor.qml68
-rw-r--r--tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml35
-rw-r--r--tests/auto/declarative/visual/fillmode/data/fillmode.qml279
-rw-r--r--tests/auto/declarative/visual/fillmode/fillmode.qml16
-rw-r--r--tests/auto/declarative/visual/focusscope/test3.qml52
-rw-r--r--tests/auto/declarative/visual/qdeclarativeborderimage/content/MyBorderImage.qml38
-rw-r--r--tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.1.pngbin98912 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.qml1823
-rw-r--r--tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.1.pngbin23029 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.2.pngbin23029 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.3.pngbin23029 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.4.pngbin23029 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.qml1359
-rw-r--r--tests/auto/declarative/visual/qdeclarativeeasefollow/easefollow.qml40
-rw-r--r--tests/auto/declarative/visual/qdeclarativegridview/gridview2.qml58
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.0.pngbin1563 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.1.pngbin1570 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.2.pngbin1553 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.3.pngbin1563 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.4.pngbin1569 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.5.pngbin1569 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.6.pngbin1566 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.7.pngbin1566 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.qml5207
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/drag.qml21
-rw-r--r--tests/auto/declarative/visual/qdeclarativemouseregion/mouseregion.qml124
-rw-r--r--tests/auto/declarative/visual/qdeclarativeparticles/particles.qml54
-rw-r--r--tests/auto/declarative/visual/qdeclarativespringfollow/clock.qml64
-rw-r--r--tests/auto/declarative/visual/qdeclarativespringfollow/follow.qml71
-rw-r--r--tests/auto/declarative/visual/qdeclarativetext/elide/elide2.qml12
-rw-r--r--tests/auto/declarative/visual/qdeclarativetext/elide/multilength.qml19
-rw-r--r--tests/auto/declarative/visual/qdeclarativetext/font/plaintext.qml85
-rw-r--r--tests/auto/declarative/visual/qdeclarativetext/font/richtext.qml85
-rw-r--r--tests/auto/declarative/visual/qdeclarativetextedit/cursorDelegate.qml35
-rw-r--r--tests/auto/declarative/visual/qdeclarativetextedit/wrap.qml21
-rw-r--r--tests/auto/declarative/visual/qdeclarativetextinput/cursorDelegate.qml35
-rw-r--r--tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.0.pngbin999 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.1.pngbin1880 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.2.pngbin2962 -> 0 bytes
-rw-r--r--tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.qml1043
-rw-r--r--tests/auto/declarative/visual/qdeclarativetextinput/echoMode.qml10
-rw-r--r--tests/auto/declarative/visual/qfxwebview/autosize/autosize.qml60
-rw-r--r--tests/auto/declarative/visual/tst_visual.cpp370
-rw-r--r--tests/auto/declarative/visual/visual.pro7
-rw-r--r--tests/auto/declarative/visual/webview/embedding/egg.qml26
-rw-r--r--tests/auto/declarative/visual/webview/embedding/nesting.qml8
-rw-r--r--tests/auto/declarative/visual/webview/javascript/evaluateJavaScript.qml31
-rw-r--r--tests/auto/declarative/visual/webview/javascript/windowObjects.qml26
-rw-r--r--tests/auto/declarative/visual/webview/settings/fontFamily.qml16
-rw-r--r--tests/auto/declarative/visual/webview/settings/fontSize.qml70
-rw-r--r--tests/auto/declarative/visual/webview/settings/noAutoLoadImages.qml20
-rw-r--r--tests/auto/declarative/visual/webview/settings/setFontFamily.qml10
-rw-r--r--tests/auto/declarative/visual/webview/zooming/pageWidth.qml9
-rw-r--r--tests/auto/declarative/visual/webview/zooming/renderControl.qml20
-rw-r--r--tests/auto/declarative/visual/webview/zooming/resolution.qml16
-rw-r--r--tests/auto/declarative/visual/webview/zooming/zoomTextOnly.qml14
-rw-r--r--tests/auto/declarative/visual/webview/zooming/zooming.qml17
1362 files changed, 31698 insertions, 21662 deletions
diff --git a/tests/auto/declarative/.gitignore b/tests/auto/declarative/.gitignore
index d937eb4..57608cf 100644
--- a/tests/auto/declarative/.gitignore
+++ b/tests/auto/declarative/.gitignore
@@ -1,4 +1,5 @@
tst_*
!tst_*.*
+tst_*.log
tst_*.debug
tst_*~
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro
index 42ff523..7834650 100644
--- a/tests/auto/declarative/declarative.pro
+++ b/tests/auto/declarative/declarative.pro
@@ -1,20 +1,19 @@
TEMPLATE = subdirs
SUBDIRS += \
+ examples \
graphicswidgets \ # Cover
- layouts \ # Cover
parserstress \ # Cover
qmetaobjectbuilder \ # Cover
qdeclarativeanimations \ # Cover
qdeclarativebehaviors \ # Cover
qdeclarativebinding \ # Cover
+ qdeclarativecomponent \ # Cover
qdeclarativeconnection \ # Cover
qdeclarativecontext \ # Cover
- qdeclarativedatetimeformatter \ # Cover
qdeclarativedebug \ # Cover
qdeclarativedebugclient \ # Cover
qdeclarativedebugservice \ # Cover
qdeclarativedom \ # Cover
- qdeclarativeeasefollow \ # Cover
qdeclarativeecmascript \ # Cover
qdeclarativeengine \ # Cover
qdeclarativeerror \ # Cover
@@ -25,10 +24,12 @@ SUBDIRS += \
qdeclarativeborderimage \ # Cover
qdeclarativeflickable \ # Cover
qdeclarativeflipable \ # Cover
+ qdeclarativefocusscope \ # Cover
qdeclarativegridview \ # Cover
qdeclarativeitem \ # Cover
qdeclarativelistview \ # Cover
qdeclarativeloader \ # Cover
+ qdeclarativelayouts \ # Cover
qdeclarativemousearea \ # Cover
qdeclarativeparticles \ # Cover
qdeclarativepathview \ # Cover
@@ -41,13 +42,14 @@ SUBDIRS += \
qdeclarativelanguage \ # Cover
qdeclarativelistreference \ # Cover
qdeclarativelistmodel \ # Cover
- qdeclarativeproperty \ # Cover
+ qdeclarativeproperty \ # Cover
qdeclarativemetatype \ # Cover
qdeclarativemoduleplugin \ # Cover
- qdeclarativenumberformatter \ # Cover
qdeclarativepixmapcache \ # Cover
qdeclarativepropertymap \ # Cover
qdeclarativeqt \ # Cover
+ qdeclarativesmoothedanimation \ # Cover
+ qdeclarativesmoothedfollow\ # Cover
qdeclarativespringfollow \ # Cover
qdeclarativestates \ # Cover
qdeclarativesystempalette \ # Cover
@@ -55,11 +57,13 @@ SUBDIRS += \
qdeclarativexmllistmodel \ # Cover
qpacketprotocol \ # Cover
qdeclarativerepeater \ # Cover
+ qdeclarativeworkerscript \ # Cover
qdeclarativevaluetypes \ # Cover
qdeclarativexmlhttprequest \ # Cover
qdeclarativeimageprovider \ # Cover
qdeclarativestyledtext \ # Cover
- sql # Cover
+ qdeclarativesqldatabase \ # Cover
+ qmlvisual # Cover
contains(QT_CONFIG, webkit) {
SUBDIRS += \
diff --git a/tests/auto/declarative/examples/examples.pro b/tests/auto/declarative/examples/examples.pro
index b9bcd28..4c32524 100644
--- a/tests/auto/declarative/examples/examples.pro
+++ b/tests/auto/declarative/examples/examples.pro
@@ -3,3 +3,10 @@ contains(QT_CONFIG,declarative): QT += declarative
macx:CONFIG -= app_bundle
SOURCES += tst_examples.cpp
+
+include(../../../../tools/qml/qml.pri)
+
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/examples/tst_examples.cpp b/tests/auto/declarative/examples/tst_examples.cpp
index 6160e7c..c650346 100644
--- a/tests/auto/declarative/examples/tst_examples.cpp
+++ b/tests/auto/declarative/examples/tst_examples.cpp
@@ -43,6 +43,9 @@
#include <QDir>
#include <QProcess>
#include <QDebug>
+#include "qmlruntime.h"
+#include <QDeclarativeView>
+#include <QDeclarativeError>
class tst_examples : public QObject
{
@@ -79,6 +82,23 @@ tst_examples::tst_examples()
// Add directories you want excluded here
excludedDirs << "examples/declarative/extending";
excludedDirs << "examples/declarative/plugins";
+ excludedDirs << "examples/declarative/proxywidgets";
+ excludedDirs << "examples/declarative/gestures";
+
+ excludedDirs << "examples/declarative/imageprovider";
+ excludedDirs << "demos/declarative/minehunt";
+
+#ifdef QT_NO_WEBKIT
+ excludedDirs << "examples/declarative/webview";
+ excludedDirs << "demos/declarative/webbrowser";
+#endif
+
+#ifdef QT_NO_XMLPATTERNS
+ excludedDirs << "examples/declarative/xmldata";
+ excludedDirs << "demos/declarative/twitter";
+ excludedDirs << "demos/declarative/flickr";
+ excludedDirs << "demos/declarative/photoviewer";
+#endif
}
/*
@@ -88,24 +108,24 @@ to have them tested by the examples() test.
void tst_examples::namingConvention(const QDir &d)
{
for (int ii = 0; ii < excludedDirs.count(); ++ii) {
- QString s = QDir::toNativeSeparators(excludedDirs.at(ii));
+ QString s = excludedDirs.at(ii);
if (d.absolutePath().endsWith(s))
return;
}
- QStringList files = d.entryList(QStringList() << QLatin1String("*.qml"),
+ QStringList files = d.entryList(QStringList() << QLatin1String("*.qml"),
QDir::Files);
bool seenQml = !files.isEmpty();
bool seenLowercase = false;
foreach (const QString &file, files) {
- if (file.at(0).isLower())
+ if (file.at(0).isLower())
seenLowercase = true;
}
if (!seenQml) {
- QStringList dirs = d.entryList(QDir::Dirs | QDir::NoDotAndDotDot |
+ QStringList dirs = d.entryList(QDir::Dirs | QDir::NoDotAndDotDot |
QDir::NoSymLinks);
foreach (const QString &dir, dirs) {
QDir sub = d;
@@ -129,14 +149,14 @@ void tst_examples::namingConvention()
QStringList tst_examples::findQmlFiles(const QDir &d)
{
for (int ii = 0; ii < excludedDirs.count(); ++ii) {
- QString s = QDir::toNativeSeparators(excludedDirs.at(ii));
+ QString s = excludedDirs.at(ii);
if (d.absolutePath().endsWith(s))
return QStringList();
}
QStringList rv;
- QStringList files = d.entryList(QStringList() << QLatin1String("*.qml"),
+ QStringList files = d.entryList(QStringList() << QLatin1String("*.qml"),
QDir::Files);
foreach (const QString &file, files) {
if (file.at(0).isLower()) {
@@ -144,7 +164,7 @@ QStringList tst_examples::findQmlFiles(const QDir &d)
}
}
- QStringList dirs = d.entryList(QDir::Dirs | QDir::NoDotAndDotDot |
+ QStringList dirs = d.entryList(QDir::Dirs | QDir::NoDotAndDotDot |
QDir::NoSymLinks);
foreach (const QString &dir, dirs) {
QDir sub = d;
@@ -156,45 +176,50 @@ QStringList tst_examples::findQmlFiles(const QDir &d)
}
/*
-This test runs all the examples in the declarative UI source tree and ensures
+This test runs all the examples in the declarative UI source tree and ensures
that they start and exit cleanly.
Examples are any .qml files under the examples/ or demos/ directory that start
-with a lower case letter.
+with a lower case letter.
*/
void tst_examples::examples_data()
{
QTest::addColumn<QString>("file");
- QString examples = QLibraryInfo::location(QLibraryInfo::ExamplesPath);
- QString demos = QLibraryInfo::location(QLibraryInfo::DemosPath);
+ QString examples = QLatin1String(SRCDIR) + "/../../../../demos/declarative/";
+ QString demos = QLatin1String(SRCDIR) + "/../../../../examples/declarative/";
+ QString snippets = QLatin1String(SRCDIR) + "/../../../../doc/src/snippets/";
QStringList files;
files << findQmlFiles(QDir(examples));
files << findQmlFiles(QDir(demos));
+ files << findQmlFiles(QDir(snippets));
foreach (const QString &file, files)
- QTest::newRow(file.toLatin1().constData()) << file;
+ QTest::newRow(qPrintable(file)) << file;
+}
+
+static void silentErrorsMsgHandler(QtMsgType, const char *)
+{
}
void tst_examples::examples()
{
QFETCH(QString, file);
- QFileInfo fi(file);
- QFileInfo dir(fi.path());
- QString script = "data/"+dir.baseName()+"/"+fi.baseName();
- QFileInfo testdata(script+".qml");
- QStringList arguments;
- arguments << "-script" << (testdata.exists() ? script : QLatin1String("data/dummytest"))
- << "-scriptopts" << "play,testerror,exitoncomplete,exitonfailure"
- << file;
- QProcess p;
-qDebug() << qmlruntime << arguments;
- p.start(qmlruntime, arguments);
- QVERIFY(p.waitForFinished());
- QCOMPARE(p.exitStatus(), QProcess::NormalExit);
- QCOMPARE(p.exitCode(), 0);
+ QDeclarativeViewer viewer;
+
+ QtMsgHandler old = qInstallMsgHandler(silentErrorsMsgHandler);
+ QVERIFY(viewer.open(file));
+ qInstallMsgHandler(old);
+
+ if (viewer.view()->status() == QDeclarativeView::Error)
+ qWarning() << viewer.view()->errors();
+
+ QCOMPARE(viewer.view()->status(), QDeclarativeView::Ready);
+ viewer.show();
+
+ QTest::qWaitForWindowShown(&viewer);
}
QTEST_MAIN(tst_examples)
diff --git a/tests/auto/declarative/graphicswidgets/data/graphicswidgets.qml b/tests/auto/declarative/graphicswidgets/data/graphicswidgets.qml
index c00173d..714ae7c 100644
--- a/tests/auto/declarative/graphicswidgets/data/graphicswidgets.qml
+++ b/tests/auto/declarative/graphicswidgets/data/graphicswidgets.qml
@@ -1,58 +1,49 @@
import Qt 4.6
import Qt.widgets 4.6
-QGraphicsView {
- objectName: "GView"
- size: "800x600"
-
- QGraphicsScene {
- objectName: "GScene"
- sceneRect: "0,0,500x300"
-
+QGraphicsWidget {
+ layout: QGraphicsLinearLayout {
+ orientation: Qt.Horizontal
QGraphicsWidget {
layout: QGraphicsLinearLayout {
- orientation: Qt.Horizontal
- QGraphicsWidget {
- layout: QGraphicsLinearLayout {
- spacing: 10; orientation: Qt.Vertical
- LayoutItem {
- QGraphicsLinearLayout.stretchFactor: 1
- objectName: "left"
- minimumSize: "100x100"
- maximumSize: "300x300"
- preferredSize: "100x100"
- Rectangle { objectName: "yellowRect"; color: "yellow"; anchors.fill: parent }
- }
- LayoutItem {
- QGraphicsLinearLayout.stretchFactor: 10
- objectName: "left"
- minimumSize: "100x100"
- maximumSize: "300x300"
- preferredSize: "100x100"
- Rectangle { objectName: "yellowRect"; color: "blue"; anchors.fill: parent }
- }
- }
+ spacing: 10; orientation: Qt.Vertical
+ LayoutItem {
+ QGraphicsLinearLayout.stretchFactor: 1
+ objectName: "left"
+ minimumSize: "100x100"
+ maximumSize: "300x300"
+ preferredSize: "100x100"
+ Rectangle { objectName: "yellowRect"; color: "yellow"; anchors.fill: parent }
}
- QGraphicsWidget {
- layout: QGraphicsLinearLayout {
- spacing: 10; orientation: Qt.Vertical
- LayoutItem {
- objectName: "left"
- minimumSize: "100x100"
- maximumSize: "300x300"
- preferredSize: "100x100"
- Rectangle { objectName: "yellowRect"; color: "red"; anchors.fill: parent }
- }
- LayoutItem {
- objectName: "left"
- minimumSize: "100x100"
- maximumSize: "300x300"
- preferredSize: "100x100"
- Rectangle { objectName: "yellowRect"; color: "green"; anchors.fill: parent }
- }
- }
+ LayoutItem {
+ QGraphicsLinearLayout.stretchFactor: 10
+ objectName: "left"
+ minimumSize: "100x100"
+ maximumSize: "300x300"
+ preferredSize: "100x100"
+ Rectangle { objectName: "yellowRect"; color: "blue"; anchors.fill: parent }
+ }
+ }
+ }
+ QGraphicsWidget {
+ layout: QGraphicsLinearLayout {
+ spacing: 10; orientation: Qt.Vertical
+ LayoutItem {
+ objectName: "left"
+ minimumSize: "100x100"
+ maximumSize: "300x300"
+ preferredSize: "100x100"
+ Rectangle { objectName: "yellowRect"; color: "red"; anchors.fill: parent }
+ }
+ LayoutItem {
+ objectName: "left"
+ minimumSize: "100x100"
+ maximumSize: "300x300"
+ preferredSize: "100x100"
+ Rectangle { objectName: "yellowRect"; color: "green"; anchors.fill: parent }
}
}
}
}
}
+
diff --git a/tests/auto/declarative/graphicswidgets/graphicswidgets.pro b/tests/auto/declarative/graphicswidgets/graphicswidgets.pro
index 712c34c..b77b430 100644
--- a/tests/auto/declarative/graphicswidgets/graphicswidgets.pro
+++ b/tests/auto/declarative/graphicswidgets/graphicswidgets.pro
@@ -6,3 +6,5 @@ SOURCES += tst_graphicswidgets.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/graphicswidgets/tst_graphicswidgets.cpp b/tests/auto/declarative/graphicswidgets/tst_graphicswidgets.cpp
index a85ceed..f1a71d5 100644
--- a/tests/auto/declarative/graphicswidgets/tst_graphicswidgets.cpp
+++ b/tests/auto/declarative/graphicswidgets/tst_graphicswidgets.cpp
@@ -42,7 +42,7 @@
#include <QFile>
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
-#include <QtGui/qgraphicsview.h>
+#include <QtGui/qgraphicswidget.h>
class tst_graphicswidgets : public QObject
@@ -63,12 +63,9 @@ void tst_graphicswidgets::widgets()
{
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/graphicswidgets.qml"));
- QGraphicsView *obj = qobject_cast<QGraphicsView*>(c.create());
+ QGraphicsWidget *obj = qobject_cast<QGraphicsWidget*>(c.create());
QVERIFY(obj != 0);
- QVERIFY(obj->scene() != 0);
- QList<QObject*> list;
- QVERIFY(obj->scene()->children() != list);
delete obj;
}
diff --git a/tests/auto/declarative/layouts/data/layouts.qml b/tests/auto/declarative/layouts/data/layouts.qml
deleted file mode 100644
index 1792500..0000000
--- a/tests/auto/declarative/layouts/data/layouts.qml
+++ /dev/null
@@ -1,34 +0,0 @@
-import Qt 4.6
-import Qt.widgets 4.6
-
-Item {
- id: resizable
- width:300
- height:300
-
- GraphicsObjectContainer {
- anchors.fill: parent
- synchronizedResizing: true
-
- QGraphicsWidget {
-
- layout: QGraphicsLinearLayout {
- spacing: 0
- LayoutItem {
- objectName: "left"
- minimumSize: "100x100"
- maximumSize: "300x300"
- preferredSize: "100x100"
- Rectangle { objectName: "yellowRect"; color: "yellow"; anchors.fill: parent }
- }
- LayoutItem {
- objectName: "right"
- minimumSize: "100x100"
- maximumSize: "400x400"
- preferredSize: "200x200"
- Rectangle { objectName: "greenRect"; color: "green"; anchors.fill: parent }
- }
- }
- }
- }
-}
diff --git a/tests/auto/declarative/layouts/layouts.pro b/tests/auto/declarative/layouts/layouts.pro
deleted file mode 100644
index f38e155..0000000
--- a/tests/auto/declarative/layouts/layouts.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative
-SOURCES += tst_layouts.cpp
-macx:CONFIG -= app_bundle
-
-# Define SRCDIR equal to test's source directory
-DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/layouts/tst_layouts.cpp b/tests/auto/declarative/layouts/tst_layouts.cpp
deleted file mode 100644
index 942125f..0000000
--- a/tests/auto/declarative/layouts/tst_layouts.cpp
+++ /dev/null
@@ -1,147 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <QtTest/QtTest>
-#include <private/qlistmodelinterface_p.h>
-#include <qdeclarativeview.h>
-#include <private/qdeclarativelayoutitem_p.h>
-#include <qdeclarativeexpression.h>
-#include <QStyle>
-
-class tst_QDeclarativeLayouts : public QObject
-{
- Q_OBJECT
-public:
- tst_QDeclarativeLayouts();
-
-private slots:
- void test_qml();//GraphicsLayout set up in Qml
- void test_cpp();//GraphicsLayout set up in C++
-
-private:
- QDeclarativeView *createView(const QString &filename);
-};
-
-tst_QDeclarativeLayouts::tst_QDeclarativeLayouts()
-{
-}
-
-void tst_QDeclarativeLayouts::test_qml()
-{
- QDeclarativeView *canvas = createView(SRCDIR "/data/layouts.qml");
-
- qApp->processEvents();
- QDeclarativeLayoutItem *left = static_cast<QDeclarativeLayoutItem*>(canvas->rootObject()->findChild<QDeclarativeItem*>("left"));
- QVERIFY(left != 0);
-
- QDeclarativeLayoutItem *right = static_cast<QDeclarativeLayoutItem*>(canvas->rootObject()->findChild<QDeclarativeItem*>("right"));
- QVERIFY(right != 0);
-
- qreal l = QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin);
- qreal r = QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin);
- qreal t = QApplication::style()->pixelMetric(QStyle::PM_LayoutTopMargin);
- qreal b = QApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin);
- QVERIFY2(l == r && r == t && t == b, "Test assumes equal margins.");
- qreal gvMargin = l;
-
- QDeclarativeItem *rootItem = qobject_cast<QDeclarativeItem*>(canvas->rootObject());
- QVERIFY(rootItem != 0);
-
- //Preferred Size
- rootItem->setWidth(300 + 2*gvMargin);
- rootItem->setHeight(300 + 2*gvMargin);
-
- QCOMPARE(left->x(), gvMargin);
- QCOMPARE(left->y(), gvMargin);
- QCOMPARE(left->width(), 100.0);
- QCOMPARE(left->height(), 300.0);
-
- QCOMPARE(right->x(), 100.0 + gvMargin);
- QCOMPARE(right->y(), 0.0 + gvMargin);
- QCOMPARE(right->width(), 200.0);
- QCOMPARE(right->height(), 300.0);
-
- //Minimum Size
- rootItem->setWidth(10+2*gvMargin);
- rootItem->setHeight(10+2*gvMargin);
-
- QCOMPARE(left->x(), gvMargin);
- QCOMPARE(left->width(), 100.0);
- QCOMPARE(left->height(), 100.0);
-
- QCOMPARE(right->x(), 100.0 + gvMargin);
- QCOMPARE(right->width(), 100.0);
- QCOMPARE(right->height(), 100.0);
-
- //Between preferred and Maximum Size
- /*Note that if set to maximum size (or above) GraphicsLinearLayout behavior
- is to shrink them down to preferred size. So the exact maximum size can't
- be used*/
- rootItem->setWidth(670 + 2*gvMargin);
- rootItem->setHeight(300 + 2*gvMargin);
-
- QCOMPARE(left->x(), gvMargin);
- QCOMPARE(left->width(), 270.0);
- QCOMPARE(left->height(), 300.0);
-
- QCOMPARE(right->x(), 270.0 + gvMargin);
- QCOMPARE(right->width(), 400.0);
- QCOMPARE(right->height(), 300.0);
-
- delete canvas;
-}
-
-void tst_QDeclarativeLayouts::test_cpp()
-{
- //TODO: Waiting on QT-2407 to write this test
-}
-
-QDeclarativeView *tst_QDeclarativeLayouts::createView(const QString &filename)
-{
- QDeclarativeView *canvas = new QDeclarativeView(0);
- canvas->setSource(QUrl::fromLocalFile(filename));
-
- return canvas;
-}
-
-
-QTEST_MAIN(tst_QDeclarativeLayouts)
-
-#include "tst_layouts.moc"
diff --git a/tests/auto/declarative/parserstress/parserstress.pro b/tests/auto/declarative/parserstress/parserstress.pro
index 48f147a..8830511 100644
--- a/tests/auto/declarative/parserstress/parserstress.pro
+++ b/tests/auto/declarative/parserstress/parserstress.pro
@@ -5,3 +5,6 @@ macx:CONFIG -= app_bundle
SOURCES += tst_parserstress.cpp
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/parserstress/tst_parserstress.cpp b/tests/auto/declarative/parserstress/tst_parserstress.cpp
index 6ff5515..41c0a1b 100644
--- a/tests/auto/declarative/parserstress/tst_parserstress.cpp
+++ b/tests/auto/declarative/parserstress/tst_parserstress.cpp
@@ -113,7 +113,7 @@ void tst_parserstress::ecmascript()
QString dataStr = QString::fromUtf8(data);
- QString qml = "import Qt 4.6\n";
+ QString qml = "import Qt 4.7\n";
qml+= "\n";
qml+= "QtObject {\n";
qml+= " property int test\n";
@@ -121,10 +121,8 @@ void tst_parserstress::ecmascript()
qml+= dataStr + "\n";
qml+= " return 1;\n";
qml+= " }\n";
- qml+= " Script {\n";
- qml+= " function stress() {\n";
+ qml+= " function stress() {\n";
qml+= dataStr;
- qml+= " }\n";
qml+= " }\n";
qml+= "}\n";
diff --git a/tests/auto/declarative/qdeclarativeanchors/data/anchorsqgraphicswidget.qml b/tests/auto/declarative/qdeclarativeanchors/data/anchorsqgraphicswidget.qml
new file mode 100644
index 0000000..ba424b9
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeanchors/data/anchorsqgraphicswidget.qml
@@ -0,0 +1,163 @@
+import Qt 4.6
+import Qt.widgets 4.7
+
+Rectangle {
+ color: "white"
+ width: 240
+ height: 320
+ Rectangle { id: masterRect; objectName: "masterRect"; x: 26; width: 96; height: 20; color: "red" }
+ QGraphicsWidget {
+ id: rect1; objectName: "rect1"
+ y: 20; width: 10; height: 10
+ anchors.left: masterRect.left
+ }
+ QGraphicsWidget {
+ id: rect2; objectName: "rect2"
+ y: 20; width: 10; height: 10
+ anchors.left: masterRect.right
+ }
+ QGraphicsWidget {
+ id: rect3; objectName: "rect3"
+ y: 20; width: 10; height: 10
+ anchors.left: masterRect.horizontalCenter
+ }
+ QGraphicsWidget {
+ id: rect4; objectName: "rect4"
+ y: 30; width: 10; height: 10
+ anchors.right: masterRect.left
+ }
+ QGraphicsWidget {
+ id: rect5; objectName: "rect5"
+ y: 30; width: 10; height: 10
+ anchors.right: masterRect.right
+ }
+ QGraphicsWidget {
+ id: rect6; objectName: "rect6"
+ y: 30; width: 10; height: 10
+ anchors.right: masterRect.horizontalCenter
+ }
+ QGraphicsWidget {
+ id: rect7; objectName: "rect7"
+ y: 50; width: 10; height: 10
+ anchors.left: parent.left
+ }
+ QGraphicsWidget {
+ id: rect8; objectName: "rect8"
+ y: 50; width: 10; height: 10
+ anchors.left: parent.right
+ }
+ QGraphicsWidget {
+ id: rect9; objectName: "rect9"
+ y: 50; width: 10; height: 10
+ anchors.left: parent.horizontalCenter
+ }
+ QGraphicsWidget {
+ id: rect10; objectName: "rect10"
+ y: 60; width: 10; height: 10
+ anchors.right: parent.left
+ }
+ QGraphicsWidget {
+ id: rect11; objectName: "rect11"
+ y: 60; width: 10; height: 10
+ anchors.right: parent.right
+ }
+ QGraphicsWidget {
+ id: rect12; objectName: "rect12"
+ y: 60; width: 10; height: 10
+ anchors.right: parent.horizontalCenter
+ }
+ QGraphicsWidget {
+ id: rect13; objectName: "rect13"
+ x: 200; width: 10; height: 10
+ anchors.top: masterRect.bottom
+ }
+ QGraphicsWidget {
+ id: rect14; objectName: "rect14"
+ width: 10; height: 10;
+ anchors.verticalCenter: parent.verticalCenter
+ }
+ QGraphicsWidget {
+ id: rect15; objectName: "rect15"
+ y: 200; height: 10
+ anchors.left: masterRect.left
+ anchors.right: masterRect.right
+ }
+ QGraphicsWidget {
+ id: rect16; objectName: "rect16"
+ y: 220; height: 10
+ anchors.left: masterRect.left
+ anchors.horizontalCenter: masterRect.right
+ }
+ QGraphicsWidget {
+ id: rect17; objectName: "rect17"
+ y: 240; height: 10
+ anchors.right: masterRect.right
+ anchors.horizontalCenter: masterRect.left
+ }
+ QGraphicsWidget {
+ id: rect18; objectName: "rect18"
+ x: 180; width: 10
+ anchors.top: masterRect.bottom
+ anchors.bottom: rect12.top
+ }
+ QGraphicsWidget {
+ id: rect19; objectName: "rect19"
+ y: 70; width: 10; height: 10
+ anchors.horizontalCenter: parent.horizontalCenter
+ }
+ QGraphicsWidget {
+ id: rect20; objectName: "rect20"
+ y: 70; width: 10; height: 10
+ anchors.horizontalCenter: parent.right
+ }
+ QGraphicsWidget {
+ id: rect21; objectName: "rect21"
+ y: 70; width: 10; height: 10
+ anchors.horizontalCenter: parent.left
+ }
+ QGraphicsWidget {
+ id: rect22; objectName: "rect22"
+ width: 10; height: 10
+ anchors.centerIn: masterRect
+ }
+ QGraphicsWidget {
+ id: rect23; objectName: "rect23"
+ anchors.left: masterRect.left
+ anchors.leftMargin: 5
+ anchors.right: masterRect.right
+ anchors.rightMargin: 5
+ anchors.top: masterRect.top
+ anchors.topMargin: 5
+ anchors.bottom: masterRect.bottom
+ anchors.bottomMargin: 5
+ }
+ QGraphicsWidget {
+ id: rect24; objectName: "rect24"
+ width: 10; height: 10
+ anchors.horizontalCenter: masterRect.left
+ anchors.horizontalCenterOffset: width/2
+ }
+ QGraphicsWidget {
+ id: rect25; objectName: "rect25"
+ width: 10; height: 10
+ anchors.verticalCenter: rect12.top
+ anchors.verticalCenterOffset: height/2
+ }
+ Rectangle {
+ id: rect26; objectName: "rect26"
+ width: 10; height: 10
+ anchors.baseline: masterRect.top
+ anchors.baselineOffset: height/2
+ }
+ Text {
+ id: text1; objectName: "text1"
+ y: 200;
+ text: "Hello"
+ }
+ Text {
+ id: text2; objectName: "text2"
+ anchors.baseline: text1.baseline
+ anchors.left: text1.right
+ text: "World"
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro b/tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro
index ca2f68f..a2403f2 100644
--- a/tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro
+++ b/tests/auto/declarative/qdeclarativeanchors/qdeclarativeanchors.pro
@@ -4,3 +4,6 @@ SOURCES += tst_qdeclarativeanchors.cpp
macx:CONFIG -= app_bundle
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp b/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp
index 9d8ba6c..01b5bc5 100644
--- a/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp
+++ b/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp
@@ -40,6 +40,8 @@
****************************************************************************/
#include <qtest.h>
#include <QSignalSpy>
+#include <QtGui/QGraphicsWidget>
+#include <private/qgraphicsitem_p.h>
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
#include <QtDeclarative/qdeclarativeview.h>
@@ -59,9 +61,11 @@ public:
template<typename T>
T *findItem(QGraphicsObject *parent, const QString &id);
+ QGraphicsObject *findObject(QGraphicsObject *parent, const QString &objectName);
private slots:
void basicAnchors();
+ void basicAnchorsQGraphicsWidget();
void loops();
void illegalSets();
void illegalSets_data();
@@ -99,6 +103,25 @@ T *tst_qdeclarativeanchors::findItem(QGraphicsObject *parent, const QString &obj
return 0;
}
+QGraphicsObject *tst_qdeclarativeanchors::findObject(QGraphicsObject *parent, const QString &objectName)
+{
+ QList<QGraphicsItem *> children = parent->childItems();
+ for (int i = 0; i < children.count(); ++i) {
+ QGraphicsObject *item = children.at(i)->toGraphicsObject();
+ if (item) {
+ if (objectName.isEmpty() || item->objectName() == objectName) {
+ return item;
+ }
+ item = findObject(item, objectName);
+ if (item)
+ return item;
+ }
+ }
+
+ return 0;
+}
+
+
void tst_qdeclarativeanchors::basicAnchors()
{
QDeclarativeView *view = new QDeclarativeView;
@@ -166,6 +189,73 @@ void tst_qdeclarativeanchors::basicAnchors()
delete view;
}
+void tst_qdeclarativeanchors::basicAnchorsQGraphicsWidget()
+{
+ QDeclarativeView *view = new QDeclarativeView;
+ view->setSource(QUrl::fromLocalFile(SRCDIR "/data/anchorsqgraphicswidget.qml"));
+
+ qApp->processEvents();
+
+ //sibling horizontal
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect1"))->x(), 26.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect2"))->x(), 122.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect3"))->x(), 74.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect4"))->x(), 16.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect5"))->x(), 112.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect6"))->x(), 64.0);
+
+ //parent horizontal
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect7"))->x(), 0.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect8"))->x(), 240.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect9"))->x(), 120.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect10"))->x(), -10.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect11"))->x(), 230.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect12"))->x(), 110.0);
+
+ //vertical
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect13"))->y(), 20.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect14"))->y(), 155.0);
+
+ //stretch
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect15"))->x(), 26.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect15"))->property("width").toReal(), 96.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect16"))->x(), 26.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect16"))->property("width").toReal(), 192.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect17"))->x(), -70.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect17"))->property("width").toReal(), 192.0);
+
+ //vertical stretch
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect18"))->y(), 20.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect18"))->property("height").toReal(), 40.0);
+
+ //more parent horizontal
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect19"))->x(), 115.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect20"))->x(), 235.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect21"))->x(), -5.0);
+
+ //centerIn
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect22"))->x(), 69.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect22"))->y(), 5.0);
+
+ //margins
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect23"))->x(), 31.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect23"))->y(), 5.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect23"))->property("width").toReal(), 86.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect23"))->property("height").toReal(), 10.0);
+
+ // offsets
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect24"))->x(), 26.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect25"))->y(), 60.0);
+ QCOMPARE(findObject(view->rootObject(), QLatin1String("rect26"))->y(), 5.0);
+
+ //baseline
+ QDeclarativeText *text1 = findItem<QDeclarativeText>(view->rootObject(), QLatin1String("text1"));
+ QDeclarativeText *text2 = findItem<QDeclarativeText>(view->rootObject(), QLatin1String("text2"));
+ QCOMPARE(text1->y(), text2->y());
+
+ delete view;
+}
+
// mostly testing that we don't crash
void tst_qdeclarativeanchors::loops()
{
@@ -207,7 +297,7 @@ void tst_qdeclarativeanchors::illegalSets()
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\n" + qml.toUtf8()), QUrl::fromLocalFile(""));
+ component.setData(QByteArray("import Qt 4.7\n" + qml.toUtf8()), QUrl::fromLocalFile(""));
if (!component.isReady())
qWarning() << "Test errors:" << component.errors();
QVERIFY(component.isReady());
@@ -372,8 +462,17 @@ void tst_qdeclarativeanchors::crash1()
QUrl source(QUrl::fromLocalFile(SRCDIR "/data/crash1.qml"));
QString expect = "QML Text (" + source.toString() + ":4:5" + ") Possible anchor loop detected on fill.";
+
+ QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
+
+ // QT-3245 ... anchor loop detection needs improving.
+ QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
+ QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
+ QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
+ QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
+ QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
+ QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
QTest::ignoreMessage(QtWarningMsg, expect.toLatin1());
- QTest::ignoreMessage(QtWarningMsg, expect.toLatin1()); // XXX ideally, should be one message
QDeclarativeView *view = new QDeclarativeView(source);
qApp->processEvents();
@@ -391,7 +490,7 @@ void tst_qdeclarativeanchors::fill()
QCOMPARE(rect->y(), 0.0 + 30.0);
QCOMPARE(rect->width(), 200.0 - 10.0 - 20.0);
QCOMPARE(rect->height(), 200.0 - 30.0 - 40.0);
- //Alter Offsets (QTBUG-6631)
+ //Alter Offsets (tests QTBUG-6631)
rect->anchors()->setLeftMargin(20.0);
rect->anchors()->setRightMargin(0.0);
rect->anchors()->setBottomMargin(0.0);
@@ -412,7 +511,7 @@ void tst_qdeclarativeanchors::centerIn()
QDeclarativeRectangle* rect = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("centered"));
QCOMPARE(rect->x(), 75.0 + 10);
QCOMPARE(rect->y(), 75.0 + 30);
- //Alter Offsets (QTBUG-6631)
+ //Alter Offsets (tests QTBUG-6631)
rect->anchors()->setHorizontalCenterOffset(-20.0);
rect->anchors()->setVerticalCenterOffset(-10.0);
QCOMPARE(rect->x(), 75.0 - 20.0);
diff --git a/tests/auto/declarative/qdeclarativeanimatedimage/data/qmldir b/tests/auto/declarative/qdeclarativeanimatedimage/data/qmldir
new file mode 100644
index 0000000..ef7c1f4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeanimatedimage/data/qmldir
@@ -0,0 +1 @@
+# No local types
diff --git a/tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanerror1.qml b/tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanerror1.qml
new file mode 100644
index 0000000..5b0bdcb
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanerror1.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+AnimatedImage {
+ sourceSize: "240x180"
+ source: "stickman.gif"
+}
diff --git a/tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanscaled.qml b/tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanscaled.qml
new file mode 100644
index 0000000..f4d277a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeanimatedimage/data/stickmanscaled.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+AnimatedImage {
+ width: 240
+ height: 180
+ source: "stickman.gif"
+}
diff --git a/tests/auto/declarative/qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro b/tests/auto/declarative/qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro
index 2904986..74f9be0 100644
--- a/tests/auto/declarative/qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro
+++ b/tests/auto/declarative/qdeclarativeanimatedimage/qdeclarativeanimatedimage.pro
@@ -5,3 +5,6 @@ SOURCES += tst_qdeclarativeanimatedimage.cpp ../shared/testhttpserver.cpp
macx:CONFIG -= app_bundle
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp b/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp
index 31efc64..0fb080c 100644
--- a/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp
+++ b/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp
@@ -72,6 +72,8 @@ private slots:
void frameCount();
void remote();
void remote_data();
+ void sourceSize();
+ void sourceSizeReadOnly();
void invalidSource();
};
@@ -139,12 +141,12 @@ void tst_qdeclarativeanimatedimage::remote()
QFETCH(QString, fileName);
QFETCH(bool, paused);
- TestHTTPServer server(14445);
+ TestHTTPServer server(14449);
QVERIFY(server.isValid());
server.serveDirectory(SRCDIR "/data");
QDeclarativeEngine engine;
- QDeclarativeComponent component(&engine, QUrl("http://127.0.0.1:14445/" + fileName));
+ QDeclarativeComponent component(&engine, QUrl("http://127.0.0.1:14449/" + fileName));
TRY_WAIT(component.isReady());
QDeclarativeAnimatedImage *anim = qobject_cast<QDeclarativeAnimatedImage *>(component.create());
@@ -155,10 +157,32 @@ void tst_qdeclarativeanimatedimage::remote()
TRY_WAIT(anim->isPaused());
QCOMPARE(anim->currentFrame(), 2);
}
+ QVERIFY(anim->status() != QDeclarativeAnimatedImage::Error);
delete anim;
}
+void tst_qdeclarativeanimatedimage::sourceSize()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/stickmanscaled.qml"));
+ QDeclarativeAnimatedImage *anim = qobject_cast<QDeclarativeAnimatedImage *>(component.create());
+ QVERIFY(anim);
+ QCOMPARE(anim->width(),240.0);
+ QCOMPARE(anim->height(),180.0);
+ QCOMPARE(anim->sourceSize(),QSize(160,120));
+
+ delete anim;
+}
+
+void tst_qdeclarativeanimatedimage::sourceSizeReadOnly()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/stickmanerror1.qml"));
+ QVERIFY(component.isError());
+ QCOMPARE(component.errors().at(0).description(), QString("Invalid property assignment: \"sourceSize\" is a read-only property"));
+}
+
void tst_qdeclarativeanimatedimage::remote_data()
{
QTest::addColumn<QString>("fileName");
@@ -172,7 +196,7 @@ void tst_qdeclarativeanimatedimage::invalidSource()
{
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6\n AnimatedImage { source: \"no-such-file.gif\" }", QUrl::fromLocalFile(""));
+ component.setData("import Qt 4.7\n AnimatedImage { source: \"no-such-file.gif\" }", QUrl::fromLocalFile(""));
QVERIFY(component.isReady());
QTest::ignoreMessage(QtWarningMsg, "Error Reading Animated Image File QUrl( \"file:no-such-file.gif\" ) ");
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/badtype1.qml b/tests/auto/declarative/qdeclarativeanimations/data/badtype1.qml
index 6381df3..2629cf4 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/badtype1.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/badtype1.qml
@@ -7,6 +7,6 @@ Rectangle {
color: "red"
width: 50; height: 50
x: 100; y: 100
- x: PropertyAnimation { from: "blue"; to: "green"; }
+ PropertyAnimation on x { from: "blue"; to: "green"; }
}
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/badtype2.qml b/tests/auto/declarative/qdeclarativeanimations/data/badtype2.qml
index 8d57e41..1543a2a 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/badtype2.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/badtype2.qml
@@ -7,6 +7,6 @@ Rectangle {
color: "red"
width: 50; height: 50
x: 100; y: 100
- x: NumberAnimation { from: "blue"; to: "green"; }
+ NumberAnimation on x { from: "blue"; to: "green"; }
}
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/badtype3.qml b/tests/auto/declarative/qdeclarativeanimations/data/badtype3.qml
index c4867c3..aa98c33 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/badtype3.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/badtype3.qml
@@ -5,7 +5,7 @@ Rectangle {
height: 320
Rectangle {
color: "red"
- color: ColorAnimation { from: 10; to: 15; }
+ ColorAnimation on color { from: 10; to: 15; }
width: 50; height: 50
x: 100; y: 100
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/dontAutoStart.qml b/tests/auto/declarative/qdeclarativeanimations/data/dontAutoStart.qml
index d9660b6..d6bfe45 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/dontAutoStart.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/dontAutoStart.qml
@@ -9,8 +9,8 @@ Rectangle {
id: redRect
width: 100; height: 100
color: Qt.rgba(1,0,0)
- x: Behavior {
- NumberAnimation { objectName: "MyAnim"; target: redRect; property: "y"; to: 300; repeat: true}
+ Behavior on x {
+ NumberAnimation { id: myAnim; objectName: "MyAnim"; target: redRect; property: "y"; to: 300; loops: Animation.Infinite}
}
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/dontStart.qml b/tests/auto/declarative/qdeclarativeanimations/data/dontStart.qml
index 36417db..efed058 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/dontStart.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/dontStart.qml
@@ -9,7 +9,7 @@ Rectangle {
id: redRect
width: 100; height: 100
color: Qt.rgba(1,0,0)
- x: SequentialAnimation {
+ SequentialAnimation on x {
running: false
NumberAnimation { objectName: "MyAnim"; running: true }
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/properties.qml b/tests/auto/declarative/qdeclarativeanimations/data/properties.qml
index 7e73f57..4437815 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/properties.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/properties.qml
@@ -9,6 +9,6 @@ Rectangle {
color: "red"
width: 50; height: 50
x: 100; y: 100
- x: NumberAnimation { to: 200 }
+ NumberAnimation on x { to: 200 }
}
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/properties2.qml b/tests/auto/declarative/qdeclarativeanimations/data/properties2.qml
index 6c96155..b1f2020 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/properties2.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/properties2.qml
@@ -9,6 +9,6 @@ Rectangle {
color: "red"
width: 50; height: 50
x: 100; y: 100
- x: NumberAnimation { targets: theRect; properties: "x"; to: 200; }
+ NumberAnimation on x { targets: theRect; properties: "x"; to: 200; }
}
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/properties3.qml b/tests/auto/declarative/qdeclarativeanimations/data/properties3.qml
index ff08885..0a0ed6f 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/properties3.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/properties3.qml
@@ -9,6 +9,6 @@ Rectangle {
color: "red"
width: 50; height: 50
x: 100; y: 100
- x: NumberAnimation { target: theRect; property: "x"; to: 300; }
+ NumberAnimation on x { target: theRect; property: "x"; to: 300; }
}
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/properties4.qml b/tests/auto/declarative/qdeclarativeanimations/data/properties4.qml
index dab7e5f..a90f004 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/properties4.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/properties4.qml
@@ -9,6 +9,6 @@ Rectangle {
color: "red"
width: 50; height: 50
x: 100; y: 100
- x: NumberAnimation { target: theRect; property: "y"; to: 200; }
+ NumberAnimation on x { target: theRect; property: "y"; to: 200; }
}
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/properties5.qml b/tests/auto/declarative/qdeclarativeanimations/data/properties5.qml
index 38396b1..7d3cec9 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/properties5.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/properties5.qml
@@ -9,6 +9,6 @@ Rectangle {
color: "red"
width: 50; height: 50
x: 100; y: 100
- x: NumberAnimation { targets: theRect; properties: "y"; to: 200; }
+ NumberAnimation on x { targets: theRect; properties: "y"; to: 200; }
}
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/rotation.qml b/tests/auto/declarative/qdeclarativeanimations/data/rotation.qml
new file mode 100644
index 0000000..e9c57d4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeanimations/data/rotation.qml
@@ -0,0 +1,48 @@
+import Qt 4.6
+
+Rectangle {
+ width: 600; height: 200
+
+ Row {
+ spacing: 5
+ Rectangle {
+ id: rr
+ objectName: "rr"
+ color: "red"
+ width: 100; height: 100
+ }
+ Rectangle {
+ id: rr2
+ objectName: "rr2"
+ color: "red"
+ width: 100; height: 100
+ }
+ Rectangle {
+ id: rr3
+ objectName: "rr3"
+ color: "red"
+ width: 100; height: 100
+ }
+ Rectangle {
+ id: rr4
+ objectName: "rr4"
+ color: "red"
+ width: 100; height: 100
+ }
+ }
+
+ states: State {
+ name: "state1"
+ PropertyChanges { target: rr; rotation: 370 }
+ PropertyChanges { target: rr2; rotation: 370 }
+ PropertyChanges { target: rr3; rotation: 370 }
+ PropertyChanges { target: rr4; rotation: 370 }
+ }
+
+ transitions: Transition {
+ RotationAnimation { target: rr; direction: RotationAnimation.Numerical; duration: 1000 }
+ RotationAnimation { target: rr2; direction: RotationAnimation.Clockwise; duration: 1000 }
+ RotationAnimation { target: rr3; direction: RotationAnimation.Counterclockwise; duration: 1000 }
+ RotationAnimation { target: rr4; direction: RotationAnimation.Shortest; duration: 1000 }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/valuesource.qml b/tests/auto/declarative/qdeclarativeanimations/data/valuesource.qml
index c35063d..2260440 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/valuesource.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/valuesource.qml
@@ -9,6 +9,6 @@ Rectangle {
color: "red"
width: 50; height: 50
x: 100; y: 100
- x: NumberAnimation { id: anim; objectName: "MyAnim"; to: 200 }
+ NumberAnimation on x { id: anim; objectName: "MyAnim"; to: 200 }
}
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/data/valuesource2.qml b/tests/auto/declarative/qdeclarativeanimations/data/valuesource2.qml
index 1a60542..36d6c72 100644
--- a/tests/auto/declarative/qdeclarativeanimations/data/valuesource2.qml
+++ b/tests/auto/declarative/qdeclarativeanimations/data/valuesource2.qml
@@ -9,6 +9,6 @@ Rectangle {
color: "red"
width: 50; height: 50
x: 100; y: 100
- x: NumberAnimation { id: anim; objectName: "MyAnim"; running: false; to: 200 }
+ NumberAnimation on x { id: anim; objectName: "MyAnim"; running: false; to: 200 }
}
}
diff --git a/tests/auto/declarative/qdeclarativeanimations/qdeclarativeanimations.pro b/tests/auto/declarative/qdeclarativeanimations/qdeclarativeanimations.pro
index 8eac75f..ce38eeb 100644
--- a/tests/auto/declarative/qdeclarativeanimations/qdeclarativeanimations.pro
+++ b/tests/auto/declarative/qdeclarativeanimations/qdeclarativeanimations.pro
@@ -4,3 +4,6 @@ SOURCES += tst_qdeclarativeanimations.cpp
macx:CONFIG -= app_bundle
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
index 53c63b5..959cc19 100644
--- a/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
+++ b/tests/auto/declarative/qdeclarativeanimations/tst_qdeclarativeanimations.cpp
@@ -59,6 +59,7 @@ private slots:
void simpleProperty();
void simpleNumber();
void simpleColor();
+ void simpleRotation();
void alwaysRunToEnd();
void complete();
void resume();
@@ -73,6 +74,7 @@ private slots:
void propertyValueSourceDefaultStart();
void dontStart();
void easingProperties();
+ void rotation();
};
#define QTIMED_COMPARE(lhs, rhs) do { \
@@ -168,6 +170,32 @@ void tst_qdeclarativeanimations::simpleColor()
QCOMPARE(rect.color(), QColor::fromRgbF(0.498039, 0, 0.498039, 1));
}
+void tst_qdeclarativeanimations::simpleRotation()
+{
+ QDeclarativeRectangle rect;
+ QDeclarativeRotationAnimation animation;
+ animation.setTarget(&rect);
+ animation.setProperty("rotation");
+ animation.setTo(270);
+ QVERIFY(animation.target() == &rect);
+ QVERIFY(animation.property() == "rotation");
+ QVERIFY(animation.to() == 270);
+ QVERIFY(animation.direction() == QDeclarativeRotationAnimation::Numerical);
+ animation.start();
+ QVERIFY(animation.isRunning());
+ QTest::qWait(animation.duration());
+ QTIMED_COMPARE(rect.rotation(), qreal(270));
+
+ rect.setRotation(0);
+ animation.start();
+ animation.pause();
+ QVERIFY(animation.isRunning());
+ QVERIFY(animation.isPaused());
+ animation.setCurrentTime(125);
+ QVERIFY(animation.currentTime() == 125);
+ QCOMPARE(rect.rotation(), qreal(135));
+}
+
void tst_qdeclarativeanimations::alwaysRunToEnd()
{
QDeclarativeRectangle rect;
@@ -176,9 +204,9 @@ void tst_qdeclarativeanimations::alwaysRunToEnd()
animation.setProperty("x");
animation.setTo(200);
animation.setDuration(1000);
- animation.setRepeat(true);
+ animation.setLoops(-1);
animation.setAlwaysRunToEnd(true);
- QVERIFY(animation.repeat() == true);
+ QVERIFY(animation.loops() == -1);
QVERIFY(animation.alwaysRunToEnd() == true);
animation.start();
QTest::qWait(1500);
@@ -217,21 +245,21 @@ void tst_qdeclarativeanimations::resume()
animation.setProperty("x");
animation.setFrom(10);
animation.setTo(200);
- animation.setDuration(500);
+ animation.setDuration(1000);
QVERIFY(animation.from() == 10);
animation.start();
- QTest::qWait(100);
+ QTest::qWait(400);
animation.pause();
qreal x = rect.x();
- QVERIFY(x != qreal(200));
+ QVERIFY(x != qreal(200) && x != qreal(10));
QVERIFY(animation.isRunning());
QVERIFY(animation.isPaused());
animation.resume();
QVERIFY(animation.isRunning());
QVERIFY(!animation.isPaused());
- QTest::qWait(100);
+ QTest::qWait(400);
animation.stop();
QVERIFY(rect.x() > x);
}
@@ -620,7 +648,7 @@ void tst_qdeclarativeanimations::easingProperties()
{
{
QDeclarativeEngine engine;
- QString componentStr = "import Qt 4.6\nNumberAnimation { easing.type: \"InOutQuad\" }";
+ QString componentStr = "import Qt 4.7\nNumberAnimation { easing.type: \"InOutQuad\" }";
QDeclarativeComponent animationComponent(&engine);
animationComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativePropertyAnimation *animObject = qobject_cast<QDeclarativePropertyAnimation*>(animationComponent.create());
@@ -631,7 +659,7 @@ void tst_qdeclarativeanimations::easingProperties()
{
QDeclarativeEngine engine;
- QString componentStr = "import Qt 4.6\nPropertyAnimation { easing.type: \"OutBounce\"; easing.amplitude: 5.0 }";
+ QString componentStr = "import Qt 4.7\nPropertyAnimation { easing.type: \"OutBounce\"; easing.amplitude: 5.0 }";
QDeclarativeComponent animationComponent(&engine);
animationComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativePropertyAnimation *animObject = qobject_cast<QDeclarativePropertyAnimation*>(animationComponent.create());
@@ -643,7 +671,7 @@ void tst_qdeclarativeanimations::easingProperties()
{
QDeclarativeEngine engine;
- QString componentStr = "import Qt 4.6\nPropertyAnimation { easing.type: \"OutElastic\"; easing.amplitude: 5.0; easing.period: 3.0}";
+ QString componentStr = "import Qt 4.7\nPropertyAnimation { easing.type: \"OutElastic\"; easing.amplitude: 5.0; easing.period: 3.0}";
QDeclarativeComponent animationComponent(&engine);
animationComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativePropertyAnimation *animObject = qobject_cast<QDeclarativePropertyAnimation*>(animationComponent.create());
@@ -656,7 +684,7 @@ void tst_qdeclarativeanimations::easingProperties()
{
QDeclarativeEngine engine;
- QString componentStr = "import Qt 4.6\nPropertyAnimation { easing.type: \"InOutBack\"; easing.overshoot: 2 }";
+ QString componentStr = "import Qt 4.7\nPropertyAnimation { easing.type: \"InOutBack\"; easing.overshoot: 2 }";
QDeclarativeComponent animationComponent(&engine);
animationComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativePropertyAnimation *animObject = qobject_cast<QDeclarativePropertyAnimation*>(animationComponent.create());
@@ -667,6 +695,36 @@ void tst_qdeclarativeanimations::easingProperties()
}
}
+void tst_qdeclarativeanimations::rotation()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/rotation.qml"));
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QVERIFY(rect);
+
+ QDeclarativeRectangle *rr = rect->findChild<QDeclarativeRectangle*>("rr");
+ QDeclarativeRectangle *rr2 = rect->findChild<QDeclarativeRectangle*>("rr2");
+ QDeclarativeRectangle *rr3 = rect->findChild<QDeclarativeRectangle*>("rr3");
+ QDeclarativeRectangle *rr4 = rect->findChild<QDeclarativeRectangle*>("rr4");
+
+ rect->setState("state1");
+ QTest::qWait(800);
+ qreal r1 = rr->rotation();
+ qreal r2 = rr2->rotation();
+ qreal r3 = rr3->rotation();
+ qreal r4 = rr4->rotation();
+
+ QVERIFY(r1 > qreal(0) && r1 < qreal(370));
+ QVERIFY(r2 > qreal(0) && r2 < qreal(370));
+ QVERIFY(r3 < qreal(0) && r3 > qreal(-350));
+ QVERIFY(r4 > qreal(0) && r4 < qreal(10));
+ QCOMPARE(r1,r2);
+ QVERIFY(r4 < r2);
+
+ QTest::qWait(800);
+ QTIMED_COMPARE(rr->rotation() + rr2->rotation() + rr3->rotation() + rr4->rotation(), qreal(370*4));
+}
+
QTEST_MAIN(tst_qdeclarativeanimations)
#include "tst_qdeclarativeanimations.moc"
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/binding.qml b/tests/auto/declarative/qdeclarativebehaviors/data/binding.qml
index 201da37..e9fb286 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/binding.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/binding.qml
@@ -9,7 +9,7 @@ Rectangle {
objectName: "MyRect"
width: 100; height: 100; color: "green"
x: basex
- x: Behavior { NumberAnimation { duration: 500; } }
+ Behavior on x { NumberAnimation { duration: 800; } }
}
MouseArea {
id: clicker
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/color.qml b/tests/auto/declarative/qdeclarativebehaviors/data/color.qml
index 91dbbd1..f2f4742 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/color.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/color.qml
@@ -7,7 +7,7 @@ Rectangle {
objectName: "MyRect"
width: 100; height: 100;
color: "green"
- color: Behavior { ColorAnimation { duration: 500; } }
+ Behavior on color { ColorAnimation { duration: 500; } }
}
MouseArea {
id: clicker
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/cpptrigger.qml b/tests/auto/declarative/qdeclarativebehaviors/data/cpptrigger.qml
index 8d032f0..3ea9376 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/cpptrigger.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/cpptrigger.qml
@@ -6,6 +6,6 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- x: Behavior { NumberAnimation { duration: 500; } }
+ Behavior on x { NumberAnimation { duration: 500; } }
}
}
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/disabled.qml b/tests/auto/declarative/qdeclarativebehaviors/data/disabled.qml
index 3c7078a..1403eb9 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/disabled.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/disabled.qml
@@ -6,7 +6,7 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- x: Behavior {
+ Behavior on x {
objectName: "MyBehavior";
enabled: false
NumberAnimation { duration: 200; }
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/dontStart.qml b/tests/auto/declarative/qdeclarativebehaviors/data/dontStart.qml
index ba7cc9c..5e1891a 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/dontStart.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/dontStart.qml
@@ -9,8 +9,8 @@ Rectangle {
id: redRect
width: 100; height: 100
color: Qt.rgba(1,0,0)
- x: Behavior {
- NumberAnimation { objectName: "MyAnim"; running: true }
+ Behavior on x {
+ NumberAnimation {id: myAnim; objectName: "MyAnim"; running: true }
}
}
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/empty.qml b/tests/auto/declarative/qdeclarativebehaviors/data/empty.qml
index 95d934a..5e30f03 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/empty.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/empty.qml
@@ -6,7 +6,7 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- x: Behavior {}
+ Behavior on x {}
}
MouseArea {
id: clicker
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/explicit.qml b/tests/auto/declarative/qdeclarativebehaviors/data/explicit.qml
index 1b2025a..ca0ea54 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/explicit.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/explicit.qml
@@ -6,7 +6,7 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- x: Behavior {
+ Behavior on x {
objectName: "MyBehavior";
NumberAnimation { target: rect; property: "x"; duration: 500; }
}
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty.qml b/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty.qml
index 14883d4..a6c4ed9 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty.qml
@@ -6,7 +6,7 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- pos: Behavior { PropertyAnimation { duration: 500; } }
+ Behavior on pos { PropertyAnimation { duration: 500; } }
}
MouseArea {
id: clicker
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty2.qml b/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty2.qml
index b43ddbc..2dda220 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty2.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/groupProperty2.qml
@@ -6,7 +6,7 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- pos.x: Behavior { NumberAnimation { duration: 500; } }
+ Behavior on pos.x { NumberAnimation { duration: 500; } }
}
MouseArea {
id: clicker
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/loop.qml b/tests/auto/declarative/qdeclarativebehaviors/data/loop.qml
index 5f2c057..6187768 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/loop.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/loop.qml
@@ -6,7 +6,7 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- x: Behavior { NumberAnimation { duration: 200; } }
+ Behavior on x { NumberAnimation { duration: 200; } }
onXChanged: x = 100;
}
states: State {
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/nonSelecting2.qml b/tests/auto/declarative/qdeclarativebehaviors/data/nonSelecting2.qml
index f267a05..640a7d1 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/nonSelecting2.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/nonSelecting2.qml
@@ -6,7 +6,7 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- x: Behavior {
+ Behavior on x {
objectName: "MyBehavior";
NumberAnimation { targets: rect; properties: "y"; duration: 200; }
}
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/parent.qml b/tests/auto/declarative/qdeclarativebehaviors/data/parent.qml
index 7c7fdcb..3860ec7 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/parent.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/parent.qml
@@ -6,7 +6,7 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- parent: Behavior {
+ Behavior on parent {
SequentialAnimation {
PauseAnimation { duration: 500 }
PropertyAction {}
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/reassignedAnimation.qml b/tests/auto/declarative/qdeclarativebehaviors/data/reassignedAnimation.qml
index ba744b1..11b2d3a 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/reassignedAnimation.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/reassignedAnimation.qml
@@ -6,10 +6,10 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- x: Behavior {
+ Behavior on x {
objectName: "MyBehavior"
- NumberAnimation { duration: 200 }
- NumberAnimation { duration: 1000 }
+ NumberAnimation {id: na1; duration: 200 }
+ NumberAnimation {id: na2; duration: 1000 }
}
}
MouseArea {
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/scripttrigger.qml b/tests/auto/declarative/qdeclarativebehaviors/data/scripttrigger.qml
index a91ca88..795b309 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/scripttrigger.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/scripttrigger.qml
@@ -11,6 +11,6 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- x: Behavior { NumberAnimation { duration: 500; } }
+ Behavior on x { NumberAnimation { duration: 800; } }
}
}
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/simple.qml b/tests/auto/declarative/qdeclarativebehaviors/data/simple.qml
index ac98ed0..5e72bca 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/data/simple.qml
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/simple.qml
@@ -6,9 +6,9 @@ Rectangle {
id: rect
objectName: "MyRect"
width: 100; height: 100; color: "green"
- x: Behavior {
+ Behavior on x {
objectName: "MyBehavior";
- NumberAnimation { duration: 500; }
+ NumberAnimation {id: na; duration: 500; }
}
}
MouseArea {
diff --git a/tests/auto/declarative/qdeclarativebehaviors/data/startup.qml b/tests/auto/declarative/qdeclarativebehaviors/data/startup.qml
new file mode 100644
index 0000000..f3ff620
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativebehaviors/data/startup.qml
@@ -0,0 +1,17 @@
+import Qt 4.7
+
+Rectangle {
+ width: 400
+ height: 400
+
+ Rectangle {
+ objectName: "innerRect"
+ height: 100; width: 100; color: "green"
+ property real targetX: 100
+
+ x: targetX
+ Behavior on x {
+ NumberAnimation {}
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro b/tests/auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro
index a1dac32..c2781b8 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro
+++ b/tests/auto/declarative/qdeclarativebehaviors/qdeclarativebehaviors.pro
@@ -4,3 +4,6 @@ SOURCES += tst_qdeclarativebehaviors.cpp
macx:CONFIG -= app_bundle
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp b/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
index f87330d..3bff2f5 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
+++ b/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
@@ -45,6 +45,7 @@
#include <private/qdeclarativerectangle_p.h>
#include <private/qdeclarativebehavior_p.h>
#include <private/qdeclarativeanimation_p.h>
+#include "../../../shared/util.h"
class tst_qdeclarativebehaviors : public QObject
{
@@ -68,6 +69,7 @@ private slots:
void reassignedAnimation();
void disabled();
void dontStart();
+ void startup();
};
void tst_qdeclarativebehaviors::simpleBehavior()
@@ -75,13 +77,15 @@ void tst_qdeclarativebehaviors::simpleBehavior()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/simple.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
- QVERIFY(qobject_cast<QDeclarativeBehavior*>(rect->findChild<QDeclarativeBehavior*>("MyBehavior"))->animation());
+ QTRY_VERIFY(rect);
+ QTRY_VERIFY(qobject_cast<QDeclarativeBehavior*>(rect->findChild<QDeclarativeBehavior*>("MyBehavior"))->animation());
rect->setState("moved");
- QTest::qWait(200);
- qreal x = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x();
- QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x() > 0);
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x() < 200);
+ //i.e. the behavior has been triggered
+
+ delete rect;
}
void tst_qdeclarativebehaviors::scriptTriggered()
@@ -89,12 +93,14 @@ void tst_qdeclarativebehaviors::scriptTriggered()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/scripttrigger.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QTRY_VERIFY(rect);
rect->setColor(QColor("red"));
- QTest::qWait(200);
- qreal x = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x();
- QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x() > 0);
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x() < 200);
+ //i.e. the behavior has been triggered
+
+ delete rect;
}
void tst_qdeclarativebehaviors::cppTriggered()
@@ -102,15 +108,16 @@ void tst_qdeclarativebehaviors::cppTriggered()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/cpptrigger.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QTRY_VERIFY(rect);
QDeclarativeRectangle *innerRect = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"));
- QVERIFY(innerRect);
+ QTRY_VERIFY(innerRect);
innerRect->setProperty("x", 200);
- QTest::qWait(200);
- qreal x = innerRect->x();
- QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered
+ QTRY_VERIFY(innerRect->x() > 0);
+ QTRY_VERIFY(innerRect->x() < 200); //i.e. the behavior has been triggered
+
+ delete rect;
}
void tst_qdeclarativebehaviors::loop()
@@ -118,10 +125,12 @@ void tst_qdeclarativebehaviors::loop()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/loop.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QTRY_VERIFY(rect);
//don't crash
rect->setState("moved");
+
+ delete rect;
}
void tst_qdeclarativebehaviors::colorBehavior()
@@ -129,12 +138,14 @@ void tst_qdeclarativebehaviors::colorBehavior()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/color.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QTRY_VERIFY(rect);
rect->setState("red");
- QTest::qWait(200);
- QColor color = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->color();
- QVERIFY(color != QColor("red") && color != QColor("green")); //i.e. the behavior has been triggered
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->color() != QColor("red"));
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->color() != QColor("green"));
+ //i.e. the behavior has been triggered
+
+ delete rect;
}
void tst_qdeclarativebehaviors::parentBehavior()
@@ -142,16 +153,13 @@ void tst_qdeclarativebehaviors::parentBehavior()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/parent.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QTRY_VERIFY(rect);
rect->setState("reparented");
- QTest::qWait(200);
- QDeclarativeItem *newParent = rect->findChild<QDeclarativeItem*>("NewParent");
- QDeclarativeItem *parent = rect->findChild<QDeclarativeRectangle*>("MyRect")->parentItem();
- QVERIFY(parent != newParent);
- QTest::qWait(600);
- parent = rect->findChild<QDeclarativeRectangle*>("MyRect")->parentItem();
- QVERIFY(parent == newParent);
+ QTRY_VERIFY(rect->findChild<QDeclarativeRectangle*>("MyRect")->parentItem() != rect->findChild<QDeclarativeItem*>("NewParent"));
+ QTRY_VERIFY(rect->findChild<QDeclarativeRectangle*>("MyRect")->parentItem() == rect->findChild<QDeclarativeItem*>("NewParent"));
+
+ delete rect;
}
void tst_qdeclarativebehaviors::replaceBinding()
@@ -159,33 +167,30 @@ void tst_qdeclarativebehaviors::replaceBinding()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/binding.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QTRY_VERIFY(rect);
rect->setState("moved");
- QTest::qWait(200);
QDeclarativeRectangle *innerRect = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"));
- QVERIFY(innerRect);
- qreal x = innerRect->x();
- QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered
- QTest::qWait(600);
- QCOMPARE(innerRect->x(), (qreal)200);
+ QTRY_VERIFY(innerRect);
+ QTRY_VERIFY(innerRect->x() > 0);
+ QTRY_VERIFY(innerRect->x() < 200);
+ //i.e. the behavior has been triggered
+ QTRY_COMPARE(innerRect->x(), (qreal)200);
rect->setProperty("basex", 10);
- QCOMPARE(innerRect->x(), (qreal)200);
+ QTRY_COMPARE(innerRect->x(), (qreal)200);
rect->setProperty("movedx", 210);
- QTest::qWait(600);
- QCOMPARE(innerRect->x(), (qreal)210);
+ QTRY_COMPARE(innerRect->x(), (qreal)210);
rect->setState("");
- QTest::qWait(200);
- x = innerRect->x();
- QVERIFY(x > 10 && x < 210); //i.e. the behavior has been triggered
- QTest::qWait(600);
- QCOMPARE(innerRect->x(), (qreal)10);
+ QTRY_VERIFY(innerRect->x() > 10);
+ QTRY_VERIFY(innerRect->x() < 210); //i.e. the behavior has been triggered
+ QTRY_COMPARE(innerRect->x(), (qreal)10);
rect->setProperty("movedx", 200);
- QCOMPARE(innerRect->x(), (qreal)10);
+ QTRY_COMPARE(innerRect->x(), (qreal)10);
rect->setProperty("basex", 20);
- QTest::qWait(600);
- QCOMPARE(innerRect->x(), (qreal)20);
+ QTRY_COMPARE(innerRect->x(), (qreal)20);
+
+ delete rect;
}
void tst_qdeclarativebehaviors::group()
@@ -194,24 +199,29 @@ void tst_qdeclarativebehaviors::group()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/groupProperty.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QTRY_VERIFY(rect);
rect->setState("moved");
- QTest::qWait(200);
- qreal x = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x();
- QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered
+ //QTest::qWait(200);
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x() > 0);
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x() < 200);
+ //i.e. the behavior has been triggered
+
+ delete rect;
}
{
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/groupProperty2.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QTRY_VERIFY(rect);
rect->setState("moved");
- QTest::qWait(200);
- qreal x = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x();
- QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x() > 0);
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x() < 200);
+ //i.e. the behavior has been triggered
+
+ delete rect;
}
}
@@ -220,52 +230,56 @@ void tst_qdeclarativebehaviors::emptyBehavior()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/empty.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QTRY_VERIFY(rect);
rect->setState("moved");
qreal x = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x();
- QCOMPARE(x, qreal(200)); //should change immediately
+ QTRY_COMPARE(x, qreal(200)); //should change immediately
+
+ delete rect;
}
void tst_qdeclarativebehaviors::explicitSelection()
{
- {
- QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/explicit.qml"));
- QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/explicit.qml"));
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QTRY_VERIFY(rect);
- rect->setState("moved");
- QTest::qWait(200);
- qreal x = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x();
- QVERIFY(x > 0 && x < 200); //i.e. the behavior has been triggered
- }
+ rect->setState("moved");
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x() > 0);
+ QTRY_VERIFY(qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x() < 200);
+ //i.e. the behavior has been triggered
+
+ delete rect;
}
void tst_qdeclarativebehaviors::nonSelectingBehavior()
{
- {
- QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/nonSelecting2.qml"));
- QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/nonSelecting2.qml"));
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QTRY_VERIFY(rect);
- rect->setState("moved");
- qreal x = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x();
- QCOMPARE(x, qreal(200)); //should change immediately
- }
+ rect->setState("moved");
+ qreal x = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x();
+ QTRY_COMPARE(x, qreal(200)); //should change immediately
+
+ delete rect;
}
void tst_qdeclarativebehaviors::reassignedAnimation()
{
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/reassignedAnimation.qml"));
- QTest::ignoreMessage(QtWarningMsg, QString("QML Behavior (" + QUrl::fromLocalFile(SRCDIR "/data/reassignedAnimation.qml").toString() + ":9:12) Cannot change the animation assigned to a Behavior.").toUtf8().constData());
+ QTest::ignoreMessage(QtWarningMsg, QString("QML Behavior (" + QUrl::fromLocalFile(SRCDIR "/data/reassignedAnimation.qml").toString() + ":9:9) Cannot change the animation assigned to a Behavior.").toUtf8().constData());
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
- QCOMPARE(qobject_cast<QDeclarativeNumberAnimation*>(
+ QTRY_VERIFY(rect);
+ QTRY_COMPARE(qobject_cast<QDeclarativeNumberAnimation*>(
qobject_cast<QDeclarativeBehavior*>(
rect->findChild<QDeclarativeBehavior*>("MyBehavior"))->animation())->duration(), 200);
+
+ delete rect;
}
void tst_qdeclarativebehaviors::disabled()
@@ -273,12 +287,14 @@ void tst_qdeclarativebehaviors::disabled()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/disabled.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
- QCOMPARE(rect->findChild<QDeclarativeBehavior*>("MyBehavior")->enabled(), false);
+ QTRY_VERIFY(rect);
+ QTRY_COMPARE(rect->findChild<QDeclarativeBehavior*>("MyBehavior")->enabled(), false);
rect->setState("moved");
qreal x = qobject_cast<QDeclarativeRectangle*>(rect->findChild<QDeclarativeRectangle*>("MyRect"))->x();
- QCOMPARE(x, qreal(200)); //should change immediately
+ QTRY_COMPARE(x, qreal(200)); //should change immediately
+
+ delete rect;
}
void tst_qdeclarativebehaviors::dontStart()
@@ -289,11 +305,28 @@ void tst_qdeclarativebehaviors::dontStart()
QTest::ignoreMessage(QtWarningMsg, "QDeclarativeAbstractAnimation: setRunning() cannot be used on non-root animation nodes");
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
- QVERIFY(rect);
+ QTRY_VERIFY(rect);
QDeclarativeAbstractAnimation *myAnim = rect->findChild<QDeclarativeAbstractAnimation*>("MyAnim");
- QVERIFY(myAnim && myAnim->qtAnimation());
- QVERIFY(myAnim->qtAnimation()->state() == QAbstractAnimation::Stopped);
+ QTRY_VERIFY(myAnim && myAnim->qtAnimation());
+ QTRY_VERIFY(myAnim->qtAnimation()->state() == QAbstractAnimation::Stopped);
+
+ delete rect;
+}
+
+void tst_qdeclarativebehaviors::startup()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/startup.qml"));
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QTRY_VERIFY(rect);
+
+ QDeclarativeRectangle *innerRect = rect->findChild<QDeclarativeRectangle*>("innerRect");
+ QTRY_VERIFY(innerRect);
+
+ QTRY_COMPARE(innerRect->x(), qreal(100)); //should be set immediately
+
+ delete rect;
}
QTEST_MAIN(tst_qdeclarativebehaviors)
diff --git a/tests/auto/declarative/qdeclarativebinding/data/test-binding.qml b/tests/auto/declarative/qdeclarativebinding/data/test-binding.qml
index e9101e4..8f5b39e 100644
--- a/tests/auto/declarative/qdeclarativebinding/data/test-binding.qml
+++ b/tests/auto/declarative/qdeclarativebinding/data/test-binding.qml
@@ -12,5 +12,5 @@ Rectangle {
Binding { target: screen; property: "text"; value: s1.text; objectName: "binding1" }
Binding { target: screen; property: "color"; value: r1.color }
- Binding { target: screen; property: "color"; when: screen.changeColor == true; value: r2.color }
+ Binding { target: screen; property: "color"; when: screen.changeColor == true; value: r2.color; objectName: "binding3" }
}
diff --git a/tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro b/tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro
index 7879976..04dd6f5 100644
--- a/tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro
+++ b/tests/auto/declarative/qdeclarativebinding/qdeclarativebinding.pro
@@ -6,3 +6,6 @@ SOURCES += tst_qdeclarativebinding.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativebinding/tst_qdeclarativebinding.cpp b/tests/auto/declarative/qdeclarativebinding/tst_qdeclarativebinding.cpp
index 826df4f..8ab7b0b 100644
--- a/tests/auto/declarative/qdeclarativebinding/tst_qdeclarativebinding.cpp
+++ b/tests/auto/declarative/qdeclarativebinding/tst_qdeclarativebinding.cpp
@@ -69,17 +69,23 @@ void tst_qdeclarativebinding::binding()
QDeclarativeEngine engine;
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/test-binding.qml"));
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
-
QVERIFY(rect != 0);
+
+ QDeclarativeBind *binding3 = qobject_cast<QDeclarativeBind*>(rect->findChild<QDeclarativeBind*>("binding3"));
+ QVERIFY(binding3 != 0);
+
QCOMPARE(rect->color(), QColor("yellow"));
QCOMPARE(rect->property("text").toString(), QString("Hello"));
+ QCOMPARE(binding3->when(), false);
rect->setProperty("changeColor", true);
QCOMPARE(rect->color(), QColor("red"));
+ QCOMPARE(binding3->when(), true);
+
QDeclarativeBind *binding = qobject_cast<QDeclarativeBind*>(rect->findChild<QDeclarativeBind*>("binding1"));
QVERIFY(binding != 0);
- QCOMPARE(binding->object(), rect);
+ QCOMPARE(binding->object(), qobject_cast<QObject*>(rect));
QCOMPARE(binding->property(), QLatin1String("text"));
QCOMPARE(binding->value().toString(), QLatin1String("Hello"));
diff --git a/tests/auto/declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro b/tests/auto/declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro
index 0574ddb..e754923 100644
--- a/tests/auto/declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro
+++ b/tests/auto/declarative/qdeclarativeborderimage/qdeclarativeborderimage.pro
@@ -7,3 +7,6 @@ SOURCES += tst_qdeclarativeborderimage.cpp ../shared/testhttpserver.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp b/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
index 8aeba6d..8621239 100644
--- a/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
+++ b/tests/auto/declarative/qdeclarativeborderimage/tst_qdeclarativeborderimage.cpp
@@ -55,8 +55,8 @@
#include "../shared/testhttpserver.h"
-#define SERVER_PORT 14445
-#define SERVER_ADDR "http://127.0.0.1:14445"
+#define SERVER_PORT 14446
+#define SERVER_ADDR "http://127.0.0.1:14446"
#define TRY_WAIT(expr) \
do { \
@@ -99,7 +99,7 @@ tst_qdeclarativeborderimage::tst_qdeclarativeborderimage()
void tst_qdeclarativeborderimage::noSource()
{
- QString componentStr = "import Qt 4.6\nBorderImage { source: \"\" }";
+ QString componentStr = "import Qt 4.7\nBorderImage { source: \"\" }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeBorderImage *obj = qobject_cast<QDeclarativeBorderImage*>(component.create());
@@ -121,10 +121,10 @@ void tst_qdeclarativeborderimage::imageSource_data()
QTest::newRow("local") << QUrl::fromLocalFile(SRCDIR "/data/colors.png").toString() << false << "";
QTest::newRow("local not found") << QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString() << false
- << "Cannot open QUrl( \"" + QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString() + "\" ) ";
+ << "QML BorderImage (file::2:1) Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString();
QTest::newRow("remote") << SERVER_ADDR "/colors.png" << true << "";
QTest::newRow("remote not found") << SERVER_ADDR "/no-such-file.png" << true
- << "\"Error downloading " SERVER_ADDR "/no-such-file.png - server replied: Not found\" ";
+ << "QML BorderImage (file::2:1) Error downloading " SERVER_ADDR "/no-such-file.png - server replied: Not found";
}
void tst_qdeclarativeborderimage::imageSource()
@@ -143,12 +143,12 @@ void tst_qdeclarativeborderimage::imageSource()
if (!error.isEmpty())
QTest::ignoreMessage(QtWarningMsg, error.toUtf8());
- QString componentStr = "import Qt 4.6\nBorderImage { source: \"" + source + "\" }";
+ QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + source + "\" }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeBorderImage *obj = qobject_cast<QDeclarativeBorderImage*>(component.create());
QVERIFY(obj != 0);
-
+
if (remote)
TRY_WAIT(obj->status() == QDeclarativeBorderImage::Loading);
@@ -170,7 +170,7 @@ void tst_qdeclarativeborderimage::imageSource()
void tst_qdeclarativeborderimage::clearSource()
{
- QString componentStr = "import Qt 4.6\nBorderImage { source: srcImage }";
+ QString componentStr = "import Qt 4.7\nBorderImage { source: srcImage }";
QDeclarativeContext *ctxt = engine.rootContext();
ctxt->setContextProperty("srcImage", QUrl::fromLocalFile(SRCDIR "/data/colors.png"));
QDeclarativeComponent component(&engine);
@@ -190,7 +190,7 @@ void tst_qdeclarativeborderimage::clearSource()
void tst_qdeclarativeborderimage::resized()
{
- QString componentStr = "import Qt 4.6\nBorderImage { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/colors.png").toString() + "\"; width: 300; height: 300 }";
+ QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/colors.png").toString() + "\"; width: 300; height: 300 }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeBorderImage *obj = qobject_cast<QDeclarativeBorderImage*>(component.create());
@@ -205,7 +205,7 @@ void tst_qdeclarativeborderimage::resized()
void tst_qdeclarativeborderimage::smooth()
{
- QString componentStr = "import Qt 4.6\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; smooth: true; width: 300; height: 300 }";
+ QString componentStr = "import Qt 4.7\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; smooth: true; width: 300; height: 300 }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeBorderImage *obj = qobject_cast<QDeclarativeBorderImage*>(component.create());
@@ -222,7 +222,7 @@ void tst_qdeclarativeborderimage::smooth()
void tst_qdeclarativeborderimage::tileModes()
{
{
- QString componentStr = "import Qt 4.6\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 100; height: 300; horizontalTileMode: BorderImage.Repeat; verticalTileMode: BorderImage.Repeat }";
+ QString componentStr = "import Qt 4.7\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 100; height: 300; horizontalTileMode: BorderImage.Repeat; verticalTileMode: BorderImage.Repeat }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeBorderImage *obj = qobject_cast<QDeclarativeBorderImage*>(component.create());
@@ -235,7 +235,7 @@ void tst_qdeclarativeborderimage::tileModes()
delete obj;
}
{
- QString componentStr = "import Qt 4.6\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 300; height: 150; horizontalTileMode: BorderImage.Round; verticalTileMode: BorderImage.Round }";
+ QString componentStr = "import Qt 4.7\nBorderImage { source: \"" SRCDIR "/data/colors.png\"; width: 300; height: 150; horizontalTileMode: BorderImage.Round; verticalTileMode: BorderImage.Round }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeBorderImage *obj = qobject_cast<QDeclarativeBorderImage*>(component.create());
@@ -262,19 +262,19 @@ void tst_qdeclarativeborderimage::sciSource()
server->serveDirectory(SRCDIR "/data");
}
- QString componentStr = "import Qt 4.6\nBorderImage { source: \"" + source + "\"; width: 300; height: 300 }";
+ QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + source + "\"; width: 300; height: 300 }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeBorderImage *obj = qobject_cast<QDeclarativeBorderImage*>(component.create());
QVERIFY(obj != 0);
-
+
if (remote)
TRY_WAIT(obj->status() == QDeclarativeBorderImage::Loading);
-
+
QCOMPARE(obj->source(), remote ? source : QUrl(source));
QCOMPARE(obj->width(), 300.);
QCOMPARE(obj->height(), 300.);
-
+
if (valid) {
TRY_WAIT(obj->status() == QDeclarativeBorderImage::Ready);
QCOMPARE(obj->border()->left(), 10);
@@ -307,7 +307,7 @@ void tst_qdeclarativeborderimage::invalidSciFile()
QTest::ignoreMessage(QtWarningMsg, "Unknown tile rule specified. Using Stretch "); // for "Roun"
QTest::ignoreMessage(QtWarningMsg, "Unknown tile rule specified. Using Stretch "); // for "Repea"
- QString componentStr = "import Qt 4.6\nBorderImage { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/invalid.sci").toString() +"\"; width: 300; height: 300 }";
+ QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/invalid.sci").toString() +"\"; width: 300; height: 300 }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeBorderImage *obj = qobject_cast<QDeclarativeBorderImage*>(component.create());
@@ -325,7 +325,7 @@ void tst_qdeclarativeborderimage::pendingRemoteRequest()
{
QFETCH(QString, source);
- QString componentStr = "import Qt 4.6\nBorderImage { source: \"" + source + "\" }";
+ QString componentStr = "import Qt 4.7\nBorderImage { source: \"" + source + "\" }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeBorderImage *obj = qobject_cast<QDeclarativeBorderImage*>(component.create());
@@ -342,8 +342,8 @@ void tst_qdeclarativeborderimage::pendingRemoteRequest_data()
{
QTest::addColumn<QString>("source");
- QTest::newRow("png file") << "http://no-such-qt-server-like-this/none.png";
- QTest::newRow("sci file") << "http://no-such-qt-server-like-this/none.sci";
+ QTest::newRow("png file") << "http://localhost/none.png";
+ QTest::newRow("sci file") << "http://localhost/none.sci";
}
QTEST_MAIN(tst_qdeclarativeborderimage)
diff --git a/tests/auto/declarative/qdeclarativecomponent/qdeclarativecomponent.pro b/tests/auto/declarative/qdeclarativecomponent/qdeclarativecomponent.pro
new file mode 100644
index 0000000..e58c798
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativecomponent/qdeclarativecomponent.pro
@@ -0,0 +1,11 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative
+QT += script network
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qdeclarativecomponent.cpp
+
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp b/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp
new file mode 100644
index 0000000..c9e304c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativecomponent/tst_qdeclarativecomponent.cpp
@@ -0,0 +1,75 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativecomponent.h>
+
+class tst_qdeclarativecomponent : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qdeclarativecomponent() { }
+
+private slots:
+ void loadEmptyUrl();
+
+private:
+ QDeclarativeEngine engine;
+};
+
+void tst_qdeclarativecomponent::loadEmptyUrl()
+{
+ QDeclarativeComponent c(&engine);
+ c.loadUrl(QUrl());
+
+ QVERIFY(c.isError());
+ QCOMPARE(c.errors().count(), 1);
+ QDeclarativeError error = c.errors().first();
+ QCOMPARE(error.url(), QUrl());
+ QCOMPARE(error.line(), -1);
+ QCOMPARE(error.column(), -1);
+ QCOMPARE(error.description(), QLatin1String("Invalid empty URL"));
+}
+
+QTEST_MAIN(tst_qdeclarativecomponent)
+
+#include "tst_qdeclarativecomponent.moc"
diff --git a/tests/auto/declarative/qdeclarativeconnection/qdeclarativeconnection.pro b/tests/auto/declarative/qdeclarativeconnection/qdeclarativeconnection.pro
index a6adfa4..959354d 100644
--- a/tests/auto/declarative/qdeclarativeconnection/qdeclarativeconnection.pro
+++ b/tests/auto/declarative/qdeclarativeconnection/qdeclarativeconnection.pro
@@ -6,3 +6,6 @@ SOURCES += tst_qdeclarativeconnection.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativecontext/qdeclarativecontext.pro b/tests/auto/declarative/qdeclarativecontext/qdeclarativecontext.pro
index adace70..5db9a9e 100644
--- a/tests/auto/declarative/qdeclarativecontext/qdeclarativecontext.pro
+++ b/tests/auto/declarative/qdeclarativecontext/qdeclarativecontext.pro
@@ -4,3 +4,6 @@ SOURCES += tst_qdeclarativecontext.cpp
macx:CONFIG -= app_bundle
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp b/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp
index 5f03989..851460f 100644
--- a/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp
+++ b/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp
@@ -58,8 +58,10 @@ private slots:
void engineMethod();
void parentContext();
void setContextProperty();
- void addDefaultObject();
+ void setContextObject();
void destruction();
+ void idAsContextProperty();
+ void readOnlyContexts();
private:
QDeclarativeEngine engine;
@@ -170,8 +172,8 @@ void tst_qdeclarativecontext::parentContext()
delete ctxt2; ctxt2 = 0;
QCOMPARE(ctxt->parentContext(), engine->rootContext());
- QCOMPARE(ctxt3->parentContext(), ctxt2);
- QCOMPARE(ctxt4->parentContext(), ctxt2);
+ QCOMPARE(ctxt3->parentContext(), (QDeclarativeContext *)0);
+ QCOMPARE(ctxt4->parentContext(), (QDeclarativeContext *)0);
QCOMPARE(ctxt5->parentContext(), ctxt);
QCOMPARE(ctxt6->parentContext(), engine->rootContext());
QCOMPARE(ctxt7->parentContext(), engine->rootContext());
@@ -179,9 +181,9 @@ void tst_qdeclarativecontext::parentContext()
delete engine; engine = 0;
QCOMPARE(ctxt->parentContext(), (QDeclarativeContext *)0);
- QCOMPARE(ctxt3->parentContext(), ctxt2);
- QCOMPARE(ctxt4->parentContext(), ctxt2);
- QCOMPARE(ctxt5->parentContext(), ctxt);
+ QCOMPARE(ctxt3->parentContext(), (QDeclarativeContext *)0);
+ QCOMPARE(ctxt4->parentContext(), (QDeclarativeContext *)0);
+ QCOMPARE(ctxt5->parentContext(), (QDeclarativeContext *)0);
QCOMPARE(ctxt6->parentContext(), (QDeclarativeContext *)0);
QCOMPARE(ctxt7->parentContext(), (QDeclarativeContext *)0);
@@ -223,28 +225,10 @@ private:
int _c;
};
-class TestObject2 : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(int b READ b NOTIFY bChanged)
-
-public:
- TestObject2() : _b(10) {}
-
- int b() const { return _b; }
- void setB(int b) { _b = b; emit bChanged(); }
-
-signals:
- void bChanged();
-
-private:
- int _b;
-};
-
#define TEST_CONTEXT_PROPERTY(ctxt, name, value) \
{ \
QDeclarativeComponent component(&engine); \
- component.setData("import Qt 4.6; QtObject { property var test: " #name " }", QUrl()); \
+ component.setData("import Qt 4.7; QtObject { property variant test: " #name " }", QUrl()); \
\
QObject *obj = component.create(ctxt); \
\
@@ -294,7 +278,7 @@ void tst_qdeclarativecontext::setContextProperty()
// Changes in context properties
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; QtObject { property var test: a }", QUrl());
+ component.setData("import Qt 4.7; QtObject { property variant test: a }", QUrl());
QObject *obj = component.create(&ctxt2);
@@ -306,7 +290,7 @@ void tst_qdeclarativecontext::setContextProperty()
}
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; QtObject { property var test: b }", QUrl());
+ component.setData("import Qt 4.7; QtObject { property variant test: b }", QUrl());
QObject *obj = component.create(&ctxt2);
@@ -320,7 +304,7 @@ void tst_qdeclarativecontext::setContextProperty()
}
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; QtObject { property var test: e.a }", QUrl());
+ component.setData("import Qt 4.7; QtObject { property variant test: e.a }", QUrl());
QObject *obj = component.create(&ctxt2);
@@ -334,7 +318,7 @@ void tst_qdeclarativecontext::setContextProperty()
// New context properties
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; QtObject { property var test: a }", QUrl());
+ component.setData("import Qt 4.7; QtObject { property variant test: a }", QUrl());
QObject *obj = component.create(&ctxt2);
@@ -348,7 +332,7 @@ void tst_qdeclarativecontext::setContextProperty()
// Setting an object-variant context property
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; QtObject { id: root; property int a: 10; property int test: ctxtProp.a; property var obj: root; }", QUrl());
+ component.setData("import Qt 4.7; QtObject { id: root; property int a: 10; property int test: ctxtProp.a; property variant obj: root; }", QUrl());
QDeclarativeContext ctxt(engine.rootContext());
ctxt.setContextProperty("ctxtProp", QVariant());
@@ -366,41 +350,37 @@ void tst_qdeclarativecontext::setContextProperty()
}
}
-void tst_qdeclarativecontext::addDefaultObject()
+void tst_qdeclarativecontext::setContextObject()
{
QDeclarativeContext ctxt(&engine);
TestObject to;
- TestObject2 to2;
to.setA(2);
to.setB(192);
to.setC(18);
- to2.setB(111999);
- ctxt.addDefaultObject(&to2);
- ctxt.addDefaultObject(&to);
+ ctxt.setContextObject(&to);
ctxt.setContextProperty("c", QVariant(9));
// Static context properties
TEST_CONTEXT_PROPERTY(&ctxt, a, QVariant(2));
- TEST_CONTEXT_PROPERTY(&ctxt, b, QVariant(111999));
+ TEST_CONTEXT_PROPERTY(&ctxt, b, QVariant(192));
TEST_CONTEXT_PROPERTY(&ctxt, c, QVariant(9));
to.setA(12);
to.setB(100);
to.setC(7);
- to2.setB(1612);
ctxt.setContextProperty("c", QVariant(3));
TEST_CONTEXT_PROPERTY(&ctxt, a, QVariant(12));
- TEST_CONTEXT_PROPERTY(&ctxt, b, QVariant(1612));
+ TEST_CONTEXT_PROPERTY(&ctxt, b, QVariant(100));
TEST_CONTEXT_PROPERTY(&ctxt, c, QVariant(3));
// Changes in context properties
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; QtObject { property var test: a }", QUrl());
+ component.setData("import Qt 4.7; QtObject { property variant test: a }", QUrl());
QObject *obj = component.create(&ctxt);
@@ -429,6 +409,55 @@ void tst_qdeclarativecontext::destruction()
QCOMPARE(ctxt, expr.context());
}
+void tst_qdeclarativecontext::idAsContextProperty()
+{
+ QDeclarativeComponent component(&engine);
+ component.setData("import Qt 4.7; QtObject { property variant a; a: QtObject { id: myObject } }", QUrl());
+
+ QObject *obj = component.create();
+ QVERIFY(obj);
+
+ QVariant a = obj->property("a");
+ QVERIFY(a.userType() == QMetaType::QObjectStar);
+
+ QVariant ctxt = qmlContext(obj)->contextProperty("myObject");
+ QVERIFY(ctxt.userType() == QMetaType::QObjectStar);
+
+ QVERIFY(a == ctxt);
+
+ delete obj;
+}
+
+// Internal contexts should be read-only
+void tst_qdeclarativecontext::readOnlyContexts()
+{
+ QDeclarativeComponent component(&engine);
+ component.setData("import Qt 4.7; QtObject { id: me }", QUrl());
+
+ QObject *obj = component.create();
+ QVERIFY(obj);
+
+ QDeclarativeContext *context = qmlContext(obj);
+ QVERIFY(context);
+
+ QVERIFY(qvariant_cast<QObject*>(context->contextProperty("me")) == obj);
+ QVERIFY(context->contextObject() == obj);
+
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeContext: Cannot set property on internal context.");
+ context->setContextProperty("hello", 12);
+ QVERIFY(context->contextProperty("hello") == QVariant());
+
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeContext: Cannot set property on internal context.");
+ context->setContextProperty("hello", obj);
+ QVERIFY(context->contextProperty("hello") == QVariant());
+
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeContext: Cannot set context object for internal context.");
+ context->setContextObject(0);
+ QVERIFY(context->contextObject() == obj);
+
+ delete obj;
+}
+
QTEST_MAIN(tst_qdeclarativecontext)
#include "tst_qdeclarativecontext.moc"
diff --git a/tests/auto/declarative/qdeclarativedatetimeformatter/qdeclarativedatetimeformatter.pro b/tests/auto/declarative/qdeclarativedatetimeformatter/qdeclarativedatetimeformatter.pro
deleted file mode 100644
index 22f53e6..0000000
--- a/tests/auto/declarative/qdeclarativedatetimeformatter/qdeclarativedatetimeformatter.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative
-macx:CONFIG -= app_bundle
-
-SOURCES += tst_qdeclarativedatetimeformatter.cpp
diff --git a/tests/auto/declarative/qdeclarativedatetimeformatter/tst_qdeclarativedatetimeformatter.cpp b/tests/auto/declarative/qdeclarativedatetimeformatter/tst_qdeclarativedatetimeformatter.cpp
deleted file mode 100644
index 69d7900..0000000
--- a/tests/auto/declarative/qdeclarativedatetimeformatter/tst_qdeclarativedatetimeformatter.cpp
+++ /dev/null
@@ -1,150 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <qtest.h>
-#include <QtDeclarative/qdeclarativeengine.h>
-#include <QtDeclarative/qdeclarativecomponent.h>
-#include <private/qdeclarativedatetimeformatter_p.h>
-#include <QDebug>
-
-class tst_qdeclarativedatetimeformatter : public QObject
-{
- Q_OBJECT
-public:
- tst_qdeclarativedatetimeformatter() {}
-
-private slots:
- void date();
- void time();
- void dateTime();
-};
-
-void tst_qdeclarativedatetimeformatter::date()
-{
- QDeclarativeEngine engine;
- QDeclarativeComponent formatterComponent(&engine);
- formatterComponent.setData(QByteArray("import Qt 4.6\n DateTimeFormatter { date: \"2008-12-24\" }"),
- QUrl::fromLocalFile(""));
- QDeclarativeDateTimeFormatter *formatter = qobject_cast<QDeclarativeDateTimeFormatter*>(formatterComponent.create());
- if(formatterComponent.isError())
- qDebug() << formatterComponent.errors();
- QVERIFY(formatter != 0);
-
- QDate date(2008,12,24);
- QCOMPARE(formatter->date(), date);
- QCOMPARE(formatter->dateTime().date(), date);
- QCOMPARE(formatter->dateText(),date.toString(Qt::SystemLocaleShortDate));
-
- formatter->setLongStyle(true);
- QVERIFY(formatter->longStyle());
- QCOMPARE(formatter->dateText(),date.toString(Qt::SystemLocaleLongDate));
-
- formatter->setDateFormat("ddd MMMM d yy");
- QCOMPARE(formatter->dateFormat(), QLatin1String("ddd MMMM d yy"));
- QCOMPARE(formatter->dateText(),date.toString("ddd MMMM d yy"));
-
- QVERIFY(formatter->timeText().isEmpty());
- QVERIFY(formatter->dateTimeText().isEmpty());
-
- delete formatter;
-}
-
-void tst_qdeclarativedatetimeformatter::time()
-{
- QDeclarativeEngine engine;
- QDeclarativeComponent formatterComponent(&engine);
- formatterComponent.setData("import Qt 4.6\n DateTimeFormatter { time: \"14:15:38.200\" }", QUrl::fromLocalFile(""));
- QDeclarativeDateTimeFormatter *formatter = qobject_cast<QDeclarativeDateTimeFormatter*>(formatterComponent.create());
- if(formatterComponent.isError())
- qDebug() << formatterComponent.errors();
- QVERIFY(formatter != 0);
-
- QTime time(14,15,38,200);
-
- QCOMPARE(formatter->time(),time);
- QCOMPARE(formatter->dateTime().time(),time);
-
- QCOMPARE(formatter->timeText(),time.toString(Qt::SystemLocaleShortDate));
-
- formatter->setLongStyle(true);
- QCOMPARE(formatter->timeText(),time.toString(Qt::SystemLocaleLongDate));
-
- formatter->setTimeFormat("H:m:s a");
- QCOMPARE(formatter->timeFormat(), QLatin1String("H:m:s a"));
- QCOMPARE(formatter->timeText(),time.toString("H:m:s a"));
-
- formatter->setTimeFormat("hh:mm:ss.zzz");
- QCOMPARE(formatter->timeText(),time.toString("hh:mm:ss.zzz"));
-
- QVERIFY(formatter->dateText().isEmpty());
- QVERIFY(formatter->dateTimeText().isEmpty());
-
- delete formatter;
-}
-
-void tst_qdeclarativedatetimeformatter::dateTime()
-{
- QDeclarativeEngine engine;
- QDeclarativeComponent formatterComponent(&engine);
- formatterComponent.setData("import Qt 4.6\n DateTimeFormatter { dateTime: \"1978-03-04T09:13:54\" }", QUrl::fromLocalFile(""));
- QDeclarativeDateTimeFormatter *formatter = qobject_cast<QDeclarativeDateTimeFormatter*>(formatterComponent.create());
- if(formatterComponent.isError())
- qDebug() << formatterComponent.errors();
- QVERIFY(formatter != 0);
-
- QDateTime dateTime(QDate(1978,03,04),QTime(9,13,54));
- QCOMPARE(formatter->dateTime(),dateTime);
- QCOMPARE(formatter->date(),dateTime.date());
- QCOMPARE(formatter->time(),dateTime.time());
- QCOMPARE(formatter->dateTimeText(),dateTime.toString(Qt::SystemLocaleShortDate));
-
- formatter->setLongStyle(true);
- QCOMPARE(formatter->dateTimeText(),dateTime.toString(Qt::SystemLocaleLongDate));
-
- formatter->setDateTimeFormat("M/d/yy H:m:s a");
- QCOMPARE(formatter->dateTimeFormat(), QLatin1String("M/d/yy H:m:s a"));
- QCOMPARE(formatter->dateTimeText(),dateTime.toString("M/d/yy H:m:s a"));
-
- delete formatter;
-}
-
-QTEST_MAIN(tst_qdeclarativedatetimeformatter)
-
-#include "tst_qdeclarativedatetimeformatter.moc"
diff --git a/tests/auto/declarative/qdeclarativedebug/qdeclarativedebug.pro b/tests/auto/declarative/qdeclarativedebug/qdeclarativedebug.pro
index ff1d0d4..1214fcf 100644
--- a/tests/auto/declarative/qdeclarativedebug/qdeclarativedebug.pro
+++ b/tests/auto/declarative/qdeclarativedebug/qdeclarativedebug.pro
@@ -5,3 +5,6 @@ macx:CONFIG -= app_bundle
HEADERS += ../shared/debugutil_p.h
SOURCES += tst_qdeclarativedebug.cpp \
../shared/debugutil.cpp
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp
index 0c3ca76..133dcb8 100644
--- a/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp
+++ b/tests/auto/declarative/qdeclarativedebug/tst_qdeclarativedebug.cpp
@@ -153,7 +153,7 @@ QDeclarativeDebugPropertyReference tst_QDeclarativeDebug::findProperty(const QLi
void tst_QDeclarativeDebug::waitForQuery(QDeclarativeDebugQuery *query)
{
QVERIFY(query);
- QCOMPARE(query->parent(), this);
+ QCOMPARE(query->parent(), qobject_cast<QObject*>(this));
QVERIFY(query->state() == QDeclarativeDebugQuery::Waiting);
if (!QDeclarativeDebugTest::waitForSignal(query, SIGNAL(stateChanged(QDeclarativeDebugQuery::State))))
QFAIL("query timed out");
@@ -822,7 +822,7 @@ int main(int argc, char *argv[])
QApplication app(argc, argv);
QList<QByteArray> qml;
- qml << "import Qt 4.6\n"
+ qml << "import Qt 4.7\n"
"Item {"
"width: 10; height: 20; scale: blueRect.scale;"
"Rectangle { id: blueRect; width: 500; height: 600; color: \"blue\"; }"
@@ -832,7 +832,7 @@ int main(int argc, char *argv[])
"}"
"}";
// add second component to test multiple root contexts
- qml << "import Qt 4.6\n"
+ qml << "import Qt 4.7\n"
"Item {}";
tst_QDeclarativeDebug_Factory factory;
return QDeclarativeDebugTest::runTests(&factory, qml);
diff --git a/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro b/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro
index e375889..a62e148 100644
--- a/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro
+++ b/tests/auto/declarative/qdeclarativedebugservice/qdeclarativedebugservice.pro
@@ -5,3 +5,6 @@ macx:CONFIG -= app_bundle
HEADERS += ../shared/debugutil_p.h
SOURCES += tst_qdeclarativedebugservice.cpp \
../shared/debugutil.cpp
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativedom/data/importdir/Bar.qml b/tests/auto/declarative/qdeclarativedom/data/import/Bar.qml
index 2d1a4a3..2d1a4a3 100644
--- a/tests/auto/declarative/qdeclarativedom/data/importdir/Bar.qml
+++ b/tests/auto/declarative/qdeclarativedom/data/import/Bar.qml
diff --git a/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir/Foo.qml b/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/Foo.qml
index 2d1a4a3..2d1a4a3 100644
--- a/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir/Foo.qml
+++ b/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/Foo.qml
diff --git a/tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro b/tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro
index 35df26e..466c563 100644
--- a/tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro
+++ b/tests/auto/declarative/qdeclarativedom/qdeclarativedom.pro
@@ -5,3 +5,6 @@ macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativedom.cpp
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
index 9543280..1f0c47c 100644
--- a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
+++ b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
@@ -81,7 +81,7 @@ private:
void tst_qdeclarativedom::loadSimple()
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {}";
QDeclarativeDomDocument document;
@@ -94,13 +94,13 @@ void tst_qdeclarativedom::loadSimple()
QVERIFY(!rootObject.isCustomType());
QVERIFY(rootObject.objectType() == "Qt/Item");
QVERIFY(rootObject.objectTypeMajorVersion() == 4);
- QVERIFY(rootObject.objectTypeMinorVersion() == 6);
+ QVERIFY(rootObject.objectTypeMinorVersion() == 7);
}
// Test regular properties
void tst_qdeclarativedom::loadProperties()
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item { id : item; x : 300; visible : true }";
QDeclarativeDomDocument document;
@@ -134,7 +134,7 @@ void tst_qdeclarativedom::loadProperties()
void tst_qdeclarativedom::loadGroupedProperties()
{
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item { anchors.left: parent.left; anchors.right: parent.right }";
QDeclarativeDomDocument document;
@@ -177,7 +177,7 @@ void tst_qdeclarativedom::loadGroupedProperties()
}
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item { \n"
" anchors {\n"
" left: parent.left\n"
@@ -228,7 +228,7 @@ void tst_qdeclarativedom::loadGroupedProperties()
void tst_qdeclarativedom::loadChildObject()
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item { Item {} }";
QDeclarativeDomDocument document;
@@ -273,8 +273,8 @@ void tst_qdeclarativedom::loadComposite()
void tst_qdeclarativedom::testValueSource()
{
- QByteArray qml = "import Qt 4.6\n"
- "Rectangle { height: SpringFollow { spring: 1.4; damping: .15; source: Math.min(Math.max(-130, value*2.2 - 130), 133); }}";
+ QByteArray qml = "import Qt 4.7\n"
+ "Rectangle { SpringFollow on height { spring: 1.4; damping: .15; to: Math.min(Math.max(-130, value*2.2 - 130), 133); }}";
QDeclarativeEngine freshEngine;
QDeclarativeDomDocument document;
@@ -291,13 +291,13 @@ void tst_qdeclarativedom::testValueSource()
QVERIFY(valueSourceObject.isValid());
QVERIFY(valueSourceObject.objectType() == "Qt/SpringFollow");
-
+
const QDeclarativeDomValue springValue = valueSourceObject.property("spring").value();
QVERIFY(!springValue.isInvalid());
QVERIFY(springValue.isLiteral());
QVERIFY(springValue.toLiteral().literal() == "1.4");
- const QDeclarativeDomValue sourceValue = valueSourceObject.property("source").value();
+ const QDeclarativeDomValue sourceValue = valueSourceObject.property("to").value();
QVERIFY(!sourceValue.isInvalid());
QVERIFY(sourceValue.isBinding());
QVERIFY(sourceValue.toBinding().binding() == "Math.min(Math.max(-130, value*2.2 - 130), 133)");
@@ -305,8 +305,8 @@ void tst_qdeclarativedom::testValueSource()
void tst_qdeclarativedom::testValueInterceptor()
{
- QByteArray qml = "import Qt 4.6\n"
- "Rectangle { height: Behavior { NumberAnimation { duration: 100 } } }";
+ QByteArray qml = "import Qt 4.7\n"
+ "Rectangle { Behavior on height { NumberAnimation { duration: 100 } } }";
QDeclarativeEngine freshEngine;
QDeclarativeDomDocument document;
@@ -332,9 +332,9 @@ void tst_qdeclarativedom::testValueInterceptor()
// Test QDeclarativeDomDocument::imports()
void tst_qdeclarativedom::loadImports()
{
- QByteArray qml = "import Qt 4.6\n"
- "import importlib.sublib 4.7\n"
- "import importlib.sublib 4.6 as NewFoo\n"
+ QByteArray qml = "import Qt 4.7\n"
+ "import importlib.sublib 1.1\n"
+ "import importlib.sublib 1.0 as NewFoo\n"
"import 'import'\n"
"import 'import' as X\n"
"Item {}";
@@ -342,7 +342,7 @@ void tst_qdeclarativedom::loadImports()
QDeclarativeEngine engine;
engine.addImportPath(SRCDIR "/data");
QDeclarativeDomDocument document;
- QVERIFY(document.load(&engine, qml));
+ QVERIFY(document.load(&engine, qml, QUrl::fromLocalFile(SRCDIR "/data/dummy.qml")));
QCOMPARE(document.imports().size(), 5);
@@ -350,19 +350,19 @@ void tst_qdeclarativedom::loadImports()
QCOMPARE(import.type(), QDeclarativeDomImport::Library);
QCOMPARE(import.uri(), QLatin1String("Qt"));
QCOMPARE(import.qualifier(), QString());
- QCOMPARE(import.version(), QLatin1String("4.6"));
+ QCOMPARE(import.version(), QLatin1String("4.7"));
import = document.imports().at(1);
QCOMPARE(import.type(), QDeclarativeDomImport::Library);
QCOMPARE(import.uri(), QLatin1String("importlib.sublib"));
QCOMPARE(import.qualifier(), QString());
- QCOMPARE(import.version(), QLatin1String("4.7"));
+ QCOMPARE(import.version(), QLatin1String("1.1"));
import = document.imports().at(2);
QCOMPARE(import.type(), QDeclarativeDomImport::Library);
QCOMPARE(import.uri(), QLatin1String("importlib.sublib"));
QCOMPARE(import.qualifier(), QLatin1String("NewFoo"));
- QCOMPARE(import.version(), QLatin1String("4.6"));
+ QCOMPARE(import.version(), QLatin1String("1.0"));
import = document.imports().at(3);
QCOMPARE(import.type(), QDeclarativeDomImport::File);
@@ -380,7 +380,7 @@ void tst_qdeclarativedom::loadImports()
// Test loading a file with errors
void tst_qdeclarativedom::loadErrors()
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {\n"
" foo: 12\n"
"}";
@@ -400,7 +400,7 @@ void tst_qdeclarativedom::loadErrors()
// Test loading a file with syntax errors
void tst_qdeclarativedom::loadSyntaxErrors()
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"asdf";
QDeclarativeDomDocument document;
@@ -415,10 +415,10 @@ void tst_qdeclarativedom::loadSyntaxErrors()
QCOMPARE(error.description(), QString("Syntax error"));
}
-// Test attempting to load a file with remote references
+// Test attempting to load a file with remote references
void tst_qdeclarativedom::loadRemoteErrors()
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {\n"
" Script {\n"
" source: \"http://localhost/exampleQmlScript.js\""
@@ -440,7 +440,7 @@ void tst_qdeclarativedom::loadRemoteErrors()
void tst_qdeclarativedom::loadDynamicProperty()
{
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {\n"
" property int a\n"
" property bool b\n"
@@ -450,9 +450,8 @@ void tst_qdeclarativedom::loadDynamicProperty()
" property url f\n"
" property color g\n"
" property date h\n"
- " property var i\n"
- " property variant j\n"
- " property QtObject k\n"
+ " property variant i\n"
+ " property QtObject j\n"
"}";
QDeclarativeDomDocument document;
@@ -461,7 +460,7 @@ void tst_qdeclarativedom::loadDynamicProperty()
QDeclarativeDomObject rootObject = document.rootObject();
QVERIFY(rootObject.isValid());
- QCOMPARE(rootObject.dynamicProperties().count(), 11);
+ QCOMPARE(rootObject.dynamicProperties().count(), 10);
#define DP_TEST(index, name, type, test_position, test_length, propTypeName) \
{ \
@@ -483,14 +482,13 @@ void tst_qdeclarativedom::loadDynamicProperty()
DP_TEST(4, e, QVariant::String, 106, 17, "string");
DP_TEST(5, f, QVariant::Url, 128, 14, "url");
DP_TEST(6, g, QVariant::Color, 147, 16, "color");
- DP_TEST(7, h, QVariant::Date, 168, 15, "date");
- DP_TEST(8, i, qMetaTypeId<QVariant>(), 188, 14, "var");
- DP_TEST(9, j, qMetaTypeId<QVariant>(), 207, 18, "variant");
- DP_TEST(10, k, -1, 230, 19, "QtObject");
+ DP_TEST(7, h, QVariant::DateTime, 168, 15, "date");
+ DP_TEST(8, i, qMetaTypeId<QVariant>(), 188, 18, "variant");
+ DP_TEST(9, j, -1, 211, 19, "QtObject");
}
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {\n"
" property int a: 12\n"
" property int b: a + 6\n"
@@ -504,7 +502,7 @@ void tst_qdeclarativedom::loadDynamicProperty()
QVERIFY(rootObject.isValid());
QCOMPARE(rootObject.dynamicProperties().count(), 3);
-
+
{
QDeclarativeDomDynamicProperty d = rootObject.dynamicProperties().at(0);
QVERIFY(d.isDefaultProperty() == false);
@@ -534,7 +532,7 @@ void tst_qdeclarativedom::loadComponent()
{
// Explicit component
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {\n"
" Component {\n"
" id: myComponent\n"
@@ -565,7 +563,7 @@ void tst_qdeclarativedom::loadComponent()
QVERIFY(component.isValid());
QVERIFY(component.objectType() == "Qt/Component");
QVERIFY(component.objectTypeMajorVersion() == 4);
- QVERIFY(component.objectTypeMinorVersion() == 6);
+ QVERIFY(component.objectTypeMinorVersion() == 7);
QVERIFY(component.objectClassName() == "Component");
QVERIFY(component.objectId() == "myComponent");
QVERIFY(component.properties().isEmpty());
@@ -582,7 +580,7 @@ void tst_qdeclarativedom::loadComponent()
// Implicit component
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"ListView {\n"
" delegate: Item {}\n"
"}";
@@ -632,7 +630,7 @@ void tst_qdeclarativedom::object_dynamicProperty()
// Valid object, no dynamic properties
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {}";
QDeclarativeDomDocument document;
@@ -647,7 +645,7 @@ void tst_qdeclarativedom::object_dynamicProperty()
// Valid object, dynamic properties
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {\n"
" property int a\n"
"}";
@@ -685,7 +683,7 @@ void tst_qdeclarativedom::object_property()
// Valid object - no default
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {\n"
" x: 10\n"
" y: 12\n"
@@ -725,7 +723,7 @@ void tst_qdeclarativedom::object_property()
// Valid object - with default
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {\n"
" x: 10\n"
" y: 12\n"
@@ -762,7 +760,7 @@ void tst_qdeclarativedom::object_property()
QVERIFY(y.value().toLiteral().literal() == "12");
QCOMPARE(y.position(), 35);
QCOMPARE(y.length(), 1);
-
+
QDeclarativeDomProperty data = rootObject.property("data");
QVERIFY(data.isValid());
QVERIFY(data.propertyName() == "data");
@@ -784,9 +782,9 @@ void tst_qdeclarativedom::object_url()
QCOMPARE(object.url(), QUrl());
}
- // Valid builtin object
+ // Valid builtin object
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"Item {}";
QDeclarativeDomDocument document;
@@ -799,7 +797,7 @@ void tst_qdeclarativedom::object_url()
// Valid composite object
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"MyItem {}";
QUrl myUrl = QUrl::fromLocalFile(SRCDIR "/data/main.qml");
@@ -817,14 +815,14 @@ void tst_qdeclarativedom::object_url()
// Test copy constructors and operators
void tst_qdeclarativedom::copy()
{
- QByteArray qml = "import Qt 4.6\n"
+ QByteArray qml = "import Qt 4.7\n"
"MyItem {\n"
" id: myItem\n"
" property int a: 10\n"
" x: 10\n"
" y: x + 10\n"
- " z: NumberAnimation {}\n"
- " opacity: Behavior {}\n"
+ " NumberAnimation on z {}\n"
+ " Behavior on opacity {}\n"
" Component {\n"
" Item{}\n"
" }\n"
@@ -1031,7 +1029,7 @@ void tst_qdeclarativedom::copy()
QDeclarativeDomObject object = document.rootObject();
QDeclarativeDomProperty property = object.property("data");
QCOMPARE(property.value().toList().values().count(), 1);
- QDeclarativeDomComponent component =
+ QDeclarativeDomComponent component =
property.value().toList().values().at(0).toObject().toComponent();
QCOMPARE(component.componentRoot().objectClassName(), QByteArray("Item"));
@@ -1192,19 +1190,19 @@ void tst_qdeclarativedom::copy()
// Tests the position/length of various elements
void tst_qdeclarativedom::position()
{
- QByteArray qml = "import Qt 4.6\n"
- /*14*/ "Item {\n"
- /*21*/ " id: myItem\n"
- /*36*/ " property int a: 10\n"
- /*59*/ " x: 10\n"
- /*69*/ " y: x + 10\n"
- /*83*/ " z: NumberAnimation {}\n"
- /*109*/ " opacity: Behavior {}\n"
- /*134*/ " Component {\n"
- /*150*/ " Item{}\n"
- /*165*/ " }\n"
- /*171*/ " children: [ Item{}, Item{} ]\n"
- /*204*/ "}\n";
+ QByteArray qml = "import Qt 4.7\n"
+ "Item {\n"
+ " id: myItem\n"
+ " property int a: 10\n"
+ " x: 10\n"
+ " y: x + 10\n"
+ " NumberAnimation on z {}\n"
+ " Behavior on opacity {}\n"
+ " Component {\n"
+ " Item{}\n"
+ " }\n"
+ " children: [ Item{}, Item{} ]\n"
+ "}\n";
QDeclarativeDomDocument document;
@@ -1227,19 +1225,19 @@ void tst_qdeclarativedom::position()
QCOMPARE(y.length(), 1);
QDeclarativeDomProperty z = root.property("z");
- QCOMPARE(z.position(), 87);
+ QCOMPARE(z.position(), 106);
QCOMPARE(z.length(), 1);
QDeclarativeDomProperty opacity = root.property("opacity");
- QCOMPARE(opacity.position(), 113);
+ QCOMPARE(opacity.position(), 127);
QCOMPARE(opacity.length(), 7);
QDeclarativeDomProperty data = root.property("data");
- QCOMPARE(data.position(), 138);
+ QCOMPARE(data.position(), 142);
QCOMPARE(data.length(), 0);
QDeclarativeDomProperty children = root.property("children");
- QCOMPARE(children.position(), 175);
+ QCOMPARE(children.position(), 179);
QCOMPARE(children.length(), 8);
QDeclarativeDomList dataList = data.value().toList();
@@ -1249,30 +1247,30 @@ void tst_qdeclarativedom::position()
// All QDeclarativeDomObject
QCOMPARE(root.position(), 14);
- QCOMPARE(root.length(), 191);
+ QCOMPARE(root.length(), 195);
QDeclarativeDomObject numberAnimation = z.value().toValueSource().object();
- QCOMPARE(numberAnimation.position(), 90);
- QCOMPARE(numberAnimation.length(), 18);
+ QCOMPARE(numberAnimation.position(), 87);
+ QCOMPARE(numberAnimation.length(), 23);
QDeclarativeDomObject behavior = opacity.value().toValueInterceptor().object();
- QCOMPARE(behavior.position(), 122);
- QCOMPARE(behavior.length(), 11);
+ QCOMPARE(behavior.position(), 115);
+ QCOMPARE(behavior.length(), 22);
QDeclarativeDomObject component = dataList.values().at(0).toObject();
- QCOMPARE(component.position(), 138);
+ QCOMPARE(component.position(), 142);
QCOMPARE(component.length(), 32);
QDeclarativeDomObject componentRoot = component.toComponent().componentRoot();
- QCOMPARE(componentRoot.position(), 158);
+ QCOMPARE(componentRoot.position(), 162);
QCOMPARE(componentRoot.length(), 6);
QDeclarativeDomObject child1 = childrenList.values().at(0).toObject();
- QCOMPARE(child1.position(), 187);
+ QCOMPARE(child1.position(), 191);
QCOMPARE(child1.length(), 6);
QDeclarativeDomObject child2 = childrenList.values().at(1).toObject();
- QCOMPARE(child2.position(), 195);
+ QCOMPARE(child2.position(), 199);
QCOMPARE(child2.length(), 6);
// All QDeclarativeDomValue
@@ -1285,23 +1283,23 @@ void tst_qdeclarativedom::position()
QCOMPARE(yValue.length(), 6);
QDeclarativeDomValue zValue = z.value();
- QCOMPARE(zValue.position(), 90);
- QCOMPARE(zValue.length(), 18);
+ QCOMPARE(zValue.position(), 87);
+ QCOMPARE(zValue.length(), 23);
QDeclarativeDomValue opacityValue = opacity.value();
- QCOMPARE(opacityValue.position(), 122);
- QCOMPARE(opacityValue.length(), 11);
+ QCOMPARE(opacityValue.position(), 115);
+ QCOMPARE(opacityValue.length(), 22);
QDeclarativeDomValue dataValue = data.value();
- QCOMPARE(dataValue.position(), 138);
+ QCOMPARE(dataValue.position(), 142);
QCOMPARE(dataValue.length(), 32);
QDeclarativeDomValue child1Value = childrenList.values().at(0);
- QCOMPARE(child1Value.position(), 187);
+ QCOMPARE(child1Value.position(), 191);
QCOMPARE(child1Value.length(), 6);
QDeclarativeDomValue child2Value = childrenList.values().at(1);
- QCOMPARE(child2Value.position(), 195);
+ QCOMPARE(child2Value.position(), 199);
QCOMPARE(child2Value.length(), 6);
// All QDeclarativeDomList
diff --git a/tests/auto/declarative/qdeclarativeeasefollow/data/easefollow1.qml b/tests/auto/declarative/qdeclarativeeasefollow/data/easefollow1.qml
deleted file mode 100644
index 0cc19eb..0000000
--- a/tests/auto/declarative/qdeclarativeeasefollow/data/easefollow1.qml
+++ /dev/null
@@ -1,3 +0,0 @@
-import Qt 4.6
-
-EaseFollow {}
diff --git a/tests/auto/declarative/qdeclarativeeasefollow/data/easefollow2.qml b/tests/auto/declarative/qdeclarativeeasefollow/data/easefollow2.qml
deleted file mode 100644
index b65964e..0000000
--- a/tests/auto/declarative/qdeclarativeeasefollow/data/easefollow2.qml
+++ /dev/null
@@ -1,5 +0,0 @@
-import Qt 4.6
-
-EaseFollow {
- source: 10; duration: 300; enabled: true; reversingMode: EaseFollow.Immediate
-}
diff --git a/tests/auto/declarative/qdeclarativeeasefollow/data/easefollow3.qml b/tests/auto/declarative/qdeclarativeeasefollow/data/easefollow3.qml
deleted file mode 100644
index f8886e9..0000000
--- a/tests/auto/declarative/qdeclarativeeasefollow/data/easefollow3.qml
+++ /dev/null
@@ -1,6 +0,0 @@
-import Qt 4.6
-
-EaseFollow {
- source: 10; velocity: 250; enabled: false; reversingMode: EaseFollow.Sync
- maximumEasingTime: 150
-}
diff --git a/tests/auto/declarative/qdeclarativeeasefollow/qdeclarativeeasefollow.pro b/tests/auto/declarative/qdeclarativeeasefollow/qdeclarativeeasefollow.pro
deleted file mode 100644
index 71df4f4..0000000
--- a/tests/auto/declarative/qdeclarativeeasefollow/qdeclarativeeasefollow.pro
+++ /dev/null
@@ -1,8 +0,0 @@
-load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative gui
-macx:CONFIG -= app_bundle
-
-SOURCES += tst_qdeclarativeeasefollow.cpp
-
-# Define SRCDIR equal to test's source directory
-DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/qdeclarativeeasefollow/tst_qdeclarativeeasefollow.cpp b/tests/auto/declarative/qdeclarativeeasefollow/tst_qdeclarativeeasefollow.cpp
deleted file mode 100644
index 036eec0..0000000
--- a/tests/auto/declarative/qdeclarativeeasefollow/tst_qdeclarativeeasefollow.cpp
+++ /dev/null
@@ -1,122 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <qtest.h>
-#include <QtDeclarative/qdeclarativeengine.h>
-#include <QtDeclarative/qdeclarativecomponent.h>
-#include <private/qdeclarativeeasefollow_p.h>
-#include <private/qdeclarativevaluetype_p.h>
-#include "../../../shared/util.h"
-
-class tst_qdeclarativeeasefollow : public QObject
-{
- Q_OBJECT
-public:
- tst_qdeclarativeeasefollow();
-
-private slots:
- void defaultValues();
- void values();
- void disabled();
-
-private:
- QDeclarativeEngine engine;
-};
-
-tst_qdeclarativeeasefollow::tst_qdeclarativeeasefollow()
-{
-}
-
-void tst_qdeclarativeeasefollow::defaultValues()
-{
- QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/easefollow1.qml"));
- QDeclarativeEaseFollow *obj = qobject_cast<QDeclarativeEaseFollow*>(c.create());
-
- QVERIFY(obj != 0);
-
- QCOMPARE(obj->sourceValue(), 0.);
- QCOMPARE(obj->velocity(), 200.);
- QCOMPARE(obj->enabled(), true);
- QCOMPARE(obj->duration(), -1.);
- QCOMPARE(obj->maximumEasingTime(), -1.);
- QCOMPARE(obj->reversingMode(), QDeclarativeEaseFollow::Eased);
-
- delete obj;
-}
-
-void tst_qdeclarativeeasefollow::values()
-{
- QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/easefollow2.qml"));
- QDeclarativeEaseFollow *obj = qobject_cast<QDeclarativeEaseFollow*>(c.create());
-
- QVERIFY(obj != 0);
-
- QCOMPARE(obj->sourceValue(), 10.);
- QCOMPARE(obj->velocity(), 200.);
- QCOMPARE(obj->enabled(), true);
- QCOMPARE(obj->duration(), 300.);
- QCOMPARE(obj->maximumEasingTime(), -1.);
- QCOMPARE(obj->reversingMode(), QDeclarativeEaseFollow::Immediate);
-
- delete obj;
-}
-
-void tst_qdeclarativeeasefollow::disabled()
-{
- QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/easefollow3.qml"));
- QDeclarativeEaseFollow *obj = qobject_cast<QDeclarativeEaseFollow*>(c.create());
-
- QVERIFY(obj != 0);
-
- QCOMPARE(obj->sourceValue(), 10.);
- QCOMPARE(obj->velocity(), 250.);
- QCOMPARE(obj->enabled(), false);
- QCOMPARE(obj->maximumEasingTime(), 150.);
- QCOMPARE(obj->reversingMode(), QDeclarativeEaseFollow::Sync);
-
- delete obj;
-}
-
-QTEST_MAIN(tst_qdeclarativeeasefollow)
-
-#include "tst_qdeclarativeeasefollow.moc"
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml
index 7c32e56..28252df 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml
@@ -3,7 +3,7 @@ import Qt 4.6
QtObject {
property int b: obj.prop.a
- property var prop;
+ property variant prop;
prop: QtObject {
property int a: 10
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/SpuriousWarning.qml b/tests/auto/declarative/qdeclarativeecmascript/data/SpuriousWarning.qml
new file mode 100644
index 0000000..86c312c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/SpuriousWarning.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+Item {
+ property int children: root.children.length
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/attachedPropertyScope.qml b/tests/auto/declarative/qdeclarativeecmascript/data/attachedPropertyScope.qml
new file mode 100644
index 0000000..4b5464d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/attachedPropertyScope.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+import Qt.test 1.0
+
+QtObject {
+ property int value: 9
+ property int value2
+
+ MyQmlObject.onMySignal: value2 = value
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml b/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml
new file mode 100644
index 0000000..1c88700
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml
@@ -0,0 +1,44 @@
+import Qt 4.6
+
+QtObject {
+ //real
+ property real test1: a + b
+ property real test2: a - b
+ property bool test3: (a < b)
+ property bool test4: (a > b)
+ property bool test5: (a == b)
+ property bool test6: (a != b)
+
+ //int
+ property int test7: c + d
+ property int test8: d - c
+ property bool test9: (c < d)
+ property bool test10: (c > d)
+ property bool test11: (c == d)
+ property bool test12: (c != d)
+
+ //string
+ property string test13: e + f
+ property string test14: e + " " + f
+ property bool test15: (e == f)
+ property bool test16: (e != f)
+
+ //type conversion
+ property int test17: a
+ property real test18: d
+ property int test19: g
+ property real test20: g
+ property string test21: g
+ property string test22: h
+ property bool test23: i
+
+ property real a: 4.5
+ property real b: 11.2
+ property int c: 9
+ property int d: 176
+ property string e: "Hello"
+ property string f: "World"
+ property variant g: 6.7
+ property variant h: "!"
+ property variant i: true
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/deletedEngine.qml b/tests/auto/declarative/qdeclarativeecmascript/data/deletedEngine.qml
new file mode 100644
index 0000000..6c538fe
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/deletedEngine.qml
@@ -0,0 +1,11 @@
+import Qt 4.6
+
+QtObject {
+ function calculate() {
+ return b * 13;
+ }
+
+ property int a: calculate()
+ property int b: 3
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml b/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml
index 6bc3a17..29eba42 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/deletedObject.qml
@@ -2,7 +2,7 @@ import Qt 4.6
import Qt.test 1.0
QtObject {
- property var obj
+ property variant obj
obj: MyQmlObject {
id: myObject
value: 92
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml b/tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml
index ed5e571..2fef03a 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/dynamicCreation.qml
@@ -18,4 +18,10 @@ MyQmlObject{
{
obj.objectProperty = createQmlObject('TypeForDynamicCreation{}', obj);
}
+
+ function dontCrash()
+ {
+ var component = createComponent('file-doesnt-exist.qml');
+ obj.objectProperty = component.createObject();
+ }
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjects.qml b/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjects.qml
index a902312..566f5ed 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjects.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/extensionObjects.qml
@@ -1,4 +1,5 @@
import Qt.test 1.0
+import Qt 4.6
MyExtendedObject
{
@@ -7,4 +8,12 @@ MyExtendedObject
coreProperty: extendedProperty
extendedProperty: 9
+
+ property QtObject nested: MyExtendedObject {
+ baseProperty: baseExtendedProperty
+ baseExtendedProperty: 13
+
+ coreProperty: extendedProperty
+ extendedProperty: 9
+ }
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/functionErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/functionErrors.qml
new file mode 100644
index 0000000..4aca111
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/functionErrors.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+
+QtObject {
+ function myFunction() {
+ a = 10;
+ }
+
+ Component.onCompleted: myFunction();
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.1.qml
index 2db0fc6..93054f8 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.1.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.1.qml
@@ -4,7 +4,7 @@ import Qt 4.6
MyQmlObject {
objectProperty: if(1) otherObject
- property var obj
+ property variant obj
obj: QtObject {
id: otherObject
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.qml b/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.qml
index f66428d..5ae8b14 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/idShortcutInvalidates.qml
@@ -4,7 +4,7 @@ import Qt 4.6
MyQmlObject {
objectProperty: otherObject
- property var obj
+ property variant obj
obj: QtObject {
id: otherObject
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.js b/tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.js
new file mode 100644
index 0000000..3ffdb33
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.js
@@ -0,0 +1,6 @@
+.pragma library
+
+function test(target)
+{
+ var a = target.a;
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.qml b/tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.qml
new file mode 100644
index 0000000..9e8408f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/libraryScriptAssert.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+import "libraryScriptAssert.js" as Test
+
+QtObject {
+ id: root
+ Component.onCompleted: Test.test(root);
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/listProperties.qml b/tests/auto/declarative/qdeclarativeecmascript/data/listProperties.qml
index 810f9b6..216e916 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/listProperties.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/listProperties.qml
@@ -9,15 +9,12 @@ MyQmlObject {
QtObject { property int a: 11 }
]
- Script {
- function calcTest1() {
- var rv = 0;
- for (var ii = 0; ii < root.objectListProperty.length; ++ii) {
- rv += root.objectListProperty[ii].a;
- }
- return rv;
+ function calcTest1() {
+ var rv = 0;
+ for (var ii = 0; ii < root.objectListProperty.length; ++ii) {
+ rv += root.objectListProperty[ii].a;
}
-
+ return rv;
}
property int test1: calcTest1();
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/listToVariant.qml b/tests/auto/declarative/qdeclarativeecmascript/data/listToVariant.qml
index 47f4e50..e6d31c7 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/listToVariant.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/listToVariant.qml
@@ -1,5 +1,5 @@
import Qt 4.6
QtObject {
- property var test: children
+ property variant test: children
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/methods.5.qml b/tests/auto/declarative/qdeclarativeecmascript/data/methods.5.qml
index 3d45b15..5ba324a 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/methods.5.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/methods.5.qml
@@ -1,7 +1,7 @@
import Qt 4.6
Item {
- property alias x: item.x
+ property alias blah: item.x
Item { id: item }
function testFunction() { return 9; }
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.2.qml
new file mode 100644
index 0000000..a762d6d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.2.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+
+Item {
+ id: root
+
+ Item {}
+
+ SpuriousWarning {}
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.qml b/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.qml
new file mode 100644
index 0000000..a52c772
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/noSpuriousWarningsAtShutdown.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+
+Item {
+ id: root
+
+ property int childrenCount: root.children.length
+
+ Item {}
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/nullObjectBinding.qml b/tests/auto/declarative/qdeclarativeecmascript/data/nullObjectBinding.qml
new file mode 100644
index 0000000..1bf0b81
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/nullObjectBinding.qml
@@ -0,0 +1,8 @@
+import Qt 4.6
+
+QtObject {
+ property QtObject test
+ test: if (1) model
+ property ListModel model
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/numberAssignment.qml b/tests/auto/declarative/qdeclarativeecmascript/data/numberAssignment.qml
new file mode 100644
index 0000000..30a77e8
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/numberAssignment.qml
@@ -0,0 +1,18 @@
+import Qt.test 1.0
+
+NumberAssignment {
+ test1: if (1) 6.7
+ test2: if (1) "6.7"
+ test3: if (1) 6
+ test4: if (1) "6"
+
+ test5: if (1) 6.7
+ test6: if (1) "6.7"
+ test7: if (1) 6
+ test8: if (1) "6"
+
+ test9: if (1) 6.7
+ test10: if (1) "6.7"
+ test11: if (1) 6
+ test12: if (1) "6"
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/objectsCompareAsEqual.qml b/tests/auto/declarative/qdeclarativeecmascript/data/objectsCompareAsEqual.qml
index 18e488a..edcd340 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/objectsCompareAsEqual.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/objectsCompareAsEqual.qml
@@ -3,7 +3,7 @@ import Qt 4.6
Item {
id: root
- property var item: child
+ property variant item: child
Item { id: child }
property bool test1: child == child
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/ownership.qml b/tests/auto/declarative/qdeclarativeecmascript/data/ownership.qml
new file mode 100644
index 0000000..72edf6e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/ownership.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+QtObject {
+ Component.onCompleted: { var a = getObject(); a = null; }
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/propertyAssignmentErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/propertyAssignmentErrors.qml
new file mode 100644
index 0000000..c66f071
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/propertyAssignmentErrors.qml
@@ -0,0 +1,22 @@
+import Qt 4.6
+
+QtObject {
+ id: root
+
+ property int a
+ property variant b
+
+ Component.onCompleted: {
+ try {
+ root.a = undefined;
+ } catch(e) {
+ console.log (e.fileName + ":" + e.lineNumber + ":" + e);
+ }
+
+ try {
+ root.a = "Hello";
+ } catch(e) {
+ console.log (e.fileName + ":" + e.lineNumber + ":" + e);
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/qlistqobjectMethods.qml b/tests/auto/declarative/qdeclarativeecmascript/data/qlistqobjectMethods.qml
new file mode 100644
index 0000000..5897e2a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/qlistqobjectMethods.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+QtObject {
+ property int test: getObjects().length
+ property bool test2: getObjects()[0].trueProperty
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_9792.qml b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_9792.qml
new file mode 100644
index 0000000..9ac4430
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/qtbug_9792.qml
@@ -0,0 +1,5 @@
+import Qt.test 1.0
+
+MyQmlObject {
+ onBasicSignal: print("Hello world!");
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/regExp.qml b/tests/auto/declarative/qdeclarativeecmascript/data/regExp.qml
new file mode 100644
index 0000000..0dc404b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/regExp.qml
@@ -0,0 +1,7 @@
+import Qt.test 1.0
+
+MyQmlObject{
+ id: obj
+ objectName: "obj"
+ regExp: /[a-zA-z]/
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scope.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scope.3.qml
new file mode 100644
index 0000000..4ad7f34
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scope.3.qml
@@ -0,0 +1,13 @@
+import Qt 4.6
+
+Item {
+ id: root
+
+ property int foo: 12
+ property int console: 11
+
+ property bool test1: foo == 12
+ property bool test2: console != 11
+ property bool test3: root.console == 11
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scope.4.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scope.4.qml
new file mode 100644
index 0000000..d65b6e7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scope.4.qml
@@ -0,0 +1,12 @@
+import Qt.test 1.0
+
+MyQmlObject {
+ id: a
+ property int b: 9
+
+ property int test
+ property string test2
+
+ // Should resolve to signal arguments, not to other elements in the file
+ onArgumentSignal: { test = a; test2 = b; }
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml
new file mode 100644
index 0000000..2bdd706
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.1.qml
@@ -0,0 +1,16 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property bool test: false
+
+ id: root
+
+ Script {
+ function testFunction() {
+ test = true;
+ }
+ }
+
+ Component.onCompleted: root.argumentSignal.connect(testFunction);
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml
new file mode 100644
index 0000000..fa90918
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.2.qml
@@ -0,0 +1,22 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property bool test: false
+
+ id: root
+
+ Script {
+ function testFunction() {
+ if (this.b == 12)
+ test = true;
+ }
+ }
+
+ Component.onCompleted: {
+ var a = new Object;
+ a.b = 12;
+ root.argumentSignal.connect(a, testFunction);
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.3.qml
new file mode 100644
index 0000000..0d8e6ef
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.3.qml
@@ -0,0 +1,15 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property bool test: false
+
+ id: root
+
+ function testFunction() {
+ test = true;
+ }
+
+ Component.onCompleted: root.argumentSignal.connect(testFunction);
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.4.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.4.qml
new file mode 100644
index 0000000..3e1ff1b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.4.qml
@@ -0,0 +1,12 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property bool test: false
+
+ id: root
+
+ Component.onCompleted: root.argumentSignal.connect(methodNoArgs);
+}
+
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.5.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.5.qml
new file mode 100644
index 0000000..3ad5cbc
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.5.qml
@@ -0,0 +1,11 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property bool test: false
+
+ id: root
+
+ Component.onCompleted: root.argumentSignal.connect(root, methodNoArgs);
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml
new file mode 100644
index 0000000..8c35db1
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptConnect.6.qml
@@ -0,0 +1,20 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property int test: 0
+
+ id: root
+
+ Script {
+ function testFunction() {
+ test++;
+ }
+ }
+
+ Component.onCompleted: {
+ root.argumentSignal.connect(testFunction);
+ root.argumentSignal.connect(testFunction);
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml
new file mode 100644
index 0000000..45c4f73
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.1.qml
@@ -0,0 +1,18 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property int test: 0
+
+ id: root
+
+ Script {
+ function testFunction() {
+ test++;
+ }
+ }
+
+ Component.onCompleted: root.argumentSignal.connect(testFunction);
+
+ onBasicSignal: root.argumentSignal.disconnect(testFunction);
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml
new file mode 100644
index 0000000..a47fe74
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.2.qml
@@ -0,0 +1,19 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property int test: 0
+
+ id: root
+
+ Script {
+ function testFunction() {
+ test++;
+ }
+ }
+
+ Component.onCompleted: root.argumentSignal.connect(root, testFunction);
+
+ onBasicSignal: root.argumentSignal.disconnect(root, testFunction);
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml
new file mode 100644
index 0000000..c95ffbf
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.3.qml
@@ -0,0 +1,19 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property int test: 0
+
+ id: root
+
+ Script {
+ function testFunction() {
+ test++;
+ }
+ }
+
+ Component.onCompleted: root.argumentSignal.connect(root, testFunction);
+
+ onBasicSignal: root.argumentSignal.disconnect(testFunction);
+}
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml
new file mode 100644
index 0000000..342f24a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptDisconnect.4.qml
@@ -0,0 +1,20 @@
+import Qt.test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property int test: 0
+
+ id: root
+
+ Script {
+ function testFunction() {
+ test++;
+ }
+ function otherFunction() {
+ }
+ }
+
+ Component.onCompleted: root.argumentSignal.connect(testFunction);
+
+ onBasicSignal: root.argumentSignal.disconnect(otherFunction);
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.1.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.1.qml
new file mode 100644
index 0000000..9b11fa9
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.1.qml
@@ -0,0 +1,13 @@
+import Qt.test 1.0
+
+MyQmlObject {
+ property string result
+
+ Script{
+ function f() {
+ result = b
+ }
+
+ }
+ onArgumentSignal: f()
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.2.qml b/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.2.qml
new file mode 100644
index 0000000..ec727e2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.2.qml
@@ -0,0 +1,11 @@
+import Qt.test 1.0
+
+MyQmlObject {
+ property string result
+ property string aProp: "hello"
+
+ Script{
+ source: "scriptScope.js"
+ }
+ onBasicSignal: f()
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.js b/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.js
new file mode 100644
index 0000000..5689930
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/scriptScope.js
@@ -0,0 +1,5 @@
+var aProp = "world";
+
+function f() {
+ result = aProp;
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/signalParameterTypes.qml b/tests/auto/declarative/qdeclarativeecmascript/data/signalParameterTypes.qml
index 6fc8b02..ffbe317 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/signalParameterTypes.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/signalParameterTypes.qml
@@ -6,9 +6,9 @@ MyQmlObject
property int intProperty
property real realProperty
property color colorProperty
- property var variantProperty
+ property variant variantProperty
- signal mySignal(int a, real b, color c, var d)
+ signal mySignal(int a, real b, color c, variant d)
onMySignal: { intProperty = a; realProperty = b; colorProperty = c; variantProperty = d; }
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/strictlyEquals.qml b/tests/auto/declarative/qdeclarativeecmascript/data/strictlyEquals.qml
new file mode 100644
index 0000000..b9e455d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/strictlyEquals.qml
@@ -0,0 +1,17 @@
+import Qt 4.6
+
+QtObject {
+ property bool test1: (a === true)
+ property bool test2: !(a === false)
+ property bool test3: (b === 11.2)
+ property bool test4: !(b === 9)
+ property bool test5: (c === 9)
+ property bool test6: !(c === 13)
+ property bool test7: (d === "Hello world")
+ property bool test8: !(d === "Hi")
+
+ property bool a: true
+ property real b: 11.2
+ property int c: 9
+ property string d: "Hello world"
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.qml b/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.qml
index fa7e01c..bd23544 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/transientErrors.qml
@@ -1,9 +1,9 @@
import Qt 4.6
QtObject {
- property var obj: nested
+ property variant obj: nested
- property var obj2
+ property variant obj2
obj2: NestedTypeTransientErrors {
id: nested
}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/data/variantsAssignedUndefined.qml b/tests/auto/declarative/qdeclarativeecmascript/data/variantsAssignedUndefined.qml
new file mode 100644
index 0000000..5488e1a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/variantsAssignedUndefined.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+
+QtObject {
+ property bool runTest: false
+ onRunTestChanged: test1 = undefined
+
+ property variant test1: 10
+ property variant test2: (runTest == false)?11:undefined
+}
diff --git a/tests/auto/declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro b/tests/auto/declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro
index 0e21cb2..eabed26 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro
+++ b/tests/auto/declarative/qdeclarativeecmascript/qdeclarativeecmascript.pro
@@ -8,3 +8,6 @@ HEADERS += testtypes.h
# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage
# LIBS += -lgcov
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp b/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp
index 6a04704..0d07055 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp
@@ -43,7 +43,7 @@
class BaseExtensionObject : public QObject
{
Q_OBJECT
- Q_PROPERTY(int baseExtendedProperty READ extendedProperty WRITE setExtendedProperty NOTIFY extendedPropertyChanged);
+ Q_PROPERTY(int baseExtendedProperty READ extendedProperty WRITE setExtendedProperty NOTIFY extendedPropertyChanged)
public:
BaseExtensionObject(QObject *parent) : QObject(parent), m_value(0) {}
@@ -59,7 +59,7 @@ private:
class ExtensionObject : public QObject
{
Q_OBJECT
- Q_PROPERTY(int extendedProperty READ extendedProperty WRITE setExtendedProperty NOTIFY extendedPropertyChanged);
+ Q_PROPERTY(int extendedProperty READ extendedProperty WRITE setExtendedProperty NOTIFY extendedPropertyChanged)
public:
ExtensionObject(QObject *parent) : QObject(parent), m_value(0) {}
@@ -74,12 +74,13 @@ private:
void registerTypes()
{
- QML_REGISTER_TYPE(Qt.test, 1,0, MyQmlObject,MyQmlObject);
- QML_REGISTER_TYPE(Qt.test, 1,0, MyDeferredObject,MyDeferredObject);
- QML_REGISTER_TYPE(Qt.test, 1,0, MyQmlContainer,MyQmlContainer);
- QML_REGISTER_EXTENDED_TYPE(Qt.test, 1,0, MyBaseExtendedObject,MyBaseExtendedObject,BaseExtensionObject);
- QML_REGISTER_EXTENDED_TYPE(Qt.test, 1,0, MyExtendedObject,MyExtendedObject,ExtensionObject);
- QML_REGISTER_TYPE(Qt.test, 1,0, MyTypeObject, MyTypeObject);
+ qmlRegisterType<MyQmlObject>("Qt.test", 1,0, "MyQmlObject");
+ qmlRegisterType<MyDeferredObject>("Qt.test", 1,0, "MyDeferredObject");
+ qmlRegisterType<MyQmlContainer>("Qt.test", 1,0, "MyQmlContainer");
+ qmlRegisterExtendedType<MyBaseExtendedObject, BaseExtensionObject>("Qt.test", 1,0, "MyBaseExtendedObject");
+ qmlRegisterExtendedType<MyExtendedObject, ExtensionObject>("Qt.test", 1,0, "MyExtendedObject");
+ qmlRegisterType<MyTypeObject>("Qt.test", 1,0, "MyTypeObject");
+ qmlRegisterType<NumberAssignment>("Qt.test", 1,0, "NumberAssignment");
}
#include "testtypes.moc"
diff --git a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
index 8fbd071..4424419 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
+++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
@@ -60,10 +60,21 @@ class MyQmlAttachedObject : public QObject
{
Q_OBJECT
Q_PROPERTY(int value READ value CONSTANT)
+ Q_PROPERTY(int value2 READ value2 WRITE setValue2)
public:
- MyQmlAttachedObject(QObject *parent) : QObject(parent) {}
+ MyQmlAttachedObject(QObject *parent) : QObject(parent), m_value2(0) {}
int value() const { return 19; }
+ int value2() const { return m_value2; }
+ void setValue2(int v) { m_value2 = v; }
+
+ void emitMySignal() { emit mySignal(); }
+
+signals:
+ void mySignal();
+
+private:
+ int m_value2;
};
class MyQmlObject : public QObject
@@ -79,6 +90,7 @@ class MyQmlObject : public QObject
Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty NOTIFY objectChanged)
Q_PROPERTY(QDeclarativeListProperty<QObject> objectListProperty READ objectListProperty CONSTANT)
Q_PROPERTY(int resettableProperty READ resettableProperty WRITE setResettableProperty RESET resetProperty)
+ Q_PROPERTY(QRegExp regExp READ regExp WRITE setRegExp)
public:
MyQmlObject(): m_methodCalled(false), m_methodIntCalled(false), m_object(0), m_value(0), m_resetProperty(13) {}
@@ -127,6 +139,9 @@ public:
void setResettableProperty(int v) { m_resetProperty = v; }
void resetProperty() { m_resetProperty = 13; }
+ QRegExp regExp() { return m_regExp; }
+ void setRegExp(const QRegExp &regExp) { m_regExp = regExp; }
+
signals:
void basicSignal();
void argumentSignal(int a, QString b, qreal c);
@@ -151,6 +166,7 @@ private:
QList<QObject *> m_objectQList;
int m_value;
int m_resetProperty;
+ QRegExp m_regExp;
};
QML_DECLARE_TYPEINFO(MyQmlObject, QML_HAS_ATTACHED_PROPERTIES)
@@ -194,28 +210,20 @@ public slots:
class MyDefaultObject1 : public QObject
{
Q_OBJECT
- Q_PROPERTY(int horseLegs READ horseLegs CONSTANT);
- Q_PROPERTY(int antLegs READ antLegs CONSTANT);
+ Q_PROPERTY(int horseLegs READ horseLegs CONSTANT)
+ Q_PROPERTY(int antLegs READ antLegs CONSTANT)
+ Q_PROPERTY(int emuLegs READ emuLegs CONSTANT)
public:
int horseLegs() const { return 4; }
int antLegs() const { return 6; }
-};
-
-class MyDefaultObject2 : public QObject
-{
- Q_OBJECT
- Q_PROPERTY(int antLegs READ antLegs CONSTANT);
- Q_PROPERTY(int emuLegs READ emuLegs CONSTANT);
-public:
- int antLegs() const { return 5; } // Had an accident
int emuLegs() const { return 2; }
};
class MyDefaultObject3 : public QObject
{
Q_OBJECT
- Q_PROPERTY(int antLegs READ antLegs CONSTANT);
- Q_PROPERTY(int humanLegs READ humanLegs CONSTANT);
+ Q_PROPERTY(int antLegs READ antLegs CONSTANT)
+ Q_PROPERTY(int humanLegs READ humanLegs CONSTANT)
public:
int antLegs() const { return 7; } // Mutant
int humanLegs() const { return 2; }
@@ -226,9 +234,9 @@ class MyDeferredObject : public QObject
{
Q_OBJECT
Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged)
- Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty);
- Q_PROPERTY(QObject *objectProperty2 READ objectProperty2 WRITE setObjectProperty2);
- Q_CLASSINFO("DeferredPropertyNames", "value,objectProperty,objectProperty2");
+ Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty)
+ Q_PROPERTY(QObject *objectProperty2 READ objectProperty2 WRITE setObjectProperty2)
+ Q_CLASSINFO("DeferredPropertyNames", "value,objectProperty,objectProperty2")
public:
MyDeferredObject() : m_value(0), m_object(0), m_object2(0) {}
@@ -255,7 +263,7 @@ QML_DECLARE_TYPE(MyDeferredObject);
class MyBaseExtendedObject : public QObject
{
Q_OBJECT
-Q_PROPERTY(int baseProperty READ baseProperty WRITE setBaseProperty);
+Q_PROPERTY(int baseProperty READ baseProperty WRITE setBaseProperty)
public:
MyBaseExtendedObject() : m_value(0) {}
@@ -270,7 +278,7 @@ QML_DECLARE_TYPE(MyBaseExtendedObject);
class MyExtendedObject : public MyBaseExtendedObject
{
Q_OBJECT
-Q_PROPERTY(int coreProperty READ coreProperty WRITE setCoreProperty);
+Q_PROPERTY(int coreProperty READ coreProperty WRITE setCoreProperty)
public:
MyExtendedObject() : m_value(0) {}
@@ -288,34 +296,34 @@ class MyTypeObject : public QObject
Q_ENUMS(MyEnum)
Q_FLAGS(MyFlags)
- Q_PROPERTY(QString id READ id WRITE setId);
- Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty);
- Q_PROPERTY(QDeclarativeComponent *componentProperty READ componentProperty WRITE setComponentProperty);
- Q_PROPERTY(MyFlags flagProperty READ flagProperty WRITE setFlagProperty);
- Q_PROPERTY(MyEnum enumProperty READ enumProperty WRITE setEnumProperty);
- Q_PROPERTY(QString stringProperty READ stringProperty WRITE setStringProperty);
- Q_PROPERTY(uint uintProperty READ uintProperty WRITE setUintProperty);
- Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty);
- Q_PROPERTY(qreal realProperty READ realProperty WRITE setRealProperty);
- Q_PROPERTY(double doubleProperty READ doubleProperty WRITE setDoubleProperty);
- Q_PROPERTY(float floatProperty READ floatProperty WRITE setFloatProperty);
- Q_PROPERTY(QColor colorProperty READ colorProperty WRITE setColorProperty);
- Q_PROPERTY(QDate dateProperty READ dateProperty WRITE setDateProperty);
- Q_PROPERTY(QTime timeProperty READ timeProperty WRITE setTimeProperty);
- Q_PROPERTY(QDateTime dateTimeProperty READ dateTimeProperty WRITE setDateTimeProperty);
- Q_PROPERTY(QPoint pointProperty READ pointProperty WRITE setPointProperty);
- Q_PROPERTY(QPointF pointFProperty READ pointFProperty WRITE setPointFProperty);
- Q_PROPERTY(QSize sizeProperty READ sizeProperty WRITE setSizeProperty);
- Q_PROPERTY(QSizeF sizeFProperty READ sizeFProperty WRITE setSizeFProperty);
- Q_PROPERTY(QRect rectProperty READ rectProperty WRITE setRectProperty NOTIFY rectPropertyChanged);
- Q_PROPERTY(QRect rectProperty2 READ rectProperty2 WRITE setRectProperty2);
- Q_PROPERTY(QRectF rectFProperty READ rectFProperty WRITE setRectFProperty);
- Q_PROPERTY(bool boolProperty READ boolProperty WRITE setBoolProperty);
- Q_PROPERTY(QVariant variantProperty READ variantProperty WRITE setVariantProperty);
- Q_PROPERTY(QVector3D vectorProperty READ vectorProperty WRITE setVectorProperty);
- Q_PROPERTY(QUrl urlProperty READ urlProperty WRITE setUrlProperty);
-
- Q_PROPERTY(QDeclarativeScriptString scriptProperty READ scriptProperty WRITE setScriptProperty);
+ Q_PROPERTY(QString id READ id WRITE setId)
+ Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty)
+ Q_PROPERTY(QDeclarativeComponent *componentProperty READ componentProperty WRITE setComponentProperty)
+ Q_PROPERTY(MyFlags flagProperty READ flagProperty WRITE setFlagProperty)
+ Q_PROPERTY(MyEnum enumProperty READ enumProperty WRITE setEnumProperty)
+ Q_PROPERTY(QString stringProperty READ stringProperty WRITE setStringProperty)
+ Q_PROPERTY(uint uintProperty READ uintProperty WRITE setUintProperty)
+ Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty)
+ Q_PROPERTY(qreal realProperty READ realProperty WRITE setRealProperty)
+ Q_PROPERTY(double doubleProperty READ doubleProperty WRITE setDoubleProperty)
+ Q_PROPERTY(float floatProperty READ floatProperty WRITE setFloatProperty)
+ Q_PROPERTY(QColor colorProperty READ colorProperty WRITE setColorProperty)
+ Q_PROPERTY(QDate dateProperty READ dateProperty WRITE setDateProperty)
+ Q_PROPERTY(QTime timeProperty READ timeProperty WRITE setTimeProperty)
+ Q_PROPERTY(QDateTime dateTimeProperty READ dateTimeProperty WRITE setDateTimeProperty)
+ Q_PROPERTY(QPoint pointProperty READ pointProperty WRITE setPointProperty)
+ Q_PROPERTY(QPointF pointFProperty READ pointFProperty WRITE setPointFProperty)
+ Q_PROPERTY(QSize sizeProperty READ sizeProperty WRITE setSizeProperty)
+ Q_PROPERTY(QSizeF sizeFProperty READ sizeFProperty WRITE setSizeFProperty)
+ Q_PROPERTY(QRect rectProperty READ rectProperty WRITE setRectProperty NOTIFY rectPropertyChanged)
+ Q_PROPERTY(QRect rectProperty2 READ rectProperty2 WRITE setRectProperty2)
+ Q_PROPERTY(QRectF rectFProperty READ rectFProperty WRITE setRectFProperty)
+ Q_PROPERTY(bool boolProperty READ boolProperty WRITE setBoolProperty)
+ Q_PROPERTY(QVariant variantProperty READ variantProperty WRITE setVariantProperty)
+ Q_PROPERTY(QVector3D vectorProperty READ vectorProperty WRITE setVectorProperty)
+ Q_PROPERTY(QUrl urlProperty READ urlProperty WRITE setUrlProperty)
+
+ Q_PROPERTY(QDeclarativeScriptString scriptProperty READ scriptProperty WRITE setScriptProperty)
public:
MyTypeObject()
@@ -592,6 +600,71 @@ private:
QVariantList m_actuals;
};
+class NumberAssignment : public QObject
+{
+ Q_OBJECT
+public:
+ Q_PROPERTY(qreal test1 READ test1 WRITE setTest1);
+ qreal _test1;
+ qreal test1() const { return _test1; }
+ void setTest1(qreal v) { _test1 = v; }
+
+ Q_PROPERTY(qreal test2 READ test2 WRITE setTest2);
+ qreal _test2;
+ qreal test2() const { return _test2; }
+ void setTest2(qreal v) { _test2 = v; }
+
+ Q_PROPERTY(qreal test3 READ test3 WRITE setTest3);
+ qreal _test3;
+ qreal test3() const { return _test3; }
+ void setTest3(qreal v) { _test3 = v; }
+
+ Q_PROPERTY(qreal test4 READ test4 WRITE setTest4);
+ qreal _test4;
+ qreal test4() const { return _test4; }
+ void setTest4(qreal v) { _test4 = v; }
+
+ Q_PROPERTY(int test5 READ test5 WRITE setTest5);
+ int _test5;
+ int test5() const { return _test5; }
+ void setTest5(int v) { _test5 = v; }
+
+ Q_PROPERTY(int test6 READ test6 WRITE setTest6);
+ int _test6;
+ int test6() const { return _test6; }
+ void setTest6(int v) { _test6 = v; }
+
+ Q_PROPERTY(int test7 READ test7 WRITE setTest7);
+ int _test7;
+ int test7() const { return _test7; }
+ void setTest7(int v) { _test7 = v; }
+
+ Q_PROPERTY(int test8 READ test8 WRITE setTest8);
+ int _test8;
+ int test8() const { return _test8; }
+ void setTest8(int v) { _test8 = v; }
+
+ Q_PROPERTY(unsigned int test9 READ test9 WRITE setTest9);
+ unsigned int _test9;
+ unsigned int test9() const { return _test9; }
+ void setTest9(unsigned int v) { _test9 = v; }
+
+ Q_PROPERTY(unsigned int test10 READ test10 WRITE setTest10);
+ unsigned int _test10;
+ unsigned int test10() const { return _test10; }
+ void setTest10(unsigned int v) { _test10 = v; }
+
+ Q_PROPERTY(unsigned int test11 READ test11 WRITE setTest11);
+ unsigned int _test11;
+ unsigned int test11() const { return _test11; }
+ void setTest11(unsigned int v) { _test11 = v; }
+
+ Q_PROPERTY(unsigned int test12 READ test12 WRITE setTest12);
+ unsigned int _test12;
+ unsigned int test12() const { return _test12; }
+ void setTest12(unsigned int v) { _test12 = v; }
+};
+
void registerTypes();
#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
index 60c380c..098ac36 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp
@@ -108,6 +108,8 @@ private slots:
void selfDeletingBinding();
void extendedObjectPropertyLookup();
void scriptErrors();
+ void functionErrors();
+ void propertyAssignmentErrors();
void signalTriggeredBindings();
void listProperties();
void exceptionClearsOnReeval();
@@ -122,8 +124,25 @@ private slots:
void listToVariant();
void multiEngineObject();
void deletedObject();
+ void scriptScope();
+ void attachedPropertyScope();
+ void scriptConnect();
+ void scriptDisconnect();
+ void ownership();
+ void qlistqobjectMethods();
+ void strictlyEquals();
+ void compiled();
+ void numberAssignment();
void bug1();
+ void dynamicCreationCrash();
+ void regExpBug();
+ void nullObjectBinding();
+ void deletedEngine();
+ void libraryScriptAssert();
+ void variantsAssignedUndefined();
+ void qtbug_9792();
+ void noSpuriousWarningsAtShutdown();
void callQtInvokables();
private:
@@ -344,7 +363,6 @@ void tst_qdeclarativeecmascript::basicExpressions()
MyQmlObject object2;
MyQmlObject object3;
MyDefaultObject1 default1;
- MyDefaultObject2 default2;
MyDefaultObject3 default3;
object1.setStringProperty("Object1");
object2.setStringProperty("Object2");
@@ -353,13 +371,12 @@ void tst_qdeclarativeecmascript::basicExpressions()
QDeclarativeContext context(engine.rootContext());
QDeclarativeContext nestedContext(&context);
- context.addDefaultObject(&default1);
- context.addDefaultObject(&default2);
+ context.setContextObject(&default1);
context.setContextProperty("a", QVariant(1944));
context.setContextProperty("b", QVariant("Milk"));
context.setContextProperty("object", &object1);
context.setContextProperty("objectOverride", &object2);
- nestedContext.addDefaultObject(&default3);
+ nestedContext.setContextObject(&default3);
nestedContext.setContextProperty("b", QVariant("Cow"));
nestedContext.setContextProperty("objectOverride", &object3);
nestedContext.setContextProperty("millipedeLegs", QVariant(100));
@@ -535,11 +552,20 @@ void tst_qdeclarativeecmascript::extensionObjects()
QVERIFY(object != 0);
QCOMPARE(object->baseProperty(), 13);
QCOMPARE(object->coreProperty(), 9);
-
object->setProperty("extendedProperty", QVariant(11));
object->setProperty("baseExtendedProperty", QVariant(92));
QCOMPARE(object->coreProperty(), 11);
QCOMPARE(object->baseProperty(), 92);
+
+ MyExtendedObject *nested = qobject_cast<MyExtendedObject*>(qvariant_cast<QObject *>(object->property("nested")));
+ QVERIFY(nested);
+ QCOMPARE(nested->baseProperty(), 13);
+ QCOMPARE(nested->coreProperty(), 9);
+ nested->setProperty("extendedProperty", QVariant(11));
+ nested->setProperty("baseExtendedProperty", QVariant(92));
+ QCOMPARE(nested->coreProperty(), 11);
+ QCOMPARE(nested->baseProperty(), 92);
+
}
void tst_qdeclarativeecmascript::attachedProperties()
@@ -728,6 +754,33 @@ void tst_qdeclarativeecmascript::scope()
QCOMPARE(object->property("test5").toInt(), 24);
QCOMPARE(object->property("test6").toInt(), 24);
}
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scope.3.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test1").toBool(), true);
+ QCOMPARE(object->property("test2").toBool(), true);
+ QCOMPARE(object->property("test3").toBool(), true);
+ }
+
+ // Signal argument scope
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scope.4.qml"));
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toInt(), 0);
+ QCOMPARE(object->property("test2").toString(), QString());
+
+ emit object->argumentSignal(13, "Argument Scope", 9);
+
+ QCOMPARE(object->property("test").toInt(), 13);
+ QCOMPARE(object->property("test2").toString(), QString("Argument Scope"));
+
+ delete object;
+ }
}
/*
@@ -858,6 +911,7 @@ void tst_qdeclarativeecmascript::dynamicDestruction()
}
QVERIFY(!createdQmlObject);
+ QDeclarativeEngine::setObjectOwnership(object, QDeclarativeEngine::JavaScriptOwnership);
QMetaObject::invokeMethod(object, "killMe");
QVERIFY(object);
QTest::qWait(0);
@@ -950,6 +1004,44 @@ void tst_qdeclarativeecmascript::scriptErrors()
}
/*
+Test file/lineNumbers for inline functions.
+*/
+void tst_qdeclarativeecmascript::functionErrors()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("functionErrors.qml"));
+ QString url = component.url().toString();
+
+ QString warning = url + ":5: Error: Invalid write to global property \"a\"";
+
+ QTest::ignoreMessage(QtWarningMsg, warning.toLatin1().constData());
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+ delete object;
+}
+
+/*
+Test various errors that can occur when assigning a property from script
+*/
+void tst_qdeclarativeecmascript::propertyAssignmentErrors()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("propertyAssignmentErrors.qml"));
+
+ QString url = component.url().toString();
+
+ QString warning1 = url + ":11:Error: Cannot assign [undefined] to int";
+ QString warning2 = url + ":17:Error: Cannot assign QString to int";
+
+ QTest::ignoreMessage(QtDebugMsg, warning1.toLatin1().constData());
+ QTest::ignoreMessage(QtDebugMsg, warning2.toLatin1().constData());
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ delete object;
+}
+
+/*
Test bindings still work when the reeval is triggered from within
a signal script.
*/
@@ -1195,6 +1287,28 @@ void tst_qdeclarativeecmascript::bug1()
delete object;
}
+// Don't crash in createObject when the component has errors.
+void tst_qdeclarativeecmascript::dynamicCreationCrash()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("dynamicCreation.qml"));
+ MyQmlObject *object = qobject_cast<MyQmlObject*>(component.create());
+ QVERIFY(object != 0);
+
+ QTest::ignoreMessage(QtWarningMsg, "QDeclarativeComponent: Component is not ready");
+ QMetaObject::invokeMethod(object, "dontCrash");
+ QObject *created = object->objectProperty();
+ QVERIFY(created == 0);
+}
+
+//QTBUG-9367
+void tst_qdeclarativeecmascript::regExpBug()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("regExp.qml"));
+ MyQmlObject *object = qobject_cast<MyQmlObject*>(component.create());
+ QVERIFY(object != 0);
+ QCOMPARE(object->regExp().pattern(), QLatin1String("[a-zA-z]"));
+}
+
void tst_qdeclarativeecmascript::callQtInvokables()
{
MyInvokableObject o;
@@ -1268,7 +1382,6 @@ void tst_qdeclarativeecmascript::callQtInvokables()
o.reset();
{
QScriptValue ret = engine->evaluate("object.method_NoArgs_QPointF()");
- QVERIFY(ret.isVariant());
QCOMPARE(ret.toVariant(), QVariant(QPointF(123, 4.5)));
QCOMPARE(o.error(), false);
QCOMPARE(o.invoked(), 3);
@@ -1605,7 +1718,7 @@ void tst_qdeclarativeecmascript::listToVariant()
MyQmlContainer container;
QDeclarativeContext context(engine.rootContext());
- context.addDefaultObject(&container);
+ context.setContextObject(&container);
QObject *object = component.create(&context);
QVERIFY(object != 0);
@@ -1657,6 +1770,509 @@ void tst_qdeclarativeecmascript::deletedObject()
delete object;
}
+void tst_qdeclarativeecmascript::scriptScope()
+{
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptScope.1.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("result").toString(), QString());
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptScope.2.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+ emit object->basicSignal();
+ QCOMPARE(object->property("result").toString(), QLatin1String("world"));
+
+ delete object;
+ }
+}
+
+void tst_qdeclarativeecmascript::attachedPropertyScope()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("attachedPropertyScope.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ MyQmlAttachedObject *attached =
+ qobject_cast<MyQmlAttachedObject *>(qmlAttachedPropertiesObject<MyQmlObject>(object));
+ QVERIFY(attached != 0);
+
+ QCOMPARE(object->property("value2").toInt(), 0);
+
+ attached->emitMySignal();
+
+ QCOMPARE(object->property("value2").toInt(), 9);
+
+ delete object;
+}
+
+void tst_qdeclarativeecmascript::scriptConnect()
+{
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptConnect.1.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), false);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toBool(), true);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptConnect.2.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), false);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toBool(), true);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptConnect.3.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toBool(), false);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toBool(), true);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptConnect.4.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->methodCalled(), false);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->methodCalled(), true);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptConnect.5.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->methodCalled(), false);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->methodCalled(), true);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptConnect.6.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toInt(), 0);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 2);
+
+ delete object;
+ }
+}
+
+void tst_qdeclarativeecmascript::scriptDisconnect()
+{
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptDisconnect.1.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toInt(), 0);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 1);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 2);
+ emit object->basicSignal();
+ QCOMPARE(object->property("test").toInt(), 2);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 2);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptDisconnect.2.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toInt(), 0);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 1);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 2);
+ emit object->basicSignal();
+ QCOMPARE(object->property("test").toInt(), 2);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 2);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptDisconnect.3.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toInt(), 0);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 1);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 2);
+ emit object->basicSignal();
+ QCOMPARE(object->property("test").toInt(), 2);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 3);
+
+ delete object;
+ }
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("scriptDisconnect.4.qml"));
+
+ MyQmlObject *object = qobject_cast<MyQmlObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test").toInt(), 0);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 1);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 2);
+ emit object->basicSignal();
+ QCOMPARE(object->property("test").toInt(), 2);
+ emit object->argumentSignal(19, "Hello world!", 10.3);
+ QCOMPARE(object->property("test").toInt(), 3);
+
+ delete object;
+ }
+}
+
+class OwnershipObject : public QObject
+{
+ Q_OBJECT
+public:
+ OwnershipObject() { object = new QObject; }
+
+ QPointer<QObject> object;
+
+public slots:
+ QObject *getObject() { return object; }
+};
+
+void tst_qdeclarativeecmascript::ownership()
+{
+ OwnershipObject own;
+ QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext());
+ context->setContextObject(&own);
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("ownership.qml"));
+
+ QVERIFY(own.object != 0);
+
+ QObject *object = component.create(context);
+ QDeclarativeEnginePrivate::getScriptEngine(&engine)->collectGarbage();
+
+ QCoreApplication::processEvents(QEventLoop::DeferredDeletion);
+
+ QVERIFY(own.object == 0);
+
+ delete object;
+ }
+
+ own.object = new QObject(&own);
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("ownership.qml"));
+
+ QVERIFY(own.object != 0);
+
+ QObject *object = component.create(context);
+ QDeclarativeEnginePrivate::getScriptEngine(&engine)->collectGarbage();
+
+ QCoreApplication::processEvents(QEventLoop::DeferredDeletion);
+
+ QVERIFY(own.object != 0);
+
+ delete object;
+ }
+}
+
+class QListQObjectMethodsObject : public QObject
+{
+ Q_OBJECT
+public:
+ QListQObjectMethodsObject() {
+ m_objects.append(new MyQmlObject());
+ m_objects.append(new MyQmlObject());
+ }
+
+ ~QListQObjectMethodsObject() {
+ qDeleteAll(m_objects);
+ }
+
+public slots:
+ QList<QObject *> getObjects() { return m_objects; }
+
+private:
+ QList<QObject *> m_objects;
+};
+
+// Tests that returning a QList<QObject*> from a method works
+void tst_qdeclarativeecmascript::qlistqobjectMethods()
+{
+ QListQObjectMethodsObject obj;
+ QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext());
+ context->setContextObject(&obj);
+
+ QDeclarativeComponent component(&engine, TEST_FILE("qlistqobjectMethods.qml"));
+
+ QObject *object = component.create(context);
+
+ QCOMPARE(object->property("test").toInt(), 2);
+ QCOMPARE(object->property("test2").toBool(), true);
+
+ delete object;
+}
+
+// QTBUG-9205
+void tst_qdeclarativeecmascript::strictlyEquals()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("strictlyEquals.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test1").toBool(), true);
+ QCOMPARE(object->property("test2").toBool(), true);
+ QCOMPARE(object->property("test3").toBool(), true);
+ QCOMPARE(object->property("test4").toBool(), true);
+ QCOMPARE(object->property("test5").toBool(), true);
+ QCOMPARE(object->property("test6").toBool(), true);
+ QCOMPARE(object->property("test7").toBool(), true);
+ QCOMPARE(object->property("test8").toBool(), true);
+
+ delete object;
+}
+
+void tst_qdeclarativeecmascript::compiled()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("compiled.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test1").toReal(), qreal(15.7));
+ QCOMPARE(object->property("test2").toReal(), qreal(-6.7));
+ QCOMPARE(object->property("test3").toBool(), true);
+ QCOMPARE(object->property("test4").toBool(), false);
+ QCOMPARE(object->property("test5").toBool(), false);
+ QCOMPARE(object->property("test6").toBool(), true);
+
+ QCOMPARE(object->property("test7").toInt(), 185);
+ QCOMPARE(object->property("test8").toInt(), 167);
+ QCOMPARE(object->property("test9").toBool(), true);
+ QCOMPARE(object->property("test10").toBool(), false);
+ QCOMPARE(object->property("test11").toBool(), false);
+ QCOMPARE(object->property("test12").toBool(), true);
+
+ QCOMPARE(object->property("test13").toString(), QLatin1String("HelloWorld"));
+ QCOMPARE(object->property("test14").toString(), QLatin1String("Hello World"));
+ QCOMPARE(object->property("test15").toBool(), false);
+ QCOMPARE(object->property("test16").toBool(), true);
+
+ QCOMPARE(object->property("test17").toInt(), 4);
+ QCOMPARE(object->property("test18").toReal(), qreal(176));
+ QEXPECT_FAIL("", "QTBUG-9538", Continue);
+ QCOMPARE(object->property("test19").toInt(), 6);
+ QCOMPARE(object->property("test20").toReal(), qreal(6.7));
+ QCOMPARE(object->property("test21").toString(), QLatin1String("6.7"));
+ QCOMPARE(object->property("test22").toString(), QLatin1String("!"));
+ QCOMPARE(object->property("test23").toBool(), true);
+
+ delete object;
+}
+
+// Test that numbers assigned in bindings as strings work consistently
+void tst_qdeclarativeecmascript::numberAssignment()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("numberAssignment.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QVERIFY(object->property("test1") == QVariant((qreal)6.7));
+ QVERIFY(object->property("test2") == QVariant((qreal)6.7));
+ QVERIFY(object->property("test3") == QVariant((qreal)6));
+ QVERIFY(object->property("test4") == QVariant((qreal)6));
+
+ QVERIFY(object->property("test5") == QVariant((int)7));
+ QVERIFY(object->property("test6") == QVariant((int)7));
+ QVERIFY(object->property("test7") == QVariant((int)6));
+ QVERIFY(object->property("test8") == QVariant((int)6));
+
+ QVERIFY(object->property("test9") == QVariant((unsigned int)7));
+ QVERIFY(object->property("test10") == QVariant((unsigned int)7));
+ QVERIFY(object->property("test11") == QVariant((unsigned int)6));
+ QVERIFY(object->property("test12") == QVariant((unsigned int)6));
+
+ delete object;
+}
+
+// Test that assigning a null object works
+// Regressed with: df1788b4dbbb2826ae63f26bdf166342595343f4
+void tst_qdeclarativeecmascript::nullObjectBinding()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("nullObjectBinding.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QVERIFY(object->property("test") == QVariant::fromValue((QObject *)0));
+
+ delete object;
+}
+
+// Test that bindings don't evaluate once the engine has been destroyed
+void tst_qdeclarativeecmascript::deletedEngine()
+{
+ QDeclarativeEngine *engine = new QDeclarativeEngine;
+ QDeclarativeComponent component(engine, TEST_FILE("deletedEngine.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("a").toInt(), 39);
+ object->setProperty("b", QVariant(9));
+ QCOMPARE(object->property("a").toInt(), 117);
+
+ delete engine;
+
+ QCOMPARE(object->property("a").toInt(), 117);
+ object->setProperty("b", QVariant(10));
+ QCOMPARE(object->property("a").toInt(), 117);
+
+ delete object;
+}
+
+// Test the crashing part of QTBUG-9705
+void tst_qdeclarativeecmascript::libraryScriptAssert()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("libraryScriptAssert.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ delete object;
+}
+
+void tst_qdeclarativeecmascript::variantsAssignedUndefined()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("variantsAssignedUndefined.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test1").toInt(), 10);
+ QCOMPARE(object->property("test2").toInt(), 11);
+
+ object->setProperty("runTest", true);
+
+ QCOMPARE(object->property("test1"), QVariant());
+ QCOMPARE(object->property("test2"), QVariant());
+
+
+ delete object;
+}
+
+void tst_qdeclarativeecmascript::qtbug_9792()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("qtbug_9792.qml"));
+
+ QDeclarativeContext *context = new QDeclarativeContext(engine.rootContext());
+
+ MyQmlObject *object = qobject_cast<MyQmlObject*>(component.create(context));
+ QVERIFY(object != 0);
+
+ QTest::ignoreMessage(QtDebugMsg, "Hello world!");
+ object->basicSignal();
+
+ delete context;
+
+ transientErrorsMsgCount = 0;
+ QtMsgHandler old = qInstallMsgHandler(transientErrorsMsgHandler);
+
+ object->basicSignal();
+
+ qInstallMsgHandler(old);
+
+ QCOMPARE(transientErrorsMsgCount, 0);
+
+ delete object;
+}
+
+// Test that we shut down without stupid warnings
+void tst_qdeclarativeecmascript::noSpuriousWarningsAtShutdown()
+{
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("noSpuriousWarningsAtShutdown.qml"));
+
+ QObject *o = component.create();
+
+ transientErrorsMsgCount = 0;
+ QtMsgHandler old = qInstallMsgHandler(transientErrorsMsgHandler);
+
+ delete o;
+
+ qInstallMsgHandler(old);
+
+ QCOMPARE(transientErrorsMsgCount, 0);
+ }
+
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("noSpuriousWarningsAtShutdown.2.qml"));
+
+ QObject *o = component.create();
+
+ transientErrorsMsgCount = 0;
+ QtMsgHandler old = qInstallMsgHandler(transientErrorsMsgHandler);
+
+ delete o;
+
+ qInstallMsgHandler(old);
+
+ QCOMPARE(transientErrorsMsgCount, 0);
+ }
+}
+
QTEST_MAIN(tst_qdeclarativeecmascript)
#include "tst_qdeclarativeecmascript.moc"
diff --git a/tests/auto/declarative/qdeclarativeengine/qdeclarativeengine.pro b/tests/auto/declarative/qdeclarativeengine/qdeclarativeengine.pro
index 5b6530d..e0ea2e5 100644
--- a/tests/auto/declarative/qdeclarativeengine/qdeclarativeengine.pro
+++ b/tests/auto/declarative/qdeclarativeengine/qdeclarativeengine.pro
@@ -6,3 +6,6 @@ SOURCES += tst_qdeclarativeengine.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp b/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp
index 5dc5f19..5d8a52d 100644
--- a/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp
+++ b/tests/auto/declarative/qdeclarativeengine/tst_qdeclarativeengine.cpp
@@ -192,7 +192,7 @@ void tst_qdeclarativeengine::clearComponentCache()
{
QFile file("temp.qml");
QVERIFY(file.open(QIODevice::WriteOnly));
- file.write("import Qt 4.6\nQtObject {\nproperty int test: 10\n}\n");
+ file.write("import Qt 4.7\nQtObject {\nproperty int test: 10\n}\n");
file.close();
}
@@ -209,7 +209,7 @@ void tst_qdeclarativeengine::clearComponentCache()
{
QFile file("temp.qml");
QVERIFY(file.open(QIODevice::WriteOnly));
- file.write("import Qt 4.6\nQtObject {\nproperty int test: 11\n}\n");
+ file.write("import Qt 4.7\nQtObject {\nproperty int test: 11\n}\n");
file.close();
}
diff --git a/tests/auto/declarative/qdeclarativeerror/qdeclarativeerror.pro b/tests/auto/declarative/qdeclarativeerror/qdeclarativeerror.pro
index 6591406..501f32c 100644
--- a/tests/auto/declarative/qdeclarativeerror/qdeclarativeerror.pro
+++ b/tests/auto/declarative/qdeclarativeerror/qdeclarativeerror.pro
@@ -4,3 +4,6 @@ SOURCES += tst_qdeclarativeerror.cpp
macx:CONFIG -= app_bundle
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro b/tests/auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro
index 4b71381..07637c9 100644
--- a/tests/auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro
+++ b/tests/auto/declarative/qdeclarativeflickable/qdeclarativeflickable.pro
@@ -6,3 +6,6 @@ SOURCES += tst_qdeclarativeflickable.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp b/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp
index cb87977..a345a60 100644
--- a/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp
+++ b/tests/auto/declarative/qdeclarativeflickable/tst_qdeclarativeflickable.cpp
@@ -147,7 +147,7 @@ void tst_qdeclarativeflickable::properties()
void tst_qdeclarativeflickable::overShoot()
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; Flickable { overShoot: false; }", QUrl::fromLocalFile(""));
+ component.setData("import Qt 4.7; Flickable { overShoot: false; }", QUrl::fromLocalFile(""));
QDeclarativeFlickable *flickable = qobject_cast<QDeclarativeFlickable*>(component.create());
QSignalSpy spy(flickable, SIGNAL(overShootChanged()));
@@ -170,7 +170,7 @@ void tst_qdeclarativeflickable::overShoot()
void tst_qdeclarativeflickable::maximumFlickVelocity()
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; Flickable { maximumFlickVelocity: 1.0; }", QUrl::fromLocalFile(""));
+ component.setData("import Qt 4.7; Flickable { maximumFlickVelocity: 1.0; }", QUrl::fromLocalFile(""));
QDeclarativeFlickable *flickable = qobject_cast<QDeclarativeFlickable*>(component.create());
QSignalSpy spy(flickable, SIGNAL(maximumFlickVelocityChanged()));
@@ -187,7 +187,7 @@ void tst_qdeclarativeflickable::maximumFlickVelocity()
void tst_qdeclarativeflickable::flickDeceleration()
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; Flickable { flickDeceleration: 1.0; }", QUrl::fromLocalFile(""));
+ component.setData("import Qt 4.7; Flickable { flickDeceleration: 1.0; }", QUrl::fromLocalFile(""));
QDeclarativeFlickable *flickable = qobject_cast<QDeclarativeFlickable*>(component.create());
QSignalSpy spy(flickable, SIGNAL(flickDecelerationChanged()));
@@ -204,7 +204,7 @@ void tst_qdeclarativeflickable::flickDeceleration()
void tst_qdeclarativeflickable::pressDelay()
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; Flickable { pressDelay: 100; }", QUrl::fromLocalFile(""));
+ component.setData("import Qt 4.7; Flickable { pressDelay: 100; }", QUrl::fromLocalFile(""));
QDeclarativeFlickable *flickable = qobject_cast<QDeclarativeFlickable*>(component.create());
QSignalSpy spy(flickable, SIGNAL(pressDelayChanged()));
diff --git a/tests/auto/declarative/qdeclarativeflipable/data/crash.qml b/tests/auto/declarative/qdeclarativeflipable/data/crash.qml
new file mode 100644
index 0000000..ad40bf0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeflipable/data/crash.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+
+Flipable {
+ transform: Rotation {
+ axis.y: 1
+ axis.z: 0
+ angle: 180
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeflipable/data/flipable-abort.qml b/tests/auto/declarative/qdeclarativeflipable/data/flipable-abort.qml
new file mode 100644
index 0000000..f6f2014
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeflipable/data/flipable-abort.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+
+Rectangle {
+ Flipable {
+ id: flipable
+ }
+ Rectangle {
+ visible: flipable.side == Flipable.Front
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro b/tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro
index e29d324..9830b55 100644
--- a/tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro
+++ b/tests/auto/declarative/qdeclarativeflipable/qdeclarativeflipable.pro
@@ -6,3 +6,6 @@ SOURCES += tst_qdeclarativeflipable.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp b/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp
index ed37c43..4155edb 100644
--- a/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp
+++ b/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp
@@ -41,6 +41,7 @@
#include <qtest.h>
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtDeclarative/qdeclarativeview.h>
#include <private/qdeclarativeflipable_p.h>
#include <private/qdeclarativevaluetype_p.h>
#include <QFontMetrics>
@@ -58,6 +59,10 @@ private slots:
void checkFrontAndBack();
void setFrontAndBack();
+ // below here task issues
+ void QTBUG_9161_crash();
+ void QTBUG_8474_qgv_abort();
+
private:
QDeclarativeEngine engine;
};
@@ -108,6 +113,26 @@ void tst_qdeclarativeflipable::setFrontAndBack()
delete obj;
}
+void tst_qdeclarativeflipable::QTBUG_9161_crash()
+{
+ QDeclarativeView *canvas = new QDeclarativeView;
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/crash.qml"));
+ QGraphicsObject *root = canvas->rootObject();
+ QVERIFY(root != 0);
+ canvas->show();
+ delete canvas;
+}
+
+void tst_qdeclarativeflipable::QTBUG_8474_qgv_abort()
+{
+ QDeclarativeView *canvas = new QDeclarativeView;
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/flipable-abort.qml"));
+ QGraphicsObject *root = canvas->rootObject();
+ QVERIFY(root != 0);
+ canvas->show();
+ delete canvas;
+}
+
QTEST_MAIN(tst_qdeclarativeflipable)
#include "tst_qdeclarativeflipable.moc"
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
new file mode 100644
index 0000000..647e5bf
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test.qml
@@ -0,0 +1,77 @@
+import Qt 4.6
+
+Rectangle {
+ color: "white"
+ width: 800
+ height: 600
+
+ Keys.onDigit9Pressed: console.log("Error - Root")
+
+ FocusScope {
+ id: myScope
+ focus: true
+
+ Keys.onDigit9Pressed: console.log("Error - FocusScope")
+
+ Rectangle {
+ objectName: "item0"
+ height: 120
+ width: 420
+
+ color: "transparent"
+ border.width: 5
+ //border.color: myScope.wantsFocus?"blue":"black"
+
+ Rectangle {
+ id: item1; objectName: "item1"
+ x: 10; y: 10
+ width: 100; height: 100; color: "green"
+ border.width: 5
+ border.color: wantsFocus?"blue":"black"
+ Keys.onDigit9Pressed: console.debug("Top Left");
+ KeyNavigation.right: item2
+ focus: true
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+
+ Rectangle {
+ id: item2; objectName: "item2"
+ x: 310; y: 10
+ width: 100; height: 100; color: "green"
+ border.width: 5
+ border.color: wantsFocus?"blue":"black"
+ KeyNavigation.left: item1
+ Keys.onDigit9Pressed: console.log("Top Right");
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+ }
+ KeyNavigation.down: item3
+ }
+
+ Text { x:100; y:170; text: "Blue border indicates scoped focus\nBlack border indicates NOT scoped focus\nRed box indicates active focus\nUse arrow keys to navigate\nPress \"9\" to print currently focused item" }
+
+ Rectangle {
+ id: item3; objectName: "item3"
+ x: 10; y: 300
+ width: 100; height: 100; color: "green"
+ border.width: 5
+ border.color: wantsFocus?"blue":"black"
+
+ Keys.onDigit9Pressed: console.log("Bottom Left");
+ KeyNavigation.up: myScope
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+
+}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml
new file mode 100644
index 0000000..277fda4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test2.qml
@@ -0,0 +1,39 @@
+import Qt 4.6
+
+Rectangle {
+ color: "white"
+ width: 800
+ height: 600
+
+ Text { text: "All five rectangles should be red" }
+
+ FocusScope {
+ y: 100
+ focus: true; objectName: "item1"
+ Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+
+ FocusScope {
+ y: 100
+ focus: true; objectName: "item2"
+ Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+
+ FocusScope {
+ y: 100
+ focus: true; objectName: "item3"
+ Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+
+ FocusScope {
+ y: 100
+ focus: true; objectName: "item4"
+ Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+
+ FocusScope {
+ y: 100
+ focus: true; objectName: "item5"
+ Rectangle { width: 50; height: 50; color: parent.wantsFocus?"red":"blue" }
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml
new file mode 100644
index 0000000..9344d07
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test3.qml
@@ -0,0 +1,52 @@
+import Qt 4.6
+
+Rectangle {
+ color: "white"
+ width: 800
+ height: 600
+
+ ListModel {
+ id: model
+ ListElement { name: "1" }
+ ListElement { name: "2" }
+ ListElement { name: "3" }
+ ListElement { name: "4" }
+ ListElement { name: "5" }
+ ListElement { name: "6" }
+ ListElement { name: "6" }
+ ListElement { name: "8" }
+ ListElement { name: "9" }
+ }
+
+ Component {
+ id: verticalDelegate
+ FocusScope {
+ id: root
+ width: 50; height: 50;
+ Keys.onDigit9Pressed: console.log("Error - " + name)
+ Rectangle {
+ focus: true
+ Keys.onDigit9Pressed: console.log(name)
+ width: 50; height: 50;
+ color: root.ListView.isCurrentItem?"red":"green"
+ Text { text: name; anchors.centerIn: parent }
+ }
+ }
+ }
+
+ ListView {
+ width: 800; height: 50; orientation: "Horizontal"
+ focus: true
+ model: model
+ delegate: verticalDelegate
+ preferredHighlightBegin: 100
+ preferredHighlightEnd: 100
+ highlightRangeMode: "StrictlyEnforceRange"
+ }
+
+
+ Text {
+ y: 100; x: 50
+ text: "Currently selected element should be red\nPressing \"9\" should print the number of the currently selected item\nBe sure to scroll all the way to the right, pause, and then all the way to the left."
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml
new file mode 100644
index 0000000..d8bd390
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test4.qml
@@ -0,0 +1,76 @@
+import Qt 4.6
+
+Rectangle {
+ color: "white"
+ width: 800
+ height: 600
+
+ Keys.onDigit9Pressed: console.log("Error - Root")
+
+ FocusScope {
+ id: myScope
+
+ Keys.onDigit9Pressed: console.log("Error - FocusScope")
+
+ Rectangle {
+ objectName: "item0"
+ height: 120
+ width: 420
+
+ color: "transparent"
+ border.width: 5
+ //border.color: myScope.wantsFocus?"blue":"black"
+
+ Rectangle {
+ id: item1; objectName: "item1"
+ x: 10; y: 10
+ width: 100; height: 100; color: "green"
+ border.width: 5
+ border.color: wantsFocus?"blue":"black"
+ Keys.onDigit9Pressed: console.log("Error - Top Left");
+ KeyNavigation.right: item2
+ focus: true
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+
+ Rectangle {
+ id: item2; objectName: "item2"
+ x: 310; y: 10
+ width: 100; height: 100; color: "green"
+ border.width: 5
+ border.color: wantsFocus?"blue":"black"
+ KeyNavigation.left: item1
+ Keys.onDigit9Pressed: console.log("Error - Top Right");
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+ }
+ KeyNavigation.down: item3
+ }
+
+ Text { x:100; y:170; text: "There should be no blue borders, or red squares.\nPressing \"9\" should do nothing.\nArrow keys should have no effect." }
+
+ Rectangle {
+ id: item3; objectName: "item3"
+ x: 10; y: 300
+ width: 100; height: 100; color: "green"
+ border.width: 5
+ border.color: wantsFocus?"blue":"black"
+
+ Keys.onDigit9Pressed: console.log("Error - Bottom Left");
+ KeyNavigation.up: myScope
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+
+}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
new file mode 100644
index 0000000..da452cf
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
@@ -0,0 +1,84 @@
+import Qt 4.6
+
+Rectangle {
+ color: "white"
+ width: 800
+ height: 600
+
+ Keys.onReturnPressed: console.log("Error - Root")
+
+ FocusScope {
+ id: myScope
+ focus: true
+
+ Keys.onReturnPressed: console.log("Error - FocusScope")
+
+ Rectangle {
+ objectName: "item0"
+ height: 120
+ width: 420
+
+ color: "transparent"
+ border.width: 5
+ //border.color: myScope.wantsFocus?"blue":"black"
+
+ Rectangle {
+ x: 10; y: 10
+ width: 100; height: 100; color: "green"
+ border.width: 5
+ border.color: item1.wantsFocus?"blue":"black"
+ }
+
+ TextEdit {
+ id: item1; objectName: "item1"
+ x: 20; y: 20
+ width: 90; height: 90
+ color: "white"
+ font.pixelSize: 20
+ Keys.onReturnPressed: console.log("Top Left");
+ KeyNavigation.right: item2
+ focus: true
+ wrapMode: TextEdit.WordWrap
+ text: "Box 1"
+ }
+
+ Rectangle {
+ id: item2; objectName: "item2"
+ x: 310; y: 10
+ width: 100; height: 100; color: "green"
+ border.width: 5
+ border.color: wantsFocus?"blue":"black"
+ KeyNavigation.left: item1
+ Keys.onReturnPressed: console.log("Top Right");
+
+ Rectangle {
+ width: 50; height: 50; anchors.centerIn: parent
+ color: parent.focus?"red":"transparent"
+ }
+ }
+ }
+ KeyNavigation.down: item3
+ }
+
+ Text { x:100; y:170; text: "Blue border indicates scoped focus\nBlack border indicates NOT scoped focus\nRed box or flashing cursor indicates active focus\nUse arrow keys to navigate\nPress Ctrl-Return to print currently focused item" }
+
+ Rectangle {
+ x: 10; y: 300
+ width: 100; height: 100; color: "green"
+ border.width: 5
+ border.color: item3.wantsFocus?"blue":"black"
+ }
+
+ TextEdit {
+ id: item3; objectName: "item3"
+ x: 20; y: 310
+ width: 90; height: 90
+ color: "white"
+ font.pixelSize: 20
+ text: "Box 3"
+
+ Keys.onReturnPressed: console.log("Bottom Left");
+ KeyNavigation.up: myScope
+ wrapMode: TextEdit.WordWrap
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro b/tests/auto/declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro
new file mode 100644
index 0000000..687c80c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/qdeclarativefocusscope.pro
@@ -0,0 +1,7 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative
+SOURCES += tst_qdeclarativefocusscope.cpp
+macx:CONFIG -= app_bundle
+
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
diff --git a/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
new file mode 100644
index 0000000..1bd8331
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativefocusscope/tst_qdeclarativefocusscope.cpp
@@ -0,0 +1,278 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+#include <QSignalSpy>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtDeclarative/qdeclarativeview.h>
+#include <private/qdeclarativerectangle_p.h>
+#include <private/qdeclarativetextedit_p.h>
+#include <private/qdeclarativetext_p.h>
+#include <QtDeclarative/private/qdeclarativefocusscope_p.h>
+
+
+class tst_qdeclarativefocusscope : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qdeclarativefocusscope() {}
+
+ template<typename T>
+ T *findItem(QGraphicsObject *parent, const QString &id);
+
+private slots:
+ void basic();
+ void nested();
+ void noFocus();
+ void textEdit();
+};
+
+/*
+ Find an item with the specified id.
+*/
+template<typename T>
+T *tst_qdeclarativefocusscope::findItem(QGraphicsObject *parent, const QString &objectName)
+{
+ const QMetaObject &mo = T::staticMetaObject;
+ QList<QGraphicsItem *> children = parent->childItems();
+ for (int i = 0; i < children.count(); ++i) {
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem *>(children.at(i)->toGraphicsObject());
+ if (item) {
+ if (mo.cast(item) && (objectName.isEmpty() || item->objectName() == objectName)) {
+ return static_cast<T*>(item);
+ }
+ item = findItem<T>(item, objectName);
+ if (item)
+ return static_cast<T*>(item);
+ }
+ }
+ return 0;
+}
+
+void tst_qdeclarativefocusscope::basic()
+{
+ QDeclarativeView *view = new QDeclarativeView;
+ view->setSource(QUrl::fromLocalFile(SRCDIR "/data/test.qml"));
+
+ QDeclarativeRectangle *item0 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item0"));
+ QDeclarativeRectangle *item1 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item1"));
+ QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
+ QDeclarativeRectangle *item3 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item3"));
+ QVERIFY(item0 != 0);
+ QVERIFY(item1 != 0);
+ QVERIFY(item2 != 0);
+ QVERIFY(item3 != 0);
+
+ view->show();
+ qApp->setActiveWindow(view);
+ qApp->processEvents();
+
+#ifdef Q_WS_X11
+ // to be safe and avoid failing setFocus with window managers
+ qt_x11_wait_for_window_manager(view);
+#endif
+
+ QVERIFY(view->hasFocus());
+ QVERIFY(view->scene()->hasFocus());
+ QVERIFY(item0->wantsFocus() == true);
+ QVERIFY(item1->hasFocus() == true);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->hasFocus() == false);
+
+ QTest::keyClick(view, Qt::Key_Right);
+ QVERIFY(item0->wantsFocus() == true);
+ QVERIFY(item1->hasFocus() == false);
+ QVERIFY(item2->hasFocus() == true);
+ QVERIFY(item3->hasFocus() == false);
+
+ QTest::keyClick(view, Qt::Key_Down);
+ QVERIFY(item0->wantsFocus() == false);
+ QVERIFY(item1->hasFocus() == false);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->hasFocus() == true);
+
+ delete view;
+}
+
+void tst_qdeclarativefocusscope::nested()
+{
+ QDeclarativeView *view = new QDeclarativeView;
+ view->setSource(QUrl::fromLocalFile(SRCDIR "/data/test2.qml"));
+
+ QDeclarativeFocusScope *item1 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item1"));
+ QDeclarativeFocusScope *item2 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item2"));
+ QDeclarativeFocusScope *item3 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item3"));
+ QDeclarativeFocusScope *item4 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item4"));
+ QDeclarativeFocusScope *item5 = findItem<QDeclarativeFocusScope>(view->rootObject(), QLatin1String("item5"));
+ QVERIFY(item1 != 0);
+ QVERIFY(item2 != 0);
+ QVERIFY(item3 != 0);
+ QVERIFY(item4 != 0);
+ QVERIFY(item5 != 0);
+
+ view->show();
+ qApp->setActiveWindow(view);
+ qApp->processEvents();
+
+#ifdef Q_WS_X11
+ // to be safe and avoid failing setFocus with window managers
+ qt_x11_wait_for_window_manager(view);
+#endif
+
+ QVERIFY(view->hasFocus());
+ QVERIFY(view->scene()->hasFocus());
+
+ QVERIFY(item1->wantsFocus() == true);
+ QVERIFY(item1->hasFocus() == false);
+ QVERIFY(item2->wantsFocus() == true);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->wantsFocus() == true);
+ QVERIFY(item3->hasFocus() == false);
+ QVERIFY(item4->wantsFocus() == true);
+ QVERIFY(item4->hasFocus() == false);
+ QVERIFY(item5->wantsFocus() == true);
+ QVERIFY(item5->hasFocus() == true);
+ delete view;
+}
+
+void tst_qdeclarativefocusscope::noFocus()
+{
+ QDeclarativeView *view = new QDeclarativeView;
+ view->setSource(QUrl::fromLocalFile(SRCDIR "/data/test4.qml"));
+
+ QDeclarativeRectangle *item0 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item0"));
+ QDeclarativeRectangle *item1 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item1"));
+ QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
+ QDeclarativeRectangle *item3 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item3"));
+ QVERIFY(item0 != 0);
+ QVERIFY(item1 != 0);
+ QVERIFY(item2 != 0);
+ QVERIFY(item3 != 0);
+
+ view->show();
+ qApp->setActiveWindow(view);
+ qApp->processEvents();
+
+#ifdef Q_WS_X11
+ // to be safe and avoid failing setFocus with window managers
+ qt_x11_wait_for_window_manager(view);
+#endif
+
+ QVERIFY(view->hasFocus());
+ QVERIFY(view->scene()->hasFocus());
+ QVERIFY(item0->wantsFocus() == false);
+ QVERIFY(item1->hasFocus() == false);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->hasFocus() == false);
+
+ QTest::keyClick(view, Qt::Key_Right);
+ QVERIFY(item0->wantsFocus() == false);
+ QVERIFY(item1->hasFocus() == false);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->hasFocus() == false);
+
+ QTest::keyClick(view, Qt::Key_Down);
+ QVERIFY(item0->wantsFocus() == false);
+ QVERIFY(item1->hasFocus() == false);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->hasFocus() == false);
+
+ delete view;
+}
+
+void tst_qdeclarativefocusscope::textEdit()
+{
+ QDeclarativeView *view = new QDeclarativeView;
+ view->setSource(QUrl::fromLocalFile(SRCDIR "/data/test5.qml"));
+
+ QDeclarativeRectangle *item0 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item0"));
+ QDeclarativeTextEdit *item1 = findItem<QDeclarativeTextEdit>(view->rootObject(), QLatin1String("item1"));
+ QDeclarativeRectangle *item2 = findItem<QDeclarativeRectangle>(view->rootObject(), QLatin1String("item2"));
+ QDeclarativeTextEdit *item3 = findItem<QDeclarativeTextEdit>(view->rootObject(), QLatin1String("item3"));
+ QVERIFY(item0 != 0);
+ QVERIFY(item1 != 0);
+ QVERIFY(item2 != 0);
+ QVERIFY(item3 != 0);
+
+ view->show();
+ qApp->setActiveWindow(view);
+ qApp->processEvents();
+
+#ifdef Q_WS_X11
+ // to be safe and avoid failing setFocus with window managers
+ qt_x11_wait_for_window_manager(view);
+#endif
+
+ QVERIFY(view->hasFocus());
+ QVERIFY(view->scene()->hasFocus());
+ QVERIFY(item0->wantsFocus() == true);
+ QVERIFY(item1->hasFocus() == true);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->hasFocus() == false);
+
+ QTest::keyClick(view, Qt::Key_Right);
+ QVERIFY(item0->wantsFocus() == true);
+ QVERIFY(item1->hasFocus() == true);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->hasFocus() == false);
+
+ QTest::keyClick(view, Qt::Key_Right);
+ QTest::keyClick(view, Qt::Key_Right);
+ QTest::keyClick(view, Qt::Key_Right);
+ QTest::keyClick(view, Qt::Key_Right);
+ QTest::keyClick(view, Qt::Key_Right);
+ QVERIFY(item0->wantsFocus() == true);
+ QVERIFY(item1->hasFocus() == false);
+ QVERIFY(item2->hasFocus() == true);
+ QVERIFY(item3->hasFocus() == false);
+
+ QTest::keyClick(view, Qt::Key_Down);
+ QVERIFY(item0->wantsFocus() == false);
+ QVERIFY(item1->hasFocus() == false);
+ QVERIFY(item2->hasFocus() == false);
+ QVERIFY(item3->hasFocus() == true);
+
+ delete view;
+}
+
+QTEST_MAIN(tst_qdeclarativefocusscope)
+
+#include "tst_qdeclarativefocusscope.moc"
diff --git a/tests/auto/declarative/qdeclarativefontloader/qdeclarativefontloader.pro b/tests/auto/declarative/qdeclarativefontloader/qdeclarativefontloader.pro
index 0c736b4..9a8a3ff 100644
--- a/tests/auto/declarative/qdeclarativefontloader/qdeclarativefontloader.pro
+++ b/tests/auto/declarative/qdeclarativefontloader/qdeclarativefontloader.pro
@@ -1,8 +1,12 @@
load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative gui
+contains(QT_CONFIG,declarative): QT += declarative gui network
macx:CONFIG -= app_bundle
-SOURCES += tst_qdeclarativefontloader.cpp
+HEADERS += ../shared/testhttpserver.h
+SOURCES += tst_qdeclarativefontloader.cpp ../shared/testhttpserver.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp b/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp
index a9762df..5cdc96c 100644
--- a/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp
+++ b/tests/auto/declarative/qdeclarativefontloader/tst_qdeclarativefontloader.cpp
@@ -43,6 +43,9 @@
#include <QtDeclarative/qdeclarativecomponent.h>
#include <private/qdeclarativefontloader_p.h>
#include "../../../shared/util.h"
+#include "../shared/testhttpserver.h"
+
+#define SERVER_PORT 14448
class tst_qdeclarativefontloader : public QObject
@@ -57,21 +60,26 @@ private slots:
void localFont();
void failLocalFont();
void webFont();
+ void redirWebFont();
void failWebFont();
private slots:
private:
QDeclarativeEngine engine;
+ TestHTTPServer server;
};
-tst_qdeclarativefontloader::tst_qdeclarativefontloader()
+tst_qdeclarativefontloader::tst_qdeclarativefontloader() :
+ server(SERVER_PORT)
{
+ server.serveDirectory(SRCDIR "/data");
+ Q_ASSERT(server.isValid());
}
void tst_qdeclarativefontloader::noFont()
{
- QString componentStr = "import Qt 4.6\nFontLoader { }";
+ QString componentStr = "import Qt 4.7\nFontLoader { }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeFontLoader *fontObject = qobject_cast<QDeclarativeFontLoader*>(component.create());
@@ -86,7 +94,7 @@ void tst_qdeclarativefontloader::noFont()
void tst_qdeclarativefontloader::namedFont()
{
- QString componentStr = "import Qt 4.6\nFontLoader { name: \"Helvetica\" }";
+ QString componentStr = "import Qt 4.7\nFontLoader { name: \"Helvetica\" }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeFontLoader *fontObject = qobject_cast<QDeclarativeFontLoader*>(component.create());
@@ -99,7 +107,7 @@ void tst_qdeclarativefontloader::namedFont()
void tst_qdeclarativefontloader::localFont()
{
- QString componentStr = "import Qt 4.6\nFontLoader { source: \"" SRCDIR "/data/tarzeau_ocr_a.ttf\" }";
+ QString componentStr = "import Qt 4.7\nFontLoader { source: \"" SRCDIR "/data/tarzeau_ocr_a.ttf\" }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeFontLoader *fontObject = qobject_cast<QDeclarativeFontLoader*>(component.create());
@@ -112,7 +120,7 @@ void tst_qdeclarativefontloader::localFont()
void tst_qdeclarativefontloader::failLocalFont()
{
- QString componentStr = "import Qt 4.6\nFontLoader { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/dummy.ttf").toString() + "\" }";
+ QString componentStr = "import Qt 4.7\nFontLoader { source: \"" + QUrl::fromLocalFile(SRCDIR "/data/dummy.ttf").toString() + "\" }";
QTest::ignoreMessage(QtWarningMsg, QString("Cannot load font: QUrl( \"" + QUrl::fromLocalFile(SRCDIR "/data/dummy.ttf").toString() + "\" ) ").toUtf8().constData());
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
@@ -126,21 +134,38 @@ void tst_qdeclarativefontloader::failLocalFont()
void tst_qdeclarativefontloader::webFont()
{
- QString componentStr = "import Qt 4.6\nFontLoader { source: \"http://www.princexml.com/fonts/steffmann/Starburst.ttf\" }";
+ QString componentStr = "import Qt 4.7\nFontLoader { source: \"http://localhost:14448/tarzeau_ocr_a.ttf\" }";
+ QDeclarativeComponent component(&engine);
+
+ component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+ QDeclarativeFontLoader *fontObject = qobject_cast<QDeclarativeFontLoader*>(component.create());
+
+ QVERIFY(fontObject != 0);
+ QVERIFY(fontObject->source() != QUrl(""));
+ QTRY_COMPARE(fontObject->name(), QString("OCRA"));
+ QTRY_VERIFY(fontObject->status() == QDeclarativeFontLoader::Ready);
+}
+
+void tst_qdeclarativefontloader::redirWebFont()
+{
+ server.addRedirect("olddir/oldname.ttf","../tarzeau_ocr_a.ttf");
+
+ QString componentStr = "import Qt 4.7\nFontLoader { source: \"http://localhost:14448/olddir/oldname.ttf\" }";
QDeclarativeComponent component(&engine);
+
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeFontLoader *fontObject = qobject_cast<QDeclarativeFontLoader*>(component.create());
QVERIFY(fontObject != 0);
QVERIFY(fontObject->source() != QUrl(""));
- QTRY_COMPARE(fontObject->name(), QString("Starburst"));
+ QTRY_COMPARE(fontObject->name(), QString("OCRA"));
QTRY_VERIFY(fontObject->status() == QDeclarativeFontLoader::Ready);
}
void tst_qdeclarativefontloader::failWebFont()
{
- QString componentStr = "import Qt 4.6\nFontLoader { source: \"http://wrong.address.com/Starburst.ttf\" }";
- QTest::ignoreMessage(QtWarningMsg, "Cannot load font: QUrl( \"http://wrong.address.com/Starburst.ttf\" ) ");
+ QString componentStr = "import Qt 4.7\nFontLoader { source: \"http://localhost:14448/nonexist.ttf\" }";
+ QTest::ignoreMessage(QtWarningMsg, "Cannot load font: QUrl( \"http://localhost:14448/nonexist.ttf\" ) ");
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeFontLoader *fontObject = qobject_cast<QDeclarativeFontLoader*>(component.create());
diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview-enforcerange.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview-enforcerange.qml
new file mode 100644
index 0000000..e45c4c3
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativegridview/data/gridview-enforcerange.qml
@@ -0,0 +1,56 @@
+import Qt 4.6
+
+Rectangle {
+ width: 240
+ height: 320
+ color: "#ffffff"
+ Component {
+ id: myDelegate
+ Item {
+ id: wrapper
+ objectName: "wrapper"
+ height: 100
+ width: 100
+ Text {
+ text: index
+ }
+ Text {
+ y: 25
+ id: textName
+ objectName: "textName"
+ text: name
+ }
+ Text {
+ y: 50
+ id: textNumber
+ objectName: "textNumber"
+ text: number
+ }
+ Text {
+ y: 75
+ text: wrapper.y
+ }
+ }
+ }
+
+ Component {
+ id: myHighlight
+ Rectangle {
+ color: "lightsteelblue"
+ }
+ }
+
+ GridView {
+ id: grid
+ objectName: "grid"
+ width: 240
+ height: 320
+ model: testModel
+ delegate: myDelegate
+ highlight: myHighlight
+ preferredHighlightBegin: 100
+ preferredHighlightEnd: 100
+ highlightRangeMode: "StrictlyEnforceRange"
+ focus: true
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview-initCurrent.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview-initCurrent.qml
index 32833d2..cc3e549 100644
--- a/tests/auto/declarative/qdeclarativegridview/data/gridview-initCurrent.qml
+++ b/tests/auto/declarative/qdeclarativegridview/data/gridview-initCurrent.qml
@@ -1,6 +1,7 @@
import Qt 4.6
Rectangle {
+ property int current: grid.currentIndex
width: 240
height: 320
color: "#ffffff"
diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview.qml
deleted file mode 100644
index 344b4b5..0000000
--- a/tests/auto/declarative/qdeclarativegridview/data/gridview.qml
+++ /dev/null
@@ -1,50 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 240
- height: 320
- color: "#ffffff"
- resources: [
- Component {
- id: myDelegate
- Rectangle {
- id: wrapper
- objectName: "wrapper"
- width: 80
- height: 60
- border.color: "blue"
- Text {
- text: index
- }
- Text {
- x: 40
- text: wrapper.x + ", " + wrapper.y
- }
- Text {
- y: 20
- id: textName
- objectName: "textName"
- text: name
- }
- Text {
- y: 40
- id: textNumber
- objectName: "textNumber"
- text: number
- }
- color: GridView.isCurrentItem ? "lightsteelblue" : "white"
- }
- }
- ]
- GridView {
- id: grid
- objectName: "grid"
- width: 240
- height: 320
- cellWidth: 80
- cellHeight: 60
- flow: (testTopToBottom == false) ? "LeftToRight" : "TopToBottom"
- model: testModel
- delegate: myDelegate
- }
-}
diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml
new file mode 100644
index 0000000..a061ae2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml
@@ -0,0 +1,56 @@
+import Qt 4.6
+
+Rectangle {
+ id: root
+ property int added: -1
+ property variant removed
+
+ width: 240
+ height: 320
+ color: "#ffffff"
+ resources: [
+ Component {
+ id: myDelegate
+ Rectangle {
+ id: wrapper
+ objectName: "wrapper"
+ width: 80
+ height: 60
+ border.color: "blue"
+ Text {
+ text: index
+ }
+ Text {
+ x: 40
+ text: wrapper.x + ", " + wrapper.y
+ }
+ Text {
+ y: 20
+ id: textName
+ objectName: "textName"
+ text: name
+ }
+ Text {
+ y: 40
+ id: textNumber
+ objectName: "textNumber"
+ text: number
+ }
+ color: GridView.isCurrentItem ? "lightsteelblue" : "white"
+ GridView.onAdd: root.added = index
+ GridView.onRemove: root.removed = name
+ }
+ }
+ ]
+ GridView {
+ id: grid
+ objectName: "grid"
+ width: 240
+ height: 320
+ cellWidth: 80
+ cellHeight: 60
+ flow: (testTopToBottom == false) ? "LeftToRight" : "TopToBottom"
+ model: testModel
+ delegate: myDelegate
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativegridview/data/propertychangestest.qml b/tests/auto/declarative/qdeclarativegridview/data/propertychangestest.qml
new file mode 100644
index 0000000..5ce758d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativegridview/data/propertychangestest.qml
@@ -0,0 +1,69 @@
+import Qt 4.6
+
+Rectangle {
+ width: 360; height: 120; color: "white"
+ Component {
+ id: delegate
+ Item {
+ id: wrapper
+ width: 180; height: 40;
+ Column {
+ x: 5; y: 5
+ Text { text: '<b>Name:</b> ' + name }
+ Text { text: '<b>Number:</b> ' + number }
+ }
+ }
+ }
+ Component {
+ id: highlightRed
+ Rectangle {
+ color: "red"
+ radius: 10
+ opacity: 0.5
+ }
+ }
+ GridView {
+ cellWidth:180
+ cellHeight:40
+ objectName: "gridView"
+ anchors.fill: parent
+ model: listModel
+ delegate: delegate
+ highlight: highlightRed
+ focus: true
+ keyNavigationWraps: true
+ cacheBuffer: 10
+ flow: GridView.LeftToRight
+ }
+
+ data:[
+ ListModel {
+ id: listModel
+ ListElement {
+ name: "Bill Smith"
+ number: "555 3264"
+ }
+ ListElement {
+ name: "John Brown"
+ number: "555 8426"
+ }
+ ListElement {
+ name: "Sam Wise"
+ number: "555 0473"
+ }
+ },
+ ListModel {
+ objectName: "alternateModel"
+ ListElement {
+ name: "Jack"
+ number: "555 8426"
+ }
+ ListElement {
+ name: "Mary"
+ number: "555 3264"
+ }
+ }
+ ]
+}
+
+
diff --git a/tests/auto/declarative/qdeclarativegridview/data/setindex.qml b/tests/auto/declarative/qdeclarativegridview/data/setindex.qml
index 908b365..b272d58 100644
--- a/tests/auto/declarative/qdeclarativegridview/data/setindex.qml
+++ b/tests/auto/declarative/qdeclarativegridview/data/setindex.qml
@@ -8,13 +8,9 @@ Rectangle {
Item {
id : wrapper
- Script {
- function startupFunction()
- {
- if (index == 5) view.currentIndex = index;
-
- }
- }
+ function startupFunction() {
+ if (index == 5) view.currentIndex = index;
+ }
Component.onCompleted: startupFunction();
width: 30; height: 30
Text { text: index }
diff --git a/tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro b/tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro
index af206d7..b069260 100644
--- a/tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro
+++ b/tests/auto/declarative/qdeclarativegridview/qdeclarativegridview.pro
@@ -6,3 +6,6 @@ SOURCES += tst_qdeclarativegridview.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
index 2a60fee..89be151 100644
--- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
+++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
@@ -39,16 +39,18 @@
**
****************************************************************************/
-#include <qdeclarativeengine.h>
-#include <qdeclarativecomponent.h>
-#include <QStringListModel>
#include <QtTest/QtTest>
-#include <private/qlistmodelinterface_p.h>
-#include <qdeclarativeview.h>
-#include <private/qdeclarativegridview_p.h>
-#include <private/qdeclarativetext_p.h>
-#include <qdeclarativecontext.h>
-#include <qdeclarativeexpression.h>
+#include <QtGui/qstringlistmodel.h>
+#include <QtDeclarative/qdeclarativeview.h>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtDeclarative/qdeclarativecontext.h>
+#include <QtDeclarative/qdeclarativeexpression.h>
+#include <QtDeclarative/private/qlistmodelinterface_p.h>
+#include <QtDeclarative/private/qdeclarativegridview_p.h>
+#include <QtDeclarative/private/qdeclarativetext_p.h>
+#include <QtDeclarative/private/qdeclarativelistmodel_p.h>
+#include "../../../shared/util.h"
class tst_QDeclarativeGridView : public QObject
{
@@ -66,8 +68,12 @@ private slots:
void currentIndex();
void defaultValues();
void properties();
+ void propertyChanges();
+ void componentChanges();
+ void modelChanges();
void positionViewAtIndex();
void resetModel();
+ void enforceRange();
void QTBUG_8456();
private:
@@ -91,7 +97,7 @@ public:
setRoleNames(roles);
}
- int rowCount(const QModelIndex &parent=QModelIndex()) const { return list.count(); }
+ int rowCount(const QModelIndex &parent=QModelIndex()) const { Q_UNUSED(parent); return list.count(); }
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const {
QVariant rv;
if (role == Name)
@@ -160,25 +166,25 @@ void tst_QDeclarativeGridView::items()
ctxt->setContextProperty("testModel", &model);
ctxt->setContextProperty("testTopToBottom", QVariant(false));
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview1.qml"));
qApp->processEvents();
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
- QVERIFY(gridview != 0);
+ QTRY_VERIFY(gridview != 0);
QDeclarativeItem *viewport = gridview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
- QCOMPARE(gridview->count(), model.count());
- QCOMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
+ QTRY_COMPARE(gridview->count(), model.count());
+ QTRY_COMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
for (int i = 0; i < model.count(); ++i) {
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", i);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(i));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(i));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", i);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(i));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(i));
}
// set an empty model and confirm that items are destroyed
@@ -186,7 +192,7 @@ void tst_QDeclarativeGridView::items()
ctxt->setContextProperty("testModel", &model2);
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
- QVERIFY(itemCount == 0);
+ QTRY_VERIFY(itemCount == 0);
delete canvas;
}
@@ -208,22 +214,22 @@ void tst_QDeclarativeGridView::changed()
ctxt->setContextProperty("testModel", &model);
ctxt->setContextProperty("testTopToBottom", QVariant(false));
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview1.qml"));
qApp->processEvents();
QDeclarativeFlickable *gridview = findItem<QDeclarativeFlickable>(canvas->rootObject(), "grid");
- QVERIFY(gridview != 0);
+ QTRY_VERIFY(gridview != 0);
QDeclarativeItem *viewport = gridview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
model.modifyItem(1, "Will", "9876");
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(1));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(1));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(1));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(1));
delete canvas;
}
@@ -241,71 +247,66 @@ void tst_QDeclarativeGridView::inserted()
ctxt->setContextProperty("testModel", &model);
ctxt->setContextProperty("testTopToBottom", QVariant(false));
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview1.qml"));
qApp->processEvents();
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
- QVERIFY(gridview != 0);
+ QTRY_VERIFY(gridview != 0);
QDeclarativeItem *viewport = gridview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
model.insertItem(1, "Will", "9876");
- // let transitions settle.
- QTest::qWait(300);
-
- QCOMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
+ QTRY_COMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(1));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(1));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(1));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(1));
+
+ // Checks that onAdd is called
+ int added = canvas->rootObject()->property("added").toInt();
+ QTRY_COMPARE(added, 1);
// Confirm items positioned correctly
for (int i = 0; i < model.count(); ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
- QCOMPARE(item->x(), (i%3)*80.0);
- QCOMPARE(item->y(), (i/3)*60.0);
+ QTRY_COMPARE(item->x(), (i%3)*80.0);
+ QTRY_COMPARE(item->y(), (i/3)*60.0);
}
model.insertItem(0, "Foo", "1111"); // zero index, and current item
- // let transitions settle.
- QTest::qWait(300);
-
- QCOMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
+ QTRY_COMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
name = findItem<QDeclarativeText>(viewport, "textName", 0);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(0));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(0));
number = findItem<QDeclarativeText>(viewport, "textNumber", 0);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(0));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(0));
- QCOMPARE(gridview->currentIndex(), 1);
+ QTRY_COMPARE(gridview->currentIndex(), 1);
// Confirm items positioned correctly
for (int i = 0; i < model.count(); ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
- QVERIFY(item->x() == (i%3)*80);
- QVERIFY(item->y() == (i/3)*60);
+ QTRY_VERIFY(item->x() == (i%3)*80);
+ QTRY_VERIFY(item->y() == (i/3)*60);
}
for (int i = model.count(); i < 30; ++i)
model.insertItem(i, "Hello", QString::number(i));
- QTest::qWait(300);
gridview->setContentY(120);
- QTest::qWait(300);
// Insert item outside visible area
model.insertItem(1, "Hello", "1324");
- QTest::qWait(300);
- QVERIFY(gridview->contentY() == 120);
+ QTRY_VERIFY(gridview->contentY() == 120);
delete canvas;
}
@@ -322,150 +323,133 @@ void tst_QDeclarativeGridView::removed()
ctxt->setContextProperty("testModel", &model);
ctxt->setContextProperty("testTopToBottom", QVariant(false));
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview1.qml"));
qApp->processEvents();
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
- QVERIFY(gridview != 0);
+ QTRY_VERIFY(gridview != 0);
QDeclarativeItem *viewport = gridview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
model.removeItem(1);
- // let transitions settle.
- QTest::qWait(300);
-
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(1));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(1));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(1));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(1));
+
+ // Checks that onRemove is called
+ QString removed = canvas->rootObject()->property("removed").toString();
+ QTRY_COMPARE(removed, QString("Item1"));
// Confirm items positioned correctly
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->x() == (i%3)*80);
- QVERIFY(item->y() == (i/3)*60);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->x() == (i%3)*80);
+ QTRY_VERIFY(item->y() == (i/3)*60);
}
// Remove first item (which is the current item);
model.removeItem(0);
- // let transitions settle.
- QTest::qWait(300);
-
name = findItem<QDeclarativeText>(viewport, "textName", 0);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(0));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(0));
number = findItem<QDeclarativeText>(viewport, "textNumber", 0);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(0));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(0));
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->x() == (i%3)*80);
- QVERIFY(item->y() == (i/3)*60);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->x() == (i%3)*80);
+ QTRY_VERIFY(item->y() == (i/3)*60);
}
// Remove items not visible
model.removeItem(25);
- // let transitions settle.
- QTest::qWait(300);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->x() == (i%3)*80);
- QVERIFY(item->y() == (i/3)*60);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->x() == (i%3)*80);
+ QTRY_VERIFY(item->y() == (i/3)*60);
}
// Remove items before visible
gridview->setContentY(120);
- QTest::qWait(500);
gridview->setCurrentIndex(10);
- // let transitions settle.
- QTest::qWait(300);
-
// Setting currentIndex above shouldn't cause view to scroll
- QCOMPARE(gridview->contentY(), 120.0);
+ QTRY_COMPARE(gridview->contentY(), 120.0);
model.removeItem(1);
- // let transitions settle.
- QTest::qWait(300);
-
// Confirm items positioned correctly
for (int i = 6; i < 18; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->x() == (i%3)*80);
- QVERIFY(item->y() == (i/3)*60);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->x() == (i%3)*80);
+ QTRY_VERIFY(item->y() == (i/3)*60);
}
// Remove currentIndex
QDeclarativeItem *oldCurrent = gridview->currentItem();
model.removeItem(9);
- QTest::qWait(500);
- QCOMPARE(gridview->currentIndex(), 9);
- QVERIFY(gridview->currentItem() != oldCurrent);
+ QTRY_COMPARE(gridview->currentIndex(), 9);
+ QTRY_VERIFY(gridview->currentItem() != oldCurrent);
gridview->setContentY(0);
// let transitions settle.
- QTest::qWait(300);
+ QTest::qWait(100);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->x() == (i%3)*80);
- QVERIFY(item->y() == (i/3)*60);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->x() == (i%3)*80);
+ QTRY_VERIFY(item->y() == (i/3)*60);
}
// remove item outside current view.
gridview->setCurrentIndex(32);
- QTest::qWait(500);
gridview->setContentY(240);
model.removeItem(30);
- QVERIFY(gridview->currentIndex() == 31);
+ QTRY_VERIFY(gridview->currentIndex() == 31);
// remove current item beyond visible items.
gridview->setCurrentIndex(20);
- QTest::qWait(500);
gridview->setContentY(0);
model.removeItem(20);
- QTest::qWait(500);
- QCOMPARE(gridview->currentIndex(), 20);
- QVERIFY(gridview->currentItem() != 0);
+ QTRY_COMPARE(gridview->currentIndex(), 20);
+ QTRY_VERIFY(gridview->currentItem() != 0);
// remove item before current, but visible
gridview->setCurrentIndex(8);
- QTest::qWait(500);
gridview->setContentY(240);
oldCurrent = gridview->currentItem();
model.removeItem(6);
- QTest::qWait(500);
- QCOMPARE(gridview->currentIndex(), 7);
- QVERIFY(gridview->currentItem() == oldCurrent);
+ QTRY_COMPARE(gridview->currentIndex(), 7);
+ QTRY_VERIFY(gridview->currentItem() == oldCurrent);
delete canvas;
}
@@ -482,42 +466,39 @@ void tst_QDeclarativeGridView::moved()
ctxt->setContextProperty("testModel", &model);
ctxt->setContextProperty("testTopToBottom", QVariant(false));
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview1.qml"));
qApp->processEvents();
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
- QVERIFY(gridview != 0);
+ QTRY_VERIFY(gridview != 0);
QDeclarativeItem *viewport = gridview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
model.moveItem(1, 8);
- // let transitions settle.
- QTest::qWait(300);
-
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(1));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(1));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(1));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(1));
name = findItem<QDeclarativeText>(viewport, "textName", 8);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(8));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(8));
number = findItem<QDeclarativeText>(viewport, "textNumber", 8);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(8));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(8));
// Confirm items positioned correctly
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->x() == (i%3)*80);
- QVERIFY(item->y() == (i/3)*60);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->x() == (i%3)*80);
+ QTRY_VERIFY(item->y() == (i/3)*60);
}
gridview->setContentY(120);
@@ -525,46 +506,45 @@ void tst_QDeclarativeGridView::moved()
// move outside visible area
model.moveItem(1, 25);
- // let transitions settle.
- QTest::qWait(300);
-
// Confirm items positioned correctly and indexes correct
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count()-1;
for (int i = 6; i < model.count()-6 && i < itemCount+6; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->x(), qreal((i%3)*80));
- QCOMPARE(item->y(), qreal((i/3)*60));
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), qreal((i%3)*80));
+ QTRY_COMPARE(item->y(), qreal((i/3)*60));
name = findItem<QDeclarativeText>(viewport, "textName", i);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(i));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(i));
number = findItem<QDeclarativeText>(viewport, "textNumber", i);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(i));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(i));
}
// move from outside visible into visible
model.moveItem(28, 8);
- // let transitions settle.
- QTest::qWait(300);
-
// Confirm items positioned correctly and indexes correct
for (int i = 6; i < model.count()-6 && i < itemCount+6; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->x() == (i%3)*80);
- QVERIFY(item->y() == (i/3)*60);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->x() == (i%3)*80);
+ QTRY_VERIFY(item->y() == (i/3)*60);
name = findItem<QDeclarativeText>(viewport, "textName", i);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(i));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(i));
number = findItem<QDeclarativeText>(viewport, "textNumber", i);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(i));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(i));
}
+ // ensure content position is stable
+ gridview->setContentY(0);
+ model.moveItem(10, 0);
+ QTRY_VERIFY(gridview->contentY() == 0);
+
delete canvas;
}
@@ -586,107 +566,107 @@ void tst_QDeclarativeGridView::currentIndex()
qApp->processEvents();
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
- QVERIFY(gridview != 0);
+ QTRY_VERIFY(gridview != 0);
QDeclarativeItem *viewport = gridview->viewport();
- QVERIFY(viewport != 0);
-
- QTest::qWait(500);
+ QTRY_VERIFY(viewport != 0);
// current item should be third item
- QCOMPARE(gridview->currentIndex(), 5);
- QCOMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(viewport, "wrapper", 5));
- QCOMPARE(gridview->currentItem()->y(), gridview->highlightItem()->y());
+ QTRY_COMPARE(gridview->currentIndex(), 5);
+ QTRY_COMPARE(gridview->currentItem(), findItem<QDeclarativeItem>(viewport, "wrapper", 5));
+ QTRY_COMPARE(gridview->currentItem()->y(), gridview->highlightItem()->y());
gridview->moveCurrentIndexRight();
- QCOMPARE(gridview->currentIndex(), 6);
+ QTRY_COMPARE(gridview->currentIndex(), 6);
gridview->moveCurrentIndexDown();
- QCOMPARE(gridview->currentIndex(), 9);
+ QTRY_COMPARE(gridview->currentIndex(), 9);
gridview->moveCurrentIndexUp();
- QCOMPARE(gridview->currentIndex(), 6);
+ QTRY_COMPARE(gridview->currentIndex(), 6);
gridview->moveCurrentIndexLeft();
- QCOMPARE(gridview->currentIndex(), 5);
+ QTRY_COMPARE(gridview->currentIndex(), 5);
// no wrap
gridview->setCurrentIndex(0);
- QCOMPARE(gridview->currentIndex(), 0);
+ QTRY_COMPARE(gridview->currentIndex(), 0);
gridview->moveCurrentIndexUp();
- QCOMPARE(gridview->currentIndex(), 0);
+ QTRY_COMPARE(gridview->currentIndex(), 0);
gridview->moveCurrentIndexLeft();
- QCOMPARE(gridview->currentIndex(), 0);
+ QTRY_COMPARE(gridview->currentIndex(), 0);
gridview->setCurrentIndex(model.count()-1);
- QTest::qWait(500);
- QCOMPARE(gridview->currentIndex(), model.count()-1);
+ QTRY_COMPARE(gridview->currentIndex(), model.count()-1);
gridview->moveCurrentIndexRight();
- QCOMPARE(gridview->currentIndex(), model.count()-1);
+ QTRY_COMPARE(gridview->currentIndex(), model.count()-1);
gridview->moveCurrentIndexDown();
- QCOMPARE(gridview->currentIndex(), model.count()-1);
+ QTRY_COMPARE(gridview->currentIndex(), model.count()-1);
// with wrap
gridview->setWrapEnabled(true);
gridview->setCurrentIndex(0);
- QCOMPARE(gridview->currentIndex(), 0);
- QTest::qWait(500);
+ QTRY_COMPARE(gridview->currentIndex(), 0);
gridview->moveCurrentIndexLeft();
- QCOMPARE(gridview->currentIndex(), model.count()-1);
+ QTRY_COMPARE(gridview->currentIndex(), model.count()-1);
- QTest::qWait(500);
- QCOMPARE(gridview->contentY(), 279.0);
+ QTRY_COMPARE(gridview->contentY(), 279.0);
gridview->moveCurrentIndexRight();
- QCOMPARE(gridview->currentIndex(), 0);
+ QTRY_COMPARE(gridview->currentIndex(), 0);
- QTest::qWait(500);
- QCOMPARE(gridview->contentY(), 0.0);
+ QTRY_COMPARE(gridview->contentY(), 0.0);
// Test keys
- qApp->setActiveWindow(canvas);
canvas->show();
- canvas->setFocus();
+ qApp->setActiveWindow(canvas);
+#ifdef Q_WS_X11
+ // to be safe and avoid failing setFocus with window managers
+ qt_x11_wait_for_window_manager(canvas);
+#endif
+ QTRY_VERIFY(canvas->hasFocus());
+ QTRY_VERIFY(canvas->scene()->hasFocus());
qApp->processEvents();
QTest::keyClick(canvas, Qt::Key_Down);
- QCOMPARE(gridview->currentIndex(), 3);
+ QTRY_COMPARE(gridview->currentIndex(), 3);
QTest::keyClick(canvas, Qt::Key_Up);
- QCOMPARE(gridview->currentIndex(), 0);
+ QTRY_COMPARE(gridview->currentIndex(), 0);
gridview->setFlow(QDeclarativeGridView::TopToBottom);
- QEXPECT_FAIL("", "QTBUG-8475", Abort);
QTest::keyClick(canvas, Qt::Key_Right);
- QCOMPARE(gridview->currentIndex(), 5);
+ QTRY_COMPARE(gridview->currentIndex(), 5);
QTest::keyClick(canvas, Qt::Key_Left);
- QCOMPARE(gridview->currentIndex(), 0);
+ QTRY_COMPARE(gridview->currentIndex(), 0);
QTest::keyClick(canvas, Qt::Key_Down);
- QCOMPARE(gridview->currentIndex(), 1);
+ QTRY_COMPARE(gridview->currentIndex(), 1);
QTest::keyClick(canvas, Qt::Key_Up);
- QCOMPARE(gridview->currentIndex(), 0);
+ QTRY_COMPARE(gridview->currentIndex(), 0);
// turn off auto highlight
gridview->setHighlightFollowsCurrentItem(false);
- QVERIFY(gridview->highlightFollowsCurrentItem() == false);
-
- QTest::qWait(500);
- QVERIFY(gridview->highlightItem());
+ QTRY_VERIFY(gridview->highlightFollowsCurrentItem() == false);
+ QTRY_VERIFY(gridview->highlightItem());
qreal hlPosX = gridview->highlightItem()->x();
qreal hlPosY = gridview->highlightItem()->y();
gridview->setCurrentIndex(5);
- QTest::qWait(500);
- QCOMPARE(gridview->highlightItem()->x(), hlPosX);
- QCOMPARE(gridview->highlightItem()->y(), hlPosY);
+ QTRY_COMPARE(gridview->highlightItem()->x(), hlPosX);
+ QTRY_COMPARE(gridview->highlightItem()->y(), hlPosY);
+
+ // insert item before currentIndex
+ gridview->setCurrentIndex(28);
+ model.insertItem(0, "Foo", "1111");
+ QTRY_COMPARE(canvas->rootObject()->property("current").toInt(), 29);
delete canvas;
}
@@ -703,48 +683,47 @@ void tst_QDeclarativeGridView::changeFlow()
ctxt->setContextProperty("testModel", &model);
ctxt->setContextProperty("testTopToBottom", QVariant(false));
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview1.qml"));
qApp->processEvents();
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
- QVERIFY(gridview != 0);
+ QTRY_VERIFY(gridview != 0);
QDeclarativeItem *viewport = gridview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
// Confirm items positioned correctly and indexes correct
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->x(), qreal((i%3)*80));
- QCOMPARE(item->y(), qreal((i/3)*60));
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), qreal((i%3)*80));
+ QTRY_COMPARE(item->y(), qreal((i/3)*60));
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", i);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(i));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(i));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", i);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(i));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(i));
}
ctxt->setContextProperty("testTopToBottom", QVariant(true));
- QTest::qWait(500);
// Confirm items positioned correctly and indexes correct
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->x(), qreal((i/5)*80));
- QCOMPARE(item->y(), qreal((i%5)*60));
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), qreal((i/5)*80));
+ QTRY_COMPARE(item->y(), qreal((i%5)*60));
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", i);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(i));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(i));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", i);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(i));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(i));
}
delete canvas;
@@ -756,20 +735,20 @@ void tst_QDeclarativeGridView::defaultValues()
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/gridview3.qml"));
QDeclarativeGridView *obj = qobject_cast<QDeclarativeGridView*>(c.create());
- QVERIFY(obj != 0);
- QVERIFY(obj->model() == QVariant());
- QVERIFY(obj->delegate() == 0);
- QCOMPARE(obj->currentIndex(), -1);
- QVERIFY(obj->currentItem() == 0);
- QCOMPARE(obj->count(), 0);
- QVERIFY(obj->highlight() == 0);
- QVERIFY(obj->highlightItem() == 0);
- QCOMPARE(obj->highlightFollowsCurrentItem(), true);
- QVERIFY(obj->flow() == 0);
- QCOMPARE(obj->isWrapEnabled(), false);
- QCOMPARE(obj->cacheBuffer(), 0);
- QCOMPARE(obj->cellWidth(), 100); //### Should 100 be the default?
- QCOMPARE(obj->cellHeight(), 100);
+ QTRY_VERIFY(obj != 0);
+ QTRY_VERIFY(obj->model() == QVariant());
+ QTRY_VERIFY(obj->delegate() == 0);
+ QTRY_COMPARE(obj->currentIndex(), -1);
+ QTRY_VERIFY(obj->currentItem() == 0);
+ QTRY_COMPARE(obj->count(), 0);
+ QTRY_VERIFY(obj->highlight() == 0);
+ QTRY_VERIFY(obj->highlightItem() == 0);
+ QTRY_COMPARE(obj->highlightFollowsCurrentItem(), true);
+ QTRY_VERIFY(obj->flow() == 0);
+ QTRY_COMPARE(obj->isWrapEnabled(), false);
+ QTRY_COMPARE(obj->cacheBuffer(), 0);
+ QTRY_COMPARE(obj->cellWidth(), 100); //### Should 100 be the default?
+ QTRY_COMPARE(obj->cellHeight(), 100);
delete obj;
}
@@ -779,23 +758,124 @@ void tst_QDeclarativeGridView::properties()
QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/gridview2.qml"));
QDeclarativeGridView *obj = qobject_cast<QDeclarativeGridView*>(c.create());
- QVERIFY(obj != 0);
- QVERIFY(obj->model() != QVariant());
- QVERIFY(obj->delegate() != 0);
- QCOMPARE(obj->currentIndex(), 0);
- QVERIFY(obj->currentItem() != 0);
- QCOMPARE(obj->count(), 4);
- QVERIFY(obj->highlight() != 0);
- QVERIFY(obj->highlightItem() != 0);
- QCOMPARE(obj->highlightFollowsCurrentItem(), false);
- QVERIFY(obj->flow() == 0);
- QCOMPARE(obj->isWrapEnabled(), true);
- QCOMPARE(obj->cacheBuffer(), 200);
- QCOMPARE(obj->cellWidth(), 100);
- QCOMPARE(obj->cellHeight(), 100);
+ QTRY_VERIFY(obj != 0);
+ QTRY_VERIFY(obj->model() != QVariant());
+ QTRY_VERIFY(obj->delegate() != 0);
+ QTRY_COMPARE(obj->currentIndex(), 0);
+ QTRY_VERIFY(obj->currentItem() != 0);
+ QTRY_COMPARE(obj->count(), 4);
+ QTRY_VERIFY(obj->highlight() != 0);
+ QTRY_VERIFY(obj->highlightItem() != 0);
+ QTRY_COMPARE(obj->highlightFollowsCurrentItem(), false);
+ QTRY_VERIFY(obj->flow() == 0);
+ QTRY_COMPARE(obj->isWrapEnabled(), true);
+ QTRY_COMPARE(obj->cacheBuffer(), 200);
+ QTRY_COMPARE(obj->cellWidth(), 100);
+ QTRY_COMPARE(obj->cellHeight(), 100);
delete obj;
}
+void tst_QDeclarativeGridView::propertyChanges()
+{
+ QDeclarativeView *canvas = createView();
+ QTRY_VERIFY(canvas);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychangestest.qml"));
+
+ QDeclarativeGridView *gridView = canvas->rootObject()->findChild<QDeclarativeGridView*>("gridView");
+ QTRY_VERIFY(gridView);
+
+ QSignalSpy keyNavigationWrapsSpy(gridView, SIGNAL(keyNavigationWrapsChanged()));
+ QSignalSpy cacheBufferSpy(gridView, SIGNAL(cacheBufferChanged()));
+ QSignalSpy flowSpy(gridView, SIGNAL(flowChanged()));
+
+ QTRY_COMPARE(gridView->isWrapEnabled(), true);
+ QTRY_COMPARE(gridView->cacheBuffer(), 10);
+ QTRY_COMPARE(gridView->flow(), QDeclarativeGridView::LeftToRight);
+
+ gridView->setWrapEnabled(false);
+ gridView->setCacheBuffer(3);
+ gridView->setFlow(QDeclarativeGridView::TopToBottom);
+
+ QTRY_COMPARE(gridView->isWrapEnabled(), false);
+ QTRY_COMPARE(gridView->cacheBuffer(), 3);
+ QTRY_COMPARE(gridView->flow(), QDeclarativeGridView::TopToBottom);
+
+ QTRY_COMPARE(keyNavigationWrapsSpy.count(),1);
+ QTRY_COMPARE(cacheBufferSpy.count(),1);
+ QTRY_COMPARE(flowSpy.count(),1);
+
+ gridView->setWrapEnabled(false);
+ gridView->setCacheBuffer(3);
+ gridView->setFlow(QDeclarativeGridView::TopToBottom);
+
+ QTRY_COMPARE(keyNavigationWrapsSpy.count(),1);
+ QTRY_COMPARE(cacheBufferSpy.count(),1);
+ QTRY_COMPARE(flowSpy.count(),1);
+
+ delete canvas;
+}
+
+void tst_QDeclarativeGridView::componentChanges()
+{
+ QDeclarativeView *canvas = createView();
+ QTRY_VERIFY(canvas);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychangestest.qml"));
+
+ QDeclarativeGridView *gridView = canvas->rootObject()->findChild<QDeclarativeGridView*>("gridView");
+ QTRY_VERIFY(gridView);
+
+ QDeclarativeComponent component(canvas->engine());
+ component.setData("import Qt 4.7; Rectangle { color: \"blue\"; }", QUrl::fromLocalFile(""));
+
+ QDeclarativeComponent delegateComponent(canvas->engine());
+ delegateComponent.setData("import Qt 4.7; Text { text: '<b>Name:</b> ' + name }", QUrl::fromLocalFile(""));
+
+ QSignalSpy highlightSpy(gridView, SIGNAL(highlightChanged()));
+ QSignalSpy delegateSpy(gridView, SIGNAL(delegateChanged()));
+
+ gridView->setHighlight(&component);
+ gridView->setDelegate(&delegateComponent);
+
+ QTRY_COMPARE(gridView->highlight(), &component);
+ QTRY_COMPARE(gridView->delegate(), &delegateComponent);
+
+ QTRY_COMPARE(highlightSpy.count(),1);
+ QTRY_COMPARE(delegateSpy.count(),1);
+
+ gridView->setHighlight(&component);
+ gridView->setDelegate(&delegateComponent);
+
+ QTRY_COMPARE(highlightSpy.count(),1);
+ QTRY_COMPARE(delegateSpy.count(),1);
+ delete canvas;
+}
+
+void tst_QDeclarativeGridView::modelChanges()
+{
+ QDeclarativeView *canvas = createView();
+ QTRY_VERIFY(canvas);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychangestest.qml"));
+
+ QDeclarativeGridView *gridView = canvas->rootObject()->findChild<QDeclarativeGridView*>("gridView");
+ QTRY_VERIFY(gridView);
+
+ QDeclarativeListModel *alternateModel = canvas->rootObject()->findChild<QDeclarativeListModel*>("alternateModel");
+ QTRY_VERIFY(alternateModel);
+ QVariant modelVariant = QVariant::fromValue(alternateModel);
+ QSignalSpy modelSpy(gridView, SIGNAL(modelChanged()));
+
+ gridView->setModel(modelVariant);
+ QTRY_COMPARE(gridView->model(), modelVariant);
+ QTRY_COMPARE(modelSpy.count(),1);
+
+ gridView->setModel(modelVariant);
+ QTRY_COMPARE(modelSpy.count(),1);
+
+ gridView->setModel(QVariant());
+ QTRY_COMPARE(modelSpy.count(),2);
+ delete canvas;
+}
+
void tst_QDeclarativeGridView::positionViewAtIndex()
{
QDeclarativeView *canvas = createView();
@@ -808,81 +888,122 @@ void tst_QDeclarativeGridView::positionViewAtIndex()
ctxt->setContextProperty("testModel", &model);
ctxt->setContextProperty("testTopToBottom", QVariant(false));
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview1.qml"));
qApp->processEvents();
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
- QVERIFY(gridview != 0);
+ QTRY_VERIFY(gridview != 0);
QDeclarativeItem *viewport = gridview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
// Confirm items positioned correctly
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount-1; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->x(), (i%3)*80.);
- QCOMPARE(item->y(), (i/3)*60.);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), (i%3)*80.);
+ QTRY_COMPARE(item->y(), (i/3)*60.);
}
// Position on a currently visible item
- gridview->positionViewAtIndex(4);
- QCOMPARE(gridview->contentY(), 60.);
+ gridview->positionViewAtIndex(4, QDeclarativeGridView::Beginning);
+ QTRY_COMPARE(gridview->contentY(), 60.);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 3; i < model.count() && i < itemCount-3-1; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->x(), (i%3)*80.);
- QCOMPARE(item->y(), (i/3)*60.);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), (i%3)*80.);
+ QTRY_COMPARE(item->y(), (i/3)*60.);
}
// Position on an item beyond the visible items
- gridview->positionViewAtIndex(21);
- QCOMPARE(gridview->contentY(), 420.);
+ gridview->positionViewAtIndex(21, QDeclarativeGridView::Beginning);
+ QTRY_COMPARE(gridview->contentY(), 420.);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 22; i < model.count() && i < itemCount-22-1; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->x(), (i%3)*80.);
- QCOMPARE(item->y(), (i/3)*60.);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), (i%3)*80.);
+ QTRY_COMPARE(item->y(), (i/3)*60.);
}
// Position on an item that would leave empty space if positioned at the top
- gridview->positionViewAtIndex(31);
- QCOMPARE(gridview->contentY(), 520.);
+ gridview->positionViewAtIndex(31, QDeclarativeGridView::Beginning);
+ QTRY_COMPARE(gridview->contentY(), 520.);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 24; i < model.count() && i < itemCount-24-1; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->x(), (i%3)*80.);
- QCOMPARE(item->y(), (i/3)*60.);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), (i%3)*80.);
+ QTRY_COMPARE(item->y(), (i/3)*60.);
}
// Position at the beginning again
- gridview->positionViewAtIndex(0);
- QCOMPARE(gridview->contentY(), 0.);
+ gridview->positionViewAtIndex(0, QDeclarativeGridView::Beginning);
+ QTRY_COMPARE(gridview->contentY(), 0.);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount-1; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->x(), (i%3)*80.);
- QCOMPARE(item->y(), (i/3)*60.);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), (i%3)*80.);
+ QTRY_COMPARE(item->y(), (i/3)*60.);
}
+ // Position at End
+ gridview->positionViewAtIndex(30, QDeclarativeGridView::End);
+ QTRY_COMPARE(gridview->contentY(), 340.);
+
+ // Position in Center
+ gridview->positionViewAtIndex(15, QDeclarativeGridView::Center);
+ QTRY_COMPARE(gridview->contentY(), 170.);
+
+ // Ensure at least partially visible
+ gridview->positionViewAtIndex(15, QDeclarativeGridView::Visible);
+ QTRY_COMPARE(gridview->contentY(), 170.);
+
+ gridview->setContentY(302);
+ gridview->positionViewAtIndex(15, QDeclarativeGridView::Visible);
+ QTRY_COMPARE(gridview->contentY(), 302.);
+
+ gridview->setContentY(360);
+ gridview->positionViewAtIndex(15, QDeclarativeGridView::Visible);
+ QTRY_COMPARE(gridview->contentY(), 300.);
+
+ gridview->setContentY(60);
+ gridview->positionViewAtIndex(20, QDeclarativeGridView::Visible);
+ QTRY_COMPARE(gridview->contentY(), 60.);
+
+ gridview->setContentY(20);
+ gridview->positionViewAtIndex(20, QDeclarativeGridView::Visible);
+ QTRY_COMPARE(gridview->contentY(), 100.);
+
+ // Ensure completely visible
+ gridview->setContentY(120);
+ gridview->positionViewAtIndex(20, QDeclarativeGridView::Contain);
+ QTRY_COMPARE(gridview->contentY(), 120.);
+
+ gridview->setContentY(302);
+ gridview->positionViewAtIndex(15, QDeclarativeGridView::Contain);
+ QTRY_COMPARE(gridview->contentY(), 300.);
+
+ gridview->setContentY(60);
+ gridview->positionViewAtIndex(20, QDeclarativeGridView::Contain);
+ QTRY_COMPARE(gridview->contentY(), 100.);
+
delete canvas;
}
@@ -901,32 +1022,78 @@ void tst_QDeclarativeGridView::resetModel()
qApp->processEvents();
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
- QVERIFY(gridview != 0);
+ QTRY_VERIFY(gridview != 0);
QDeclarativeItem *viewport = gridview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
- QCOMPARE(gridview->count(), model.rowCount());
+ QTRY_COMPARE(gridview->count(), model.rowCount());
for (int i = 0; i < model.rowCount(); ++i) {
QDeclarativeText *display = findItem<QDeclarativeText>(viewport, "displayText", i);
- QVERIFY(display != 0);
- QCOMPARE(display->text(), strings.at(i));
+ QTRY_VERIFY(display != 0);
+ QTRY_COMPARE(display->text(), strings.at(i));
}
strings.clear();
strings << "four" << "five" << "six" << "seven";
model.setStringList(strings);
- QCOMPARE(gridview->count(), model.rowCount());
+ QTRY_COMPARE(gridview->count(), model.rowCount());
for (int i = 0; i < model.rowCount(); ++i) {
QDeclarativeText *display = findItem<QDeclarativeText>(viewport, "displayText", i);
- QVERIFY(display != 0);
- QCOMPARE(display->text(), strings.at(i));
+ QTRY_VERIFY(display != 0);
+ QTRY_COMPARE(display->text(), strings.at(i));
}
}
+void tst_QDeclarativeGridView::enforceRange()
+{
+ QDeclarativeView *canvas = createView();
+
+ TestModel model;
+ for (int i = 0; i < 30; i++)
+ model.addItem("Item" + QString::number(i), "");
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/gridview-enforcerange.qml"));
+ qApp->processEvents();
+
+ QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
+ QTRY_VERIFY(gridview != 0);
+
+ QTRY_COMPARE(gridview->preferredHighlightBegin(), 100.0);
+ QTRY_COMPARE(gridview->preferredHighlightEnd(), 100.0);
+ QTRY_COMPARE(gridview->highlightRangeMode(), QDeclarativeGridView::StrictlyEnforceRange);
+
+ QDeclarativeItem *viewport = gridview->viewport();
+ QTRY_VERIFY(viewport != 0);
+
+ // view should be positioned at the top of the range.
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", 0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(gridview->contentY(), -100.0);
+
+ QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 0);
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(0));
+ QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 0);
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(0));
+
+ // Check currentIndex is updated when viewport moves
+ gridview->setContentY(0);
+ QTRY_COMPARE(gridview->currentIndex(), 2);
+
+ gridview->setCurrentIndex(5);
+ QTRY_COMPARE(gridview->contentY(), 100.);
+
+ delete canvas;
+}
+
void tst_QDeclarativeGridView::QTBUG_8456()
{
QDeclarativeView *canvas = createView();
@@ -935,9 +1102,9 @@ void tst_QDeclarativeGridView::QTBUG_8456()
qApp->processEvents();
QDeclarativeGridView *gridview = findItem<QDeclarativeGridView>(canvas->rootObject(), "grid");
- QVERIFY(gridview != 0);
+ QTRY_VERIFY(gridview != 0);
- QCOMPARE(gridview->currentIndex(), 0);
+ QTRY_COMPARE(gridview->currentIndex(), 0);
}
QDeclarativeView *tst_QDeclarativeGridView::createView()
diff --git a/tests/auto/declarative/qdeclarativeimage/data/aspectratio.qml b/tests/auto/declarative/qdeclarativeimage/data/aspectratio.qml
new file mode 100644
index 0000000..402d33e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/aspectratio.qml
@@ -0,0 +1,6 @@
+import Qt 4.7
+
+Image {
+ source: "heart.png"
+ fillMode: Image.PreserveAspectFit;
+}
diff --git a/tests/auto/declarative/qdeclarativeimage/data/big.jpeg b/tests/auto/declarative/qdeclarativeimage/data/big.jpeg
new file mode 100644
index 0000000..bed7bd6
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/big.jpeg
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/data/big256.png b/tests/auto/declarative/qdeclarativeimage/data/big256.png
new file mode 100644
index 0000000..1dc1596
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/big256.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart-mac.png b/tests/auto/declarative/qdeclarativeimage/data/heart-mac.png
new file mode 100644
index 0000000..d7df0e4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart-mac.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png b/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png
new file mode 100644
index 0000000..351da13
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart-win32.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart.png b/tests/auto/declarative/qdeclarativeimage/data/heart.png
new file mode 100644
index 0000000..372b224
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart.svg b/tests/auto/declarative/qdeclarativeimage/data/heart.svg
new file mode 100644
index 0000000..8c982cd
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart.svg
@@ -0,0 +1,55 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<!-- Created with Inkscape (http://www.inkscape.org/) --><svg viewBox="100 200 550 500" height="841.88976pt" id="svg1" inkscape:version="0.40+cvs" sodipodi:docbase="C:\Documents and Settings\Jon Phillips\My Documents\projects\clipart-project\submissions" sodipodi:docname="heart-left-highlight.svg" sodipodi:version="0.32" width="595.27559pt" xmlns="http://www.w3.org/2000/svg" xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:sodipodi="http://inkscape.sourceforge.net/DTD/sodipodi-0.dtd" xmlns:svg="http://www.w3.org/2000/svg">
+<metadata>
+<rdf:RDF xmlns:cc="http://web.resource.org/cc/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#">
+<cc:Work rdf:about="">
+<dc:title>Heart Left-Highlight</dc:title>
+<dc:description>This is a normal valentines day heart.</dc:description>
+<dc:subject>
+<rdf:Bag>
+<rdf:li>holiday</rdf:li>
+<rdf:li>valentines</rdf:li>
+<rdf:li></rdf:li>
+<rdf:li>valentine</rdf:li>
+<rdf:li>hash(0x8a091c0)</rdf:li>
+<rdf:li>hash(0x8a0916c)</rdf:li>
+<rdf:li>signs_and_symbols</rdf:li>
+<rdf:li>hash(0x8a091f0)</rdf:li>
+<rdf:li>day</rdf:li>
+</rdf:Bag>
+</dc:subject>
+<dc:publisher>
+<cc:Agent rdf:about="http://www.openclipart.org">
+<dc:title>Jon Phillips</dc:title>
+</cc:Agent>
+</dc:publisher>
+<dc:creator>
+<cc:Agent>
+<dc:title>Jon Phillips</dc:title>
+</cc:Agent>
+</dc:creator>
+<dc:rights>
+<cc:Agent>
+<dc:title>Jon Phillips</dc:title>
+</cc:Agent>
+</dc:rights>
+<dc:date></dc:date>
+<dc:format>image/svg+xml</dc:format>
+<dc:type rdf:resource="http://purl.org/dc/dcmitype/StillImage"/>
+<cc:license rdf:resource="http://web.resource.org/cc/PublicDomain"/>
+<dc:language>en</dc:language>
+</cc:Work>
+<cc:License rdf:about="http://web.resource.org/cc/PublicDomain">
+<cc:permits rdf:resource="http://web.resource.org/cc/Reproduction"/>
+<cc:permits rdf:resource="http://web.resource.org/cc/Distribution"/>
+<cc:permits rdf:resource="http://web.resource.org/cc/DerivativeWorks"/>
+</cc:License>
+</rdf:RDF>
+</metadata>
+<defs id="defs3"/>
+<sodipodi:namedview bordercolor="#666666" borderopacity="1.0" id="base" inkscape:current-layer="layer1" inkscape:cx="549.40674" inkscape:cy="596.00159" inkscape:document-units="px" inkscape:guide-bbox="true" inkscape:pageopacity="0.0" inkscape:pageshadow="2" inkscape:window-height="615" inkscape:window-width="866" inkscape:window-x="88" inkscape:window-y="116" inkscape:zoom="0.35000000" pagecolor="#ffffff" showguides="true"/>
+<g id="layer1" inkscape:groupmode="layer" inkscape:label="Layer 1">
+<path d="M 263.41570,235.14588 C 197.17570,235.14588 143.41575,288.90587 143.41575,355.14588 C 143.41575,489.90139 279.34890,525.23318 371.97820,658.45392 C 459.55244,526.05056 600.54070,485.59932 600.54070,355.14588 C 600.54070,288.90588 546.78080,235.14587 480.54070,235.14588 C 432.49280,235.14588 391.13910,263.51631 371.97820,304.33338 C 352.81740,263.51630 311.46370,235.14587 263.41570,235.14588 z " id="path7" sodipodi:nodetypes="ccccccc" style="fill:#e60000;fill-opacity:1.0000000;stroke:#000000;stroke-width:18.700001;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"/>
+<path d="M 265.00000,253.59375 C 207.04033,253.59375 160.00000,300.63407 160.00000,358.59375 C 160.00000,476.50415 278.91857,507.43251 359.96875,624.00000 C 366.52868,614.08205 220.00000,478.47309 220.00000,378.59375 C 220.00000,320.63407 267.04033,273.59375 325.00000,273.59375 C 325.50453,273.59375 325.99718,273.64912 326.50000,273.65625 C 309.22436,261.07286 288.00557,253.59374 265.00000,253.59375 z " id="path220" sodipodi:nodetypes="ccccccc" style="fill:#e6e6e6;fill-opacity:0.64556962;stroke:none;stroke-width:18.700001;stroke-miterlimit:4.0000000;stroke-opacity:1.0000000"/>
+</g>
+</svg>
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200-mac.png b/tests/auto/declarative/qdeclarativeimage/data/heart200-mac.png
new file mode 100644
index 0000000..df22325
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart200-mac.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png b/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png
new file mode 100644
index 0000000..4976ff9
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart200-win32.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/data/heart200.png b/tests/auto/declarative/qdeclarativeimage/data/heart200.png
new file mode 100644
index 0000000..786e75d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeimage/data/heart200.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro b/tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro
index 7634c12..ff365ee 100644
--- a/tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro
+++ b/tests/auto/declarative/qdeclarativeimage/qdeclarativeimage.pro
@@ -7,3 +7,6 @@ SOURCES += tst_qdeclarativeimage.cpp ../shared/testhttpserver.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
index ed2095b..854bcdd 100644
--- a/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
+++ b/tests/auto/declarative/qdeclarativeimage/tst_qdeclarativeimage.cpp
@@ -46,6 +46,7 @@
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtDeclarative/qdeclarativeview.h>
#include <private/qdeclarativeimage_p.h>
#include <private/qdeclarativeimagebase_p.h>
#include <private/qdeclarativeloader_p.h>
@@ -54,8 +55,8 @@
#include "../shared/testhttpserver.h"
-#define SERVER_PORT 14445
-#define SERVER_ADDR "http://127.0.0.1:14445"
+#define SERVER_PORT 14451
+#define SERVER_ADDR "http://127.0.0.1:14451"
#define TRY_WAIT(expr) \
do { \
@@ -80,8 +81,11 @@ private slots:
void imageSource_data();
void clearSource();
void resized();
+ void preserveAspectRatio();
void smooth();
void pixmap();
+ void svg();
+ void big();
private:
QDeclarativeEngine engine;
@@ -93,7 +97,7 @@ tst_qdeclarativeimage::tst_qdeclarativeimage()
void tst_qdeclarativeimage::noSource()
{
- QString componentStr = "import Qt 4.6\nImage { source: \"\" }";
+ QString componentStr = "import Qt 4.7\nImage { source: \"\" }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
@@ -111,24 +115,30 @@ void tst_qdeclarativeimage::noSource()
void tst_qdeclarativeimage::imageSource_data()
{
QTest::addColumn<QString>("source");
+ QTest::addColumn<qreal>("width");
+ QTest::addColumn<qreal>("height");
QTest::addColumn<bool>("remote");
QTest::addColumn<bool>("async");
QTest::addColumn<QString>("error");
- QTest::newRow("local") << QUrl::fromLocalFile(SRCDIR "/data/colors.png").toString() << false << false << "";
- QTest::newRow("local async") << QUrl::fromLocalFile(SRCDIR "/data/colors1.png").toString() << false << true << "";
- QTest::newRow("local not found") << QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString() << false
- << false << "Cannot open QUrl( \"" + QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString() + "\" ) ";
- QTest::newRow("local async not found") << QUrl::fromLocalFile(SRCDIR "/data/no-such-file-1.png").toString() << false
- << true << "\"Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file-1.png").toString() + "\" ";
- QTest::newRow("remote") << SERVER_ADDR "/colors.png" << true << false << "";
- QTest::newRow("remote not found") << SERVER_ADDR "/no-such-file.png" << true << false
- << "\"Error downloading " SERVER_ADDR "/no-such-file.png - server replied: Not found\" ";
+ QTest::newRow("local") << QUrl::fromLocalFile(SRCDIR "/data/colors.png").toString() << 120.0 << 120.0 << false << false << "";
+ QTest::newRow("local async") << QUrl::fromLocalFile(SRCDIR "/data/colors1.png").toString() << 120.0 << 120.0 << false << true << "";
+ QTest::newRow("local not found") << QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString() << 0.0 << 0.0 << false
+ << false << "QML Image (file::2:1) Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file.png").toString();
+ QTest::newRow("local async not found") << QUrl::fromLocalFile(SRCDIR "/data/no-such-file-1.png").toString() << 0.0 << 0.0 << false
+ << true << "QML Image (file::2:1) Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/no-such-file-1.png").toString();
+ QTest::newRow("remote") << SERVER_ADDR "/colors.png" << 120.0 << 120.0 << true << false << "";
+ QTest::newRow("remote svg") << SERVER_ADDR "/heart.svg" << 550.0 << 500.0 << true << false << "";
+ QTest::newRow("remote not found") << SERVER_ADDR "/no-such-file.png" << 0.0 << 0.0 << true
+ << false << "QML Image (file::2:1) Error downloading " SERVER_ADDR "/no-such-file.png - server replied: Not found";
+
}
void tst_qdeclarativeimage::imageSource()
{
QFETCH(QString, source);
+ QFETCH(qreal, width);
+ QFETCH(qreal, height);
QFETCH(bool, remote);
QFETCH(bool, async);
QFETCH(QString, error);
@@ -142,12 +152,15 @@ void tst_qdeclarativeimage::imageSource()
if (!error.isEmpty())
QTest::ignoreMessage(QtWarningMsg, error.toUtf8());
- QString componentStr = "import Qt 4.6\nImage { source: \"" + source + "\"; asynchronous: "
+ QString componentStr = "import Qt 4.7\nImage { source: \"" + source + "\"; asynchronous: "
+ (async ? QLatin1String("true") : QLatin1String("false")) + " }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
QVERIFY(obj != 0);
+
+ if (async)
+ QVERIFY(obj->asynchronous() == true);
if (remote || async)
TRY_WAIT(obj->status() == QDeclarativeImage::Loading);
@@ -156,8 +169,8 @@ void tst_qdeclarativeimage::imageSource()
if (error.isEmpty()) {
TRY_WAIT(obj->status() == QDeclarativeImage::Ready);
- QCOMPARE(obj->width(), 120.);
- QCOMPARE(obj->height(), 120.);
+ QCOMPARE(obj->width(), width);
+ QCOMPARE(obj->height(), height);
QCOMPARE(obj->fillMode(), QDeclarativeImage::Stretch);
QCOMPARE(obj->progress(), 1.0);
} else {
@@ -169,7 +182,7 @@ void tst_qdeclarativeimage::imageSource()
void tst_qdeclarativeimage::clearSource()
{
- QString componentStr = "import Qt 4.6\nImage { source: srcImage }";
+ QString componentStr = "import Qt 4.7\nImage { source: srcImage }";
QDeclarativeContext *ctxt = engine.rootContext();
ctxt->setContextProperty("srcImage", QUrl::fromLocalFile(SRCDIR "/data/colors.png"));
QDeclarativeComponent component(&engine);
@@ -191,7 +204,7 @@ void tst_qdeclarativeimage::clearSource()
void tst_qdeclarativeimage::resized()
{
- QString componentStr = "import Qt 4.6\nImage { source: \"" SRCDIR "/data/colors.png\"; width: 300; height: 300 }";
+ QString componentStr = "import Qt 4.7\nImage { source: \"" SRCDIR "/data/colors.png\"; width: 300; height: 300 }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
@@ -199,13 +212,34 @@ void tst_qdeclarativeimage::resized()
QCOMPARE(obj->width(), 300.);
QCOMPARE(obj->height(), 300.);
QCOMPARE(obj->fillMode(), QDeclarativeImage::Stretch);
-
delete obj;
}
+
+void tst_qdeclarativeimage::preserveAspectRatio()
+{
+ QDeclarativeView *canvas = new QDeclarativeView(0);
+ canvas->show();
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/aspectratio.qml"));
+ QDeclarativeImage *image = qobject_cast<QDeclarativeImage*>(canvas->rootObject());
+ QVERIFY(image != 0);
+ image->setWidth(80.0);
+ QCOMPARE(image->width(), 80.);
+ QCOMPARE(image->height(), 80.);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/aspectratio.qml"));
+ image = qobject_cast<QDeclarativeImage*>(canvas->rootObject());
+ image->setHeight(60.0);
+ QVERIFY(image != 0);
+ QCOMPARE(image->height(), 60.);
+ QCOMPARE(image->width(), 60.);
+ delete canvas;
+}
+
void tst_qdeclarativeimage::smooth()
{
- QString componentStr = "import Qt 4.6\nImage { source: \"" SRCDIR "/data/colors.png\"; smooth: true; width: 300; height: 300 }";
+ QString componentStr = "import Qt 4.7\nImage { source: \"" SRCDIR "/data/colors.png\"; smooth: true; width: 300; height: 300 }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
@@ -220,7 +254,7 @@ void tst_qdeclarativeimage::smooth()
void tst_qdeclarativeimage::pixmap()
{
- QString componentStr = "import Qt 4.6\nImage { pixmap: testPixmap }";
+ QString componentStr = "import Qt 4.7\nImage { pixmap: testPixmap }";
QPixmap pixmap;
QDeclarativeContext *ctxt = engine.rootContext();
@@ -248,6 +282,64 @@ void tst_qdeclarativeimage::pixmap()
delete obj;
}
+void tst_qdeclarativeimage::svg()
+{
+ QString src = QUrl::fromLocalFile(SRCDIR "/data/heart.svg").toString();
+ QString componentStr = "import Qt 4.7\nImage { source: \"" + src + "\"; sourceSize.width: 300; sourceSize.height: 300 }";
+ QDeclarativeComponent component(&engine);
+ component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+ QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
+ QVERIFY(obj != 0);
+ QCOMPARE(obj->pixmap().width(), 300);
+ QCOMPARE(obj->pixmap().height(), 300);
+ QCOMPARE(obj->width(), 550.0);
+ QCOMPARE(obj->height(), 500.0);
+#if defined(Q_OS_MAC)
+ QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-mac.png"));
+#elif defined(Q_OS_WIN32)
+ QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart-win32.png"));
+#else
+ QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart.png"));
+#endif
+
+ obj->setSourceSize(QSize(200,200));
+
+ QCOMPARE(obj->pixmap().width(), 200);
+ QCOMPARE(obj->pixmap().height(), 200);
+ QCOMPARE(obj->width(), 550.0);
+ QCOMPARE(obj->height(), 500.0);
+#if defined(Q_OS_MAC)
+ QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-mac.png"));
+#elif defined(Q_OS_WIN32)
+ QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200-win32.png"));
+#else
+ QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/heart200.png"));
+#endif
+ delete obj;
+}
+
+void tst_qdeclarativeimage::big()
+{
+ // If the JPEG loader does not implement scaling efficiently, it would
+ // have to build a 400 MB image. That would be a bug in the JPEG loader.
+
+ QString src = QUrl::fromLocalFile(SRCDIR "/data/big.jpeg").toString();
+ QString componentStr = "import Qt 4.7\nImage { source: \"" + src + "\"; sourceSize.width: 256; sourceSize.height: 256 }";
+
+ QDeclarativeComponent component(&engine);
+ component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+ QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
+ QVERIFY(obj != 0);
+ QCOMPARE(obj->pixmap().width(), 256);
+ QCOMPARE(obj->pixmap().height(), 256);
+ QCOMPARE(obj->width(), 10240.0);
+ QCOMPARE(obj->height(), 10240.0);
+ QCOMPARE(obj->pixmap(), QPixmap(SRCDIR "/data/big256.png"));
+
+ delete obj;
+}
+
+
QTEST_MAIN(tst_qdeclarativeimage)
#include "tst_qdeclarativeimage.moc"
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro b/tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro
index a4d3eb2..22be991 100644
--- a/tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro
+++ b/tests/auto/declarative/qdeclarativeimageprovider/qdeclarativeimageprovider.pro
@@ -10,3 +10,6 @@ SOURCES += tst_qdeclarativeimageprovider.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
index c5bdfc8..aca951b 100644
--- a/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
+++ b/tests/auto/declarative/qdeclarativeimageprovider/tst_qdeclarativeimageprovider.cpp
@@ -43,6 +43,7 @@
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativeimageprovider.h>
#include <private/qdeclarativeimage_p.h>
+#include <QImageReader>
// QDeclarativeImageProvider::request() is run in an idle thread where possible
// Be generous in our timeout.
@@ -76,28 +77,36 @@ private:
class TestProvider : public QDeclarativeImageProvider
{
public:
- QImage request(const QString &id) {
- QImage image;
- image.load(SRCDIR "/data/" + id);
- return image;
+ QImage request(const QString &id, QSize *size, const QSize& requested_size) {
+ QImageReader io(SRCDIR "/data/" + id);
+ if (size) *size = io.size();
+ if (requested_size.isValid())
+ io.setScaledSize(requested_size);
+ return io.read();
}
};
void tst_qdeclarativeimageprovider::imageSource_data()
{
QTest::addColumn<QString>("source");
+ QTest::addColumn<QString>("properties");
+ QTest::addColumn<QSize>("size");
QTest::addColumn<QString>("error");
- QTest::newRow("exists") << "image://test/exists.png" << "";
- QTest::newRow("missing") << "image://test/no-such-file.png"
- << "\"Failed to get image from provider: image://test/no-such-file.png\" ";
- QTest::newRow("unknown provider") << "image://bogus/exists.png"
- << "\"Failed to get image from provider: image://bogus/exists.png\" ";
+ QTest::newRow("exists") << "image://test/exists.png" << "" << QSize(100,100) << "";
+ QTest::newRow("scaled") << "image://test/exists.png" << "sourceSize: \"80x30\"" << QSize(80,30) << "";
+ QTest::newRow("missing") << "image://test/no-such-file.png" << "" << QSize()
+ << "QML Image (file::2:1) Failed to get image from provider: image://test/no-such-file.png";
+ QTest::newRow("unknown provider") << "image://bogus/exists.png" << "" << QSize()
+ << "QML Image (file::2:1) Failed to get image from provider: image://bogus/exists.png";
+
}
void tst_qdeclarativeimageprovider::imageSource()
{
QFETCH(QString, source);
+ QFETCH(QString, properties);
+ QFETCH(QSize, size);
QFETCH(QString, error);
if (!error.isEmpty())
@@ -106,7 +115,7 @@ void tst_qdeclarativeimageprovider::imageSource()
engine.addImageProvider("test", new TestProvider);
QVERIFY(engine.imageProvider("test") != 0);
- QString componentStr = "import Qt 4.6\nImage { source: \"" + source + "\" }";
+ QString componentStr = "import Qt 4.7\nImage { source: \"" + source + "\"; " + properties + " }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
@@ -118,8 +127,10 @@ void tst_qdeclarativeimageprovider::imageSource()
if (error.isEmpty()) {
TRY_WAIT(obj->status() == QDeclarativeImage::Ready);
- QCOMPARE(obj->width(), 100.);
- QCOMPARE(obj->height(), 100.);
+ QCOMPARE(obj->width(), 100.0);
+ QCOMPARE(obj->height(), 100.0);
+ QCOMPARE(obj->pixmap().width(), size.width());
+ QCOMPARE(obj->pixmap().height(), size.height());
QCOMPARE(obj->fillMode(), QDeclarativeImage::Stretch);
QCOMPARE(obj->progress(), 1.0);
} else {
@@ -135,7 +146,7 @@ void tst_qdeclarativeimageprovider::removeProvider()
QVERIFY(engine.imageProvider("test2") != 0);
// add provider, confirm it works
- QString componentStr = "import Qt 4.6\nImage { source: \"image://test2/exists1.png\" }";
+ QString componentStr = "import Qt 4.7\nImage { source: \"image://test2/exists1.png\" }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeImage *obj = qobject_cast<QDeclarativeImage*>(component.create());
@@ -147,7 +158,8 @@ void tst_qdeclarativeimageprovider::removeProvider()
QCOMPARE(obj->width(), 100.0);
// remove the provider and confirm
- QString error("\"Failed to get image from provider: image://test2/exists2.png\" ");
+ QString error("QML Image (file::2:1) Failed to get image from provider: image://test2/exists2.png");
+
QTest::ignoreMessage(QtWarningMsg, error.toUtf8());
engine.removeImageProvider("test2");
diff --git a/tests/auto/declarative/qdeclarativeinfo/data/NestedObject.qml b/tests/auto/declarative/qdeclarativeinfo/data/NestedObject.qml
index cd5b426..548e498 100644
--- a/tests/auto/declarative/qdeclarativeinfo/data/NestedObject.qml
+++ b/tests/auto/declarative/qdeclarativeinfo/data/NestedObject.qml
@@ -1,7 +1,7 @@
import Qt 4.6
QtObject {
- property var nested
+ property variant nested
nested: QtObject {}
}
diff --git a/tests/auto/declarative/qdeclarativeinfo/data/nestedQmlObject.qml b/tests/auto/declarative/qdeclarativeinfo/data/nestedQmlObject.qml
index a2ce78a..eac0b73 100644
--- a/tests/auto/declarative/qdeclarativeinfo/data/nestedQmlObject.qml
+++ b/tests/auto/declarative/qdeclarativeinfo/data/nestedQmlObject.qml
@@ -1,8 +1,8 @@
import Qt 4.6
QtObject {
- property var nested
+ property variant nested
nested: NestedObject { }
- property var nested2: nested.nested
+ property variant nested2: nested.nested
}
diff --git a/tests/auto/declarative/qdeclarativeinfo/data/qmlObject.qml b/tests/auto/declarative/qdeclarativeinfo/data/qmlObject.qml
index ce05f89..176636a 100644
--- a/tests/auto/declarative/qdeclarativeinfo/data/qmlObject.qml
+++ b/tests/auto/declarative/qdeclarativeinfo/data/qmlObject.qml
@@ -1,7 +1,7 @@
import Qt 4.6
QtObject {
- property var nested
+ property variant nested
nested: QtObject {
}
diff --git a/tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro b/tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro
index 015c094..bb54d6c 100644
--- a/tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro
+++ b/tests/auto/declarative/qdeclarativeinfo/qdeclarativeinfo.pro
@@ -5,3 +5,6 @@ macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativeinfo.cpp
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeinstruction/qdeclarativeinstruction.pro b/tests/auto/declarative/qdeclarativeinstruction/qdeclarativeinstruction.pro
index b8f7d27..0daa9e5 100644
--- a/tests/auto/declarative/qdeclarativeinstruction/qdeclarativeinstruction.pro
+++ b/tests/auto/declarative/qdeclarativeinstruction/qdeclarativeinstruction.pro
@@ -4,3 +4,6 @@ SOURCES += tst_qdeclarativeinstruction.cpp
macx:CONFIG -= app_bundle
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
index 636c5e3..f4df130 100644
--- a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
+++ b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
@@ -93,7 +93,7 @@ void tst_qdeclarativeinstruction::dump()
QDeclarativeInstruction i;
i.line = 2;
i.type = QDeclarativeInstruction::SetId;
- i.setId.value = 0;
+ i.setId.value = data->primitives.count() - 1;
i.setId.index = 0;
data->bytecode << i;
}
@@ -171,17 +171,17 @@ void tst_qdeclarativeinstruction::dump()
i.line = 10;
i.type = QDeclarativeInstruction::StoreString;
i.storeString.propertyIndex = 7;
- i.storeString.value = 1;
+ i.storeString.value = data->primitives.count() - 1;
data->bytecode << i;
}
{
- data->primitives << "http://www.nokia.com";
+ data->urls << QUrl("http://www.nokia.com");
QDeclarativeInstruction i;
i.line = 11;
i.type = QDeclarativeInstruction::StoreUrl;
i.storeUrl.propertyIndex = 8;
- i.storeUrl.value = 2;
+ i.storeUrl.value = data->urls.count() - 1;
data->bytecode << i;
}
@@ -290,7 +290,7 @@ void tst_qdeclarativeinstruction::dump()
i.line = 23;
i.type = QDeclarativeInstruction::StoreVariant;
i.storeString.propertyIndex = 20;
- i.storeString.value = 3;
+ i.storeString.value = data->primitives.count() - 1;
data->bytecode << i;
}
@@ -326,7 +326,7 @@ void tst_qdeclarativeinstruction::dump()
i.line = 27;
i.type = QDeclarativeInstruction::StoreSignal;
i.storeSignal.signalIndex = 2;
- i.storeSignal.value = 4;
+ i.storeSignal.value = data->primitives.count() - 1;
data->bytecode << i;
}
@@ -507,8 +507,34 @@ void tst_qdeclarativeinstruction::dump()
{
QDeclarativeInstruction i;
+ i.line = 48;
+ i.type = QDeclarativeInstruction::StoreImportedScript;
+ i.storeScript.value = 2;
+ data->bytecode << i;
+ }
+
+ {
+ QDeclarativeInstruction i;
i.line = 50;
- i.type = (QDeclarativeInstruction::Type)(QDeclarativeInstruction::Defer + 1); // Non-existant
+ i.type = (QDeclarativeInstruction::Type)(1234); // Non-existant
+ data->bytecode << i;
+ }
+
+ {
+ QDeclarativeInstruction i;
+ i.line = 51;
+ i.type = QDeclarativeInstruction::StoreVariantInteger;
+ i.storeInteger.value = 11;
+ i.storeInteger.propertyIndex = 32;
+ data->bytecode << i;
+ }
+
+ {
+ QDeclarativeInstruction i;
+ i.line = 52;
+ i.type = QDeclarativeInstruction::StoreVariantDouble;
+ i.storeDouble.value = 33.7;
+ i.storeDouble.propertyIndex = 19;
data->bytecode << i;
}
@@ -518,6 +544,7 @@ void tst_qdeclarativeinstruction::dump()
<< "-------------------------------------------------------------------------------"
<< "0\t\t0\tINIT\t\t\t0\t3\t-1\t-1"
<< "1\t\t1\tCREATE\t\t\t0\t\t\t\"Test\""
+ << "1\t\t1\tCREATE_SIMPLE\t\t-1"
<< "2\t\t2\tSETID\t\t\t0\t\t\t\"testId\""
<< "3\t\t3\tSET_DEFAULT"
<< "4\t\t4\tCREATE_COMPONENT\t3"
@@ -527,7 +554,7 @@ void tst_qdeclarativeinstruction::dump()
<< "8\t\t8\tSTORE_INTEGER\t\t5\t9"
<< "9\t\t9\tSTORE_BOOL\t\t6\ttrue"
<< "10\t\t10\tSTORE_STRING\t\t7\t1\t\t\"Test String\""
- << "11\t\t11\tSTORE_URL\t\t8\t2\t\t\"http://www.nokia.com\""
+ << "11\t\t11\tSTORE_URL\t\t8\t0\t\tQUrl(\"http://www.nokia.com\") "
<< "12\t\t12\tSTORE_COLOR\t\t9\t\t\t\"ff00ff00\""
<< "13\t\t13\tSTORE_DATE\t\t10\t9"
<< "14\t\t14\tSTORE_TIME\t\t11\t33"
@@ -539,11 +566,11 @@ void tst_qdeclarativeinstruction::dump()
<< "20\t\t20\tSTORE_RECT\t\t17\t2"
<< "21\t\t21\tSTORE_RECTF\t\t18\t19"
<< "22\t\t22\tSTORE_VECTOR3D\t\t19\t9"
- << "23\t\t23\tSTORE_VARIANT\t\t20\t3\t\t\"color(1, 1, 1, 1)\""
+ << "23\t\t23\tSTORE_VARIANT\t\t20\t2\t\t\"color(1, 1, 1, 1)\""
<< "24\t\t24\tSTORE_OBJECT\t\t21"
<< "25\t\t25\tSTORE_VARIANT_OBJECT\t22"
<< "26\t\t26\tSTORE_INTERFACE\t\t23"
- << "27\t\t27\tSTORE_SIGNAL\t\t2\t4\t\t\"console.log(1921)\""
+ << "27\t\t27\tSTORE_SIGNAL\t\t2\t3\t\t\"console.log(1921)\""
<< "28\t\t28\tSTORE_SCRIPT\t\t2"
<< "29\t\t29\tSTORE_SCRIPT_STRING\t24\t3\t1"
<< "30\t\t30\tASSIGN_SIGNAL_OBJECT\t0\t\t\t\"mySignal\""
@@ -564,7 +591,10 @@ void tst_qdeclarativeinstruction::dump()
<< "45\t\t47\tPOP_VALUE\t\t35\t8"
<< "46\t\t48\tDEFER\t\t\t7"
<< "47\t\tNA\tDEFER\t\t\t7"
- << "48\t\t50\tXXX UNKOWN INSTRUCTION\t47"
+ << "48\t\t48\tSTORE_IMPORTED_SCRIPT\t2"
+ << "49\t\t50\tXXX UNKOWN INSTRUCTION\t1234"
+ << "50\t\t51\tSTORE_VARIANT_INTEGER\t\t32\t11"
+ << "51\t\t52\tSTORE_VARIANT_DOUBLE\t\t19\t33.7"
<< "-------------------------------------------------------------------------------";
messages = QStringList();
diff --git a/tests/auto/declarative/qdeclarativeitem/data/childrenProperty.qml b/tests/auto/declarative/qdeclarativeitem/data/childrenProperty.qml
new file mode 100644
index 0000000..dcd4061
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeitem/data/childrenProperty.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+
+Item {
+ id: root
+
+ property bool test1: root.children.length == 3
+ property bool test2: root.children[0] == item1
+ property bool test3: root.children[1] == item2
+ property bool test4: root.children[2] == item3
+ property bool test5: root.children[3] == null
+
+ children: [ Item { id: item1 }, Item { id: item2 }, Item { id: item3 } ]
+}
+
diff --git a/tests/auto/declarative/qdeclarativeitem/data/keynavigation.qml b/tests/auto/declarative/qdeclarativeitem/data/keynavigation.qml
deleted file mode 100644
index 9281a17..0000000
--- a/tests/auto/declarative/qdeclarativeitem/data/keynavigation.qml
+++ /dev/null
@@ -1,39 +0,0 @@
-import Qt 4.6
-
-Grid {
- columns: 2
- width: 100; height: 100
- Rectangle {
- id: item1
- objectName: "item1"
- focus: true
- width: 50; height: 50
- color: focus ? "red" : "lightgray"
- KeyNavigation.right: item2
- KeyNavigation.down: item3
- }
- Rectangle {
- id: item2
- objectName: "item2"
- width: 50; height: 50
- color: focus ? "red" : "lightgray"
- KeyNavigation.left: item1
- KeyNavigation.down: item4
- }
- Rectangle {
- id: item3
- objectName: "item3"
- width: 50; height: 50
- color: focus ? "red" : "lightgray"
- KeyNavigation.right: item4
- KeyNavigation.up: item1
- }
- Rectangle {
- id: item4
- objectName: "item4"
- width: 50; height: 50
- color: focus ? "red" : "lightgray"
- KeyNavigation.left: item3
- KeyNavigation.up: item2
- }
-}
diff --git a/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml b/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml
new file mode 100644
index 0000000..08da901
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeitem/data/keynavigationtest.qml
@@ -0,0 +1,47 @@
+import Qt 4.6
+
+Grid {
+ columns: 2
+ width: 100; height: 100
+ Rectangle {
+ id: item1
+ objectName: "item1"
+ focus: true
+ width: 50; height: 50
+ color: focus ? "red" : "lightgray"
+ KeyNavigation.right: item2
+ KeyNavigation.down: item3
+ KeyNavigation.tab: item2
+ KeyNavigation.backtab: item4
+ }
+ Rectangle {
+ id: item2
+ objectName: "item2"
+ width: 50; height: 50
+ color: focus ? "red" : "lightgray"
+ KeyNavigation.left: item1
+ KeyNavigation.down: item4
+ KeyNavigation.tab: item3
+ KeyNavigation.backtab: item1
+ }
+ Rectangle {
+ id: item3
+ objectName: "item3"
+ width: 50; height: 50
+ color: focus ? "red" : "lightgray"
+ KeyNavigation.right: item4
+ KeyNavigation.up: item1
+ KeyNavigation.tab: item4
+ KeyNavigation.backtab: item2
+ }
+ Rectangle {
+ id: item4
+ objectName: "item4"
+ width: 50; height: 50
+ color: focus ? "red" : "lightgray"
+ KeyNavigation.left: item3
+ KeyNavigation.up: item2
+ KeyNavigation.tab: item1
+ KeyNavigation.backtab: item3
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeitem/data/keys.qml b/tests/auto/declarative/qdeclarativeitem/data/keys.qml
deleted file mode 100644
index f3c1f7b..0000000
--- a/tests/auto/declarative/qdeclarativeitem/data/keys.qml
+++ /dev/null
@@ -1,18 +0,0 @@
-import Qt 4.6
-
-Item {
- focus: true
- Keys.onPressed: keysTestObject.keyPress(event.key, event.text, event.modifiers)
- Keys.onReleased: { keysTestObject.keyRelease(event.key, event.text, event.modifiers); event.accepted = true; }
- Keys.onReturnPressed: keysTestObject.keyPress(event.key, "Return", event.modifiers)
- Keys.onDigit0Pressed: keysTestObject.keyPress(event.key, event.text, event.modifiers)
- Keys.onDigit9Pressed: { event.accepted = false; keysTestObject.keyPress(event.key, event.text, event.modifiers) }
- Keys.forwardTo: [ item2 ]
- Keys.enabled: enableKeyHanding
-
- Item {
- id: item2
- Keys.onPressed: keysTestObject.forwardedKey(event.key)
- Keys.onReleased: keysTestObject.forwardedKey(event.key)
- }
-}
diff --git a/tests/auto/declarative/qdeclarativeitem/data/keystest.qml b/tests/auto/declarative/qdeclarativeitem/data/keystest.qml
new file mode 100644
index 0000000..7d34fc8
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeitem/data/keystest.qml
@@ -0,0 +1,20 @@
+import Qt 4.6
+
+Item {
+ focus: true
+ Keys.onPressed: keysTestObject.keyPress(event.key, event.text, event.modifiers)
+ Keys.onReleased: { keysTestObject.keyRelease(event.key, event.text, event.modifiers); event.accepted = true; }
+ Keys.onReturnPressed: keysTestObject.keyPress(event.key, "Return", event.modifiers)
+ Keys.onDigit0Pressed: keysTestObject.keyPress(event.key, event.text, event.modifiers)
+ Keys.onDigit9Pressed: { event.accepted = false; keysTestObject.keyPress(event.key, event.text, event.modifiers) }
+ Keys.onTabPressed: keysTestObject.keyPress(event.key, "Tab", event.modifiers)
+ Keys.onBacktabPressed: keysTestObject.keyPress(event.key, "Backtab", event.modifiers)
+ Keys.forwardTo: [ item2 ]
+ Keys.enabled: enableKeyHanding
+
+ Item {
+ id: item2
+ Keys.onPressed: keysTestObject.forwardedKey(event.key)
+ Keys.onReleased: keysTestObject.forwardedKey(event.key)
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeitem/data/mapCoordinates.qml b/tests/auto/declarative/qdeclarativeitem/data/mapCoordinates.qml
new file mode 100644
index 0000000..40a2106
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeitem/data/mapCoordinates.qml
@@ -0,0 +1,43 @@
+import Qt 4.6
+
+Item {
+ id: root; objectName: "root"
+ width: 200; height: 200
+
+ Item { id: itemA; objectName: "itemA"; x: 50; y: 50 }
+
+ Item {
+ x: 50; y: 50
+ Item { id: itemB; objectName: "itemB"; x: 100; y: 100 }
+ }
+
+ function mapAToB(x, y) {
+ var pos = itemA.mapToItem(itemB, x, y)
+ return Qt.point(pos.x, pos.y)
+ }
+
+ function mapAFromB(x, y) {
+ var pos = itemA.mapFromItem(itemB, x, y)
+ return Qt.point(pos.x, pos.y)
+ }
+
+ function mapAToNull(x, y) {
+ var pos = itemA.mapToItem(null, x, y)
+ return Qt.point(pos.x, pos.y)
+ }
+
+ function mapAFromNull(x, y) {
+ var pos = itemA.mapFromItem(null, x, y)
+ return Qt.point(pos.x, pos.y)
+ }
+
+ function checkMapAToInvalid(x, y) {
+ var pos = itemA.mapToItem(1122, x, y)
+ return pos.x == undefined && pos.y == undefined
+ }
+
+ function checkMapAFromInvalid(x, y) {
+ var pos = itemA.mapFromItem(1122, x, y)
+ return pos.x == undefined && pos.y == undefined
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeitem/data/propertychanges.qml b/tests/auto/declarative/qdeclarativeitem/data/propertychanges.qml
new file mode 100644
index 0000000..5f97408
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeitem/data/propertychanges.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+
+Item {
+ Item {
+ objectName: "item"
+ }
+ Item {
+ objectName: "parentItem"
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeitem/data/resourcesProperty.qml b/tests/auto/declarative/qdeclarativeitem/data/resourcesProperty.qml
new file mode 100644
index 0000000..fa299be
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeitem/data/resourcesProperty.qml
@@ -0,0 +1,21 @@
+import Qt 4.6
+
+Item {
+ id: root
+
+ property bool test1
+ property bool test2
+ property bool test3
+ property bool test4
+ property bool test5
+
+ Component.onCompleted: {
+ test1 = (root.resources.length >= 3)
+ test2 = root.resources[0] == item1
+ test3 = root.resources[1] == item2
+ test4 = root.resources[2] == item3
+ test5 = root.resources[10] == null
+ }
+
+ resources: [ Item { id: item1 }, Item { id: item2 }, Item { id: item3 } ]
+}
diff --git a/tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro b/tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro
index 0eb2141..e834a4e 100644
--- a/tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro
+++ b/tests/auto/declarative/qdeclarativeitem/qdeclarativeitem.pro
@@ -5,3 +5,6 @@ macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativeitem.cpp
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
index 36dcf1f..4400116 100644
--- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
+++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
@@ -58,6 +58,14 @@ private slots:
void keyNavigation();
void smooth();
void clip();
+ void mapCoordinates();
+ void mapCoordinates_data();
+ void propertyChanges();
+ void transforms();
+ void transforms_data();
+
+ void childrenProperty();
+ void resourcesProperty();
private:
template<typename T>
@@ -117,7 +125,7 @@ void tst_QDeclarativeItem::keys()
canvas->rootContext()->setContextProperty("enableKeyHanding", QVariant(true));
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/keys.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/keystest.qml"));
canvas->show();
qApp->processEvents();
@@ -176,6 +184,26 @@ void tst_QDeclarativeItem::keys()
testObject->reset();
+ key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1);
+ QApplication::sendEvent(canvas, &key);
+ QCOMPARE(testObject->mKey, int(Qt::Key_Tab));
+ QCOMPARE(testObject->mForwardedKey, int(Qt::Key_Tab));
+ QCOMPARE(testObject->mText, QLatin1String("Tab"));
+ QVERIFY(testObject->mModifiers == Qt::NoModifier);
+ QVERIFY(key.isAccepted());
+
+ testObject->reset();
+
+ key = QKeyEvent(QEvent::KeyPress, Qt::Key_Backtab, Qt::NoModifier, "", false, 1);
+ QApplication::sendEvent(canvas, &key);
+ QCOMPARE(testObject->mKey, int(Qt::Key_Backtab));
+ QCOMPARE(testObject->mForwardedKey, int(Qt::Key_Backtab));
+ QCOMPARE(testObject->mText, QLatin1String("Backtab"));
+ QVERIFY(testObject->mModifiers == Qt::NoModifier);
+ QVERIFY(key.isAccepted());
+
+ testObject->reset();
+
canvas->rootContext()->setContextProperty("enableKeyHanding", QVariant(false));
key = QKeyEvent(QEvent::KeyPress, Qt::Key_Return, Qt::NoModifier, "", false, 1);
@@ -192,7 +220,7 @@ void tst_QDeclarativeItem::keyNavigation()
QDeclarativeView *canvas = new QDeclarativeView(0);
canvas->setFixedSize(240,320);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/keynavigation.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/keynavigationtest.qml"));
canvas->show();
qApp->processEvents();
@@ -240,14 +268,34 @@ void tst_QDeclarativeItem::keyNavigation()
item = findItem<QDeclarativeItem>(canvas->rootObject(), "item1");
QVERIFY(item);
QVERIFY(item->hasFocus());
+
+ // tab
+ key = QKeyEvent(QEvent::KeyPress, Qt::Key_Tab, Qt::NoModifier, "", false, 1);
+ QApplication::sendEvent(canvas, &key);
+ QVERIFY(key.isAccepted());
+
+ item = findItem<QDeclarativeItem>(canvas->rootObject(), "item2");
+ QVERIFY(item);
+ QVERIFY(item->hasFocus());
+
+ // backtab
+ key = QKeyEvent(QEvent::KeyPress, Qt::Key_Backtab, Qt::NoModifier, "", false, 1);
+ QApplication::sendEvent(canvas, &key);
+ QVERIFY(key.isAccepted());
+
+ item = findItem<QDeclarativeItem>(canvas->rootObject(), "item1");
+ QVERIFY(item);
+ QVERIFY(item->hasFocus());
+
+ delete canvas;
}
void tst_QDeclarativeItem::smooth()
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; Item { smooth: false; }", QUrl::fromLocalFile(""));
+ component.setData("import Qt 4.7; Item { smooth: false; }", QUrl::fromLocalFile(""));
QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(component.create());
- QSignalSpy spy(item, SIGNAL(smoothChanged()));
+ QSignalSpy spy(item, SIGNAL(smoothChanged(bool)));
QVERIFY(item);
QVERIFY(!item->smooth());
@@ -255,6 +303,10 @@ void tst_QDeclarativeItem::smooth()
item->setSmooth(true);
QVERIFY(item->smooth());
QCOMPARE(spy.count(),1);
+ QList<QVariant> arguments = spy.first();
+ QVERIFY(arguments.count() == 1);
+ QVERIFY(arguments.at(0).toBool() == true);
+
item->setSmooth(true);
QCOMPARE(spy.count(),1);
@@ -263,20 +315,27 @@ void tst_QDeclarativeItem::smooth()
QCOMPARE(spy.count(),2);
item->setSmooth(false);
QCOMPARE(spy.count(),2);
+
+ delete item;
}
void tst_QDeclarativeItem::clip()
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6\nItem { clip: false\n }", QUrl::fromLocalFile(""));
+ component.setData("import Qt 4.7\nItem { clip: false\n }", QUrl::fromLocalFile(""));
QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(component.create());
- QSignalSpy spy(item, SIGNAL(clipChanged()));
+ QSignalSpy spy(item, SIGNAL(clipChanged(bool)));
QVERIFY(item);
QVERIFY(!item->clip());
item->setClip(true);
QVERIFY(item->clip());
+
+ QList<QVariant> arguments = spy.first();
+ QVERIFY(arguments.count() == 1);
+ QVERIFY(arguments.at(0).toBool() == true);
+
QCOMPARE(spy.count(),1);
item->setClip(true);
QCOMPARE(spy.count(),1);
@@ -286,6 +345,193 @@ void tst_QDeclarativeItem::clip()
QCOMPARE(spy.count(),2);
item->setClip(false);
QCOMPARE(spy.count(),2);
+
+ delete item;
+}
+
+void tst_QDeclarativeItem::mapCoordinates()
+{
+ QFETCH(int, x);
+ QFETCH(int, y);
+
+ QDeclarativeView *canvas = new QDeclarativeView(0);
+ canvas->setFixedSize(300, 300);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/mapCoordinates.qml"));
+ canvas->show();
+ qApp->processEvents();
+
+ QDeclarativeItem *root = qobject_cast<QDeclarativeItem*>(canvas->rootObject());
+ QVERIFY(root != 0);
+ QDeclarativeItem *a = findItem<QDeclarativeItem>(canvas->rootObject(), "itemA");
+ QVERIFY(a != 0);
+ QDeclarativeItem *b = findItem<QDeclarativeItem>(canvas->rootObject(), "itemB");
+ QVERIFY(b != 0);
+
+ QVariant result;
+
+ QVERIFY(QMetaObject::invokeMethod(root, "mapAToB",
+ Q_RETURN_ARG(QVariant, result), Q_ARG(QVariant, x), Q_ARG(QVariant, y)));
+ QCOMPARE(result.value<QPointF>(), qobject_cast<QGraphicsItem*>(a)->mapToItem(b, x, y));
+
+ QVERIFY(QMetaObject::invokeMethod(root, "mapAFromB",
+ Q_RETURN_ARG(QVariant, result), Q_ARG(QVariant, x), Q_ARG(QVariant, y)));
+ QCOMPARE(result.value<QPointF>(), qobject_cast<QGraphicsItem*>(a)->mapFromItem(b, x, y));
+
+ QVERIFY(QMetaObject::invokeMethod(root, "mapAToNull",
+ Q_RETURN_ARG(QVariant, result), Q_ARG(QVariant, x), Q_ARG(QVariant, y)));
+ QCOMPARE(result.value<QPointF>(), qobject_cast<QGraphicsItem*>(a)->mapToScene(x, y));
+
+ QVERIFY(QMetaObject::invokeMethod(root, "mapAFromNull",
+ Q_RETURN_ARG(QVariant, result), Q_ARG(QVariant, x), Q_ARG(QVariant, y)));
+ QCOMPARE(result.value<QPointF>(), qobject_cast<QGraphicsItem*>(a)->mapFromScene(x, y));
+
+ QTest::ignoreMessage(QtWarningMsg, "mapToItem() given argument \"1122\" which is neither null nor an Item");
+ QVERIFY(QMetaObject::invokeMethod(root, "checkMapAToInvalid",
+ Q_RETURN_ARG(QVariant, result), Q_ARG(QVariant, x), Q_ARG(QVariant, y)));
+ QVERIFY(result.toBool());
+
+ QTest::ignoreMessage(QtWarningMsg, "mapFromItem() given argument \"1122\" which is neither null nor an Item");
+ QVERIFY(QMetaObject::invokeMethod(root, "checkMapAFromInvalid",
+ Q_RETURN_ARG(QVariant, result), Q_ARG(QVariant, x), Q_ARG(QVariant, y)));
+ QVERIFY(result.toBool());
+
+ delete canvas;
+}
+
+void tst_QDeclarativeItem::mapCoordinates_data()
+{
+ QTest::addColumn<int>("x");
+ QTest::addColumn<int>("y");
+
+ for (int i=-20; i<=20; i+=10)
+ QTest::newRow(QTest::toString(i)) << i << i;
+}
+
+void tst_QDeclarativeItem::transforms_data()
+{
+ QTest::addColumn<QByteArray>("qml");
+ QTest::addColumn<QMatrix>("matrix");
+ QTest::newRow("translate") << QByteArray("Translate { x: 10; y: 20 }")
+ << QMatrix(1,0,0,1,10,20);
+ QTest::newRow("rotation") << QByteArray("Rotation { angle: 90 }")
+ << QMatrix(0,1,-1,0,0,0);
+ QTest::newRow("scale") << QByteArray("Scale { xScale: 1.5; yScale: -2 }")
+ << QMatrix(1.5,0,0,-2,0,0);
+ QTest::newRow("sequence") << QByteArray("[ Translate { x: 10; y: 20 }, Scale { xScale: 1.5; yScale: -2 } ]")
+ << QMatrix(1,0,0,1,10,20) * QMatrix(1.5,0,0,-2,0,0);
+}
+
+void tst_QDeclarativeItem::transforms()
+{
+ QFETCH(QByteArray, qml);
+ QFETCH(QMatrix, matrix);
+ QDeclarativeComponent component(&engine);
+ component.setData("import Qt 4.7\nItem { transform: "+qml+"}", QUrl::fromLocalFile(""));
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(component.create());
+ QVERIFY(item);
+ QCOMPARE(item->sceneMatrix(), matrix);
+}
+
+void tst_QDeclarativeItem::childrenProperty()
+{
+ QDeclarativeComponent component(&engine, SRCDIR "/data/childrenProperty.qml");
+
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+
+ QCOMPARE(o->property("test1").toBool(), true);
+ QCOMPARE(o->property("test2").toBool(), true);
+ QCOMPARE(o->property("test3").toBool(), true);
+ QCOMPARE(o->property("test4").toBool(), true);
+ QCOMPARE(o->property("test5").toBool(), true);
+ delete o;
+}
+
+void tst_QDeclarativeItem::resourcesProperty()
+{
+ QDeclarativeComponent component(&engine, SRCDIR "/data/resourcesProperty.qml");
+
+ QObject *o = component.create();
+ QVERIFY(o != 0);
+
+ QCOMPARE(o->property("test1").toBool(), true);
+ QCOMPARE(o->property("test2").toBool(), true);
+ QCOMPARE(o->property("test3").toBool(), true);
+ QCOMPARE(o->property("test4").toBool(), true);
+ QCOMPARE(o->property("test5").toBool(), true);
+ delete o;
+}
+
+void tst_QDeclarativeItem::propertyChanges()
+{
+ QDeclarativeView *canvas = new QDeclarativeView(0);
+ canvas->setFixedSize(240,320);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychanges.qml"));
+ canvas->show();
+
+ QEvent wa(QEvent::WindowActivate);
+ QApplication::sendEvent(canvas, &wa);
+ QFocusEvent fe(QEvent::FocusIn);
+ QApplication::sendEvent(canvas, &fe);
+
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(canvas->rootObject(), "item");
+ QDeclarativeItem *parentItem = findItem<QDeclarativeItem>(canvas->rootObject(), "parentItem");
+
+ QVERIFY(item);
+ QVERIFY(parentItem);
+
+ QSignalSpy parentSpy(item, SIGNAL(parentChanged(QDeclarativeItem *)));
+ QSignalSpy widthSpy(item, SIGNAL(widthChanged()));
+ QSignalSpy heightSpy(item, SIGNAL(heightChanged()));
+ QSignalSpy baselineOffsetSpy(item, SIGNAL(baselineOffsetChanged(qreal)));
+ QSignalSpy childrenRectSpy(parentItem, SIGNAL(childrenRectChanged(QRectF)));
+ QSignalSpy focusSpy(item, SIGNAL(focusChanged(bool)));
+ QSignalSpy wantsFocusSpy(parentItem, SIGNAL(wantsFocusChanged(bool)));
+
+ item->setParentItem(parentItem);
+ item->setWidth(100.0);
+ item->setHeight(200.0);
+ item->setFocus(true);
+ item->setBaselineOffset(10.0);
+
+ QCOMPARE(item->parentItem(), parentItem);
+ QCOMPARE(parentSpy.count(),1);
+ QList<QVariant> parentArguments = parentSpy.first();
+ QVERIFY(parentArguments.count() == 1);
+ QCOMPARE(item->parentItem(), qvariant_cast<QDeclarativeItem *>(parentArguments.at(0)));
+
+ QCOMPARE(item->width(), 100.0);
+ QCOMPARE(widthSpy.count(),1);
+
+ QCOMPARE(item->height(), 200.0);
+ QCOMPARE(heightSpy.count(),1);
+
+ QCOMPARE(item->baselineOffset(), 10.0);
+ QCOMPARE(baselineOffsetSpy.count(),1);
+ QList<QVariant> baselineOffsetArguments = baselineOffsetSpy.first();
+ QVERIFY(baselineOffsetArguments.count() == 1);
+ QCOMPARE(item->baselineOffset(), baselineOffsetArguments.at(0).toReal());
+
+ QCOMPARE(parentItem->childrenRect(), QRectF(0.0,0.0,100.0,200.0));
+ QCOMPARE(childrenRectSpy.count(),2);
+ QList<QVariant> childrenRectArguments = childrenRectSpy.at(1);
+ QVERIFY(childrenRectArguments.count() == 1);
+ QCOMPARE(parentItem->childrenRect(), childrenRectArguments.at(0).toRectF());
+
+ QCOMPARE(item->hasFocus(), true);
+ QCOMPARE(focusSpy.count(),1);
+ QList<QVariant> focusArguments = focusSpy.first();
+ QVERIFY(focusArguments.count() == 1);
+ QCOMPARE(focusArguments.at(0).toBool(), true);
+
+ QCOMPARE(parentItem->hasFocus(), false);
+ QCOMPARE(parentItem->wantsFocus(), true);
+ QCOMPARE(wantsFocusSpy.count(),1);
+ QList<QVariant> wantsFocusArguments = wantsFocusSpy.first();
+ QVERIFY(wantsFocusArguments.count() == 1);
+ QCOMPARE(wantsFocusArguments.at(0).toBool(), true);
+
+ delete canvas;
}
template<typename T>
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml b/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml
index 6362b2d..f62c860 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/Alias2.qml
@@ -2,7 +2,7 @@ import Test 1.0
import Qt 4.6
QtObject {
- property var other
+ property variant other
other: MyTypeObject { id: obj }
property alias enumAlias: obj.enumProperty;
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml b/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml
index d1e78f8..9050c3a 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/Alias3.qml
@@ -3,7 +3,7 @@ import Qt 4.6
QtObject {
property alias obj : otherObj
- property var child
+ property variant child
child: QtObject {
id: otherObj
property int myValue: 10
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml b/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml
index dc3b382..df8c851 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/HelperAlias.qml
@@ -2,7 +2,7 @@ import Test 1.0
import Qt 4.6
QtObject {
- property var child
+ property variant child
child: QtObject { id: obj }
property alias objAlias: obj;
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/LocalLast.qml b/tests/auto/declarative/qdeclarativelanguage/data/LocalLast.qml
new file mode 100644
index 0000000..a0706ad
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/LocalLast.qml
@@ -0,0 +1,2 @@
+import Qt 4.6
+Text {}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/OnDestructionType.qml b/tests/auto/declarative/qdeclarativelanguage/data/OnDestructionType.qml
new file mode 100644
index 0000000..e5a7cf8
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/OnDestructionType.qml
@@ -0,0 +1,8 @@
+import Test 1.0
+import Qt 4.6
+
+MyQmlObject {
+ property int a: Math.max(10, 9)
+ property int b: 11
+ Component.onDestruction: console.log("Destruction " + a + " " + b);
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml
index e059937..0b968c2 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.3.qml
@@ -1,7 +1,7 @@
import Qt 4.6
QtObject {
- property var other
+ property variant other
other: Alias { id: myAliasObject }
property alias value: myAliasObject.aliasValue
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml
index 4316d0d..125c518 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.5.qml
@@ -4,7 +4,7 @@ import Test 1.0
QtObject {
property alias otherAlias: otherObject
- property var other
+ property variant other
other: MyQmlObject {
id: otherObject
value: 10
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml
index 2b9ad85..629dd2a 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.8.qml
@@ -1,7 +1,7 @@
import Qt 4.6
QtObject {
- property var other
+ property variant other
other: Alias3 { id: myAliasObject }
property int value: myAliasObject.obj.myValue
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml
index a2a41a1..7c072e1 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/alias.9.qml
@@ -1,7 +1,7 @@
import Qt 4.6
QtObject {
- property var other
+ property variant other
other: Alias4 { id: myAliasObject }
property int value: myAliasObject.obj.myValue
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignBasicTypes.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignBasicTypes.qml
index c86c96b..9fe0ded 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/assignBasicTypes.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/assignBasicTypes.qml
@@ -10,8 +10,6 @@ MyTypeObject {
floatProperty: 8.5
colorProperty: "red"
dateProperty: "1982-11-25"
- timeProperty: "11:11:31"
- timeProperty: "11:11:32"
timeProperty: "11:11:32"
dateTimeProperty: "2009-05-12T13:22:01"
pointProperty: "99,13"
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignLiteralToVariant.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignLiteralToVariant.qml
new file mode 100644
index 0000000..91fd833
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/assignLiteralToVariant.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+
+QtObject {
+ property variant test1: 1
+ property variant test2: 1.7
+ property variant test3: "Hello world!"
+ property variant test4: "#FF008800"
+ property variant test5: "10,10,10x10"
+ property variant test6: "10,10"
+ property variant test7: "10x10"
+ property variant test8: "100,100,100"
+ property variant test9: String("#FF008800")
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml b/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml
index 0ff9370..774762a 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml
@@ -2,6 +2,6 @@ import Test 1.0
import Qt 4.6
QtObject {
- property var a;
+ property variant a;
a: MyQmlObject {}
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/component.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/component.3.errors.txt
index 9a13142..450fc16 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/component.3.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/component.3.errors.txt
@@ -1 +1 @@
-6:9:Invalid component id specification
+6:9:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml b/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml
index 0a7249a..e745e91 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml
@@ -1,7 +1,7 @@
import Qt 4.6
QtObject {
- property var test
+ property variant test
test: ComponentComposite {}
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/customOnProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/customOnProperty.qml
new file mode 100644
index 0000000..7cd6a83
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/customOnProperty.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+QtObject {
+ property int on
+
+ Component.onCompleted: on = 10
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.errors.txt
index 945d51b..32055f6 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/defaultGrouped.errors.txt
@@ -1 +1 @@
-7:9:Invalid value in grouped property
+7:9:Cannot assign a value directly to a grouped property
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.errors.txt
new file mode 100644
index 0000000..3348494
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.errors.txt
@@ -0,0 +1 @@
+4:5:Cannot assign to non-existent property "onDestroyed"
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.qml b/tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.qml
new file mode 100644
index 0000000..4eab50a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/destroyedSignal.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+QtObject {
+ onDestroyed: print("Hello World!")
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.errors.txt
index 2aea251..e1f7ec5 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/doubleSignal.errors.txt
@@ -1 +1 @@
-5:5:Incorrectly specified signal
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml
index 85d1052..930bf2c 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicObject.1.qml
@@ -1,6 +1,6 @@
import Test 1.0
import Qt 4.6
-PropertyChanges {
+MyCustomParserType {
propa: a + 10
propb: Math.min(a, 10)
propc: MyPropertyValueSource {}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml
index aef3269..6411609 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml
@@ -9,6 +9,5 @@ QtObject {
property color colorProperty: "red"
property url urlProperty: "main.qml"
property date dateProperty: "1945-09-02"
- property var varProperty: "Hello World!"
- property variant variantProperty: 12
+ property variant varProperty: "Hello World!"
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.2.errors.txt
new file mode 100644
index 0000000..8b20434
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.2.errors.txt
@@ -0,0 +1 @@
+4:5:Incorrectly specified signal assignment
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.2.qml
new file mode 100644
index 0000000..c84fea3
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/emptySignal.2.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyQmlObject {
+ onBasicSignal {
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/enumTypes.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/enumTypes.errors.txt
new file mode 100644
index 0000000..d4e0cc0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/enumTypes.errors.txt
@@ -0,0 +1 @@
+3:1:Element is not creatable.
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/enumTypes.qml b/tests/auto/declarative/qdeclarativelanguage/data/enumTypes.qml
new file mode 100644
index 0000000..a723269
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/enumTypes.qml
@@ -0,0 +1,4 @@
+import Qt 4.6
+
+Font {
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/failingComponent.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/failingComponent.errors.txt
index 0cf0ef3..364ca67 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/failingComponent.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/failingComponent.errors.txt
@@ -1 +1 @@
-3:5:Type FailingComponent unavailable
+3:5:FailingComponent is not a type
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/i18nScript.qml b/tests/auto/declarative/qdeclarativelanguage/data/i18nScript.qml
index 942ed90..e77cb52 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/i18nScript.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/i18nScript.qml
@@ -1,12 +1,9 @@
import Test 1.0
MyTypeObject {
- Script {
- function val() {
- var áâãäå = 20
- return "Test áâãäå: " + áâãäå
- }
-
+ function val() {
+ var áâãäå = 20
+ return "Test áâãäå: " + áâãäå
}
stringProperty: val()
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/idProperty.qml b/tests/auto/declarative/qdeclarativelanguage/data/idProperty.qml
index 90c1483..bf048ea 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/idProperty.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/idProperty.qml
@@ -1,6 +1,6 @@
import Test 1.0
MyContainer {
- property var object : myObjectId
+ property variant object : myObjectId
MyTypeObject {
id: "myObjectId"
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importNewerVersion.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/importNewerVersion.errors.txt
new file mode 100644
index 0000000..413f096
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/importNewerVersion.errors.txt
@@ -0,0 +1 @@
+1:1:module "Test" version 2.0 is not installed
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importNewerVersion.qml b/tests/auto/declarative/qdeclarativelanguage/data/importNewerVersion.qml
new file mode 100644
index 0000000..c4a0d38
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/importNewerVersion.qml
@@ -0,0 +1,3 @@
+import Test 2.0
+
+MyTypeObject { }
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importNonExist.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/importNonExist.errors.txt
new file mode 100644
index 0000000..1baf05c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/importNonExist.errors.txt
@@ -0,0 +1 @@
+2:1:"will-not-be-found": no such directory
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importNonExist.qml b/tests/auto/declarative/qdeclarativelanguage/data/importNonExist.qml
new file mode 100644
index 0000000..ec6aa2b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/importNonExist.qml
@@ -0,0 +1,5 @@
+// imports...
+import "will-not-be-found"
+import Qt 4.6
+
+Rectangle { }
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importscript.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/importscript.1.errors.txt
new file mode 100644
index 0000000..ebc936d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/importscript.1.errors.txt
@@ -0,0 +1 @@
+1:8:Script import requires a qualifier
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/importscript.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/importscript.1.qml
new file mode 100644
index 0000000..2b2ab6b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/importscript.1.qml
@@ -0,0 +1,3 @@
+import "test.js"
+
+Item { }
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml
index 1167e39..9012aa6 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.1.qml
@@ -1,6 +1,6 @@
import Qt 4.6
QtObject {
- property var o;
+ property variant o;
o.blah: 10
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.10.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.10.errors.txt
new file mode 100644
index 0000000..1fcb1b6
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.10.errors.txt
@@ -0,0 +1 @@
+4:14:Cannot assign a value directly to a grouped property
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.10.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.10.qml
new file mode 100644
index 0000000..41aa3e2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.10.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ grouped: "10x10"
+ grouped.value: 10
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.errors.txt
index 8331725..e1f7ec5 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.6.errors.txt
@@ -1 +1 @@
-5:18:Single property assignment expected
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.8.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.8.errors.txt
new file mode 100644
index 0000000..fa0da21
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.8.errors.txt
@@ -0,0 +1 @@
+5:19:Property has already been assigned a value
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.8.qml
new file mode 100644
index 0000000..56fca9b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.8.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+ pointProperty: "10x10"
+ pointProperty.x: 10
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.9.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.9.errors.txt
new file mode 100644
index 0000000..6d837a7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.9.errors.txt
@@ -0,0 +1 @@
+5:20:Property has already been assigned a value
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.9.qml
new file mode 100644
index 0000000..982ab26
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidGroupedProperty.9.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+ pointProperty.x: 10
+ pointProperty: "10x10"
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.errors.txt
index 56e3eeb..2c6b8bf 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.2.errors.txt
@@ -1,2 +1,2 @@
-3:5:"" is not a valid object id
+3:9:Invalid empty ID
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.errors.txt
index cfe8756..c721fe9 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.4.errors.txt
@@ -1 +1 @@
-4:5:Invalid use of id property
+4:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.errors.txt
index 160e8b5..7251de1 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.6.errors.txt
@@ -1 +1 @@
-3:5:"StartsWithUpperCase" is not a valid object id
+3:9:IDs cannot start with an uppercase letter
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.7.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.7.errors.txt
new file mode 100644
index 0000000..e4fd1db
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.7.errors.txt
@@ -0,0 +1 @@
+3:9:ID illegally masks global JavaScript property
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.7.qml
new file mode 100644
index 0000000..d4bc539
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.7.qml
@@ -0,0 +1,5 @@
+import Test 1.0
+MyQmlObject {
+ id: gc
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.8.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.8.errors.txt
new file mode 100644
index 0000000..b03ec6c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.8.errors.txt
@@ -0,0 +1 @@
+3:9:IDs must contain only letters, numbers, and underscores
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.8.qml
new file mode 100644
index 0000000..1ea615c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.8.qml
@@ -0,0 +1,5 @@
+import Test 1.0
+MyQmlObject {
+ id: hello.world
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.9.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.9.errors.txt
new file mode 100644
index 0000000..c010e79
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.9.errors.txt
@@ -0,0 +1 @@
+3:9:IDs must start with a letter or underscore
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.9.qml
new file mode 100644
index 0000000..57474b7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.9.qml
@@ -0,0 +1,5 @@
+import Test 1.0
+MyQmlObject {
+ id: "3hello"
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.errors.txt
index 1ca678c..c010e79 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/invalidID.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/invalidID.errors.txt
@@ -1 +1 @@
-3:5:"1" is not a valid object id
+3:9:IDs must start with a letter or underscore
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml
index d8a22a8..38cf6bb 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/InstalledTest.qml
@@ -1,2 +1,2 @@
-import Qt 4.6
-Rectangle {}
+import Qt 4.6 as Qt
+Qt.Rectangle {}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/LocalLast.qml b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/LocalLast.qml
new file mode 100644
index 0000000..d8a22a8
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/LocalLast.qml
@@ -0,0 +1,2 @@
+import Qt 4.6
+Rectangle {}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir
index eeb9a05..0adb0f6 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir
+++ b/tests/auto/declarative/qdeclarativelanguage/data/lib/com/nokia/installedtest/qmldir
@@ -1,4 +1,5 @@
Rectangle 1.5 InstalledTest2.qml
+LocalLast 1.0 LocalLast.qml
InstalledTest 1.4 InstalledTest2.qml
InstalledTest 1.0 InstalledTest.qml
InstalledTestTP 0.0 InstalledTest.qml
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.errors.txt
index 8c7b7e9..c721fe9 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/listAssignment.3.errors.txt
@@ -1 +1 @@
-4:15:Can only assign one binding to lists
+4:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/method.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/method.1.errors.txt
new file mode 100644
index 0000000..b10984f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/method.1.errors.txt
@@ -0,0 +1 @@
+3:1:Method names cannot begin with an upper case letter
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/method.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/method.1.qml
new file mode 100644
index 0000000..d9794b4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/method.1.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+QtObject {
+ function MyMethod() {}
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.1.errors.txt
new file mode 100644
index 0000000..e1f7ec5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.1.errors.txt
@@ -0,0 +1 @@
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.1.qml
new file mode 100644
index 0000000..649c49e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.1.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ intProperty: 10
+ intProperty: 11
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.10.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.10.errors.txt
new file mode 100644
index 0000000..e1f7ec5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.10.errors.txt
@@ -0,0 +1 @@
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.10.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.10.qml
new file mode 100644
index 0000000..bc21db9
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.10.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+ property int a: 10
+ a: 11
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.2.errors.txt
new file mode 100644
index 0000000..e1f7ec5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.2.errors.txt
@@ -0,0 +1 @@
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.2.qml
new file mode 100644
index 0000000..abcd216
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.2.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ intProperty: 10
+ intProperty: a + 10
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.3.errors.txt
new file mode 100644
index 0000000..e1f7ec5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.3.errors.txt
@@ -0,0 +1 @@
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.3.qml
new file mode 100644
index 0000000..77eaba0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.3.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ intProperty: a + 10
+ intProperty: 10
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.4.errors.txt
new file mode 100644
index 0000000..e1f7ec5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.4.errors.txt
@@ -0,0 +1 @@
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.4.qml
new file mode 100644
index 0000000..c16d04f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.4.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ intProperty: 10
+ intProperty: MyTypeObject {}
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.5.errors.txt
new file mode 100644
index 0000000..e1f7ec5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.5.errors.txt
@@ -0,0 +1 @@
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.5.qml
new file mode 100644
index 0000000..2980c5b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.5.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyContainer {
+ children: MyContainer {}
+ children: MyContainer {}
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.6.errors.txt
new file mode 100644
index 0000000..e1f7ec5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.6.errors.txt
@@ -0,0 +1 @@
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.6.qml
new file mode 100644
index 0000000..492c720
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.6.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyContainer {
+ children: MyContainer {}
+ children: [ MyContainer {}, MyContainer {} ]
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.7.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.7.errors.txt
new file mode 100644
index 0000000..e1f7ec5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.7.errors.txt
@@ -0,0 +1 @@
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.7.qml
new file mode 100644
index 0000000..2a9c1d0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.7.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyContainer {
+ children: [ MyContainer {}, MyContainer {} ]
+ children: MyContainer {}
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.8.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.8.errors.txt
new file mode 100644
index 0000000..450fc16
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.8.errors.txt
@@ -0,0 +1 @@
+6:9:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.8.qml
new file mode 100644
index 0000000..052437e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.8.qml
@@ -0,0 +1,8 @@
+import Test 1.0
+
+MyTypeObject {
+ grouped {
+ value: 10
+ value: 11
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.9.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.9.errors.txt
new file mode 100644
index 0000000..e1f7ec5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.9.errors.txt
@@ -0,0 +1 @@
+5:5:Property value set multiple times
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/multiSet.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.9.qml
new file mode 100644
index 0000000..e2e954f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/multiSet.9.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+ grouped.value: 10
+ grouped.value: 11
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/onDestruction.qml b/tests/auto/declarative/qdeclarativelanguage/data/onDestruction.qml
new file mode 100644
index 0000000..7ebae7b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/onDestruction.qml
@@ -0,0 +1,17 @@
+import Test 1.0
+import Qt 4.6
+
+MyTypeObject {
+ // We set a and b to ensure that onCompleted is executed after bindings and
+ // constants have been assigned
+ property int a: Math.min(6, 7)
+ Component.onDestruction: console.log("Destruction " + a + " " + nestedObject.b)
+
+ objectProperty: OnDestructionType {
+ qmlobjectProperty: MyQmlObject {
+ id: nestedObject
+ property int b: 10
+ Component.onDestruction: console.log("Destruction " + a + " " + nestedObject.b)
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/property.6.errors.txt
new file mode 100644
index 0000000..9e8d454
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/property.6.errors.txt
@@ -0,0 +1 @@
+4:5:Property names cannot begin with an upper case letter
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.6.qml
new file mode 100644
index 0000000..f39bed3
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/property.6.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+QtObject {
+ property int Hello
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.7.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/property.7.errors.txt
new file mode 100644
index 0000000..9e8d454
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/property.7.errors.txt
@@ -0,0 +1 @@
+4:5:Property names cannot begin with an upper case letter
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/property.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/property.7.qml
new file mode 100644
index 0000000..502eb22
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/property.7.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+QtObject {
+ property int Hello: 10
+}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.2.qml
index 57a6070..e48526a 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.2.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.2.qml
@@ -1,5 +1,5 @@
import Test 1.0
MyTypeObject {
- intProperty : MyCompositeValueSource {}
+ MyCompositeValueSource on intProperty {}
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.qml b/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.qml
index ad71fcf..22aa682 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/propertyValueSource.qml
@@ -1,4 +1,4 @@
import Test 1.0
MyTypeObject {
- intProperty : MyPropertyValueSource {}
+ MyPropertyValueSource on intProperty {}
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml
index cd86a48..a4a976e 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/readOnly.3.qml
@@ -2,7 +2,7 @@ import Test 1.0
import Qt 4.6
QtObject {
- property var child
+ property variant child
child: HelperAlias { objAlias: QtObject {} }
}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.1.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.1.errors.txt
deleted file mode 100644
index 50518cc..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.1.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-3:1:Invalid use of Script block
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.1.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.1.qml
deleted file mode 100644
index 8dac8b7..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.1.qml
+++ /dev/null
@@ -1,4 +0,0 @@
-import Qt 4.6
-
-Script {
-}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.10.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.10.errors.txt
deleted file mode 100644
index 13f47d1..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.10.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-6:9:Component elements may not contain script blocks
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.10.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.10.qml
deleted file mode 100644
index 516e878..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.10.qml
+++ /dev/null
@@ -1,9 +0,0 @@
-import Qt 4.6
-
-Item {
- Component {
- Item {}
- Script {}
- }
-}
-
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.11.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.11.errors.txt
deleted file mode 100644
index a664203..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.11.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-5:9:Invalid Script block
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.11.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.11.qml
deleted file mode 100644
index 6d2d598..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.11.qml
+++ /dev/null
@@ -1,7 +0,0 @@
-import Qt 4.6
-
-QtObject {
- Script {
- QtObject {}
- }
-}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.12.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.12.errors.txt
deleted file mode 100644
index f8297f5..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.12.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-4:5:JavaScript declaration outside Script element
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.12.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.12.qml
deleted file mode 100644
index 9ecb5d9..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.12.qml
+++ /dev/null
@@ -1,6 +0,0 @@
-import Qt 4.6
-
-QtObject {
- var a
-}
-
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.2.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.2.errors.txt
deleted file mode 100644
index 8fb3bbd..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.2.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-5:9:Properties cannot be set on Script block
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.2.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.2.qml
deleted file mode 100644
index dce1a41..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.2.qml
+++ /dev/null
@@ -1,7 +0,0 @@
-import Qt 4.6
-
-QtObject {
- Script {
- id: myScript
- }
-}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.3.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.3.errors.txt
deleted file mode 100644
index 8fb3bbd..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.3.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-5:9:Properties cannot be set on Script block
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.3.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.3.qml
deleted file mode 100644
index 8621a9a..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.3.qml
+++ /dev/null
@@ -1,7 +0,0 @@
-import Qt 4.6
-
-QtObject {
- Script {
- hello: world
- }
-}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.4.errors.txt
deleted file mode 100644
index 49a507f..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.4.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-5:9:Invalid Script source value
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.4.qml
deleted file mode 100644
index d89817c..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.4.qml
+++ /dev/null
@@ -1,8 +0,0 @@
-import Qt 4.6
-
-QtObject {
- Script {
- source: 10
- }
-}
-
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.5.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.5.errors.txt
deleted file mode 100644
index 49a507f..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.5.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-5:9:Invalid Script source value
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.5.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.5.qml
deleted file mode 100644
index 8986b3b..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.5.qml
+++ /dev/null
@@ -1,9 +0,0 @@
-import Qt 4.6
-
-QtObject {
- Script {
- source: "hello" + ".js"
- }
-}
-
-
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.6.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.6.errors.txt
deleted file mode 100644
index 4e53b6b..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.6.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-5:9:Invalid Script block. Specify either the source property or inline script
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.6.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.6.qml
deleted file mode 100644
index 07e9d78..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.6.qml
+++ /dev/null
@@ -1,11 +0,0 @@
-import Qt 4.6
-
-QtObject {
- Script {
- source: "test.js"
- function helloWorld() {}
- }
-}
-
-
-
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.7.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.7.errors.txt
deleted file mode 100644
index dc15ddf..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.7.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-5:9:Variable declarations not allow in inline Script blocks
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.7.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.7.qml
deleted file mode 100644
index fa905e6..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.7.qml
+++ /dev/null
@@ -1,11 +0,0 @@
-import Qt 4.6
-
-QtObject {
- Script {
- var a = 10;
- }
-}
-
-
-
-
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.8.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.8.errors.txt
deleted file mode 100644
index b5bf1a8..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.8.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-6:9:Invalid Script source value
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.8.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.8.qml
deleted file mode 100644
index f600c88..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.8.qml
+++ /dev/null
@@ -1,9 +0,0 @@
-import Qt 4.6
-
-QtObject {
- Script {
- source: "test.js"
- source: "test2.js"
- }
-}
-
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.9.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/script.9.errors.txt
deleted file mode 100644
index 41e8d46..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.9.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-5:9:Component elements may not contain script blocks
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/script.9.qml b/tests/auto/declarative/qdeclarativelanguage/data/script.9.qml
deleted file mode 100644
index 79aa504..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.9.qml
+++ /dev/null
@@ -1,7 +0,0 @@
-import Qt 4.6
-
-Item {
- Component {
- Script {}
- }
-}
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.4.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/signal.4.errors.txt
new file mode 100644
index 0000000..d96f9e3
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.4.errors.txt
@@ -0,0 +1 @@
+3:1:Signal names cannot begin with an upper case letter
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/signal.4.qml b/tests/auto/declarative/qdeclarativelanguage/data/signal.4.qml
new file mode 100644
index 0000000..7279a46
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/data/signal.4.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+QtObject {
+ signal MySignal
+}
+
diff --git a/tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.errors.txt b/tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.errors.txt
index 347db05..10e5fb2 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.errors.txt
+++ b/tests/auto/declarative/qdeclarativelanguage/data/unregisteredObject.errors.txt
@@ -1 +1 @@
-2:1:Type UnregisteredObjectType unavailable
+2:1:UnregisteredObjectType is not a type
diff --git a/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro b/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro
index d7c1def..5771469 100644
--- a/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro
+++ b/tests/auto/declarative/qdeclarativelanguage/qdeclarativelanguage.pro
@@ -12,3 +12,5 @@ HEADERS += ../shared/testhttpserver.h
SOURCES += ../shared/testhttpserver.cpp
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestNamed.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestNamed.qml
new file mode 100644
index 0000000..672cb8f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/TestNamed.qml
@@ -0,0 +1 @@
+NamedLocal { }
diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml
new file mode 100644
index 0000000..836c20a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/UndeclaredLocal.qml
@@ -0,0 +1,3 @@
+import Qt 4.6
+
+Image { source: "pics/blue.png" }
diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/WrongTestLocal.qml b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/WrongTestLocal.qml
new file mode 100644
index 0000000..8dcb7be
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/WrongTestLocal.qml
@@ -0,0 +1 @@
+UndeclaredInternal {}
diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir
index b32f82b..60150f8 100644
--- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir
+++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/qmldir
@@ -1,3 +1,5 @@
-Test 0.0 Test.qml
-TestSubDir 0.0 TestSubDir.qml
-TestLocal 0.0 TestLocal.qml
+Test Test.qml
+TestSubDir TestSubDir.qml
+TestLocal TestLocal.qml
+NamedLocal LocalInternal.qml
+internal LocalInternal LocalInternal.qml
diff --git a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir
index f7016c7..a54f7df 100644
--- a/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir
+++ b/tests/auto/declarative/qdeclarativelanguage/qtest/declarative/qmllanguage/subdir/qmldir
@@ -1 +1 @@
-SubTest 0.0 SubTest.qml
+SubTest SubTest.qml
diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp
index 9ffe28a..623775a 100644
--- a/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp
+++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.cpp
@@ -42,15 +42,18 @@
void registerTypes()
{
- QML_REGISTER_INTERFACE(MyInterface);
- QML_REGISTER_TYPE(Test,1,0,MyQmlObject,MyQmlObject);
- QML_REGISTER_TYPE(Test,1,0,MyTypeObject,MyTypeObject);
- QML_REGISTER_TYPE(Test,1,0,MyContainer,MyContainer);
- QML_REGISTER_TYPE(Test,1,0,MyPropertyValueSource,MyPropertyValueSource);
- QML_REGISTER_TYPE(Test,1,0,MyDotPropertyObject,MyDotPropertyObject);
- QML_REGISTER_TYPE(Test,1,0,MyNamespacedType,MyNamespace::MyNamespacedType);
- QML_REGISTER_TYPE(Test,1,0,MySecondNamespacedType,MyNamespace::MySecondNamespacedType);
- QML_REGISTER_NOCREATE_TYPE(MyGroupedObject);
+ qmlRegisterInterface<MyInterface>("MyInterface");
+ qmlRegisterType<MyQmlObject>("Test",1,0,"MyQmlObject");
+ qmlRegisterType<MyTypeObject>("Test",1,0,"MyTypeObject");
+ qmlRegisterType<MyContainer>("Test",1,0,"MyContainer");
+ qmlRegisterType<MyPropertyValueSource>("Test",1,0,"MyPropertyValueSource");
+ qmlRegisterType<MyDotPropertyObject>("Test",1,0,"MyDotPropertyObject");
+ qmlRegisterType<MyNamespace::MyNamespacedType>("Test",1,0,"MyNamespacedType");
+ qmlRegisterType<MyNamespace::MySecondNamespacedType>("Test",1,0,"MySecondNamespacedType");
+ qmlRegisterType<MyGroupedObject>();
+
+ qmlRegisterCustomType<MyCustomParserType>("Test", 1, 0, "MyCustomParserType", "MyCustomParserType",
+ new MyCustomParserTypeParser);
}
QVariant myCustomVariantTypeConverter(const QString &data)
diff --git a/tests/auto/declarative/qdeclarativelanguage/testtypes.h b/tests/auto/declarative/qdeclarativelanguage/testtypes.h
index 8ac7aa6..8c163a5 100644
--- a/tests/auto/declarative/qdeclarativelanguage/testtypes.h
+++ b/tests/auto/declarative/qdeclarativelanguage/testtypes.h
@@ -54,6 +54,8 @@
#include <QtDeclarative/qdeclarativescriptstring.h>
#include <QtDeclarative/qdeclarativeproperty.h>
+#include <private/qdeclarativecustomparser_p.h>
+
QVariant myCustomVariantTypeConverter(const QString &data);
class MyInterface
@@ -62,7 +64,10 @@ public:
MyInterface() : id(913) {}
int id;
};
+
+QT_BEGIN_NAMESPACE
Q_DECLARE_INTERFACE(MyInterface, "com.trolltech.Qt.Test.MyInterface");
+QT_END_NAMESPACE
QML_DECLARE_INTERFACE(MyInterface);
struct MyCustomVariantType
@@ -75,17 +80,20 @@ Q_DECLARE_METATYPE(MyCustomVariantType);
class MyAttachedObject : public QObject
{
Q_OBJECT
- Q_PROPERTY(int value READ value WRITE setValue)
+ Q_PROPERTY(int value READ value WRITE setValue NOTIFY valueChanged)
Q_PROPERTY(int value2 READ value2 WRITE setValue2)
public:
MyAttachedObject(QObject *parent) : QObject(parent), m_value(0), m_value2(0) {}
int value() const { return m_value; }
- void setValue(int v) { m_value = v; }
+ void setValue(int v) { if (m_value != v) { m_value = v; emit valueChanged(); } }
int value2() const { return m_value2; }
void setValue2(int v) { m_value2 = v; }
+signals:
+ void valueChanged();
+
private:
int m_value;
int m_value2;
@@ -100,8 +108,8 @@ class MyQmlObject : public QObject, public MyInterface, public QDeclarativeParse
Q_PROPERTY(QRect rect READ rect WRITE setRect)
Q_PROPERTY(QMatrix matrix READ matrix WRITE setMatrix) //assumed to be unsupported by QML
Q_PROPERTY(MyInterface *interfaceProperty READ interface WRITE setInterface)
- Q_PROPERTY(int onLiteralSignal READ onLiteralSignal WRITE setOnLiteralSignal);
- Q_PROPERTY(MyCustomVariantType customType READ customType WRITE setCustomType);
+ Q_PROPERTY(int onLiteralSignal READ onLiteralSignal WRITE setOnLiteralSignal)
+ Q_PROPERTY(MyCustomVariantType customType READ customType WRITE setCustomType)
Q_PROPERTY(MyQmlObject *qmlobjectProperty READ qmlobject WRITE setQmlobject)
Q_PROPERTY(int propertyWithNotify READ propertyWithNotify WRITE setPropertyWithNotify NOTIFY oddlyNamedNotifySignal)
@@ -129,7 +137,7 @@ public:
static MyAttachedObject *qmlAttachedProperties(QObject *other) {
return new MyAttachedObject(other);
}
- Q_CLASSINFO("DefaultMethod", "basicSlot()");
+ Q_CLASSINFO("DefaultMethod", "basicSlot()")
int onLiteralSignal() const { return m_value; }
void setOnLiteralSignal(int v) { m_value = v; }
@@ -165,12 +173,17 @@ QML_DECLARE_TYPE(MyQmlObject);
class MyGroupedObject : public QObject
{
Q_OBJECT
- Q_PROPERTY(QDeclarativeScriptString script READ script WRITE setScript);
+ Q_PROPERTY(QDeclarativeScriptString script READ script WRITE setScript)
+ Q_PROPERTY(int value READ value WRITE setValue)
public:
QDeclarativeScriptString script() const { return m_script; }
void setScript(const QDeclarativeScriptString &s) { m_script = s; }
+ int value() const { return m_value; }
+ void setValue(int v) { m_value = v; }
+
private:
+ int m_value;
QDeclarativeScriptString m_script;
};
@@ -183,36 +196,36 @@ class MyTypeObject : public QObject
Q_ENUMS(MyEnum)
Q_FLAGS(MyFlags)
- Q_PROPERTY(QString id READ id WRITE setId);
- Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty);
- Q_PROPERTY(QDeclarativeComponent *componentProperty READ componentProperty WRITE setComponentProperty);
- Q_PROPERTY(MyFlags flagProperty READ flagProperty WRITE setFlagProperty);
- Q_PROPERTY(MyEnum enumProperty READ enumProperty WRITE setEnumProperty);
- Q_PROPERTY(QString stringProperty READ stringProperty WRITE setStringProperty);
- Q_PROPERTY(uint uintProperty READ uintProperty WRITE setUintProperty);
- Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty);
- Q_PROPERTY(qreal realProperty READ realProperty WRITE setRealProperty);
- Q_PROPERTY(double doubleProperty READ doubleProperty WRITE setDoubleProperty);
- Q_PROPERTY(float floatProperty READ floatProperty WRITE setFloatProperty);
- Q_PROPERTY(QColor colorProperty READ colorProperty WRITE setColorProperty);
- Q_PROPERTY(QDate dateProperty READ dateProperty WRITE setDateProperty);
- Q_PROPERTY(QTime timeProperty READ timeProperty WRITE setTimeProperty);
- Q_PROPERTY(QDateTime dateTimeProperty READ dateTimeProperty WRITE setDateTimeProperty);
- Q_PROPERTY(QPoint pointProperty READ pointProperty WRITE setPointProperty);
- Q_PROPERTY(QPointF pointFProperty READ pointFProperty WRITE setPointFProperty);
- Q_PROPERTY(QSize sizeProperty READ sizeProperty WRITE setSizeProperty);
- Q_PROPERTY(QSizeF sizeFProperty READ sizeFProperty WRITE setSizeFProperty);
- Q_PROPERTY(QRect rectProperty READ rectProperty WRITE setRectProperty NOTIFY rectPropertyChanged);
- Q_PROPERTY(QRect rectProperty2 READ rectProperty2 WRITE setRectProperty2);
- Q_PROPERTY(QRectF rectFProperty READ rectFProperty WRITE setRectFProperty);
- Q_PROPERTY(bool boolProperty READ boolProperty WRITE setBoolProperty);
- Q_PROPERTY(QVariant variantProperty READ variantProperty WRITE setVariantProperty);
- Q_PROPERTY(QVector3D vectorProperty READ vectorProperty WRITE setVectorProperty);
- Q_PROPERTY(QUrl urlProperty READ urlProperty WRITE setUrlProperty);
-
- Q_PROPERTY(QDeclarativeScriptString scriptProperty READ scriptProperty WRITE setScriptProperty);
- Q_PROPERTY(MyGroupedObject *grouped READ grouped CONSTANT);
- Q_PROPERTY(MyGroupedObject *nullGrouped READ nullGrouped CONSTANT);
+ Q_PROPERTY(QString id READ id WRITE setId)
+ Q_PROPERTY(QObject *objectProperty READ objectProperty WRITE setObjectProperty)
+ Q_PROPERTY(QDeclarativeComponent *componentProperty READ componentProperty WRITE setComponentProperty)
+ Q_PROPERTY(MyFlags flagProperty READ flagProperty WRITE setFlagProperty)
+ Q_PROPERTY(MyEnum enumProperty READ enumProperty WRITE setEnumProperty)
+ Q_PROPERTY(QString stringProperty READ stringProperty WRITE setStringProperty)
+ Q_PROPERTY(uint uintProperty READ uintProperty WRITE setUintProperty)
+ Q_PROPERTY(int intProperty READ intProperty WRITE setIntProperty)
+ Q_PROPERTY(qreal realProperty READ realProperty WRITE setRealProperty)
+ Q_PROPERTY(double doubleProperty READ doubleProperty WRITE setDoubleProperty)
+ Q_PROPERTY(float floatProperty READ floatProperty WRITE setFloatProperty)
+ Q_PROPERTY(QColor colorProperty READ colorProperty WRITE setColorProperty)
+ Q_PROPERTY(QDate dateProperty READ dateProperty WRITE setDateProperty)
+ Q_PROPERTY(QTime timeProperty READ timeProperty WRITE setTimeProperty)
+ Q_PROPERTY(QDateTime dateTimeProperty READ dateTimeProperty WRITE setDateTimeProperty)
+ Q_PROPERTY(QPoint pointProperty READ pointProperty WRITE setPointProperty)
+ Q_PROPERTY(QPointF pointFProperty READ pointFProperty WRITE setPointFProperty)
+ Q_PROPERTY(QSize sizeProperty READ sizeProperty WRITE setSizeProperty)
+ Q_PROPERTY(QSizeF sizeFProperty READ sizeFProperty WRITE setSizeFProperty)
+ Q_PROPERTY(QRect rectProperty READ rectProperty WRITE setRectProperty NOTIFY rectPropertyChanged)
+ Q_PROPERTY(QRect rectProperty2 READ rectProperty2 WRITE setRectProperty2)
+ Q_PROPERTY(QRectF rectFProperty READ rectFProperty WRITE setRectFProperty)
+ Q_PROPERTY(bool boolProperty READ boolProperty WRITE setBoolProperty)
+ Q_PROPERTY(QVariant variantProperty READ variantProperty WRITE setVariantProperty)
+ Q_PROPERTY(QVector3D vectorProperty READ vectorProperty WRITE setVectorProperty)
+ Q_PROPERTY(QUrl urlProperty READ urlProperty WRITE setUrlProperty)
+
+ Q_PROPERTY(QDeclarativeScriptString scriptProperty READ scriptProperty WRITE setScriptProperty)
+ Q_PROPERTY(MyGroupedObject *grouped READ grouped CONSTANT)
+ Q_PROPERTY(MyGroupedObject *nullGrouped READ nullGrouped CONSTANT)
public:
MyTypeObject()
@@ -456,7 +469,7 @@ class MyContainer : public QObject
Q_OBJECT
Q_PROPERTY(QDeclarativeListProperty<QObject> children READ children)
Q_PROPERTY(QDeclarativeListProperty<MyInterface> qlistInterfaces READ qlistInterfaces)
- Q_CLASSINFO("DefaultProperty", "children");
+ Q_CLASSINFO("DefaultProperty", "children")
public:
MyContainer() {}
@@ -538,7 +551,7 @@ namespace MyNamespace {
class MySecondNamespacedType : public QObject
{
Q_OBJECT
- Q_PROPERTY(QDeclarativeListProperty<MyNamespace::MyNamespacedType> list READ list);
+ Q_PROPERTY(QDeclarativeListProperty<MyNamespace::MyNamespacedType> list READ list)
public:
QDeclarativeListProperty<MyNamespacedType> list() { return QDeclarativeListProperty<MyNamespacedType>(this, m_list); }
@@ -549,6 +562,20 @@ namespace MyNamespace {
QML_DECLARE_TYPE(MyNamespace::MyNamespacedType);
QML_DECLARE_TYPE(MyNamespace::MySecondNamespacedType);
+class MyCustomParserType : public QObject
+{
+ Q_OBJECT
+};
+
+class MyCustomParserTypeParser : public QDeclarativeCustomParser
+{
+public:
+ QByteArray compile(const QList<QDeclarativeCustomParserProperty> &) { return QByteArray(); }
+ void setCustomData(QObject *, const QByteArray &) {}
+};
+
+QML_DECLARE_TYPE(MyCustomParserType);
+
void registerTypes();
#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
index 1ba4454..8feab32 100644
--- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
+++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
@@ -52,6 +52,7 @@
#include "testtypes.h"
#include "../../../shared/util.h"
+#include "testhttpserver.h"
/*
This test case covers QML language issues. This covers everything that does not
@@ -87,6 +88,7 @@ private slots:
void assignBasicTypes();
void assignTypeExtremes();
void assignCompositeToType();
+ void assignLiteralToVariant();
void customParserTypes();
void rootAsQmlComponent();
void inlineQmlComponents();
@@ -111,10 +113,13 @@ private slots:
void i18n();
void i18n_data();
void onCompleted();
+ void onDestruction();
void scriptString();
void defaultPropertyListOrder();
void declaredPropertyValues();
+ void basicRemote_data();
+ void basicRemote();
void importsBuiltin_data();
void importsBuiltin();
void importsLocal_data();
@@ -128,13 +133,15 @@ private slots:
void qmlAttachedPropertiesObjectMethod();
+ void customOnProperty();
+
// regression tests for crashes
void crash1();
void crash2();
private:
QDeclarativeEngine engine;
- void testType(const QString& qml, const QString& type);
+ void testType(const QString& qml, const QString& type, const QString& error);
};
#define VERIFY_ERRORS(errorfile) \
@@ -232,6 +239,9 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("invalidID.4") << "invalidID.4.qml" << "invalidID.4.errors.txt" << false;
QTest::newRow("invalidID.5") << "invalidID.5.qml" << "invalidID.5.errors.txt" << false;
QTest::newRow("invalidID.6") << "invalidID.6.qml" << "invalidID.6.errors.txt" << false;
+ QTest::newRow("invalidID.7") << "invalidID.7.qml" << "invalidID.7.errors.txt" << false;
+ QTest::newRow("invalidID.8") << "invalidID.8.qml" << "invalidID.8.errors.txt" << false;
+ QTest::newRow("invalidID.9") << "invalidID.9.qml" << "invalidID.9.errors.txt" << false;
QTest::newRow("unsupportedProperty") << "unsupportedProperty.qml" << "unsupportedProperty.errors.txt" << false;
QTest::newRow("nullDotProperty") << "nullDotProperty.qml" << "nullDotProperty.errors.txt" << true;
@@ -252,34 +262,33 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("invalidGroupedProperty.5") << "invalidGroupedProperty.5.qml" << "invalidGroupedProperty.5.errors.txt" << false;
QTest::newRow("invalidGroupedProperty.6") << "invalidGroupedProperty.6.qml" << "invalidGroupedProperty.6.errors.txt" << false;
QTest::newRow("invalidGroupedProperty.7") << "invalidGroupedProperty.7.qml" << "invalidGroupedProperty.7.errors.txt" << true;
+ QTest::newRow("invalidGroupedProperty.8") << "invalidGroupedProperty.8.qml" << "invalidGroupedProperty.8.errors.txt" << false;
+ QTest::newRow("invalidGroupedProperty.9") << "invalidGroupedProperty.9.qml" << "invalidGroupedProperty.9.errors.txt" << false;
+ QTest::newRow("invalidGroupedProperty.10") << "invalidGroupedProperty.10.qml" << "invalidGroupedProperty.10.errors.txt" << false;
QTest::newRow("importNamespaceConflict") << "importNamespaceConflict.qml" << "importNamespaceConflict.errors.txt" << false;
QTest::newRow("importVersionMissing (builtin)") << "importVersionMissingBuiltIn.qml" << "importVersionMissingBuiltIn.errors.txt" << false;
QTest::newRow("importVersionMissing (installed)") << "importVersionMissingInstalled.qml" << "importVersionMissingInstalled.errors.txt" << false;
+ QTest::newRow("importNonExist (installed)") << "importNonExist.qml" << "importNonExist.errors.txt" << false;
+ QTest::newRow("importNewerVersion (installed)") << "importNewerVersion.qml" << "importNewerVersion.errors.txt" << false;
QTest::newRow("invalidImportID") << "invalidImportID.qml" << "invalidImportID.errors.txt" << false;
QTest::newRow("signal.1") << "signal.1.qml" << "signal.1.errors.txt" << false;
QTest::newRow("signal.2") << "signal.2.qml" << "signal.2.errors.txt" << false;
QTest::newRow("signal.3") << "signal.3.qml" << "signal.3.errors.txt" << false;
+ QTest::newRow("signal.4") << "signal.4.qml" << "signal.4.errors.txt" << false;
+
+ QTest::newRow("method.1") << "method.1.qml" << "method.1.errors.txt" << false;
QTest::newRow("property.1") << "property.1.qml" << "property.1.errors.txt" << false;
QTest::newRow("property.2") << "property.2.qml" << "property.2.errors.txt" << false;
QTest::newRow("property.3") << "property.3.qml" << "property.3.errors.txt" << false;
QTest::newRow("property.4") << "property.4.qml" << "property.4.errors.txt" << false;
QTest::newRow("property.5") << "property.5.qml" << "property.5.errors.txt" << false;
+ QTest::newRow("property.6") << "property.6.qml" << "property.6.errors.txt" << false;
+ QTest::newRow("property.7") << "property.7.qml" << "property.7.errors.txt" << false;
- QTest::newRow("Script.1") << "script.1.qml" << "script.1.errors.txt" << false;
- QTest::newRow("Script.2") << "script.2.qml" << "script.2.errors.txt" << false;
- QTest::newRow("Script.3") << "script.3.qml" << "script.3.errors.txt" << false;
- QTest::newRow("Script.4") << "script.4.qml" << "script.4.errors.txt" << false;
- QTest::newRow("Script.5") << "script.5.qml" << "script.5.errors.txt" << false;
- QTest::newRow("Script.6") << "script.6.qml" << "script.6.errors.txt" << false;
- QTest::newRow("Script.7") << "script.7.qml" << "script.7.errors.txt" << false;
- QTest::newRow("Script.8") << "script.8.qml" << "script.8.errors.txt" << false;
- QTest::newRow("Script.9") << "script.9.qml" << "script.9.errors.txt" << false;
- QTest::newRow("Script.10") << "script.10.qml" << "script.10.errors.txt" << false;
- QTest::newRow("Script.11") << "script.11.qml" << "script.11.errors.txt" << false;
- QTest::newRow("Script.12") << "script.12.qml" << "script.12.errors.txt" << false;
+ QTest::newRow("importScript.1") << "importscript.1.qml" << "importscript.1.errors.txt" << false;
QTest::newRow("Component.1") << "component.1.qml" << "component.1.errors.txt" << false;
QTest::newRow("Component.2") << "component.2.qml" << "component.2.errors.txt" << false;
@@ -288,6 +297,17 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("Component.5") << "component.5.qml" << "component.5.errors.txt" << false;
QTest::newRow("Component.6") << "component.6.qml" << "component.6.errors.txt" << false;
+ QTest::newRow("MultiSet.1") << "multiSet.1.qml" << "multiSet.1.errors.txt" << false;
+ QTest::newRow("MultiSet.2") << "multiSet.2.qml" << "multiSet.2.errors.txt" << false;
+ QTest::newRow("MultiSet.3") << "multiSet.3.qml" << "multiSet.3.errors.txt" << false;
+ QTest::newRow("MultiSet.4") << "multiSet.4.qml" << "multiSet.4.errors.txt" << false;
+ QTest::newRow("MultiSet.5") << "multiSet.5.qml" << "multiSet.5.errors.txt" << false;
+ QTest::newRow("MultiSet.6") << "multiSet.6.qml" << "multiSet.6.errors.txt" << false;
+ QTest::newRow("MultiSet.7") << "multiSet.7.qml" << "multiSet.7.errors.txt" << false;
+ QTest::newRow("MultiSet.8") << "multiSet.8.qml" << "multiSet.8.errors.txt" << false;
+ QTest::newRow("MultiSet.9") << "multiSet.9.qml" << "multiSet.9.errors.txt" << false;
+ QTest::newRow("MultiSet.10") << "multiSet.10.qml" << "multiSet.10.errors.txt" << false;
+
QTest::newRow("invalidAttachedProperty.1") << "invalidAttachedProperty.1.qml" << "invalidAttachedProperty.1.errors.txt" << false;
QTest::newRow("invalidAttachedProperty.2") << "invalidAttachedProperty.2.qml" << "invalidAttachedProperty.2.errors.txt" << false;
QTest::newRow("invalidAttachedProperty.3") << "invalidAttachedProperty.3.qml" << "invalidAttachedProperty.3.errors.txt" << false;
@@ -300,13 +320,17 @@ void tst_qdeclarativelanguage::errors_data()
QTest::newRow("invalidAttachedProperty.10") << "invalidAttachedProperty.10.qml" << "invalidAttachedProperty.10.errors.txt" << false;
QTest::newRow("invalidAttachedProperty.11") << "invalidAttachedProperty.11.qml" << "invalidAttachedProperty.11.errors.txt" << false;
+ QTest::newRow("emptySignal") << "emptySignal.qml" << "emptySignal.errors.txt" << false;
+ QTest::newRow("emptySignal.2") << "emptySignal.2.qml" << "emptySignal.2.errors.txt" << false;
+
QTest::newRow("nestedErrors") << "nestedErrors.qml" << "nestedErrors.errors.txt" << false;
QTest::newRow("defaultGrouped") << "defaultGrouped.qml" << "defaultGrouped.errors.txt" << false;
- QTest::newRow("emptySignal") << "emptySignal.qml" << "emptySignal.errors.txt" << false;
QTest::newRow("doubleSignal") << "doubleSignal.qml" << "doubleSignal.errors.txt" << false;
QTest::newRow("invalidRoot") << "invalidRoot.qml" << "invalidRoot.errors.txt" << false;
QTest::newRow("missingValueTypeProperty") << "missingValueTypeProperty.qml" << "missingValueTypeProperty.errors.txt" << false;
QTest::newRow("objectValueTypeProperty") << "objectValueTypeProperty.qml" << "objectValueTypeProperty.errors.txt" << false;
+ QTest::newRow("enumTypes") << "enumTypes.qml" << "enumTypes.errors.txt" << false;
+ QTest::newRow("destroyedSignal") << "destroyedSignal.qml" << "destroyedSignal.errors.txt" << false;
}
@@ -316,9 +340,6 @@ void tst_qdeclarativelanguage::errors()
QFETCH(QString, errorFile);
QFETCH(bool, create);
- if (file == "invalidID.6.qml")
- QTest::ignoreMessage(QtWarningMsg, "id \"StartsWithUpperCase\" is invalid: ids cannot start with uppercase letters");
-
QDeclarativeComponent component(&engine, TEST_FILE(file));
if(create) {
@@ -464,6 +485,37 @@ void tst_qdeclarativelanguage::assignCompositeToType()
QVERIFY(object != 0);
}
+// Test that literals are stored correctly in variant properties
+void tst_qdeclarativelanguage::assignLiteralToVariant()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("assignLiteralToVariant.qml"));
+ VERIFY_ERRORS(0);
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test1").userType(), (int)QVariant::Int);
+ QCOMPARE(object->property("test2").userType(), (int)QMetaType::Double);
+ QCOMPARE(object->property("test3").userType(), (int)QVariant::String);
+ QCOMPARE(object->property("test4").userType(), (int)QVariant::Color);
+ QCOMPARE(object->property("test5").userType(), (int)QVariant::RectF);
+ QCOMPARE(object->property("test6").userType(), (int)QVariant::PointF);
+ QCOMPARE(object->property("test7").userType(), (int)QVariant::SizeF);
+ QCOMPARE(object->property("test8").userType(), (int)QVariant::Vector3D);
+ QCOMPARE(object->property("test9").userType(), (int)QVariant::String);
+
+ QVERIFY(object->property("test1") == QVariant(1));
+ QVERIFY(object->property("test2") == QVariant((double)1.7));
+ QVERIFY(object->property("test3") == QVariant(QString(QLatin1String("Hello world!"))));
+ QVERIFY(object->property("test4") == QVariant(QColor::fromRgb(0xFF008800)));
+ QVERIFY(object->property("test5") == QVariant(QRectF(10, 10, 10, 10)));
+ QVERIFY(object->property("test6") == QVariant(QPointF(10, 10)));
+ QVERIFY(object->property("test7") == QVariant(QSizeF(10, 10)));
+ QVERIFY(object->property("test8") == QVariant(QVector3D(100, 100, 100)));
+ QVERIFY(object->property("test9") == QVariant(QString(QLatin1String("#FF008800"))));
+
+ delete object;
+}
+
// Tests that custom parser types can be instantiated
void tst_qdeclarativelanguage::customParserTypes()
{
@@ -560,7 +612,6 @@ void tst_qdeclarativelanguage::dynamicProperties()
QCOMPARE(object->property("colorProperty"), QVariant(QColor("red")));
QCOMPARE(object->property("dateProperty"), QVariant(QDate(1945, 9, 2)));
QCOMPARE(object->property("varProperty"), QVariant("Hello World!"));
- QCOMPARE(object->property("variantProperty"), QVariant(12));
}
// Test that nested types can use dynamic properties
@@ -666,7 +717,7 @@ void tst_qdeclarativelanguage::propertyValueSource()
MyPropertyValueSource *valueSource =
qobject_cast<MyPropertyValueSource *>(valueSources.at(0));
QVERIFY(valueSource != 0);
- QCOMPARE(valueSource->prop.object(), object);
+ QCOMPARE(valueSource->prop.object(), qobject_cast<QObject*>(object));
QCOMPARE(valueSource->prop.name(), QString(QLatin1String("intProperty")));
}
@@ -687,7 +738,7 @@ void tst_qdeclarativelanguage::propertyValueSource()
MyPropertyValueSource *valueSource =
qobject_cast<MyPropertyValueSource *>(valueSources.at(0));
QVERIFY(valueSource != 0);
- QCOMPARE(valueSource->prop.object(), object);
+ QCOMPARE(valueSource->prop.object(), qobject_cast<QObject*>(object));
QCOMPARE(valueSource->prop.name(), QString(QLatin1String("intProperty")));
}
}
@@ -1000,6 +1051,20 @@ void tst_qdeclarativelanguage::onCompleted()
QVERIFY(object != 0);
}
+// Check that the Component::onDestruction attached property works
+void tst_qdeclarativelanguage::onDestruction()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("onDestruction.qml"));
+ VERIFY_ERRORS(0);
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QTest::ignoreMessage(QtDebugMsg, "Destruction 6 10");
+ QTest::ignoreMessage(QtDebugMsg, "Destruction 6 10");
+ QTest::ignoreMessage(QtDebugMsg, "Destruction 10 11");
+ delete object;
+}
+
// Check that assignments to QDeclarativeScriptString properties work
void tst_qdeclarativelanguage::scriptString()
{
@@ -1009,12 +1074,12 @@ void tst_qdeclarativelanguage::scriptString()
MyTypeObject *object = qobject_cast<MyTypeObject*>(component.create());
QVERIFY(object != 0);
QCOMPARE(object->scriptProperty().script(), QString("foo + bar"));
- QCOMPARE(object->scriptProperty().scopeObject(), object);
+ QCOMPARE(object->scriptProperty().scopeObject(), qobject_cast<QObject*>(object));
QCOMPARE(object->scriptProperty().context(), qmlContext(object));
QVERIFY(object->grouped() != 0);
QCOMPARE(object->grouped()->script().script(), QString("console.log(1921)"));
- QCOMPARE(object->grouped()->script().scopeObject(), object);
+ QCOMPARE(object->grouped()->script().scopeObject(), qobject_cast<QObject*>(object));
QCOMPARE(object->grouped()->script().context(), qmlContext(object));
}
@@ -1040,12 +1105,11 @@ void tst_qdeclarativelanguage::defaultPropertyListOrder()
void tst_qdeclarativelanguage::declaredPropertyValues()
{
QDeclarativeComponent component(&engine, TEST_FILE("declaredPropertyValues.qml"));
- QEXPECT_FAIL("", "QTBUG-7860", Abort);
VERIFY_ERRORS(0);
}
// Check that first child of qml is of given type. Empty type insists on error.
-void tst_qdeclarativelanguage::testType(const QString& qml, const QString& type)
+void tst_qdeclarativelanguage::testType(const QString& qml, const QString& type, const QString& expectederror)
{
QDeclarativeComponent component(&engine);
component.setData(qml.toUtf8(), TEST_FILE("empty.qml")); // just a file for relative local imports
@@ -1054,6 +1118,13 @@ void tst_qdeclarativelanguage::testType(const QString& qml, const QString& type)
if (type.isEmpty()) {
QVERIFY(component.isError());
+ QString actualerror;
+ foreach (const QDeclarativeError e, component.errors()) {
+ if (!actualerror.isEmpty())
+ actualerror.append("; ");
+ actualerror.append(e.description());
+ }
+ QCOMPARE(actualerror,expectederror);
} else {
VERIFY_ERRORS(0);
QObject *object = component.create();
@@ -1073,166 +1144,245 @@ void tst_qdeclarativelanguage::importsBuiltin_data()
QTest::addColumn<QString>("qml");
QTest::addColumn<QString>("type");
+ QTest::addColumn<QString>("error");
// import built-ins
QTest::newRow("missing import")
<< "Test {}"
- << "";
+ << ""
+ << "Test is not a type";
QTest::newRow("not in version 0.0")
<< "import com.nokia.Test 0.0\n"
"Test {}"
- << "";
+ << ""
+ << "Test is not a type";
+ QTest::newRow("version not installed")
+ << "import com.nokia.Test 99.0\n"
+ "Test {}"
+ << ""
+ << "module \"com.nokia.Test\" version 99.0 is not installed";
QTest::newRow("in version 0.0")
<< "import com.nokia.Test 0.0\n"
"TestTP {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("qualified in version 0.0")
<< "import com.nokia.Test 0.0 as T\n"
"T.TestTP {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("in version 1.0")
<< "import com.nokia.Test 1.0\n"
"Test {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("qualified wrong")
<< "import com.nokia.Test 1.0 as T\n" // QT-610
"Test {}"
- << "";
+ << ""
+ << "Test is not a type";
QTest::newRow("qualified right")
<< "import com.nokia.Test 1.0 as T\n"
"T.Test {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("qualified right but not in version 0.0")
<< "import com.nokia.Test 0.0 as T\n"
"T.Test {}"
- << "";
+ << ""
+ << "T.Test is not a type";
QTest::newRow("in version 1.1")
<< "import com.nokia.Test 1.1\n"
"Test {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("in version 1.3")
<< "import com.nokia.Test 1.3\n"
"Test {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("in version 1.5")
<< "import com.nokia.Test 1.5\n"
"Test {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("changed in version 1.8")
<< "import com.nokia.Test 1.8\n"
"Test {}"
- << "TestType2";
+ << "TestType2"
+ << "";
QTest::newRow("in version 1.12")
<< "import com.nokia.Test 1.12\n"
"Test {}"
- << "TestType2";
+ << "TestType2"
+ << "";
QTest::newRow("old in version 1.9")
<< "import com.nokia.Test 1.9\n"
"OldTest {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("old in version 1.11")
<< "import com.nokia.Test 1.11\n"
"OldTest {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("multiversion 1")
<< "import com.nokia.Test 1.11\n"
"import com.nokia.Test 1.12\n"
"Test {}"
- << "TestType2";
+ << "TestType2"
+ << "";
QTest::newRow("multiversion 2")
<< "import com.nokia.Test 1.11\n"
"import com.nokia.Test 1.12\n"
"OldTest {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("qualified multiversion 3")
<< "import com.nokia.Test 1.0 as T0\n"
"import com.nokia.Test 1.8 as T8\n"
"T0.Test {}"
- << "TestType";
+ << "TestType"
+ << "";
QTest::newRow("qualified multiversion 4")
<< "import com.nokia.Test 1.0 as T0\n"
"import com.nokia.Test 1.8 as T8\n"
"T8.Test {}"
- << "TestType2";
+ << "TestType2"
+ << "";
}
void tst_qdeclarativelanguage::importsBuiltin()
{
QFETCH(QString, qml);
QFETCH(QString, type);
- testType(qml,type);
+ QFETCH(QString, error);
+ testType(qml,type,error);
}
void tst_qdeclarativelanguage::importsLocal_data()
{
QTest::addColumn<QString>("qml");
QTest::addColumn<QString>("type");
+ QTest::addColumn<QString>("error");
// import locals
QTest::newRow("local import")
<< "import \"subdir\"\n" // QT-613
"Test {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("local import second")
- << "import Qt 4.6\nimport \"subdir\"\n"
+ << "import Qt 4.7\nimport \"subdir\"\n"
"Test {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("local import subsubdir")
- << "import Qt 4.6\nimport \"subdir/subsubdir\"\n"
+ << "import Qt 4.7\nimport \"subdir/subsubdir\"\n"
"SubTest {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("local import QTBUG-7721 A")
<< "subdir.Test {}" // no longer allowed (QTBUG-7721)
- << "";
+ << ""
+ << "subdir.Test is not a type";
QTest::newRow("local import QTBUG-7721 B")
<< "import \"subdir\" as X\n"
"X.subsubdir.SubTest {}" // no longer allowed (QTBUG-7721)
- << "";
+ << ""
+ << "X.subsubdir.SubTest is not a type";
QTest::newRow("local import as")
<< "import \"subdir\" as T\n"
"T.Test {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("wrong local import as")
<< "import \"subdir\" as T\n"
"Test {}"
- << "";
+ << ""
+ << "Test is not a type";
QTest::newRow("library precedence over local import")
<< "import \"subdir\"\n"
"import com.nokia.Test 1.0\n"
"Test {}"
- << "TestType";
+ << "TestType"
+ << "";
}
void tst_qdeclarativelanguage::importsLocal()
{
QFETCH(QString, qml);
QFETCH(QString, type);
- testType(qml,type);
+ QFETCH(QString, error);
+ testType(qml,type,error);
+}
+
+void tst_qdeclarativelanguage::basicRemote_data()
+{
+ QTest::addColumn<QUrl>("url");
+ QTest::addColumn<QString>("type");
+ QTest::addColumn<QString>("error");
+
+ QString serverdir = "http://127.0.0.1:14447/qtest/declarative/qmllanguage/";
+
+ QTest::newRow("no need for qmldir") << QUrl(serverdir+"Test.qml") << "" << "";
+ QTest::newRow("need qmldir") << QUrl(serverdir+"TestLocal.qml") << "" << "";
+}
+
+void tst_qdeclarativelanguage::basicRemote()
+{
+ QFETCH(QUrl, url);
+ QFETCH(QString, type);
+ QFETCH(QString, error);
+
+ TestHTTPServer server(14447);
+ server.serveDirectory(SRCDIR);
+
+ QDeclarativeComponent component(&engine, url);
+
+ QTRY_VERIFY(!component.isLoading());
+
+ if (error.isEmpty()) {
+ if (component.isError())
+ qDebug() << component.errors();
+ QVERIFY(!component.isError());
+ } else {
+ QVERIFY(component.isError());
+ }
}
void tst_qdeclarativelanguage::importsRemote_data()
{
QTest::addColumn<QString>("qml");
QTest::addColumn<QString>("type");
+ QTest::addColumn<QString>("error");
- QString serverdir = "http://127.0.0.1:14445/qtest/declarative/qmllanguage";
+ QString serverdir = "http://127.0.0.1:14447/qtest/declarative/qmllanguage";
- QTest::newRow("remote import") << "import \""+serverdir+"\"\nTest {}" << "QDeclarativeRectangle";
- QTest::newRow("remote import with subdir") << "import \""+serverdir+"\"\nTestSubDir {}" << "QDeclarativeText";
- QTest::newRow("remote import with local") << "import \""+serverdir+"\"\nTestLocal {}" << "QDeclarativeImage";
+ QTest::newRow("remote import") << "import \""+serverdir+"\"\nTest {}" << "QDeclarativeRectangle"
+ << "";
+ QTest::newRow("remote import with subdir") << "import \""+serverdir+"\"\nTestSubDir {}" << "QDeclarativeText"
+ << "";
+ QTest::newRow("remote import with local") << "import \""+serverdir+"\"\nTestLocal {}" << "QDeclarativeImage"
+ << "";
+ QTest::newRow("wrong remote import with undeclared local") << "import \""+serverdir+"\"\nWrongTestLocal {}" << ""
+ << "WrongTestLocal is not a type";
+ QTest::newRow("wrong remote import of internal local") << "import \""+serverdir+"\"\nLocalInternal {}" << ""
+ << "LocalInternal is not a type";
+ QTest::newRow("wrong remote import of undeclared local") << "import \""+serverdir+"\"\nUndeclaredLocal {}" << ""
+ << "UndeclaredLocal is not a type";
}
-#include "testhttpserver.h"
-
void tst_qdeclarativelanguage::importsRemote()
{
QFETCH(QString, qml);
QFETCH(QString, type);
+ QFETCH(QString, error);
- TestHTTPServer server(14445);
+ TestHTTPServer server(14447);
server.serveDirectory(SRCDIR);
- testType(qml,type);
+ testType(qml,type,error);
}
void tst_qdeclarativelanguage::importsInstalled_data()
@@ -1241,43 +1391,57 @@ void tst_qdeclarativelanguage::importsInstalled_data()
QTest::addColumn<QString>("qml");
QTest::addColumn<QString>("type");
+ QTest::addColumn<QString>("error");
// import installed
QTest::newRow("installed import 0")
<< "import com.nokia.installedtest 0.0\n"
"InstalledTestTP {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("installed import 0 as TP")
<< "import com.nokia.installedtest 0.0 as TP\n"
"TP.InstalledTestTP {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("installed import 1")
<< "import com.nokia.installedtest 1.0\n"
"InstalledTest {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("installed import 2")
<< "import com.nokia.installedtest 1.3\n"
"InstalledTest {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("installed import 3")
<< "import com.nokia.installedtest 1.4\n"
"InstalledTest {}"
- << "QDeclarativeText";
- QTest::newRow("installed import 4")
+ << "QDeclarativeText"
+ << "";
+ QTest::newRow("installed import minor version not available") // QTBUG-9627
<< "import com.nokia.installedtest 1.10\n"
"InstalledTest {}"
- << "QDeclarativeText";
+ << ""
+ << "module \"com.nokia.installedtest\" version 1.10 is not installed";
+ QTest::newRow("installed import major version not available") // QTBUG-9627
+ << "import com.nokia.installedtest 9.0\n"
+ "InstalledTest {}"
+ << ""
+ << "module \"com.nokia.installedtest\" version 9.0 is not installed";
QTest::newRow("installed import visibility") // QT-614
<< "import com.nokia.installedtest 1.4\n"
"PrivateType {}"
- << "";
+ << ""
+ << "PrivateType is not a type";
}
void tst_qdeclarativelanguage::importsInstalled()
{
QFETCH(QString, qml);
QFETCH(QString, type);
- testType(qml,type);
+ QFETCH(QString, error);
+ testType(qml,type,error);
}
@@ -1285,58 +1449,77 @@ void tst_qdeclarativelanguage::importsOrder_data()
{
QTest::addColumn<QString>("qml");
QTest::addColumn<QString>("type");
+ QTest::addColumn<QString>("error");
QTest::newRow("installed import overrides 1") <<
"import com.nokia.installedtest 1.0\n"
"import com.nokia.installedtest 1.4\n"
"InstalledTest {}"
- << "QDeclarativeText";
+ << "QDeclarativeText"
+ << "";
QTest::newRow("installed import overrides 2") <<
"import com.nokia.installedtest 1.4\n"
"import com.nokia.installedtest 1.0\n"
"InstalledTest {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("installed import re-overrides 1") <<
"import com.nokia.installedtest 1.4\n"
"import com.nokia.installedtest 1.0\n"
"import com.nokia.installedtest 1.4\n"
"InstalledTest {}"
- << "QDeclarativeText";
+ << "QDeclarativeText"
+ << "";
QTest::newRow("installed import re-overrides 2") <<
"import com.nokia.installedtest 1.4\n"
"import com.nokia.installedtest 1.0\n"
"import com.nokia.installedtest 1.4\n"
"import com.nokia.installedtest 1.0\n"
"InstalledTest {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("installed import versus builtin 1") <<
"import com.nokia.installedtest 1.5\n"
- "import Qt 4.6\n"
+ "import Qt 4.7\n"
"Rectangle {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("installed import versus builtin 2") <<
- "import Qt 4.6\n"
+ "import Qt 4.7\n"
"import com.nokia.installedtest 1.5\n"
"Rectangle {}"
- << "QDeclarativeText";
+ << "QDeclarativeText"
+ << "";
QTest::newRow("namespaces cannot be overridden by types 1") <<
- "import Qt 4.6 as Rectangle\n"
+ "import Qt 4.7 as Rectangle\n"
"import com.nokia.installedtest 1.5\n"
"Rectangle {}"
- << "";
+ << ""
+ << "Namespace Rectangle cannot be used as a type";
QTest::newRow("namespaces cannot be overridden by types 2") <<
- "import Qt 4.6 as Rectangle\n"
+ "import Qt 4.7 as Rectangle\n"
"import com.nokia.installedtest 1.5\n"
"Rectangle.Image {}"
- << "QDeclarativeImage";
+ << "QDeclarativeImage"
+ << "";
+ QTest::newRow("local last 1") <<
+ "LocalLast {}"
+ << "QDeclarativeText"
+ << "";
+ QTest::newRow("local last 2") <<
+ "import com.nokia.installedtest 1.0\n"
+ "LocalLast {}"
+ << "QDeclarativeRectangle"
+ << ""; // i.e. from com.nokia.installedtest, not data/LocalLast.qml
}
void tst_qdeclarativelanguage::importsOrder()
{
QFETCH(QString, qml);
QFETCH(QString, type);
- testType(qml,type);
+ QFETCH(QString, error);
+ testType(qml,type,error);
}
void tst_qdeclarativelanguage::qmlAttachedPropertiesObjectMethod()
@@ -1370,7 +1553,7 @@ void tst_qdeclarativelanguage::qmlAttachedPropertiesObjectMethod()
void tst_qdeclarativelanguage::crash1()
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6\nComponent {}", QUrl());
+ component.setData("import Qt 4.7\nComponent {}", QUrl());
}
void tst_qdeclarativelanguage::crash2()
@@ -1378,17 +1561,30 @@ void tst_qdeclarativelanguage::crash2()
QDeclarativeComponent component(&engine, TEST_FILE("crash2.qml"));
}
+// QTBUG-8676
+void tst_qdeclarativelanguage::customOnProperty()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("customOnProperty.qml"));
+
+ VERIFY_ERRORS(0);
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("on").toInt(), 10);
+
+ delete object;
+}
void tst_qdeclarativelanguage::initTestCase()
{
registerTypes();
- QML_REGISTER_TYPE(com.nokia.Test, 0, 0, TestTP, TestType);
- QML_REGISTER_TYPE(com.nokia.Test, 1, 0, Test, TestType);
- QML_REGISTER_TYPE(com.nokia.Test, 1, 5, Test, TestType);
- QML_REGISTER_TYPE(com.nokia.Test, 1, 8, Test, TestType2);
- QML_REGISTER_TYPE(com.nokia.Test, 1, 9, OldTest, TestType);
- QML_REGISTER_TYPE(com.nokia.Test, 1, 12, Test, TestType2);
+ qmlRegisterType<TestType>("com.nokia.Test", 0, 0, "TestTP");
+ qmlRegisterType<TestType>("com.nokia.Test", 1, 0, "Test");
+ qmlRegisterType<TestType>("com.nokia.Test", 1, 5, "Test");
+ qmlRegisterType<TestType2>("com.nokia.Test", 1, 8, "Test");
+ qmlRegisterType<TestType>("com.nokia.Test", 1, 9, "OldTest");
+ qmlRegisterType<TestType2>("com.nokia.Test", 1, 12, "Test");
// Create locale-specific file
// For POSIX, this will just be data/I18nType.qml, since POSIX is 7-bit
diff --git a/tests/auto/declarative/qdeclarativelayouts/data/layouts.qml b/tests/auto/declarative/qdeclarativelayouts/data/layouts.qml
new file mode 100644
index 0000000..5c2178f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelayouts/data/layouts.qml
@@ -0,0 +1,31 @@
+import Qt 4.6
+import Qt.widgets 4.6
+
+Item {
+ id: resizable
+ width:300
+ height:300
+ QGraphicsWidget {
+ x : resizable.x
+ y : resizable.y
+ width : resizable.width
+ height : resizable.height
+ layout: QGraphicsLinearLayout {
+ spacing: 0
+ LayoutItem {
+ objectName: "left"
+ minimumSize: "100x100"
+ maximumSize: "300x300"
+ preferredSize: "100x100"
+ Rectangle { objectName: "yellowRect"; color: "yellow"; anchors.fill: parent }
+ }
+ LayoutItem {
+ objectName: "right"
+ minimumSize: "100x100"
+ maximumSize: "400x400"
+ preferredSize: "200x200"
+ Rectangle { objectName: "greenRect"; color: "green"; anchors.fill: parent }
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelayouts/qdeclarativelayouts.pro b/tests/auto/declarative/qdeclarativelayouts/qdeclarativelayouts.pro
new file mode 100644
index 0000000..a2065f4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelayouts/qdeclarativelayouts.pro
@@ -0,0 +1,10 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative
+SOURCES += tst_qdeclarativelayouts.cpp
+macx:CONFIG -= app_bundle
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativelayouts/tst_qdeclarativelayouts.cpp b/tests/auto/declarative/qdeclarativelayouts/tst_qdeclarativelayouts.cpp
new file mode 100644
index 0000000..412c3b7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelayouts/tst_qdeclarativelayouts.cpp
@@ -0,0 +1,147 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <QtTest/QtTest>
+#include <private/qlistmodelinterface_p.h>
+#include <qdeclarativeview.h>
+#include <private/qdeclarativelayoutitem_p.h>
+#include <qdeclarativeexpression.h>
+#include <QStyle>
+
+class tst_QDeclarativeLayouts : public QObject
+{
+ Q_OBJECT
+public:
+ tst_QDeclarativeLayouts();
+
+private slots:
+ void test_qml();//GraphicsLayout set up in Qml
+ void test_cpp();//GraphicsLayout set up in C++
+
+private:
+ QDeclarativeView *createView(const QString &filename);
+};
+
+tst_QDeclarativeLayouts::tst_QDeclarativeLayouts()
+{
+}
+
+void tst_QDeclarativeLayouts::test_qml()
+{
+ QDeclarativeView *canvas = createView(SRCDIR "/data/layouts.qml");
+
+ qApp->processEvents();
+ QDeclarativeLayoutItem *left = static_cast<QDeclarativeLayoutItem*>(canvas->rootObject()->findChild<QDeclarativeItem*>("left"));
+ QVERIFY(left != 0);
+
+ QDeclarativeLayoutItem *right = static_cast<QDeclarativeLayoutItem*>(canvas->rootObject()->findChild<QDeclarativeItem*>("right"));
+ QVERIFY(right != 0);
+
+ qreal l = QApplication::style()->pixelMetric(QStyle::PM_LayoutLeftMargin);
+ qreal r = QApplication::style()->pixelMetric(QStyle::PM_LayoutRightMargin);
+ qreal t = QApplication::style()->pixelMetric(QStyle::PM_LayoutTopMargin);
+ qreal b = QApplication::style()->pixelMetric(QStyle::PM_LayoutBottomMargin);
+ QVERIFY2(l == r && r == t && t == b, "Test assumes equal margins.");
+ qreal gvMargin = l;
+
+ QDeclarativeItem *rootItem = qobject_cast<QDeclarativeItem*>(canvas->rootObject());
+ QVERIFY(rootItem != 0);
+
+ //Preferred Size
+ rootItem->setWidth(300 + 2*gvMargin);
+ rootItem->setHeight(300 + 2*gvMargin);
+
+ QCOMPARE(left->x(), gvMargin);
+ QCOMPARE(left->y(), gvMargin);
+ QCOMPARE(left->width(), 100.0);
+ QCOMPARE(left->height(), 300.0);
+
+ QCOMPARE(right->x(), 100.0 + gvMargin);
+ QCOMPARE(right->y(), 0.0 + gvMargin);
+ QCOMPARE(right->width(), 200.0);
+ QCOMPARE(right->height(), 300.0);
+
+ //Minimum Size
+ rootItem->setWidth(10+2*gvMargin);
+ rootItem->setHeight(10+2*gvMargin);
+
+ QCOMPARE(left->x(), gvMargin);
+ QCOMPARE(left->width(), 100.0);
+ QCOMPARE(left->height(), 100.0);
+
+ QCOMPARE(right->x(), 100.0 + gvMargin);
+ QCOMPARE(right->width(), 100.0);
+ QCOMPARE(right->height(), 100.0);
+
+ //Between preferred and Maximum Size
+ /*Note that if set to maximum size (or above) GraphicsLinearLayout behavior
+ is to shrink them down to preferred size. So the exact maximum size can't
+ be used*/
+ rootItem->setWidth(670 + 2*gvMargin);
+ rootItem->setHeight(300 + 2*gvMargin);
+
+ QCOMPARE(left->x(), gvMargin);
+ QCOMPARE(left->width(), 270.0);
+ QCOMPARE(left->height(), 300.0);
+
+ QCOMPARE(right->x(), 270.0 + gvMargin);
+ QCOMPARE(right->width(), 400.0);
+ QCOMPARE(right->height(), 300.0);
+
+ delete canvas;
+}
+
+void tst_QDeclarativeLayouts::test_cpp()
+{
+ //TODO: This test!
+}
+
+QDeclarativeView *tst_QDeclarativeLayouts::createView(const QString &filename)
+{
+ QDeclarativeView *canvas = new QDeclarativeView(0);
+ canvas->setSource(QUrl::fromLocalFile(filename));
+
+ return canvas;
+}
+
+
+QTEST_MAIN(tst_QDeclarativeLayouts)
+
+#include "tst_qdeclarativelayouts.moc"
diff --git a/tests/auto/declarative/qdeclarativelistmodel/data/model.qml b/tests/auto/declarative/qdeclarativelistmodel/data/model.qml
new file mode 100644
index 0000000..4019948
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelistmodel/data/model.qml
@@ -0,0 +1,22 @@
+import Qt 4.6
+
+Item {
+ id: item
+ property variant model
+ property bool done: false
+ property variant result
+
+ function evalExpressionViaWorker(commands) {
+ done = false
+ worker.sendMessage({'commands': commands, 'model': model})
+ }
+
+ WorkerScript {
+ id: worker
+ source: "script.js"
+ onMessage: {
+ item.result = messageObject.result
+ item.done = true
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelistmodel/data/script.js b/tests/auto/declarative/qdeclarativelistmodel/data/script.js
new file mode 100644
index 0000000..66a4acb
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelistmodel/data/script.js
@@ -0,0 +1,13 @@
+WorkerScript.onMessage = function(msg) {
+ var result = null
+ try {
+ for (var i=0; i<msg.commands.length; i++) {
+ var c = 'msg.model.' + msg.commands[i]
+ result = eval(c)
+ }
+ msg.model.sync()
+ } catch(e) { }
+ WorkerScript.sendMessage({'done': true, 'result': result})
+}
+
+
diff --git a/tests/auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro b/tests/auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro
index d728d08..9f1e146 100644
--- a/tests/auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro
+++ b/tests/auto/declarative/qdeclarativelistmodel/qdeclarativelistmodel.pro
@@ -4,3 +4,9 @@ QT += script
macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativelistmodel.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
index a1e6d6b..9d61ad0 100644
--- a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
+++ b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
@@ -39,10 +39,17 @@
**
****************************************************************************/
#include <qtest.h>
+#include <QtDeclarative/private/qdeclarativeitem_p.h>
+#include <QtDeclarative/private/qdeclarativetext_p.h>
+#include <QtDeclarative/private/qdeclarativeengine_p.h>
#include <QtDeclarative/private/qdeclarativelistmodel_p.h>
#include <QtDeclarative/private/qdeclarativeexpression_p.h>
#include <QDeclarativeComponent>
-#include <QDebug>
+
+#include <QtCore/qtimer.h>
+#include <QtCore/qdebug.h>
+
+#include "../../../shared/util.h"
class tst_QDeclarativeListModel : public QObject
{
@@ -50,6 +57,11 @@ class tst_QDeclarativeListModel : public QObject
public:
tst_QDeclarativeListModel() {}
+private:
+ QScriptValue nestedListValue(QScriptEngine *eng) const;
+ QDeclarativeItem *createWorkerTest(QDeclarativeEngine *eng, QDeclarativeComponent *component, QDeclarativeListModel *model);
+ void waitForWorker(QDeclarativeItem *item);
+
private slots:
void static_types();
void static_types_data();
@@ -58,14 +70,55 @@ private slots:
void static_nestedElements_data();
void dynamic_data();
void dynamic();
+ void dynamic_worker_data();
+ void dynamic_worker();
+ void convertNestedToFlat_fail();
+ void convertNestedToFlat_fail_data();
+ void convertNestedToFlat_ok();
+ void convertNestedToFlat_ok_data();
void error_data();
void error();
+ void set();
};
+QScriptValue tst_QDeclarativeListModel::nestedListValue(QScriptEngine *eng) const
+{
+ QScriptValue list = eng->newArray();
+ list.setProperty(0, eng->newObject());
+ list.setProperty(1, eng->newObject());
+ QScriptValue sv = eng->newObject();
+ sv.setProperty("foo", list);
+ return sv;
+}
+
+QDeclarativeItem *tst_QDeclarativeListModel::createWorkerTest(QDeclarativeEngine *eng, QDeclarativeComponent *component, QDeclarativeListModel *model)
+{
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(component->create());
+ QDeclarativeEngine::setContextForObject(model, eng->rootContext());
+ if (item)
+ item->setProperty("model", qVariantFromValue(model));
+ return item;
+}
+
+void tst_QDeclarativeListModel::waitForWorker(QDeclarativeItem *item)
+{
+ QEventLoop loop;
+ QTimer timer;
+ timer.setSingleShot(true);
+ connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+
+ QDeclarativeProperty prop(item, "done");
+ QVERIFY(prop.isValid());
+ QVERIFY(prop.connectNotifySignal(&loop, SLOT(quit())));
+ timer.start(10000);
+ loop.exec();
+ QVERIFY(timer.isActive());
+}
+
void tst_QDeclarativeListModel::static_i18n()
{
QString expect = QString::fromUtf8("na\303\257ve");
- QString componentStr = "import Qt 4.6\nListModel { ListElement { prop1: \""+expect+"\" } }";
+ QString componentStr = "import Qt 4.7\nListModel { ListElement { prop1: \""+expect+"\" } }";
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
component.setData(componentStr.toUtf8(), QUrl::fromLocalFile(""));
@@ -86,7 +139,7 @@ void tst_QDeclarativeListModel::static_nestedElements()
QString elementsStr = elements.join(",\n") + "\n";
QString componentStr =
- "import Qt 4.6\n"
+ "import Qt 4.7\n"
"ListModel {\n"
" ListElement {\n"
" attributes: [\n";
@@ -142,17 +195,17 @@ void tst_QDeclarativeListModel::dynamic_data()
QTest::newRow("clear1") << "{append({'foo':456});clear();count}" << 0 << "";
QTest::newRow("clear2") << "{append({'foo':123});append({'foo':456});clear();count}" << 0 << "";
- QTest::newRow("clear2") << "{append({'foo':123});clear();get(0).foo}" << 0 << "QML ListModel (unknown location) get: index 0 out of range";
+ QTest::newRow("clear3") << "{append({'foo':123});clear();get(0).foo}" << 0 << "QML ListModel (unknown location) get: index 0 out of range";
QTest::newRow("remove1") << "{append({'foo':123});remove(0);count}" << 0 << "";
QTest::newRow("remove2a") << "{append({'foo':123});append({'foo':456});remove(0);count}" << 1 << "";
QTest::newRow("remove2b") << "{append({'foo':123});append({'foo':456});remove(0);get(0).foo}" << 456 << "";
QTest::newRow("remove2c") << "{append({'foo':123});append({'foo':456});remove(1);get(0).foo}" << 123 << "";
QTest::newRow("remove3") << "{append({'foo':123});remove(0);get(0).foo}" << 0 << "QML ListModel (unknown location) get: index 0 out of range";
- QTest::newRow("remove3a") << "{append({'foo':123});remove(-1)}" << 0 << "QML ListModel (unknown location) remove: index -1 out of range";
+ QTest::newRow("remove3a") << "{append({'foo':123});remove(-1);count}" << 1 << "QML ListModel (unknown location) remove: index -1 out of range";
QTest::newRow("remove4a") << "{remove(0)}" << 0 << "QML ListModel (unknown location) remove: index 0 out of range";
- QTest::newRow("remove4b") << "{append({'foo':123});remove(0);remove(0)}" << 0 << "QML ListModel (unknown location) remove: index 0 out of range";
- QTest::newRow("remove4c") << "{append({'foo':123});remove(1)}" << 0 << "QML ListModel (unknown location) remove: index 1 out of range";
+ QTest::newRow("remove4b") << "{append({'foo':123});remove(0);remove(0);count}" << 0 << "QML ListModel (unknown location) remove: index 0 out of range";
+ QTest::newRow("remove4c") << "{append({'foo':123});remove(1);count}" << 1 << "QML ListModel (unknown location) remove: index 1 out of range";
QTest::newRow("insert1") << "{insert(0,{'foo':123});count}" << 1 << "";
QTest::newRow("insert2") << "{insert(1,{'foo':123});count}" << 0 << "QML ListModel (unknown location) insert: index 1 out of range";
@@ -161,7 +214,7 @@ void tst_QDeclarativeListModel::dynamic_data()
QTest::newRow("insert3c") << "{append({'foo':123});insert(1,{'foo':456});get(1).foo}" << 456 << "";
QTest::newRow("insert3d") << "{append({'foo':123});insert(0,{'foo':456});get(0).foo}" << 456 << "";
QTest::newRow("insert3e") << "{append({'foo':123});insert(0,{'foo':456});get(1).foo}" << 123 << "";
- QTest::newRow("insert4") << "{append({'foo':123});insert(-1,{'foo':456})}" << 0 << "QML ListModel (unknown location) insert: index -1 out of range";
+ QTest::newRow("insert4") << "{append({'foo':123});insert(-1,{'foo':456});count}" << 1 << "QML ListModel (unknown location) insert: index -1 out of range";
QTest::newRow("insert5a") << "{insert(0,123)}" << 0 << "QML ListModel (unknown location) insert: value is not an object";
QTest::newRow("insert5b") << "{insert(0,[1,2,3])}" << 0 << "QML ListModel (unknown location) insert: value is not an object";
@@ -171,8 +224,8 @@ void tst_QDeclarativeListModel::dynamic_data()
QTest::newRow("set3b") << "{append({'foo':123,'bar':456});set(0,{'foo':999});get(0).bar}" << 456 << "";
QTest::newRow("set4a") << "{set(0,{'foo':456})}" << 0 << "QML ListModel (unknown location) set: index 0 out of range";
QTest::newRow("set4c") << "{set(-1,{'foo':456})}" << 0 << "QML ListModel (unknown location) set: index -1 out of range";
- QTest::newRow("set5a") << "{append({'foo':123,'bar':456});set(0,123)}" << 0 << "QML ListModel (unknown location) set: value is not an object";
- QTest::newRow("set5b") << "{append({'foo':123,'bar':456});set(0,[1,2,3])}" << 0 << "QML ListModel (unknown location) set: value is not an object";
+ QTest::newRow("set5a") << "{append({'foo':123,'bar':456});set(0,123);count}" << 1 << "QML ListModel (unknown location) set: value is not an object";
+ QTest::newRow("set5b") << "{append({'foo':123,'bar':456});set(0,[1,2,3]);count}" << 1 << "QML ListModel (unknown location) set: value is not an object";
QTest::newRow("set6") << "{append({'foo':123});set(1,{'foo':456});count}" << 2 << "";
QTest::newRow("setprop1") << "{append({'foo':123});setProperty(0,'foo',456);count}" << 1 << "";
@@ -181,7 +234,7 @@ void tst_QDeclarativeListModel::dynamic_data()
QTest::newRow("setprop3b") << "{append({'foo':123,'bar':456});setProperty(0,'foo',999);get(0).bar}" << 456 << "";
QTest::newRow("setprop4a") << "{setProperty(0,'foo',456)}" << 0 << "QML ListModel (unknown location) set: index 0 out of range";
QTest::newRow("setprop4b") << "{setProperty(-1,'foo',456)}" << 0 << "QML ListModel (unknown location) set: index -1 out of range";
- QTest::newRow("setprop4c") << "{append({'foo':123,'bar':456});setProperty(1,'foo',456)}" << 0 << "QML ListModel (unknown location) set: index 1 out of range";
+ QTest::newRow("setprop4c") << "{append({'foo':123,'bar':456});setProperty(1,'foo',456);count}" << 1 << "QML ListModel (unknown location) set: index 1 out of range";
QTest::newRow("setprop5") << "{append({'foo':123,'bar':456});append({'foo':111});setProperty(1,'bar',222);get(1).bar}" << 222 << "";
QTest::newRow("move1a") << "{append({'foo':123});append({'foo':456});move(0,1,1);count}" << 2 << "";
@@ -193,16 +246,22 @@ void tst_QDeclarativeListModel::dynamic_data()
QTest::newRow("move2b") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(0,1,2);get(0).foo}" << 789 << "";
QTest::newRow("move2c") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(0,1,2);get(1).foo}" << 123 << "";
QTest::newRow("move2d") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(0,1,2);get(2).foo}" << 456 << "";
- QTest::newRow("move3a") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,0,3)}" << 0 << "QML ListModel (unknown location) move: out of range";
- QTest::newRow("move3b") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,-1,1)}" << 0 << "QML ListModel (unknown location) move: out of range";
- QTest::newRow("move3c") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,0,-1)}" << 0 << "QML ListModel (unknown location) move: out of range";
- QTest::newRow("move3d") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(0,3,1)}" << 0 << "QML ListModel (unknown location) move: out of range";
+ QTest::newRow("move3a") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,0,3);count}" << 3 << "QML ListModel (unknown location) move: out of range";
+ QTest::newRow("move3b") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,-1,1);count}" << 3 << "QML ListModel (unknown location) move: out of range";
+ QTest::newRow("move3c") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(1,0,-1);count}" << 3 << "QML ListModel (unknown location) move: out of range";
+ QTest::newRow("move3d") << "{append({'foo':123});append({'foo':456});append({'foo':789});move(0,3,1);count}" << 3 << "QML ListModel (unknown location) move: out of range";
+
+ // Nested models
- // Structured model
+ QTest::newRow("nested-append1") << "{append({'foo':123,'bars':[{'a':1},{'a':2},{'a':3}]});count}" << 1 << "";
+ QTest::newRow("nested-append2") << "{append({'foo':123,'bars':[{'a':1},{'a':2},{'a':3}]});get(0).bars.get(1).a}" << 2 << "";
+ QTest::newRow("nested-append3") << "{append({'foo':123,'bars':[{'a':1},{'a':2},{'a':3}]});get(0).bars.append({'a':4});get(0).bars.get(3).a}" << 4 << "";
- QTest::newRow("listprop1a") << "{append({'foo':123,'bars':[{'a':1},{'a':2},{'a':3}]});count}" << 1 << "";
- QTest::newRow("listprop1b") << "{append({'foo':123,'bars':[{'a':1},{'a':2},{'a':3}]});get(0).bars.get(1).a}" << 2 << "";
- QTest::newRow("listprop2a") << "{append({'foo':123,'bars':[{'a':1},{'a':2},{'a':3}]});get(0).bars.append({'a':4});get(0).bars.get(3).a}" << 4 << "";
+ QTest::newRow("nested-insert") << "{append({'foo':123});insert(0,{'bars':[{'a':1},{'b':2},{'c':3}]});get(0).bars.get(0).a}" << 1 << "";
+ QTest::newRow("nested-set") << "{append({'foo':123});set(0,{'foo':[{'x':123}]});get(0).foo.get(0).x}" << 123 << "";
+
+ // XXX
+ //QTest::newRow("nested-setprop") << "{append({'foo':123});setProperty(0,'foo',[{'x':123}]);get(0).foo.get(0).x}" << 123 << "";
}
void tst_QDeclarativeListModel::dynamic()
@@ -214,10 +273,11 @@ void tst_QDeclarativeListModel::dynamic()
QDeclarativeEngine engine;
QDeclarativeListModel model;
QDeclarativeEngine::setContextForObject(&model,engine.rootContext());
- engine.rootContext()->addDefaultObject(&model);
+ engine.rootContext()->setContextObject(&model);
QDeclarativeExpression e(engine.rootContext(), script, &model);
if (!warning.isEmpty())
QTest::ignoreMessage(QtWarningMsg, warning.toLatin1());
+
int actual = e.value().toInt();
if (e.hasError())
qDebug() << e.error(); // errors not expected
@@ -225,6 +285,154 @@ void tst_QDeclarativeListModel::dynamic()
QCOMPARE(actual,result);
}
+void tst_QDeclarativeListModel::dynamic_worker_data()
+{
+ dynamic_data();
+}
+
+void tst_QDeclarativeListModel::dynamic_worker()
+{
+ QFETCH(QString, script);
+ QFETCH(int, result);
+ QFETCH(QString, warning);
+
+ QDeclarativeListModel model;
+ QDeclarativeEngine eng;
+ QDeclarativeComponent component(&eng, QUrl::fromLocalFile(SRCDIR "/data/model.qml"));
+ QDeclarativeItem *item = createWorkerTest(&eng, &component, &model);
+ QVERIFY(item != 0);
+
+ if (script[0] == QLatin1Char('{') && script[script.length()-1] == QLatin1Char('}'))
+ script = script.mid(1, script.length() - 2);
+ QVariantList operations;
+ foreach (const QString &s, script.split(';')) {
+ if (!s.isEmpty())
+ operations << s;
+ }
+
+ if (!warning.isEmpty())
+ QTest::ignoreMessage(QtWarningMsg, warning.toLatin1());
+
+ if (operations.count() == 1) {
+ // test count(), get() return the correct default values in the worker list model
+ QVERIFY(QMetaObject::invokeMethod(item, "evalExpressionViaWorker",
+ Q_ARG(QVariant, operations)));
+ waitForWorker(item);
+ QCOMPARE(QDeclarativeProperty(item, "result").read().toInt(), result);
+ } else {
+ // execute a set of commands on the worker list model, then check the
+ // changes are reflected in the list model in the main thread
+ if (QByteArray(QTest::currentDataTag()).startsWith("nested"))
+ QTest::ignoreMessage(QtWarningMsg, "QML ListModel (unknown location) Cannot add nested list values when modifying or after modification from a worker script");
+
+ QVERIFY(QMetaObject::invokeMethod(item, "evalExpressionViaWorker",
+ Q_ARG(QVariant, operations.mid(0, operations.length()-1))));
+ waitForWorker(item);
+
+ QDeclarativeExpression e(eng.rootContext(), operations.last().toString(), &model);
+ if (QByteArray(QTest::currentDataTag()).startsWith("nested"))
+ QVERIFY(e.value().toInt() != result);
+ else
+ QCOMPARE(e.value().toInt(), result);
+ }
+
+ delete item;
+ qApp->processEvents();
+}
+
+void tst_QDeclarativeListModel::convertNestedToFlat_fail()
+{
+ // If a model has nested data, it cannot be used at all from a worker script
+
+ QFETCH(QString, script);
+
+ QDeclarativeListModel model;
+ QDeclarativeEngine eng;
+ QDeclarativeComponent component(&eng, QUrl::fromLocalFile(SRCDIR "/data/model.qml"));
+ QDeclarativeItem *item = createWorkerTest(&eng, &component, &model);
+ QVERIFY(item != 0);
+
+ QScriptEngine s_eng;
+ QScriptValue plainData = s_eng.newObject();
+ plainData.setProperty("foo", QScriptValue(123));
+ model.append(plainData);
+ model.append(nestedListValue(&s_eng));
+ QCOMPARE(model.count(), 2);
+
+ QTest::ignoreMessage(QtWarningMsg, "QML ListModel (unknown location) List contains nested list values and cannot be used from a worker script");
+ QVERIFY(QMetaObject::invokeMethod(item, "evalExpressionViaWorker", Q_ARG(QVariant, script)));
+ waitForWorker(item);
+
+ QCOMPARE(model.count(), 2);
+
+ delete item;
+ qApp->processEvents();
+}
+
+void tst_QDeclarativeListModel::convertNestedToFlat_fail_data()
+{
+ QTest::addColumn<QString>("script");
+
+ QTest::newRow("clear") << "clear()";
+ QTest::newRow("remove") << "remove(0)";
+ QTest::newRow("append") << "append({'x':1})";
+ QTest::newRow("insert") << "insert(0, {'x':1})";
+ QTest::newRow("set") << "set(0, {'foo':1})";
+ QTest::newRow("setProperty") << "setProperty(0, 'foo', 1})";
+ QTest::newRow("move") << "move(0, 1, 1})";
+ QTest::newRow("get") << "get(0)";
+}
+
+void tst_QDeclarativeListModel::convertNestedToFlat_ok()
+{
+ // If a model only has plain data, it can be modified from a worker script. However,
+ // once the model is used from a worker script, it no longer accepts nested data
+
+ QFETCH(QString, script);
+
+ QDeclarativeListModel model;
+ QDeclarativeEngine eng;
+ QDeclarativeComponent component(&eng, QUrl::fromLocalFile(SRCDIR "/data/model.qml"));
+ QDeclarativeItem *item = createWorkerTest(&eng, &component, &model);
+ QVERIFY(item != 0);
+
+ QScriptEngine s_eng;
+ QScriptValue plainData = s_eng.newObject();
+ plainData.setProperty("foo", QScriptValue(123));
+ model.append(plainData);
+ QCOMPARE(model.count(), 1);
+
+ QVERIFY(QMetaObject::invokeMethod(item, "evalExpressionViaWorker", Q_ARG(QVariant, script)));
+ waitForWorker(item);
+
+ // can still add plain data
+ int count = model.count();
+ model.append(plainData);
+ QCOMPARE(model.count(), count+1);
+
+ QScriptValue nested = nestedListValue(&s_eng);
+ const char *warning = "QML ListModel (unknown location) Cannot add nested list values when modifying or after modification from a worker script";
+
+ QTest::ignoreMessage(QtWarningMsg, warning);
+ model.append(nested);
+
+ QTest::ignoreMessage(QtWarningMsg, warning);
+ model.insert(0, nested);
+
+ QTest::ignoreMessage(QtWarningMsg, warning);
+ model.set(0, nested);
+
+ QCOMPARE(model.count(), count+1);
+
+ delete item;
+ qApp->processEvents();
+}
+
+void tst_QDeclarativeListModel::convertNestedToFlat_ok_data()
+{
+ convertNestedToFlat_fail_data();
+}
+
void tst_QDeclarativeListModel::static_types_data()
{
QTest::addColumn<QString>("qml");
@@ -252,7 +460,7 @@ void tst_QDeclarativeListModel::static_types_data()
QTest::newRow("enum")
<< "ListElement { foo: Text.AlignHCenter }"
- << QVariant("QTBUG-5974:ListElement: constant script support for property value");
+ << QVariant(double(QDeclarativeText::AlignHCenter));
}
void tst_QDeclarativeListModel::static_types()
@@ -260,7 +468,7 @@ void tst_QDeclarativeListModel::static_types()
QFETCH(QString, qml);
QFETCH(QVariant, value);
- qml = "import Qt 4.6\nListModel { " + qml + " }";
+ qml = "import Qt 4.7\nListModel { " + qml + " }";
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
@@ -292,32 +500,36 @@ void tst_QDeclarativeListModel::error_data()
QTest::addColumn<QString>("error");
QTest::newRow("id not allowed in ListElement")
- << "import Qt 4.6\nListModel { ListElement { id: fred } }"
+ << "import Qt 4.7\nListModel { ListElement { id: fred } }"
<< "ListElement: cannot use reserved \"id\" property";
QTest::newRow("id allowed in ListModel")
- << "import Qt 4.6\nListModel { id:model }"
+ << "import Qt 4.7\nListModel { id:model }"
<< "";
QTest::newRow("random properties not allowed in ListModel")
- << "import Qt 4.6\nListModel { foo:123 }"
+ << "import Qt 4.7\nListModel { foo:123 }"
<< "ListModel: undefined property 'foo'";
QTest::newRow("random properties allowed in ListElement")
- << "import Qt 4.6\nListModel { ListElement { foo:123 } }"
+ << "import Qt 4.7\nListModel { ListElement { foo:123 } }"
<< "";
QTest::newRow("bindings not allowed in ListElement")
- << "import Qt 4.6\nRectangle { id: rect; ListModel { ListElement { foo: rect.color } } }"
- << "ListElement: cannot use script for property value"; // but note QTBUG-5974
+ << "import Qt 4.7\nRectangle { id: rect; ListModel { ListElement { foo: rect.color } } }"
+ << "ListElement: cannot use script for property value";
QTest::newRow("random object list properties allowed in ListElement")
- << "import Qt 4.6\nListModel { ListElement { foo: [ ListElement { bar: 123 } ] } }"
+ << "import Qt 4.7\nListModel { ListElement { foo: [ ListElement { bar: 123 } ] } }"
<< "";
QTest::newRow("default properties not allowed in ListElement")
- << "import Qt 4.6\nListModel { ListElement { Item { } } }"
- << "QTBUG-6082 ListElement should not allow child objects";
+ << "import Qt 4.7\nListModel { ListElement { Item { } } }"
+ << "ListElement: cannot contain nested elements";
+
+ QTest::newRow("QML elements not allowed in ListElement")
+ << "import Qt 4.7\nListModel { ListElement { a: Item { } } }"
+ << "ListElement: cannot contain nested elements";
}
void tst_QDeclarativeListModel::error()
@@ -332,8 +544,6 @@ void tst_QDeclarativeListModel::error()
if (error.isEmpty()) {
QVERIFY(!component.isError());
} else {
- if (error.startsWith(QLatin1String("QTBUG-")))
- QEXPECT_FAIL("",error.toLatin1(),Abort);
QVERIFY(component.isError());
QList<QDeclarativeError> errors = component.errors();
QCOMPARE(errors.count(),1);
@@ -341,6 +551,30 @@ void tst_QDeclarativeListModel::error()
}
}
+void tst_QDeclarativeListModel::set()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeListModel model;
+ QDeclarativeEngine::setContextForObject(&model,engine.rootContext());
+ engine.rootContext()->setContextObject(&model);
+ QScriptEngine *seng = QDeclarativeEnginePrivate::getScriptEngine(&engine);
+
+ QScriptValue sv = seng->newObject();
+ sv.setProperty("test", QScriptValue(false));
+ model.append(sv);
+
+ sv.setProperty("test", QScriptValue(true));
+ model.set(0, sv);
+ QCOMPARE(model.get(0).property("test").toBool(), true); // triggers creation of model cache
+ QCOMPARE(model.data(0, model.roles()[0]), qVariantFromValue(true));
+
+ sv.setProperty("test", QScriptValue(false));
+ model.set(0, sv);
+ QCOMPARE(model.get(0).property("test").toBool(), false); // tests model cache is updated
+ QCOMPARE(model.data(0, model.roles()[0]), qVariantFromValue(false));
+}
+
+
QTEST_MAIN(tst_QDeclarativeListModel)
#include "tst_qdeclarativelistmodel.moc"
diff --git a/tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml b/tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml
index 0c2d0aa..d64be0f 100644
--- a/tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml
+++ b/tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml
@@ -4,7 +4,7 @@ QtObject {
property list<QtObject> myList;
myList: QtObject {}
- property var value: myList
+ property variant value: myList
property int test: value.length
}
diff --git a/tests/auto/declarative/qdeclarativelistreference/qdeclarativelistreference.pro b/tests/auto/declarative/qdeclarativelistreference/qdeclarativelistreference.pro
index 0c9b2d9..f3e6f52 100644
--- a/tests/auto/declarative/qdeclarativelistreference/qdeclarativelistreference.pro
+++ b/tests/auto/declarative/qdeclarativelistreference/qdeclarativelistreference.pro
@@ -3,3 +3,6 @@ contains(QT_CONFIG,declarative): QT += declarative
macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativelistreference.cpp
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp b/tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp
index 1b7af19..908f336 100644
--- a/tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp
+++ b/tests/auto/declarative/qdeclarativelistreference/tst_qdeclarativelistreference.cpp
@@ -91,8 +91,8 @@ private slots:
class TestType : public QObject
{
Q_OBJECT
- Q_PROPERTY(QDeclarativeListProperty<TestType> data READ dataProperty);
- Q_PROPERTY(int intProperty READ intProperty);
+ Q_PROPERTY(QDeclarativeListProperty<TestType> data READ dataProperty)
+ Q_PROPERTY(int intProperty READ intProperty)
public:
TestType() : property(this, data) {}
@@ -106,7 +106,7 @@ QML_DECLARE_TYPE(TestType);
void tst_qdeclarativelistreference::initTestCase()
{
- QML_REGISTER_NOCREATE_TYPE(TestType);
+ qmlRegisterType<TestType>();
}
void tst_qdeclarativelistreference::qmllistreference()
diff --git a/tests/auto/declarative/qdeclarativelistview/data/listview-initCurrent.qml b/tests/auto/declarative/qdeclarativelistview/data/listview-initCurrent.qml
index 74f5ef4..a6d7610 100644
--- a/tests/auto/declarative/qdeclarativelistview/data/listview-initCurrent.qml
+++ b/tests/auto/declarative/qdeclarativelistview/data/listview-initCurrent.qml
@@ -1,6 +1,7 @@
import Qt 4.6
Rectangle {
+ property int current: list.currentIndex
width: 240
height: 320
color: "#ffffff"
diff --git a/tests/auto/declarative/qdeclarativelistview/data/listview.qml b/tests/auto/declarative/qdeclarativelistview/data/listview.qml
deleted file mode 100644
index 1c1b3f8..0000000
--- a/tests/auto/declarative/qdeclarativelistview/data/listview.qml
+++ /dev/null
@@ -1,119 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 240
- height: 320
- color: "#ffffff"
- function checkProperties() {
- testObject.error = false;
- if (list.model != testModel) {
- console.log("model property incorrect");
- testObject.error = true;
- }
- if (!testObject.animate && list.delegate != myDelegate) {
- console.log("delegate property incorrect - expected myDelegate");
- testObject.error = true;
- }
- if (testObject.animate && list.delegate != animatedDelegate) {
- console.log("delegate property incorrect - expected animatedDelegate");
- testObject.error = true;
- }
- if (testObject.invalidHighlight && list.highlight != invalidHl) {
- console.log("highlight property incorrect - expected invalidHl");
- testObject.error = true;
- }
- if (!testObject.invalidHighlight && list.highlight != myHighlight) {
- console.log("highlight property incorrect - expected myHighlight");
- testObject.error = true;
- }
- }
- resources: [
- Component {
- id: myDelegate
- Rectangle {
- id: wrapper
- objectName: "wrapper"
- height: 20
- width: 240
- Text {
- text: index
- }
- Text {
- x: 30
- id: textName
- objectName: "textName"
- text: name
- }
- Text {
- x: 120
- id: textNumber
- objectName: "textNumber"
- text: number
- }
- Text {
- x: 200
- text: wrapper.y
- }
- color: ListView.isCurrentItem ? "lightsteelblue" : "white"
- }
- },
- Component {
- id: animatedDelegate
- Rectangle {
- id: wrapper
- objectName: "wrapper"
- height: 20
- width: 240
- Text {
- text: index
- }
- Text {
- x: 30
- id: textName
- objectName: "textName"
- text: name
- }
- Text {
- x: 120
- id: textNumber
- objectName: "textNumber"
- text: number
- }
- Text {
- x: 200
- text: wrapper.y
- }
- color: ListView.isCurrentItem ? "lightsteelblue" : "white"
- ListView.onRemove: SequentialAnimation {
- ScriptAction { script: console.log("Fix PropertyAction with attached properties") }
-/*
- PropertyAction { target: wrapper; property: "ListView.delayRemove"; value: true }
- NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing.type: "InOutQuad" }
- PropertyAction { target: wrapper; property: "ListView.delayRemove"; value: false }
-*/
- }
- }
- },
- Component {
- id: myHighlight
- Rectangle { color: "green" }
- },
- Component {
- id: invalidHl
- EaseFollow {}
- }
- ]
- ListView {
- id: list
- objectName: "list"
- focus: true
- width: 240
- height: 320
- model: testModel
- delegate: testObject.animate ? animatedDelegate : myDelegate
- highlight: testObject.invalidHighlight ? invalidHl : myHighlight
- highlightMoveSpeed: 1000
- highlightResizeSpeed: 1000
- cacheBuffer: testObject.cacheBuffer
- }
-}
diff --git a/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml b/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml
new file mode 100644
index 0000000..40fc436
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelistview/data/listviewtest.qml
@@ -0,0 +1,117 @@
+import Qt 4.6
+
+Rectangle {
+ width: 240
+ height: 320
+ color: "#ffffff"
+ function checkProperties() {
+ testObject.error = false;
+ if (list.model != testModel) {
+ console.log("model property incorrect");
+ testObject.error = true;
+ }
+ if (!testObject.animate && list.delegate != myDelegate) {
+ console.log("delegate property incorrect - expected myDelegate");
+ testObject.error = true;
+ }
+ if (testObject.animate && list.delegate != animatedDelegate) {
+ console.log("delegate property incorrect - expected animatedDelegate");
+ testObject.error = true;
+ }
+ if (testObject.invalidHighlight && list.highlight != invalidHl) {
+ console.log("highlight property incorrect - expected invalidHl");
+ testObject.error = true;
+ }
+ if (!testObject.invalidHighlight && list.highlight != myHighlight) {
+ console.log("highlight property incorrect - expected myHighlight");
+ testObject.error = true;
+ }
+ }
+ resources: [
+ Component {
+ id: myDelegate
+ Rectangle {
+ id: wrapper
+ objectName: "wrapper"
+ height: 20
+ width: 240
+ Text {
+ text: index
+ }
+ Text {
+ x: 30
+ id: textName
+ objectName: "textName"
+ text: name
+ }
+ Text {
+ x: 120
+ id: textNumber
+ objectName: "textNumber"
+ text: number
+ }
+ Text {
+ x: 200
+ text: wrapper.y
+ }
+ color: ListView.isCurrentItem ? "lightsteelblue" : "white"
+ }
+ },
+ Component {
+ id: animatedDelegate
+ Rectangle {
+ id: wrapper
+ objectName: "wrapper"
+ height: 20
+ width: 240
+ Text {
+ text: index
+ }
+ Text {
+ x: 30
+ id: textName
+ objectName: "textName"
+ text: name
+ }
+ Text {
+ x: 120
+ id: textNumber
+ objectName: "textNumber"
+ text: number
+ }
+ Text {
+ x: 200
+ text: wrapper.y
+ }
+ color: ListView.isCurrentItem ? "lightsteelblue" : "white"
+ ListView.onRemove: SequentialAnimation {
+ PropertyAction { target: wrapper; property: "ListView.delayRemove"; value: true }
+ NumberAnimation { target: wrapper; property: "scale"; to: 0; duration: 250; easing.type: "InOutQuad" }
+ PropertyAction { target: wrapper; property: "ListView.delayRemove"; value: false }
+
+ }
+ }
+ },
+ Component {
+ id: myHighlight
+ Rectangle { color: "green" }
+ },
+ Component {
+ id: invalidHl
+ SmoothedAnimation {}
+ }
+ ]
+ ListView {
+ id: list
+ objectName: "list"
+ focus: true
+ width: 240
+ height: 320
+ model: testModel
+ delegate: testObject.animate ? animatedDelegate : myDelegate
+ highlight: testObject.invalidHighlight ? invalidHl : myHighlight
+ highlightMoveSpeed: 1000
+ highlightResizeSpeed: 1000
+ cacheBuffer: testObject.cacheBuffer
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativelistview/data/propertychangestest.qml b/tests/auto/declarative/qdeclarativelistview/data/propertychangestest.qml
new file mode 100644
index 0000000..09877ac
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelistview/data/propertychangestest.qml
@@ -0,0 +1,71 @@
+import Qt 4.6
+
+Rectangle {
+ width: 180; height: 120; color: "white"
+ Component {
+ id: delegate
+ Item {
+ id: wrapper
+ width: 180; height: 40;
+ Column {
+ x: 5; y: 5
+ Text { text: '<b>Name:</b> ' + name }
+ Text { text: '<b>Number:</b> ' + number }
+ }
+ }
+ }
+ Component {
+ id: highlightRed
+ Rectangle {
+ color: "red"
+ radius: 10
+ opacity: 0.5
+ }
+ }
+ ListView {
+ objectName: "listView"
+ anchors.fill: parent
+ model: listModel
+ delegate: delegate
+ highlight: highlightRed
+ focus: true
+ highlightFollowsCurrentItem: true
+ preferredHighlightBegin: 0.0
+ preferredHighlightEnd: 0.0
+ highlightRangeMode: ListView.ApplyRange
+ keyNavigationWraps: true
+ cacheBuffer: 10
+ snapMode: ListView.SnapToItem
+ }
+
+ data:[
+ ListModel {
+ id: listModel
+ ListElement {
+ name: "Bill Smith"
+ number: "555 3264"
+ }
+ ListElement {
+ name: "John Brown"
+ number: "555 8426"
+ }
+ ListElement {
+ name: "Sam Wise"
+ number: "555 0473"
+ }
+ },
+ ListModel {
+ objectName: "alternateModel"
+ ListElement {
+ name: "Jack"
+ number: "555 8426"
+ }
+ ListElement {
+ name: "Mary"
+ number: "555 3264"
+ }
+ }
+ ]
+}
+
+
diff --git a/tests/auto/declarative/qdeclarativelistview/data/strictlyenforcerange.qml b/tests/auto/declarative/qdeclarativelistview/data/strictlyenforcerange.qml
new file mode 100644
index 0000000..6fc41fa
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativelistview/data/strictlyenforcerange.qml
@@ -0,0 +1,29 @@
+import Qt 4.7
+
+ListView {
+ id: list
+ objectName: "list"
+ width: 320
+ height: 480
+
+ function fillModel() {
+ list.model.append({"col": "red"});
+ list.currentIndex = list.count-1
+ list.model.append({"col": "blue"});
+ list.currentIndex = list.count-1
+ list.model.append({"col": "green"});
+ list.currentIndex = list.count-1
+ }
+
+ model: ListModel { id: listModel } // empty model
+ delegate: Rectangle { id: wrapper; objectName: "wrapper"; color: col; width: 300; height: 400 }
+ orientation: "Horizontal"
+ snapMode: "SnapToItem"
+ cacheBuffer: 1000
+
+ preferredHighlightBegin: 10
+ preferredHighlightEnd: 10
+
+ highlightRangeMode: "StrictlyEnforceRange"
+ focus: true
+}
diff --git a/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro b/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro
index 3a076f8..5d962c0 100644
--- a/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro
+++ b/tests/auto/declarative/qdeclarativelistview/qdeclarativelistview.pro
@@ -6,3 +6,5 @@ SOURCES += tst_qdeclarativelistview.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
index f15f26b..6b7a361 100644
--- a/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
+++ b/tests/auto/declarative/qdeclarativelistview/tst_qdeclarativelistview.cpp
@@ -38,15 +38,19 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+
#include <QtTest/QtTest>
-#include <QStringListModel>
-#include <private/qlistmodelinterface_p.h>
-#include <qdeclarativeview.h>
-#include <private/qdeclarativelistview_p.h>
-#include <private/qdeclarativetext_p.h>
-#include <private/qdeclarativevisualitemmodel_p.h>
-#include <qdeclarativecontext.h>
-#include <qdeclarativeexpression.h>
+#include <QtGui/QStringListModel>
+#include <QtDeclarative/qdeclarativeview.h>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativecontext.h>
+#include <QtDeclarative/qdeclarativeexpression.h>
+#include <QtDeclarative/private/qdeclarativelistview_p.h>
+#include <QtDeclarative/private/qdeclarativetext_p.h>
+#include <QtDeclarative/private/qdeclarativevisualitemmodel_p.h>
+#include <QtDeclarative/private/qdeclarativelistmodel_p.h>
+#include <QtDeclarative/private/qlistmodelinterface_p.h>
+#include "../../../shared/util.h"
class tst_QDeclarativeListView : public QObject
{
@@ -82,6 +86,10 @@ private slots:
void cacheBuffer();
void positionViewAtIndex();
void resetModel();
+ void propertyChanges();
+ void componentChanges();
+ void modelChanges();
+ void QTBUG_9791();
private:
template <class T> void items();
@@ -240,7 +248,7 @@ public:
setRoleNames(roles);
}
- int rowCount(const QModelIndex &parent=QModelIndex()) const { return list.count(); }
+ int rowCount(const QModelIndex &parent=QModelIndex()) const { Q_UNUSED(parent); return list.count(); }
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const {
QVariant rv;
if (role == Name)
@@ -315,70 +323,68 @@ void tst_QDeclarativeListView::items()
TestObject *testObject = new TestObject;
ctxt->setContextProperty("testObject", testObject);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
QMetaObject::invokeMethod(canvas->rootObject(), "checkProperties");
- QVERIFY(testObject->error() == false);
+ QTRY_VERIFY(testObject->error() == false);
- QVERIFY(listview->highlightItem() != 0);
- QCOMPARE(listview->count(), model.count());
- QCOMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
+ QTRY_VERIFY(listview->highlightItem() != 0);
+ QTRY_COMPARE(listview->count(), model.count());
+ QTRY_COMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
// current item should be first item
- QCOMPARE(listview->currentItem(), findItem<QDeclarativeItem>(viewport, "wrapper", 0));
+ QTRY_COMPARE(listview->currentItem(), findItem<QDeclarativeItem>(viewport, "wrapper", 0));
for (int i = 0; i < model.count(); ++i) {
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", i);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(i));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(i));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", i);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(i));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(i));
}
// switch to other delegate
testObject->setAnimate(true);
QMetaObject::invokeMethod(canvas->rootObject(), "checkProperties");
- QVERIFY(testObject->error() == false);
- QVERIFY(listview->currentItem());
+ QTRY_VERIFY(testObject->error() == false);
+ QTRY_VERIFY(listview->currentItem());
// set invalid highlight
testObject->setInvalidHighlight(true);
QMetaObject::invokeMethod(canvas->rootObject(), "checkProperties");
- QVERIFY(testObject->error() == false);
- QVERIFY(listview->currentItem());
- QVERIFY(listview->highlightItem() == 0);
+ QTRY_VERIFY(testObject->error() == false);
+ QTRY_VERIFY(listview->currentItem());
+ QTRY_VERIFY(listview->highlightItem() == 0);
// back to normal highlight
testObject->setInvalidHighlight(false);
QMetaObject::invokeMethod(canvas->rootObject(), "checkProperties");
- QVERIFY(testObject->error() == false);
- QVERIFY(listview->currentItem());
- QVERIFY(listview->highlightItem() != 0);
+ QTRY_VERIFY(testObject->error() == false);
+ QTRY_VERIFY(listview->currentItem());
+ QTRY_VERIFY(listview->highlightItem() != 0);
// set an empty model and confirm that items are destroyed
T model2;
ctxt->setContextProperty("testModel", &model2);
- // Allow deleteLaters to process
- QTest::qWait(500);
-
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
- QVERIFY(itemCount == 0);
+ QTRY_VERIFY(itemCount == 0);
- QCOMPARE(listview->highlightResizeSpeed(), 1000.0);
- QCOMPARE(listview->highlightMoveSpeed(), 1000.0);
+ QTRY_COMPARE(listview->highlightResizeSpeed(), 1000.0);
+ QTRY_COMPARE(listview->highlightMoveSpeed(), 1000.0);
delete canvas;
}
+
template <class T>
void tst_QDeclarativeListView::changed()
{
@@ -395,22 +401,22 @@ void tst_QDeclarativeListView::changed()
TestObject *testObject = new TestObject;
ctxt->setContextProperty("testObject", testObject);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
qApp->processEvents();
QDeclarativeFlickable *listview = findItem<QDeclarativeFlickable>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
model.modifyItem(1, "Will", "9876");
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(1));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(1));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(1));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(1));
delete canvas;
}
@@ -431,79 +437,70 @@ void tst_QDeclarativeListView::inserted()
TestObject *testObject = new TestObject;
ctxt->setContextProperty("testObject", testObject);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
model.insertItem(1, "Will", "9876");
- // let transitions settle.
- QTest::qWait(500);
-
- QCOMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
+ QTRY_COMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(1));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(1));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(1));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(1));
// Confirm items positioned correctly
for (int i = 0; i < model.count(); ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
- QCOMPARE(item->y(), i*20.0);
+ QTRY_COMPARE(item->y(), i*20.0);
}
model.insertItem(0, "Foo", "1111"); // zero index, and current item
- // let transitions settle.
- QTest::qWait(500);
-
- QCOMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
+ QTRY_COMPARE(viewport->childItems().count(), model.count()+1); // assumes all are visible, +1 for the (default) highlight item
name = findItem<QDeclarativeText>(viewport, "textName", 0);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(0));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(0));
number = findItem<QDeclarativeText>(viewport, "textNumber", 0);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(0));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(0));
- QCOMPARE(listview->currentIndex(), 1);
+ QTRY_COMPARE(listview->currentIndex(), 1);
// Confirm items positioned correctly
for (int i = 0; i < model.count(); ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
- QCOMPARE(item->y(), i*20.0);
+ QTRY_COMPARE(item->y(), i*20.0);
}
for (int i = model.count(); i < 30; ++i)
model.insertItem(i, "Hello", QString::number(i));
- QTest::qWait(500);
listview->setContentY(80);
- QTest::qWait(500);
// Insert item outside visible area
model.insertItem(1, "Hello", "1324");
- QTest::qWait(500);
- QVERIFY(listview->contentY() == 80);
+ QTRY_VERIFY(listview->contentY() == 80);
// Confirm items positioned correctly
for (int i = 5; i < 5+15; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(), i*20.0 - 20.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), i*20.0 - 20.0);
}
-// QCOMPARE(listview->viewportHeight(), model.count() * 20.0);
+// QTRY_COMPARE(listview->viewportHeight(), model.count() * 20.0);
delete canvas;
}
@@ -524,70 +521,64 @@ void tst_QDeclarativeListView::removed(bool animated)
testObject->setAnimate(animated);
ctxt->setContextProperty("testObject", testObject);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
model.removeItem(1);
- // let transitions settle.
- QTest::qWait(500);
-
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(1));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(1));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(1));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(1));
// Confirm items positioned correctly
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->y() == i*20);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->y() == i*20);
}
// Remove first item (which is the current item);
model.removeItem(0); // post: top item starts at 20
- // let transitions settle.
- QTest::qWait(500);
+ QTest::qWait(300);
name = findItem<QDeclarativeText>(viewport, "textName", 0);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(0));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(0));
number = findItem<QDeclarativeText>(viewport, "textNumber", 0);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(0));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(0));
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(),i*20.0 + 20.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(),i*20.0 + 20.0);
}
// Remove items not visible
model.removeItem(18);
- // let transitions settle.
- QTest::qWait(500);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(),i*20.0+20.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(),i*20.0+20.0);
}
// Remove items before visible
@@ -595,58 +586,51 @@ void tst_QDeclarativeListView::removed(bool animated)
listview->setCurrentIndex(10);
model.removeItem(1); // post: top item will be at 40
- // let transitions settle.
- QTest::qWait(500);
// Confirm items positioned correctly
for (int i = 2; i < 18; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(),40+i*20.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(),40+i*20.0);
}
// Remove current index
- QVERIFY(listview->currentIndex() == 9);
+ QTRY_VERIFY(listview->currentIndex() == 9);
QDeclarativeItem *oldCurrent = listview->currentItem();
model.removeItem(9);
- QTest::qWait(500);
- QCOMPARE(listview->currentIndex(), 9);
- QVERIFY(listview->currentItem() != oldCurrent);
+ QTRY_COMPARE(listview->currentIndex(), 9);
+ QTRY_VERIFY(listview->currentItem() != oldCurrent);
listview->setContentY(40); // That's the top now
// let transitions settle.
- QTest::qWait(500);
+ QTest::qWait(300);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(),40+i*20.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(),40+i*20.0);
}
// remove current item beyond visible items.
listview->setCurrentIndex(20);
- QTest::qWait(500);
listview->setContentY(40);
model.removeItem(20);
- QTest::qWait(500);
- QCOMPARE(listview->currentIndex(), 20);
- QVERIFY(listview->currentItem() != 0);
+ QTRY_COMPARE(listview->currentIndex(), 20);
+ QTRY_VERIFY(listview->currentItem() != 0);
// remove item before current, but visible
listview->setCurrentIndex(8);
- QTest::qWait(500);
oldCurrent = listview->currentItem();
model.removeItem(6);
- QTest::qWait(500);
- QCOMPARE(listview->currentIndex(), 7);
- QVERIFY(listview->currentItem() == oldCurrent);
+ QTRY_COMPARE(listview->currentIndex(), 7);
+ QTRY_VERIFY(listview->currentItem() == oldCurrent);
delete canvas;
}
@@ -666,23 +650,20 @@ void tst_QDeclarativeListView::clear()
TestObject *testObject = new TestObject;
ctxt->setContextProperty("testObject", testObject);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
model.clear();
- // let transitions settle.
- QTest::qWait(500);
-
- QVERIFY(listview->count() == 0);
- QVERIFY(listview->currentItem() == 0);
- QVERIFY(listview->contentY() == 0);
+ QTRY_VERIFY(listview->count() == 0);
+ QTRY_VERIFY(listview->currentItem() == 0);
+ QTRY_VERIFY(listview->contentY() == 0);
delete canvas;
}
@@ -703,41 +684,38 @@ void tst_QDeclarativeListView::moved()
TestObject *testObject = new TestObject;
ctxt->setContextProperty("testObject", testObject);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
model.moveItem(1, 4);
- // let transitions settle.
- QTest::qWait(500);
-
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 1);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(1));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(1));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 1);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(1));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(1));
name = findItem<QDeclarativeText>(viewport, "textName", 4);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(4));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(4));
number = findItem<QDeclarativeText>(viewport, "textNumber", 4);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(4));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(4));
// Confirm items positioned correctly
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->y() == i*20);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->y() == i*20);
}
listview->setContentY(80);
@@ -745,41 +723,35 @@ void tst_QDeclarativeListView::moved()
// move outside visible area
model.moveItem(1, 18);
- // let transitions settle.
- QTest::qWait(500);
-
// Confirm items positioned correctly and indexes correct
for (int i = 3; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(), i*20.0 + 20);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), i*20.0 + 20);
name = findItem<QDeclarativeText>(viewport, "textName", i);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(i));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(i));
number = findItem<QDeclarativeText>(viewport, "textNumber", i);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(i));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(i));
}
// move from outside visible into visible
model.moveItem(20, 4);
- // let transitions settle.
- QTest::qWait(500);
-
// Confirm items positioned correctly and indexes correct
for (int i = 3; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(), i*20.0 + 20);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), i*20.0 + 20);
name = findItem<QDeclarativeText>(viewport, "textName", i);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(i));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(i));
number = findItem<QDeclarativeText>(viewport, "textNumber", i);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(i));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(i));
}
delete canvas;
@@ -800,32 +772,31 @@ void tst_QDeclarativeListView::enforceRange()
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
- QCOMPARE(listview->preferredHighlightBegin(), 100.0);
- QCOMPARE(listview->preferredHighlightEnd(), 100.0);
- QCOMPARE(listview->highlightRangeMode(), QDeclarativeListView::StrictlyEnforceRange);
+ QTRY_COMPARE(listview->preferredHighlightBegin(), 100.0);
+ QTRY_COMPARE(listview->preferredHighlightEnd(), 100.0);
+ QTRY_COMPARE(listview->highlightRangeMode(), QDeclarativeListView::StrictlyEnforceRange);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
// view should be positioned at the top of the range.
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", 0);
- QVERIFY(item);
- QCOMPARE(listview->contentY(), -100.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(listview->contentY(), -100.0);
QDeclarativeText *name = findItem<QDeclarativeText>(viewport, "textName", 0);
- QVERIFY(name != 0);
- QCOMPARE(name->text(), model.name(0));
+ QTRY_VERIFY(name != 0);
+ QTRY_COMPARE(name->text(), model.name(0));
QDeclarativeText *number = findItem<QDeclarativeText>(viewport, "textNumber", 0);
- QVERIFY(number != 0);
- QCOMPARE(number->text(), model.number(0));
+ QTRY_VERIFY(number != 0);
+ QTRY_COMPARE(number->text(), model.number(0));
// Check currentIndex is updated when viewport moves
listview->setContentY(20);
- QTest::qWait(500);
- QCOMPARE(listview->currentIndex(), 6);
+ QTRY_COMPARE(listview->currentIndex(), 6);
delete canvas;
}
@@ -844,34 +815,34 @@ void tst_QDeclarativeListView::spacing()
TestObject *testObject = new TestObject;
ctxt->setContextProperty("testObject", testObject);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
// Confirm items positioned correctly
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->y() == i*20);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->y() == i*20);
}
listview->setSpacing(10);
- QVERIFY(listview->spacing() == 10);
+ QTRY_VERIFY(listview->spacing() == 10);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->y() == i*30);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->y() == i*30);
}
listview->setSpacing(0);
@@ -881,8 +852,8 @@ void tst_QDeclarativeListView::spacing()
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(), i*20.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), i*20.0);
}
delete canvas;
@@ -903,17 +874,17 @@ void tst_QDeclarativeListView::sections()
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
// Confirm items positioned correctly
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
- QVERIFY(item);
- QCOMPARE(item->y(), qreal(i*20 + ((i+4)/5) * 20));
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), qreal(i*20 + ((i+4)/5) * 20));
}
// Remove section boundary
@@ -921,42 +892,42 @@ void tst_QDeclarativeListView::sections()
// New section header created
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", 5);
- QVERIFY(item);
- QCOMPARE(item->height(), 40.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->height(), 40.0);
model.insertItem(3, "New Item", "0");
// Section header moved
item = findItem<QDeclarativeItem>(viewport, "wrapper", 5);
- QVERIFY(item);
- QCOMPARE(item->height(), 20.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->height(), 20.0);
item = findItem<QDeclarativeItem>(viewport, "wrapper", 6);
- QVERIFY(item);
- QCOMPARE(item->height(), 40.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->height(), 40.0);
// insert item which will become a section header
model.insertItem(6, "Replace header", "1");
item = findItem<QDeclarativeItem>(viewport, "wrapper", 6);
- QVERIFY(item);
- QCOMPARE(item->height(), 40.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->height(), 40.0);
item = findItem<QDeclarativeItem>(viewport, "wrapper", 7);
- QVERIFY(item);
- QCOMPARE(item->height(), 20.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->height(), 20.0);
- QCOMPARE(listview->currentSection(), QString("0"));
+ QTRY_COMPARE(listview->currentSection(), QString("0"));
listview->setContentY(140);
- QCOMPARE(listview->currentSection(), QString("1"));
+ QTRY_COMPARE(listview->currentSection(), QString("1"));
listview->setContentY(20);
- QCOMPARE(listview->currentSection(), QString("0"));
+ QTRY_COMPARE(listview->currentSection(), QString("0"));
item = findItem<QDeclarativeItem>(viewport, "wrapper", 1);
- QVERIFY(item);
- QCOMPARE(item->height(), 20.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->height(), 20.0);
delete canvas;
}
@@ -980,76 +951,73 @@ void tst_QDeclarativeListView::currentIndex()
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
-
- QTest::qWait(500);
+ QTRY_VERIFY(viewport != 0);
// current item should be third item
- QCOMPARE(listview->currentIndex(), 3);
- QCOMPARE(listview->currentItem(), findItem<QDeclarativeItem>(viewport, "wrapper", 3));
- QCOMPARE(listview->highlightItem()->y(), listview->currentItem()->y());
+ QTRY_COMPARE(listview->currentIndex(), 3);
+ QTRY_COMPARE(listview->currentItem(), findItem<QDeclarativeItem>(viewport, "wrapper", 3));
+ QTRY_COMPARE(listview->highlightItem()->y(), listview->currentItem()->y());
// no wrap
listview->setCurrentIndex(0);
- QCOMPARE(listview->currentIndex(), 0);
+ QTRY_COMPARE(listview->currentIndex(), 0);
listview->incrementCurrentIndex();
- QCOMPARE(listview->currentIndex(), 1);
+ QTRY_COMPARE(listview->currentIndex(), 1);
listview->decrementCurrentIndex();
- QCOMPARE(listview->currentIndex(), 0);
+ QTRY_COMPARE(listview->currentIndex(), 0);
listview->decrementCurrentIndex();
- QCOMPARE(listview->currentIndex(), 0);
+ QTRY_COMPARE(listview->currentIndex(), 0);
// with wrap
ctxt->setContextProperty("testWrap", QVariant(true));
- QVERIFY(listview->isWrapEnabled());
+ QTRY_VERIFY(listview->isWrapEnabled());
listview->decrementCurrentIndex();
- QCOMPARE(listview->currentIndex(), model.count()-1);
+ QTRY_COMPARE(listview->currentIndex(), model.count()-1);
- QTest::qWait(1000);
- QCOMPARE(listview->contentY(), 279.0);
+ QTRY_COMPARE(listview->contentY(), 279.0);
listview->incrementCurrentIndex();
- QCOMPARE(listview->currentIndex(), 0);
+ QTRY_COMPARE(listview->currentIndex(), 0);
- QTest::qWait(1000);
- QCOMPARE(listview->contentY(), 0.0);
+ QTRY_COMPARE(listview->contentY(), 0.0);
// Test keys
canvas->show();
+ qApp->setActiveWindow(canvas);
+#ifdef Q_WS_X11
+ // to be safe and avoid failing setFocus with window managers
+ qt_x11_wait_for_window_manager(canvas);
+#endif
+ QTRY_VERIFY(canvas->hasFocus());
+ QTRY_VERIFY(canvas->scene()->hasFocus());
qApp->processEvents();
- QEvent wa(QEvent::WindowActivate);
- QApplication::sendEvent(canvas, &wa);
- QFocusEvent fe(QEvent::FocusIn);
- QApplication::sendEvent(canvas, &fe);
+ QTest::keyClick(canvas, Qt::Key_Down);
+ QTRY_COMPARE(listview->currentIndex(), 1);
- QKeyEvent key(QEvent::KeyPress, Qt::Key_Down, Qt::NoModifier, "", false, 1);
- QApplication::sendEvent(canvas, &key);
- QVERIFY(key.isAccepted());
- QCOMPARE(listview->currentIndex(), 1);
-
- key = QKeyEvent(QEvent::KeyPress, Qt::Key_Up, Qt::NoModifier, "", false, 1);
- QApplication::sendEvent(canvas, &key);
- QVERIFY(key.isAccepted());
- QCOMPARE(listview->currentIndex(), 0);
+ QTest::keyClick(canvas, Qt::Key_Up);
+ QTRY_COMPARE(listview->currentIndex(), 0);
// turn off auto highlight
listview->setHighlightFollowsCurrentItem(false);
- QVERIFY(listview->highlightFollowsCurrentItem() == false);
+ QTRY_VERIFY(listview->highlightFollowsCurrentItem() == false);
- QTest::qWait(500);
- QVERIFY(listview->highlightItem());
+ QTRY_VERIFY(listview->highlightItem());
qreal hlPos = listview->highlightItem()->y();
listview->setCurrentIndex(4);
- QTest::qWait(500);
- QCOMPARE(listview->highlightItem()->y(), hlPos);
+ QTRY_COMPARE(listview->highlightItem()->y(), hlPos);
+
+ // insert item before currentIndex
+ listview->setCurrentIndex(28);
+ model.insertItem(0, "Foo", "1111");
+ QTRY_COMPARE(canvas->rootObject()->property("current").toInt(), 29);
delete canvas;
}
@@ -1062,35 +1030,34 @@ void tst_QDeclarativeListView::itemList()
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "view");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
QDeclarativeVisualItemModel *model = canvas->rootObject()->findChild<QDeclarativeVisualItemModel*>("itemModel");
- QVERIFY(model != 0);
+ QTRY_VERIFY(model != 0);
- QVERIFY(model->count() == 3);
- QCOMPARE(listview->currentIndex(), 0);
+ QTRY_VERIFY(model->count() == 3);
+ QTRY_COMPARE(listview->currentIndex(), 0);
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "item1");
- QVERIFY(item);
- QCOMPARE(item->x(), 0.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), 0.0);
QDeclarativeText *text = findItem<QDeclarativeText>(viewport, "text1");
- QVERIFY(text);
- QCOMPARE(text->text(), QLatin1String("index: 0"));
+ QTRY_VERIFY(text);
+ QTRY_COMPARE(text->text(), QLatin1String("index: 0"));
listview->setCurrentIndex(2);
- QTest::qWait(1000);
item = findItem<QDeclarativeItem>(viewport, "item3");
- QVERIFY(item);
- QCOMPARE(item->x(), 480.0);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), 480.0);
text = findItem<QDeclarativeText>(viewport, "text3");
- QVERIFY(text);
- QCOMPARE(text->text(), QLatin1String("index: 2"));
+ QTRY_VERIFY(text);
+ QTRY_COMPARE(text->text(), QLatin1String("index: 2"));
delete canvas;
}
@@ -1109,39 +1076,39 @@ void tst_QDeclarativeListView::cacheBuffer()
TestObject *testObject = new TestObject;
ctxt->setContextProperty("testObject", testObject);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
- QVERIFY(listview->delegate() != 0);
- QVERIFY(listview->model() != 0);
- QVERIFY(listview->highlight() != 0);
+ QTRY_VERIFY(viewport != 0);
+ QTRY_VERIFY(listview->delegate() != 0);
+ QTRY_VERIFY(listview->model() != 0);
+ QTRY_VERIFY(listview->highlight() != 0);
// Confirm items positioned correctly
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->y() == i*20);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->y() == i*20);
}
testObject->setCacheBuffer(400);
- QVERIFY(listview->cacheBuffer() == 400);
+ QTRY_VERIFY(listview->cacheBuffer() == 400);
int newItemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
- QVERIFY(newItemCount > itemCount);
+ QTRY_VERIFY(newItemCount > itemCount);
// Confirm items positioned correctly
for (int i = 0; i < model.count() && i < newItemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QVERIFY(item->y() == i*20);
+ QTRY_VERIFY(item);
+ QTRY_VERIFY(item->y() == i*20);
}
delete canvas;
@@ -1161,76 +1128,117 @@ void tst_QDeclarativeListView::positionViewAtIndex()
TestObject *testObject = new TestObject;
ctxt->setContextProperty("testObject", testObject);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/listviewtest.qml"));
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
// Confirm items positioned correctly
int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(), i*20.);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), i*20.);
}
// Position on a currently visible item
- listview->positionViewAtIndex(3);
- QCOMPARE(listview->contentY(), 60.);
+ listview->positionViewAtIndex(3, QDeclarativeListView::Beginning);
+ QTRY_COMPARE(listview->contentY(), 60.);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 3; i < model.count() && i < itemCount-3-1; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(), i*20.);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), i*20.);
}
// Position on an item beyond the visible items
- listview->positionViewAtIndex(22);
- QCOMPARE(listview->contentY(), 440.);
+ listview->positionViewAtIndex(22, QDeclarativeListView::Beginning);
+ QTRY_COMPARE(listview->contentY(), 440.);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 22; i < model.count() && i < itemCount-22-1; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(), i*20.);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), i*20.);
}
// Position on an item that would leave empty space if positioned at the top
- listview->positionViewAtIndex(28);
- QCOMPARE(listview->contentY(), 480.);
+ listview->positionViewAtIndex(28, QDeclarativeListView::Beginning);
+ QTRY_COMPARE(listview->contentY(), 480.);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 24; i < model.count() && i < itemCount-24-1; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(), i*20.);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), i*20.);
}
// Position at the beginning again
- listview->positionViewAtIndex(0);
- QCOMPARE(listview->contentY(), 0.);
+ listview->positionViewAtIndex(0, QDeclarativeListView::Beginning);
+ QTRY_COMPARE(listview->contentY(), 0.);
// Confirm items positioned correctly
itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
for (int i = 0; i < model.count() && i < itemCount-1; ++i) {
QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
if (!item) qWarning() << "Item" << i << "not found";
- QVERIFY(item);
- QCOMPARE(item->y(), i*20.);
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->y(), i*20.);
}
+ // Position at End
+ listview->positionViewAtIndex(20, QDeclarativeListView::End);
+ QTRY_COMPARE(listview->contentY(), 100.);
+
+ // Position in Center
+ listview->positionViewAtIndex(15, QDeclarativeListView::Center);
+ QTRY_COMPARE(listview->contentY(), 150.);
+
+ // Ensure at least partially visible
+ listview->positionViewAtIndex(15, QDeclarativeListView::Visible);
+ QTRY_COMPARE(listview->contentY(), 150.);
+
+ listview->setContentY(302);
+ listview->positionViewAtIndex(15, QDeclarativeListView::Visible);
+ QTRY_COMPARE(listview->contentY(), 302.);
+
+ listview->setContentY(320);
+ listview->positionViewAtIndex(15, QDeclarativeListView::Visible);
+ QTRY_COMPARE(listview->contentY(), 300.);
+
+ listview->setContentY(85);
+ listview->positionViewAtIndex(20, QDeclarativeListView::Visible);
+ QTRY_COMPARE(listview->contentY(), 85.);
+
+ listview->setContentY(75);
+ listview->positionViewAtIndex(20, QDeclarativeListView::Visible);
+ QTRY_COMPARE(listview->contentY(), 100.);
+
+ // Ensure completely visible
+ listview->setContentY(120);
+ listview->positionViewAtIndex(20, QDeclarativeListView::Contain);
+ QTRY_COMPARE(listview->contentY(), 120.);
+
+ listview->setContentY(302);
+ listview->positionViewAtIndex(15, QDeclarativeListView::Contain);
+ QTRY_COMPARE(listview->contentY(), 300.);
+
+ listview->setContentY(85);
+ listview->positionViewAtIndex(20, QDeclarativeListView::Contain);
+ QTRY_COMPARE(listview->contentY(), 100.);
+
delete canvas;
}
@@ -1249,32 +1257,213 @@ void tst_QDeclarativeListView::resetModel()
qApp->processEvents();
QDeclarativeListView *listview = findItem<QDeclarativeListView>(canvas->rootObject(), "list");
- QVERIFY(listview != 0);
+ QTRY_VERIFY(listview != 0);
QDeclarativeItem *viewport = listview->viewport();
- QVERIFY(viewport != 0);
+ QTRY_VERIFY(viewport != 0);
- QCOMPARE(listview->count(), model.rowCount());
+ QTRY_COMPARE(listview->count(), model.rowCount());
for (int i = 0; i < model.rowCount(); ++i) {
QDeclarativeText *display = findItem<QDeclarativeText>(viewport, "displayText", i);
- QVERIFY(display != 0);
- QCOMPARE(display->text(), strings.at(i));
+ QTRY_VERIFY(display != 0);
+ QTRY_COMPARE(display->text(), strings.at(i));
}
strings.clear();
strings << "four" << "five" << "six" << "seven";
model.setStringList(strings);
- QCOMPARE(listview->count(), model.rowCount());
+ QTRY_COMPARE(listview->count(), model.rowCount());
for (int i = 0; i < model.rowCount(); ++i) {
QDeclarativeText *display = findItem<QDeclarativeText>(viewport, "displayText", i);
- QVERIFY(display != 0);
- QCOMPARE(display->text(), strings.at(i));
+ QTRY_VERIFY(display != 0);
+ QTRY_COMPARE(display->text(), strings.at(i));
}
}
+void tst_QDeclarativeListView::propertyChanges()
+{
+ QDeclarativeView *canvas = createView();
+ QTRY_VERIFY(canvas);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychangestest.qml"));
+
+ QDeclarativeListView *listView = canvas->rootObject()->findChild<QDeclarativeListView*>("listView");
+ QTRY_VERIFY(listView);
+
+ QSignalSpy highlightFollowsCurrentItemSpy(listView, SIGNAL(highlightFollowsCurrentItemChanged()));
+ QSignalSpy preferredHighlightBeginSpy(listView, SIGNAL(preferredHighlightBeginChanged()));
+ QSignalSpy preferredHighlightEndSpy(listView, SIGNAL(preferredHighlightEndChanged()));
+ QSignalSpy highlightRangeModeSpy(listView, SIGNAL(highlightRangeModeChanged()));
+ QSignalSpy keyNavigationWrapsSpy(listView, SIGNAL(keyNavigationWrapsChanged()));
+ QSignalSpy cacheBufferSpy(listView, SIGNAL(cacheBufferChanged()));
+ QSignalSpy snapModeSpy(listView, SIGNAL(snapModeChanged()));
+
+ QTRY_COMPARE(listView->highlightFollowsCurrentItem(), true);
+ QTRY_COMPARE(listView->preferredHighlightBegin(), 0.0);
+ QTRY_COMPARE(listView->preferredHighlightEnd(), 0.0);
+ QTRY_COMPARE(listView->highlightRangeMode(), QDeclarativeListView::ApplyRange);
+ QTRY_COMPARE(listView->isWrapEnabled(), true);
+ QTRY_COMPARE(listView->cacheBuffer(), 10);
+ QTRY_COMPARE(listView->snapMode(), QDeclarativeListView::SnapToItem);
+
+ listView->setHighlightFollowsCurrentItem(false);
+ listView->setPreferredHighlightBegin(1.0);
+ listView->setPreferredHighlightEnd(1.0);
+ listView->setHighlightRangeMode(QDeclarativeListView::StrictlyEnforceRange);
+ listView->setWrapEnabled(false);
+ listView->setCacheBuffer(3);
+ listView->setSnapMode(QDeclarativeListView::SnapOneItem);
+
+ QTRY_COMPARE(listView->highlightFollowsCurrentItem(), false);
+ QTRY_COMPARE(listView->preferredHighlightBegin(), 1.0);
+ QTRY_COMPARE(listView->preferredHighlightEnd(), 1.0);
+ QTRY_COMPARE(listView->highlightRangeMode(), QDeclarativeListView::StrictlyEnforceRange);
+ QTRY_COMPARE(listView->isWrapEnabled(), false);
+ QTRY_COMPARE(listView->cacheBuffer(), 3);
+ QTRY_COMPARE(listView->snapMode(), QDeclarativeListView::SnapOneItem);
+
+ QTRY_COMPARE(highlightFollowsCurrentItemSpy.count(),1);
+ QTRY_COMPARE(preferredHighlightBeginSpy.count(),1);
+ QTRY_COMPARE(preferredHighlightEndSpy.count(),1);
+ QTRY_COMPARE(highlightRangeModeSpy.count(),1);
+ QTRY_COMPARE(keyNavigationWrapsSpy.count(),1);
+ QTRY_COMPARE(cacheBufferSpy.count(),1);
+ QTRY_COMPARE(snapModeSpy.count(),1);
+
+ listView->setHighlightFollowsCurrentItem(false);
+ listView->setPreferredHighlightBegin(1.0);
+ listView->setPreferredHighlightEnd(1.0);
+ listView->setHighlightRangeMode(QDeclarativeListView::StrictlyEnforceRange);
+ listView->setWrapEnabled(false);
+ listView->setCacheBuffer(3);
+ listView->setSnapMode(QDeclarativeListView::SnapOneItem);
+
+ QTRY_COMPARE(highlightFollowsCurrentItemSpy.count(),1);
+ QTRY_COMPARE(preferredHighlightBeginSpy.count(),1);
+ QTRY_COMPARE(preferredHighlightEndSpy.count(),1);
+ QTRY_COMPARE(highlightRangeModeSpy.count(),1);
+ QTRY_COMPARE(keyNavigationWrapsSpy.count(),1);
+ QTRY_COMPARE(cacheBufferSpy.count(),1);
+ QTRY_COMPARE(snapModeSpy.count(),1);
+
+ delete canvas;
+}
+
+void tst_QDeclarativeListView::componentChanges()
+{
+ QDeclarativeView *canvas = createView();
+ QTRY_VERIFY(canvas);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychangestest.qml"));
+
+ QDeclarativeListView *listView = canvas->rootObject()->findChild<QDeclarativeListView*>("listView");
+ QTRY_VERIFY(listView);
+
+ QDeclarativeComponent component(canvas->engine());
+ component.setData("import Qt 4.7; Rectangle { color: \"blue\"; }", QUrl::fromLocalFile(""));
+
+ QDeclarativeComponent delegateComponent(canvas->engine());
+ delegateComponent.setData("import Qt 4.7; Text { text: '<b>Name:</b> ' + name }", QUrl::fromLocalFile(""));
+
+ QSignalSpy highlightSpy(listView, SIGNAL(highlightChanged()));
+ QSignalSpy delegateSpy(listView, SIGNAL(delegateChanged()));
+ QSignalSpy headerSpy(listView, SIGNAL(headerChanged()));
+ QSignalSpy footerSpy(listView, SIGNAL(footerChanged()));
+
+ listView->setHighlight(&component);
+ listView->setHeader(&component);
+ listView->setFooter(&component);
+ listView->setDelegate(&delegateComponent);
+
+ QTRY_COMPARE(listView->highlight(), &component);
+ QTRY_COMPARE(listView->header(), &component);
+ QTRY_COMPARE(listView->footer(), &component);
+ QTRY_COMPARE(listView->delegate(), &delegateComponent);
+
+ QTRY_COMPARE(highlightSpy.count(),1);
+ QTRY_COMPARE(delegateSpy.count(),1);
+ QTRY_COMPARE(headerSpy.count(),1);
+ QTRY_COMPARE(footerSpy.count(),1);
+
+ listView->setHighlight(&component);
+ listView->setHeader(&component);
+ listView->setFooter(&component);
+ listView->setDelegate(&delegateComponent);
+
+ QTRY_COMPARE(highlightSpy.count(),1);
+ QTRY_COMPARE(delegateSpy.count(),1);
+ QTRY_COMPARE(headerSpy.count(),1);
+ QTRY_COMPARE(footerSpy.count(),1);
+
+ delete canvas;
+}
+
+void tst_QDeclarativeListView::modelChanges()
+{
+ QDeclarativeView *canvas = createView();
+ QTRY_VERIFY(canvas);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychangestest.qml"));
+
+ QDeclarativeListView *listView = canvas->rootObject()->findChild<QDeclarativeListView*>("listView");
+ QTRY_VERIFY(listView);
+
+ QDeclarativeListModel *alternateModel = canvas->rootObject()->findChild<QDeclarativeListModel*>("alternateModel");
+ QTRY_VERIFY(alternateModel);
+ QVariant modelVariant = QVariant::fromValue(alternateModel);
+ QSignalSpy modelSpy(listView, SIGNAL(modelChanged()));
+
+ listView->setModel(modelVariant);
+ QTRY_COMPARE(listView->model(), modelVariant);
+ QTRY_COMPARE(modelSpy.count(),1);
+
+ listView->setModel(modelVariant);
+ QTRY_COMPARE(modelSpy.count(),1);
+
+ listView->setModel(QVariant());
+ QTRY_COMPARE(modelSpy.count(),2);
+
+ delete canvas;
+}
+
+void tst_QDeclarativeListView::QTBUG_9791()
+{
+ QDeclarativeView *canvas = createView();
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/strictlyenforcerange.qml"));
+ qApp->processEvents();
+
+ QDeclarativeListView *listview = qobject_cast<QDeclarativeListView*>(canvas->rootObject());
+ QTRY_VERIFY(listview != 0);
+
+ QDeclarativeItem *viewport = listview->viewport();
+ QTRY_VERIFY(viewport != 0);
+ QTRY_VERIFY(listview->delegate() != 0);
+ QTRY_VERIFY(listview->model() != 0);
+
+ QMetaObject::invokeMethod(listview, "fillModel");
+ qApp->processEvents();
+
+ // Confirm items positioned correctly
+ int itemCount = findItems<QDeclarativeItem>(viewport, "wrapper").count();
+ QVERIFY(itemCount == 3);
+
+ for (int i = 0; i < itemCount; ++i) {
+ QDeclarativeItem *item = findItem<QDeclarativeItem>(viewport, "wrapper", i);
+ if (!item) qWarning() << "Item" << i << "not found";
+ QTRY_VERIFY(item);
+ QTRY_COMPARE(item->x(), i*300.0);
+ }
+
+ // check that view is positioned correctly
+ QTRY_COMPARE(listview->contentX(), 590.0);
+
+ delete canvas;
+}
+
+
void tst_QDeclarativeListView::qListModelInterface_items()
{
items<TestModel>();
diff --git a/tests/auto/declarative/qdeclarativeloader/data/BlueRect.qml b/tests/auto/declarative/qdeclarativeloader/data/BlueRect.qml
new file mode 100644
index 0000000..3b49f6a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeloader/data/BlueRect.qml
@@ -0,0 +1,8 @@
+import Qt 4.6
+
+Rectangle {
+ objectName: "blue"
+ width: 100
+ height: 100
+ color: "blue"
+}
diff --git a/tests/auto/declarative/qdeclarativeloader/data/GreenRect.qml b/tests/auto/declarative/qdeclarativeloader/data/GreenRect.qml
new file mode 100644
index 0000000..7ee3513
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeloader/data/GreenRect.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+Rectangle {
+ width: 100; height: 100
+ color: "green"
+ Component.onCompleted: myLoader.source = "BlueRect.qml"
+}
diff --git a/tests/auto/declarative/qdeclarativeloader/data/VmeError.qml b/tests/auto/declarative/qdeclarativeloader/data/VmeError.qml
new file mode 100644
index 0000000..da4f6cb
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeloader/data/VmeError.qml
@@ -0,0 +1,7 @@
+import Qt 4.6
+
+Rectangle {
+ width: 100; height: 100; color: "red"
+ signal somethingHappened
+ onSomethingHappened: QtObject {}
+}
diff --git a/tests/auto/declarative/qdeclarativeloader/data/crash.qml b/tests/auto/declarative/qdeclarativeloader/data/crash.qml
new file mode 100644
index 0000000..8474e78
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeloader/data/crash.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+
+Rectangle {
+ width: 400
+ height: 400
+
+ function setLoaderSource() {
+ myLoader.source = "GreenRect.qml"
+ }
+
+ Loader {
+ id: myLoader
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeloader/data/differentorigin.qml b/tests/auto/declarative/qdeclarativeloader/data/differentorigin.qml
new file mode 100644
index 0000000..e682d1c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeloader/data/differentorigin.qml
@@ -0,0 +1,3 @@
+import Qt 4.6
+
+Loader { source: "http://evil.place/evil.qml" }
diff --git a/tests/auto/declarative/qdeclarativeloader/data/nonItem.qml b/tests/auto/declarative/qdeclarativeloader/data/nonItem.qml
new file mode 100644
index 0000000..f42c1d5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeloader/data/nonItem.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+Loader {
+ sourceComponent: QtObject {}
+}
diff --git a/tests/auto/declarative/qdeclarativeloader/data/qmldir b/tests/auto/declarative/qdeclarativeloader/data/qmldir
new file mode 100644
index 0000000..bf42b50
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeloader/data/qmldir
@@ -0,0 +1 @@
+# For tst_QDeclarativeLoader::networkRequestUrl; no types needed though.
diff --git a/tests/auto/declarative/qdeclarativeloader/data/sameorigin-load.qml b/tests/auto/declarative/qdeclarativeloader/data/sameorigin-load.qml
new file mode 100644
index 0000000..e281246
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeloader/data/sameorigin-load.qml
@@ -0,0 +1,3 @@
+import Qt 4.6
+
+Item { }
diff --git a/tests/auto/declarative/qdeclarativeloader/data/sameorigin.qml b/tests/auto/declarative/qdeclarativeloader/data/sameorigin.qml
new file mode 100644
index 0000000..e7f5a14
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeloader/data/sameorigin.qml
@@ -0,0 +1,3 @@
+import Qt 4.6
+
+Loader { source: "sameorigin-load.qml" }
diff --git a/tests/auto/declarative/qdeclarativeloader/data/vmeErrors.qml b/tests/auto/declarative/qdeclarativeloader/data/vmeErrors.qml
new file mode 100644
index 0000000..782562b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeloader/data/vmeErrors.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+Loader {
+ source: "VmeError.qml"
+}
+
diff --git a/tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro b/tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro
index 8ff2be4..96fea5b 100644
--- a/tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro
+++ b/tests/auto/declarative/qdeclarativeloader/qdeclarativeloader.pro
@@ -9,3 +9,5 @@ SOURCES += tst_qdeclarativeloader.cpp \
DEFINES += SRCDIR=\\\"$$PWD\\\"
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
index 61b2800..4a82b50 100644
--- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
+++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
@@ -48,7 +48,7 @@
#include <private/qdeclarativeloader_p.h>
#include "testhttpserver.h"
-#define SERVER_PORT 14445
+#define SERVER_PORT 14450
inline QUrl TEST_FILE(const QString &filename)
{
@@ -88,6 +88,10 @@ private slots:
void failNetworkRequest();
// void networkComponent();
+ void deleteComponentCrash();
+ void nonItem();
+ void vmeErrors();
+
private:
QDeclarativeEngine engine;
};
@@ -100,7 +104,7 @@ tst_QDeclarativeLoader::tst_QDeclarativeLoader()
void tst_QDeclarativeLoader::url()
{
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nLoader { source: \"Rect120x60.qml\" }"), TEST_FILE(""));
+ component.setData(QByteArray("import Qt 4.7\nLoader { source: \"Rect120x60.qml\" }"), TEST_FILE(""));
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
QVERIFY(loader != 0);
QVERIFY(loader->item());
@@ -125,7 +129,11 @@ void tst_QDeclarativeLoader::component()
QCOMPARE(loader->status(), QDeclarativeLoader::Ready);
QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1);
- delete loader;
+ QDeclarativeComponent *c = qobject_cast<QDeclarativeComponent*>(item->QGraphicsObject::children().at(0));
+ QVERIFY(c);
+ QCOMPARE(loader->sourceComponent(), c);
+
+ delete item;
}
void tst_QDeclarativeLoader::invalidUrl()
@@ -133,7 +141,7 @@ void tst_QDeclarativeLoader::invalidUrl()
QTest::ignoreMessage(QtWarningMsg, QString("(:-1: File error for URL " + QUrl::fromLocalFile(SRCDIR "/data/IDontExist.qml").toString() + ") ").toUtf8().constData());
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nLoader { source: \"IDontExist.qml\" }"), TEST_FILE(""));
+ component.setData(QByteArray("import Qt 4.7\nLoader { source: \"IDontExist.qml\" }"), TEST_FILE(""));
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
QVERIFY(loader != 0);
QVERIFY(loader->item() == 0);
@@ -149,7 +157,7 @@ void tst_QDeclarativeLoader::clear()
{
QDeclarativeComponent component(&engine);
component.setData(QByteArray(
- "import Qt 4.6\n"
+ "import Qt 4.7\n"
" Loader { id: loader\n"
" source: 'Rect120x60.qml'\n"
" Timer { interval: 200; running: true; onTriggered: loader.source = '' }\n"
@@ -188,14 +196,14 @@ void tst_QDeclarativeLoader::clear()
QCOMPARE(loader->status(), QDeclarativeLoader::Null);
QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 0);
- delete loader;
+ delete item;
}
}
void tst_QDeclarativeLoader::urlToComponent()
{
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\n"
+ component.setData(QByteArray("import Qt 4.7\n"
"Loader {\n"
" id: loader\n"
" Component { id: myComp; Rectangle { width: 10; height: 10 } }\n"
@@ -234,7 +242,7 @@ void tst_QDeclarativeLoader::componentToUrl()
QCOMPARE(loader->width(), 120.0);
QCOMPARE(loader->height(), 60.0);
- delete loader;
+ delete item;
}
void tst_QDeclarativeLoader::sizeLoaderToItem()
@@ -267,6 +275,8 @@ void tst_QDeclarativeLoader::sizeLoaderToItem()
QCOMPARE(spy.count(),1);
loader->setResizeMode(QDeclarativeLoader::NoResize);
QCOMPARE(spy.count(),1);
+
+ delete loader;
}
void tst_QDeclarativeLoader::sizeItemToLoader()
@@ -295,6 +305,8 @@ void tst_QDeclarativeLoader::sizeItemToLoader()
rect->setHeight(45);
QCOMPARE(loader->width(), 160.0);
QCOMPARE(loader->height(), 45.0);
+
+ delete loader;
}
void tst_QDeclarativeLoader::noResize()
@@ -309,6 +321,8 @@ void tst_QDeclarativeLoader::noResize()
QVERIFY(rect);
QCOMPARE(rect->width(), 120.0);
QCOMPARE(rect->height(), 60.0);
+
+ delete loader;
}
void tst_QDeclarativeLoader::sizeLoaderToGraphicsWidget()
@@ -336,6 +350,8 @@ void tst_QDeclarativeLoader::sizeLoaderToGraphicsWidget()
loader->setHeight(30);
QCOMPARE(widget->size().width(), 180.0);
QCOMPARE(widget->size().height(), 30.0);
+
+ delete loader;
}
void tst_QDeclarativeLoader::sizeGraphicsWidgetToLoader()
@@ -366,6 +382,8 @@ void tst_QDeclarativeLoader::sizeGraphicsWidgetToLoader()
widget->resize(QSizeF(160,45));
QCOMPARE(loader->width(), 160.0);
QCOMPARE(loader->height(), 45.0);
+
+ delete loader;
}
void tst_QDeclarativeLoader::noResizeGraphicsWidget()
@@ -383,6 +401,8 @@ void tst_QDeclarativeLoader::noResizeGraphicsWidget()
QVERIFY(widget);
QCOMPARE(widget->size().width(), 250.0);
QCOMPARE(widget->size().height(), 250.0);
+
+ delete loader;
}
void tst_QDeclarativeLoader::networkRequestUrl()
@@ -392,7 +412,9 @@ void tst_QDeclarativeLoader::networkRequestUrl()
server.serveDirectory(SRCDIR "/data");
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nLoader { source: \"http://127.0.0.1:14445/Rect120x60.qml\" }"), TEST_FILE(""));
+ component.setData(QByteArray("import Qt 4.7\nLoader { source: \"http://127.0.0.1:14450/Rect120x60.qml\" }"), QUrl::fromLocalFile(SRCDIR "/dummy.qml"));
+ if (component.isError())
+ qDebug() << component.errors();
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
QVERIFY(loader != 0);
@@ -414,8 +436,8 @@ void tst_QDeclarativeLoader::networkComponent()
QDeclarativeComponent component(&engine);
component.setData(QByteArray(
- "import Qt 4.6\n"
- "import \"http://127.0.0.1:14445/\" as NW\n"
+ "import Qt 4.7\n"
+ "import \"http://127.0.0.1:14450/\" as NW\n"
"Item {\n"
" Component { id: comp; NW.SlowRect {} }\n"
" Loader { sourceComponent: comp } }")
@@ -443,10 +465,10 @@ void tst_QDeclarativeLoader::failNetworkRequest()
QVERIFY(server.isValid());
server.serveDirectory(SRCDIR "/data");
- QTest::ignoreMessage(QtWarningMsg, "(:-1: Network error for URL http://127.0.0.1:14445/IDontExist.qml) ");
+ QTest::ignoreMessage(QtWarningMsg, "(:-1: Network error for URL http://127.0.0.1:14450/IDontExist.qml) ");
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nLoader { source: \"http://127.0.0.1:14445/IDontExist.qml\" }"), TEST_FILE(""));
+ component.setData(QByteArray("import Qt 4.7\nLoader { source: \"http://127.0.0.1:14450/IDontExist.qml\" }"), QUrl::fromLocalFile("http://127.0.0.1:14450/dummy.qml"));
QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
QVERIFY(loader != 0);
@@ -459,6 +481,53 @@ void tst_QDeclarativeLoader::failNetworkRequest()
delete loader;
}
+// QTBUG-9241
+void tst_QDeclarativeLoader::deleteComponentCrash()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("crash.qml"));
+ QDeclarativeItem *item = qobject_cast<QDeclarativeItem*>(component.create());
+ QVERIFY(item);
+
+ item->metaObject()->invokeMethod(item, "setLoaderSource");
+
+ QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(item->QGraphicsObject::children().at(0));
+ QVERIFY(loader);
+ QVERIFY(loader->item());
+ QCOMPARE(loader->item()->objectName(), QLatin1String("blue"));
+ QCOMPARE(loader->progress(), 1.0);
+ QCOMPARE(loader->status(), QDeclarativeLoader::Ready);
+ QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 1);
+ QVERIFY(loader->source() == QUrl::fromLocalFile(SRCDIR "/data/BlueRect.qml"));
+
+ delete item;
+}
+
+void tst_QDeclarativeLoader::nonItem()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("nonItem.qml"));
+ QString err = QString("QML Loader (") + QUrl::fromLocalFile(SRCDIR).toString() + QString("/data/nonItem.qml:3:1) Loader does not support loading non-visual elements.");
+
+ QTest::ignoreMessage(QtWarningMsg, err.toLatin1().constData());
+ QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
+ QVERIFY(loader);
+ QVERIFY(loader->item() == 0);
+
+ delete loader;
+}
+
+void tst_QDeclarativeLoader::vmeErrors()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("vmeErrors.qml"));
+ //ignore message for now
+ //QString err = QUrl::fromLocalFile(SRCDIR "/data/VmeError.qml:6: Cannot assign object type QObject with no default method\n onSomethingHappened: QtObject {}) ");
+ //QTest::ignoreMessage(QtWarningMsg, err.toLatin1().constData());
+ QDeclarativeLoader *loader = qobject_cast<QDeclarativeLoader*>(component.create());
+ QVERIFY(loader);
+ QVERIFY(loader->item() == 0);
+
+ delete loader;
+}
+
QTEST_MAIN(tst_QDeclarativeLoader)
#include "tst_qdeclarativeloader.moc"
diff --git a/tests/auto/declarative/qdeclarativemetatype/qdeclarativemetatype.pro b/tests/auto/declarative/qdeclarativemetatype/qdeclarativemetatype.pro
index 2f7ff82..cf3fa65 100644
--- a/tests/auto/declarative/qdeclarativemetatype/qdeclarativemetatype.pro
+++ b/tests/auto/declarative/qdeclarativemetatype/qdeclarativemetatype.pro
@@ -4,3 +4,6 @@ SOURCES += tst_qdeclarativemetatype.cpp
macx:CONFIG -= app_bundle
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp b/tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp
index 818f108..36efe13 100644
--- a/tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp
+++ b/tests/auto/declarative/qdeclarativemetatype/tst_qdeclarativemetatype.cpp
@@ -77,9 +77,9 @@ private slots:
class TestType : public QObject
{
Q_OBJECT
- Q_PROPERTY(int foo READ foo);
+ Q_PROPERTY(int foo READ foo)
- Q_CLASSINFO("DefaultProperty", "foo");
+ Q_CLASSINFO("DefaultProperty", "foo")
public:
int foo() { return 0; }
};
@@ -88,7 +88,7 @@ QML_DECLARE_TYPE(TestType);
class ParserStatusTestType : public QObject, public QDeclarativeParserStatus
{
Q_OBJECT
- Q_CLASSINFO("DefaultProperty", "foo"); // Missing default property
+ Q_CLASSINFO("DefaultProperty", "foo") // Missing default property
};
QML_DECLARE_TYPE(ParserStatusTestType);
@@ -132,10 +132,10 @@ QML_DECLARE_TYPE(ValueInterceptorTestType);
void tst_qdeclarativemetatype::initTestCase()
{
- QML_REGISTER_TYPE(Test, 1, 0, TestType, TestType);
- QML_REGISTER_TYPE(Test, 1, 0, ParserStatusTestType, ParserStatusTestType);
- QML_REGISTER_TYPE(Test, 1, 0, ValueSourceTestType, ValueSourceTestType);
- QML_REGISTER_TYPE(Test, 1, 0, ValueInterceptorTestType, ValueInterceptorTestType);
+ qmlRegisterType<TestType>("Test", 1, 0, "TestType");
+ qmlRegisterType<ParserStatusTestType>("Test", 1, 0, "ParserStatusTestType");
+ qmlRegisterType<ValueSourceTestType>("Test", 1, 0, "ValueSourceTestType");
+ qmlRegisterType<ValueInterceptorTestType>("Test", 1, 0, "ValueInterceptorTestType");
}
void tst_qdeclarativemetatype::copy()
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/plugin.qml b/tests/auto/declarative/qdeclarativemoduleplugin/data/works.qml
index f29ae24..f29ae24 100644
--- a/tests/auto/declarative/qdeclarativemoduleplugin/plugin.qml
+++ b/tests/auto/declarative/qdeclarativemoduleplugin/data/works.qml
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/com/nokia/AutoTestQmlPluginType/qmldir b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType/qmldir
index 0a8b5d4..0a8b5d4 100644
--- a/tests/auto/declarative/qdeclarativemoduleplugin/com/nokia/AutoTestQmlPluginType/qmldir
+++ b/tests/auto/declarative/qdeclarativemoduleplugin/imports/com/nokia/AutoTestQmlPluginType/qmldir
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.pro b/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.pro
index 035cb7d..fc77225 100644
--- a/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.pro
+++ b/tests/auto/declarative/qdeclarativemoduleplugin/plugin/plugin.pro
@@ -2,5 +2,5 @@ TEMPLATE = lib
CONFIG += plugin
SOURCES = plugin.cpp
QT = core declarative
-DESTDIR = ../com/nokia/AutoTestQmlPluginType
+DESTDIR = ../imports/com/nokia/AutoTestQmlPluginType
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/qdeclarativemoduleplugin.pro b/tests/auto/declarative/qdeclarativemoduleplugin/qdeclarativemoduleplugin.pro
index 96f4454..824b402 100644
--- a/tests/auto/declarative/qdeclarativemoduleplugin/qdeclarativemoduleplugin.pro
+++ b/tests/auto/declarative/qdeclarativemoduleplugin/qdeclarativemoduleplugin.pro
@@ -4,4 +4,5 @@ SUBDIRS = plugin
tst_qdeclarativemoduleplugin_pro.depends += plugin
SUBDIRS += tst_qdeclarativemoduleplugin.pro
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp
index f3caa7f..6d17acc 100644
--- a/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp
+++ b/tests/auto/declarative/qdeclarativemoduleplugin/tst_qdeclarativemoduleplugin.cpp
@@ -48,9 +48,8 @@ class tst_qdeclarativemoduleplugin : public QObject
{
Q_OBJECT
public:
- tst_qdeclarativemoduleplugin() {
- QCoreApplication::addLibraryPath(QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("plugin"));
-qDebug() << QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("plugin");
+ tst_qdeclarativemoduleplugin()
+ {
}
private slots:
@@ -103,9 +102,12 @@ inline QUrl TEST_FILE(const QString &filename)
void tst_qdeclarativemoduleplugin::importsPlugin()
{
QDeclarativeEngine engine;
+ engine.addImportPath(QLatin1String(SRCDIR) + QDir::separator() + QLatin1String("imports"));
QTest::ignoreMessage(QtWarningMsg, "plugin created");
QTest::ignoreMessage(QtWarningMsg, "import worked");
- QDeclarativeComponent component(&engine, TEST_FILE("plugin.qml"));
+ QDeclarativeComponent component(&engine, TEST_FILE("data/works.qml"));
+ foreach (QDeclarativeError err, component.errors())
+ qWarning() << err;
VERIFY_ERRORS(0);
QObject *object = component.create();
QVERIFY(object != 0);
diff --git a/tests/auto/declarative/qdeclarativemousearea/data/clickandhold.qml b/tests/auto/declarative/qdeclarativemousearea/data/clickandhold.qml
new file mode 100644
index 0000000..e800f98
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativemousearea/data/clickandhold.qml
@@ -0,0 +1,13 @@
+import Qt 4.6
+
+Item {
+ id: root
+ property bool clicked: false
+ property bool held: false
+
+ MouseArea {
+ width: 200; height: 200
+ onClicked: { root.clicked = true }
+ onPressAndHold: { root.held = true }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativemousearea/data/dragreset.qml b/tests/auto/declarative/qdeclarativemousearea/data/dragreset.qml
new file mode 100644
index 0000000..4bfb9c3
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativemousearea/data/dragreset.qml
@@ -0,0 +1,28 @@
+import Qt 4.6
+Rectangle {
+ id: whiteRect
+ width: 200
+ height: 200
+ color: "white"
+ Rectangle {
+ id: blackRect
+ objectName: "blackrect"
+ color: "black"
+ y: 50
+ x: 50
+ width: 100
+ height: 100
+ opacity: (whiteRect.width-blackRect.x+whiteRect.height-blackRect.y-199)/200
+ Text { text: blackRect.opacity}
+ MouseArea {
+ objectName: "mouseregion"
+ anchors.fill: parent
+ drag.target: haveTarget ? blackRect : undefined
+ drag.axis: Drag.XandYAxis
+ drag.minimumX: 0
+ drag.maximumX: whiteRect.width-blackRect.width
+ drag.minimumY: 0
+ drag.maximumY: whiteRect.height-blackRect.height
+ }
+ }
+ }
diff --git a/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnClick.qml b/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnClick.qml
new file mode 100644
index 0000000..0da7c45
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativemousearea/data/updateMousePosOnClick.qml
@@ -0,0 +1,20 @@
+import Qt 4.6
+
+Rectangle {
+ color: "#ffffff"
+ width: 320; height: 240
+ MouseArea {
+ id: mouseRegion
+ objectName: "mouseregion"
+ anchors.fill: parent
+ Rectangle {
+ id: ball
+ objectName: "ball"
+ width: 20; height: 20
+ radius: 10
+ color: "#0000ff"
+ x: { mouseRegion.mouseX }
+ y: mouseRegion.mouseY
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro b/tests/auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro
index d01955b..48fe025 100644
--- a/tests/auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro
+++ b/tests/auto/declarative/qdeclarativemousearea/qdeclarativemousearea.pro
@@ -7,3 +7,6 @@ SOURCES += tst_qdeclarativemousearea.cpp ../shared/testhttpserver.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
index 769cf32..bdb8eca 100644
--- a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
+++ b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
@@ -42,20 +42,26 @@
#include <QtTest/QtTest>
#include <QtTest/QSignalSpy>
#include <private/qdeclarativemousearea_p.h>
+#include <private/qdeclarativerectangle_p.h>
#include <QtDeclarative/qdeclarativeview.h>
+#include <QtDeclarative/qdeclarativecontext.h>
class tst_QDeclarativeMouseArea: public QObject
{
Q_OBJECT
private slots:
void dragProperties();
+ void resetDrag();
+ void updateMouseAreaPosOnClick();
+ void noOnClickedWithPressAndHold();
private:
- QDeclarativeView *createView(const QString &filename);
+ QDeclarativeView *createView();
};
void tst_QDeclarativeMouseArea::dragProperties()
{
- QDeclarativeView *canvas = createView(SRCDIR "/data/dragproperties.qml");
+ QDeclarativeView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragproperties.qml"));
canvas->show();
canvas->setFocus();
QVERIFY(canvas->rootObject() != 0);
@@ -121,18 +127,112 @@ void tst_QDeclarativeMouseArea::dragProperties()
QCOMPARE(xmaxSpy.count(),1);
QCOMPARE(yminSpy.count(),1);
QCOMPARE(ymaxSpy.count(),1);
+
+ delete canvas;
+}
+
+void tst_QDeclarativeMouseArea::resetDrag()
+{
+ QDeclarativeView *canvas = createView();
+
+ canvas->rootContext()->setContextProperty("haveTarget", QVariant(true));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/dragreset.qml"));
+ canvas->show();
+ canvas->setFocus();
+ QVERIFY(canvas->rootObject() != 0);
+
+ QDeclarativeMouseArea *mouseRegion = canvas->rootObject()->findChild<QDeclarativeMouseArea*>("mouseregion");
+ QDeclarativeDrag *drag = mouseRegion->drag();
+ QVERIFY(mouseRegion != 0);
+ QVERIFY(drag != 0);
+
+ // target
+ QDeclarativeItem *blackRect = canvas->rootObject()->findChild<QDeclarativeItem*>("blackrect");
+ QVERIFY(blackRect != 0);
+ QVERIFY(blackRect == drag->target());
+ QDeclarativeItem *rootItem = qobject_cast<QDeclarativeItem*>(canvas->rootObject());
+ QVERIFY(rootItem != 0);
+ QSignalSpy targetSpy(drag, SIGNAL(targetChanged()));
+ QVERIFY(drag->target() != 0);
+ canvas->rootContext()->setContextProperty("haveTarget", QVariant(false));
+ QCOMPARE(targetSpy.count(),1);
+ QVERIFY(drag->target() == 0);
+
+ delete canvas;
}
-QDeclarativeView *tst_QDeclarativeMouseArea::createView(const QString &filename)
+
+QDeclarativeView *tst_QDeclarativeMouseArea::createView()
{
QDeclarativeView *canvas = new QDeclarativeView(0);
canvas->setFixedSize(240,320);
- canvas->setSource(QUrl::fromLocalFile(filename));
-
return canvas;
}
+void tst_QDeclarativeMouseArea::updateMouseAreaPosOnClick()
+{
+ QDeclarativeView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnClick.qml"));
+ canvas->show();
+ canvas->setFocus();
+ QVERIFY(canvas->rootObject() != 0);
+
+ QDeclarativeMouseArea *mouseRegion = canvas->rootObject()->findChild<QDeclarativeMouseArea*>("mouseregion");
+ QVERIFY(mouseRegion != 0);
+
+ QDeclarativeRectangle *rect = canvas->rootObject()->findChild<QDeclarativeRectangle*>("ball");
+ QVERIFY(rect != 0);
+
+ QCOMPARE(mouseRegion->mouseX(), rect->x());
+ QCOMPARE(mouseRegion->mouseY(), rect->y());
+
+ QGraphicsScene *scene = canvas->scene();
+ QGraphicsSceneMouseEvent event(QEvent::GraphicsSceneMousePress);
+ event.setScenePos(QPointF(100, 100));
+ event.setButton(Qt::LeftButton);
+ event.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &event);
+
+ QCOMPARE(mouseRegion->mouseX(), 100.0);
+ QCOMPARE(mouseRegion->mouseY(), 100.0);
+
+ QCOMPARE(mouseRegion->mouseX(), rect->x());
+ QCOMPARE(mouseRegion->mouseY(), rect->y());
+
+ delete canvas;
+}
+
+void tst_QDeclarativeMouseArea::noOnClickedWithPressAndHold()
+{
+ QDeclarativeView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/clickandhold.qml"));
+ canvas->show();
+ canvas->setFocus();
+ QVERIFY(canvas->rootObject() != 0);
+
+ QGraphicsScene *scene = canvas->scene();
+ QGraphicsSceneMouseEvent pressEvent(QEvent::GraphicsSceneMousePress);
+ pressEvent.setScenePos(QPointF(100, 100));
+ pressEvent.setButton(Qt::LeftButton);
+ pressEvent.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &pressEvent);
+
+ QVERIFY(!canvas->rootObject()->property("clicked").toBool());
+ QVERIFY(!canvas->rootObject()->property("held").toBool());
+
+ QTest::qWait(1000);
+
+ QGraphicsSceneMouseEvent releaseEvent(QEvent::GraphicsSceneMousePress);
+ releaseEvent.setScenePos(QPointF(100, 100));
+ releaseEvent.setButton(Qt::LeftButton);
+ releaseEvent.setButtons(Qt::LeftButton);
+ QApplication::sendEvent(scene, &releaseEvent);
+
+ QVERIFY(!canvas->rootObject()->property("clicked").toBool());
+ QVERIFY(canvas->rootObject()->property("held").toBool());
+}
+
QTEST_MAIN(tst_QDeclarativeMouseArea)
#include "tst_qdeclarativemousearea.moc"
diff --git a/tests/auto/declarative/qdeclarativenumberformatter/qdeclarativenumberformatter.pro b/tests/auto/declarative/qdeclarativenumberformatter/qdeclarativenumberformatter.pro
deleted file mode 100644
index 672e95c..0000000
--- a/tests/auto/declarative/qdeclarativenumberformatter/qdeclarativenumberformatter.pro
+++ /dev/null
@@ -1,5 +0,0 @@
-load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative
-macx:CONFIG -= app_bundle
-
-SOURCES += tst_qdeclarativenumberformatter.cpp
diff --git a/tests/auto/declarative/qdeclarativenumberformatter/tst_qdeclarativenumberformatter.cpp b/tests/auto/declarative/qdeclarativenumberformatter/tst_qdeclarativenumberformatter.cpp
deleted file mode 100644
index 26ff3d5..0000000
--- a/tests/auto/declarative/qdeclarativenumberformatter/tst_qdeclarativenumberformatter.cpp
+++ /dev/null
@@ -1,222 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <qtest.h>
-#include <QDebug>
-#include <QtDeclarative/qdeclarativeengine.h>
-#include <QtDeclarative/qdeclarativecomponent.h>
-#include <private/qnumberformat_p.h>
-#include <private/qdeclarativenumberformatter_p.h>
-
-class tst_qdeclarativenumberformatter : public QObject
-{
- Q_OBJECT
-public:
- tst_qdeclarativenumberformatter();
-
- void init() {}
- void initTestCase() {}
-
- void cleanup() {}
- void cleanupTestCase() {}
-
-private slots:
- void text_data();
- void text();
-
-private:
- QStringList strings;
- QStringList formats;
- QStringList texts;
-};
-
-tst_qdeclarativenumberformatter::tst_qdeclarativenumberformatter()
-{
- strings << "100.0"
- << "12345"
- << "1234567"
- << "0.123"
- << "0.9999"
- << "0.989"
- << "1"
- << "1.0"
- << "1.01";
-
- formats << ""
- << "0000"
- << "0000.00"
- << "##"
- << "##.##"
- << "#0.00#"
- << "##,##0.##"
- << "(000) 000 - 000"
- << "00000,000.0000";
-
- //US locale only.
- texts << "100.000000"
- << "12345.000000"
- << "1234567.000000"
- << "0.123000"
- << "0.999900"
- << "0.989000"
- << "1.000000"
- << "1.000000"
- << "1.010000" //end ""
- << "0100"
- << "12345"
- << "1234567"
- << "0000"
- << "0001"
- << "0001"
- << "0001"
- << "0001"
- << "0001" // end "0000"
- << "0100.00"
- << "12345.00"
- << "1234567.00"
- << "0000.12"
- << "0001.00"
- << "0000.99"
- << "0001.00"
- << "0001.00"
- << "0001.01" // end "0000.00"
- << "100"
- << "12345"
- << "1234567"
- << "0"
- << "1"
- << "1"
- << "1"
- << "1"
- << "1" // end "##"
- << "100"//start "##.##"
- << "12345"
- << "1234567"
- << "0.12"
- << "1"
- << "0.99"
- << "1"
- << "1"
- << "1.01" // end "##.##" -- ### EXPECT FAIL ### QNumberFormat::formatDecimal() bug
- << "100.00" //start "#0.00#"
- << "12345.00"
- << "1234567.00"
- << "0.123"
- << "1.00"
- << "0.989"
- << "1.00"
- << "1.00"
- << "1.01" //end "#0.00#"
- << "100" //start "##,##0.##"
- << "12,345"
- << "1,234,567"
- << "0.12"
- << "1"
- << "0.99"
- << "1"
- << "1"
- << "1.01" //end "##,##0.##" -- ### EXPECT FAIL ### QNumberFormat::formatDecimal() bug
- << "(000) 000 - 100" //start "(000) 000 - 000"
- << "(000) 012 - 345"
- << "(001) 234 - 567"
- << "(000) 000 - 000"
- << "(000) 000 - 001"
- << "(000) 000 - 001"
- << "(000) 000 - 001"
- << "(000) 000 - 001"
- << "(000) 000 - 001" // end "(000) 000 - 000"
- << "00,000,100.0000" // start "00000,000.0000"
- << "00,012,345.0000"
- << "01,234,567.0000"
- << "00,000,000.1230"
- << "00,000,000.9999"
- << "00,000,000.9890"
- << "00,000,001.0000"
- << "00,000,001.0000"
- << "00,000,001.0100"; // end
-
- qDebug() << "strings.size()" << strings.size()
- << "\nformats.size()" << formats.size()
- << "texts.size()" << texts.size();
-}
-
-void tst_qdeclarativenumberformatter::text_data()
-{
- QTest::addColumn<QString>("string");
- QTest::addColumn<QString>("format");
- QTest::addColumn<QString>("text");
-
- for (int j=0; j < formats.size(); j++)
- {
- for (int i=0; i < strings.size(); i++)
- {
- QTest::newRow(QString("%1, %2").arg(strings.at(i)).arg(formats.at(j)).toAscii())
- << strings.at(i) << formats.at(j) << texts.at(j*formats.size()+i);
- }
- }
-
-}
-
-void tst_qdeclarativenumberformatter::text()
-{
- QFETCH(QString, string);
- QFETCH(QString, format);
- QFETCH(QString, text);
-
- QString componentStr = QString("import Qt 4.6\nNumberFormatter { number: ") + string + QString("; format: \"") + format + QString("\" }");
-
- QDeclarativeEngine engine;
- QDeclarativeComponent formatterComponent(&engine);
- formatterComponent.setData(componentStr.toUtf8(), QUrl::fromLocalFile(""));
- if(formatterComponent.isError())
- qDebug() << formatterComponent.errors();
- QVERIFY(formatterComponent.isReady());
- QDeclarativeNumberFormatter *formatter = qobject_cast<QDeclarativeNumberFormatter*>(formatterComponent.create());
- QVERIFY(formatter != 0);
-
- QCOMPARE(formatter->format(), format);
- QCOMPARE(formatter->text(), text);
-
- delete formatter;
-}
-
-QTEST_MAIN(tst_qdeclarativenumberformatter)
-
-#include "tst_qdeclarativenumberformatter.moc"
diff --git a/tests/auto/declarative/qdeclarativeparticles/data/particlemotion.qml b/tests/auto/declarative/qdeclarativeparticles/data/particlemotion.qml
deleted file mode 100644
index ace61fe..0000000
--- a/tests/auto/declarative/qdeclarativeparticles/data/particlemotion.qml
+++ /dev/null
@@ -1,33 +0,0 @@
-import Qt 4.6
-Rectangle {
- width: 240
- height: 320
- color: "black"
- Particles {
- objectName: "particles"
- anchors.fill: parent
- width: 1
- height: 1
- source: "particle.png"
- lifeSpan: 5000
- count: 200
- angle: 270
- angleDeviation: 45
- velocity: 50
- velocityDeviation: 30
- ParticleMotionGravity {
- objectName: "motionGravity"
- yattractor: 1000
- xattractor: 0
- acceleration: 25
- }
- }
- resources: [
- ParticleMotionWander {
- objectName: "motionWander"
- xvariance: 30
- yvariance: 30
- pace: 100
- }
- ]
-} \ No newline at end of file
diff --git a/tests/auto/declarative/qdeclarativeparticles/data/particlemotiontest.qml b/tests/auto/declarative/qdeclarativeparticles/data/particlemotiontest.qml
new file mode 100644
index 0000000..f1e4909
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeparticles/data/particlemotiontest.qml
@@ -0,0 +1,35 @@
+import Qt 4.6
+import Qt.labs.particles 1.0
+
+Rectangle {
+ width: 240
+ height: 320
+ color: "black"
+ Particles {
+ objectName: "particles"
+ anchors.fill: parent
+ width: 1
+ height: 1
+ source: "particle.png"
+ lifeSpan: 5000
+ count: 200
+ angle: 270
+ angleDeviation: 45
+ velocity: 50
+ velocityDeviation: 30
+ ParticleMotionGravity {
+ objectName: "motionGravity"
+ yattractor: 1000
+ xattractor: 0
+ acceleration: 25
+ }
+ }
+ resources: [
+ ParticleMotionWander {
+ objectName: "motionWander"
+ xvariance: 30
+ yvariance: 30
+ pace: 100
+ }
+ ]
+}
diff --git a/tests/auto/declarative/qdeclarativeparticles/data/particles.qml b/tests/auto/declarative/qdeclarativeparticles/data/particles.qml
deleted file mode 100644
index c58927e..0000000
--- a/tests/auto/declarative/qdeclarativeparticles/data/particles.qml
+++ /dev/null
@@ -1,15 +0,0 @@
-import Qt 4.6
-Rectangle{
- width: 100
- height: 100
- color: "black"
- objectName: "rect"
- Particles { id: particles
- objectName: "particles"
- width:1; height:1; anchors.centerIn: parent; opacity: 1
- lifeSpan: 100; lifeSpanDeviation: 20; count:1000;
- fadeInDuration: 20; fadeOutDuration: 20; count: -1; emissionRate: 1000
- angle: 0; angleDeviation: 360; velocity: 500; velocityDeviation:30
- source: "particle.png"
- }
-}
diff --git a/tests/auto/declarative/qdeclarativeparticles/data/particlestest.qml b/tests/auto/declarative/qdeclarativeparticles/data/particlestest.qml
new file mode 100644
index 0000000..4f168a9
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeparticles/data/particlestest.qml
@@ -0,0 +1,17 @@
+import Qt 4.6
+import Qt.labs.particles 1.0
+
+Rectangle{
+ width: 100
+ height: 100
+ color: "black"
+ objectName: "rect"
+ Particles { id: particles
+ objectName: "particles"
+ width:1; height:1; anchors.centerIn: parent; opacity: 1
+ lifeSpan: 100; lifeSpanDeviation: 20; count:1000;
+ fadeInDuration: 20; fadeOutDuration: 20; emissionRate: 1000
+ angle: 0; angleDeviation: 360; velocity: 500; velocityDeviation:30
+ source: "particle.png"
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro b/tests/auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro
index 043bb85..8a061c3 100644
--- a/tests/auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro
+++ b/tests/auto/declarative/qdeclarativeparticles/qdeclarativeparticles.pro
@@ -6,3 +6,6 @@ SOURCES += tst_qdeclarativeparticles.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeparticles/tst_qdeclarativeparticles.cpp b/tests/auto/declarative/qdeclarativeparticles/tst_qdeclarativeparticles.cpp
index 6090a07..093190c 100644
--- a/tests/auto/declarative/qdeclarativeparticles/tst_qdeclarativeparticles.cpp
+++ b/tests/auto/declarative/qdeclarativeparticles/tst_qdeclarativeparticles.cpp
@@ -41,7 +41,7 @@
#include <QtTest/QtTest>
#include <QtTest/QSignalSpy>
#include <qdeclarativeview.h>
-#include <private/qdeclarativeparticles_p.h>
+#include <QGraphicsObject>
class tst_QDeclarativeParticles : public QObject
{
@@ -65,75 +65,77 @@ tst_QDeclarativeParticles::tst_QDeclarativeParticles()
void tst_QDeclarativeParticles::properties()
{
- QDeclarativeView *canvas = createView(SRCDIR "/data/particles.qml");
+ QDeclarativeView *canvas = createView(SRCDIR "/data/particlestest.qml");
QVERIFY(canvas->rootObject());
- QDeclarativeParticles* particles = canvas->rootObject()->findChild<QDeclarativeParticles*>("particles");
+
+ QObject* particles = canvas->rootObject()->findChild<QObject*>("particles");
QVERIFY(particles);
- particles->setSource(QUrl::fromLocalFile(SRCDIR "/data/particle.png"));
- QCOMPARE(particles->source(), QUrl::fromLocalFile(SRCDIR "/data/particle.png"));
+ particles->setProperty("source", QUrl::fromLocalFile(SRCDIR "/data/particle.png"));
+ QCOMPARE(particles->property("source").toUrl(), QUrl::fromLocalFile(SRCDIR "/data/particle.png"));
- particles->setLifeSpanDeviation(1000);
- QCOMPARE(particles->lifeSpanDeviation(), 1000);
+ particles->setProperty("lifeSpanDeviation", (1000));
+ QCOMPARE(particles->property("lifeSpanDeviation").toInt(), 1000);
- particles->setFadeInDuration(1000);
- QCOMPARE(particles->fadeInDuration(), 1000);
+ particles->setProperty("fadeInDuration", 1000);
+ QCOMPARE(particles->property("fadeInDuration").toInt(), 1000);
- particles->setFadeOutDuration(1000);
- QCOMPARE(particles->fadeOutDuration(), 1000);
+ particles->setProperty("fadeOutDuration", 1000);
+ QCOMPARE(particles->property("fadeOutDuration").toInt(), 1000);
- particles->setAngle(100.0);
- QCOMPARE(particles->angle(), 100.0);
+ particles->setProperty("angle", 100.0);
+ QCOMPARE(particles->property("angle").toDouble(), 100.0);
- particles->setAngleDeviation(100.0);
- QCOMPARE(particles->angleDeviation(), 100.0);
+ particles->setProperty("angleDeviation", 100.0);
+ QCOMPARE(particles->property("angleDeviation").toDouble(), 100.0);
- particles->setVelocity(100.0);
- QCOMPARE(particles->velocity(), 100.0);
+ particles->setProperty("velocity", 100.0);
+ QCOMPARE(particles->property("velocity").toDouble(), 100.0);
- particles->setVelocityDeviation(100.0);
- QCOMPARE(particles->velocityDeviation(), 100.0);
+ particles->setProperty("velocityDeviation", 100.0);
+ QCOMPARE(particles->property("velocityDeviation").toDouble(), 100.0);
- particles->setEmissionVariance(0.5);
- QCOMPARE(particles->emissionVariance(),0.5);
+ particles->setProperty("emissionVariance", 0.5);
+ QCOMPARE(particles->property("emissionVariance").toDouble(),0.5);
- particles->setEmissionRate(12);
- QCOMPARE(particles->emissionRate(), 12);
+ particles->setProperty("emissionRate", 12);
+ QCOMPARE(particles->property("emissionRate").toInt(), 12);
}
void tst_QDeclarativeParticles::motionGravity()
{
- QDeclarativeView *canvas = createView(SRCDIR "/data/particlemotion.qml");
+ QDeclarativeView *canvas = createView(SRCDIR "/data/particlemotiontest.qml");
QVERIFY(canvas->rootObject());
- QDeclarativeParticles* particles = canvas->rootObject()->findChild<QDeclarativeParticles*>("particles");
+
+ QObject* particles = canvas->rootObject()->findChild<QObject*>("particles");
QVERIFY(particles);
- QDeclarativeParticleMotionGravity* motionGravity = canvas->rootObject()->findChild<QDeclarativeParticleMotionGravity*>("motionGravity");
- QCOMPARE(particles->motion(), motionGravity);
+ QObject* motionGravity = canvas->rootObject()->findChild<QObject*>("motionGravity");
+ //QCOMPARE(qvariant_cast<QObject*>(particles->property("motion")), motionGravity);
QSignalSpy xattractorSpy(motionGravity, SIGNAL(xattractorChanged()));
QSignalSpy yattractorSpy(motionGravity, SIGNAL(yattractorChanged()));
QSignalSpy accelerationSpy(motionGravity, SIGNAL(accelerationChanged()));
- QCOMPARE(motionGravity->xAttractor(), 0.0);
- QCOMPARE(motionGravity->yAttractor(), 1000.0);
- QCOMPARE(motionGravity->acceleration(), 25.0);
+ QCOMPARE(motionGravity->property("xattractor").toDouble(), 0.0);
+ QCOMPARE(motionGravity->property("yattractor").toDouble(), 1000.0);
+ QCOMPARE(motionGravity->property("acceleration").toDouble(), 25.0);
- motionGravity->setXAttractor(20.0);
- motionGravity->setYAttractor(10.0);
- motionGravity->setAcceleration(10.0);
+ motionGravity->setProperty("xattractor", 20.0);
+ motionGravity->setProperty("yattractor", 10.0);
+ motionGravity->setProperty("acceleration", 10.0);
- QCOMPARE(motionGravity->xAttractor(), 20.0);
- QCOMPARE(motionGravity->yAttractor(), 10.0);
- QCOMPARE(motionGravity->acceleration(), 10.0);
+ QCOMPARE(motionGravity->property("xattractor").toDouble(), 20.0);
+ QCOMPARE(motionGravity->property("yattractor").toDouble(), 10.0);
+ QCOMPARE(motionGravity->property("acceleration").toDouble(), 10.0);
QCOMPARE(xattractorSpy.count(), 1);
QCOMPARE(yattractorSpy.count(), 1);
QCOMPARE(accelerationSpy.count(), 1);
- motionGravity->setXAttractor(20.0);
- motionGravity->setYAttractor(10.0);
- motionGravity->setAcceleration(10.0);
+ motionGravity->setProperty("xattractor", 20.0);
+ motionGravity->setProperty("yattractor", 10.0);
+ motionGravity->setProperty("acceleration", 10.0);
QCOMPARE(xattractorSpy.count(), 1);
QCOMPARE(yattractorSpy.count(), 1);
@@ -142,44 +144,46 @@ void tst_QDeclarativeParticles::motionGravity()
void tst_QDeclarativeParticles::motionWander()
{
- QDeclarativeView *canvas = createView(SRCDIR "/data/particlemotion.qml");
+ QDeclarativeView *canvas = createView(SRCDIR "/data/particlemotiontest.qml");
QVERIFY(canvas->rootObject());
- QDeclarativeParticles* particles = canvas->rootObject()->findChild<QDeclarativeParticles*>("particles");
+
+ QObject* particles = canvas->rootObject()->findChild<QObject*>("particles");
QVERIFY(particles);
-
+
QSignalSpy motionSpy(particles, SIGNAL(motionChanged()));
- QDeclarativeParticleMotionWander* motionWander = canvas->rootObject()->findChild<QDeclarativeParticleMotionWander*>("motionWander");
-
- particles->setMotion(motionWander);
- QCOMPARE(particles->motion(),motionWander);
- QCOMPARE(motionSpy.count(), 1);
-
- particles->setMotion(motionWander);
- QCOMPARE(motionSpy.count(), 1);
+ QObject* motionWander = canvas->rootObject()->findChild<QObject*>("motionWander");
+
+ QCOMPARE(motionSpy.count(), 0);
+ particles->setProperty("motion", QVariant::fromValue(motionWander));
+ //QCOMPARE(particles->property("motion"), QVariant::fromValue(motionWander));
+ //QCOMPARE(motionSpy.count(), 1);
+
+ particles->setProperty("motion", QVariant::fromValue(motionWander));
+ //QCOMPARE(motionSpy.count(), 1);
QSignalSpy xvarianceSpy(motionWander, SIGNAL(xvarianceChanged()));
QSignalSpy yvarianceSpy(motionWander, SIGNAL(yvarianceChanged()));
QSignalSpy paceSpy(motionWander, SIGNAL(paceChanged()));
- QCOMPARE(motionWander->xVariance(), 30.0);
- QCOMPARE(motionWander->yVariance(), 30.0);
- QCOMPARE(motionWander->pace(), 100.0);
+ QCOMPARE(motionWander->property("xvariance").toDouble(), 30.0);
+ QCOMPARE(motionWander->property("yvariance").toDouble(), 30.0);
+ QCOMPARE(motionWander->property("pace").toDouble(), 100.0);
- motionWander->setXVariance(20.0);
- motionWander->setYVariance(10.0);
- motionWander->setPace(10.0);
+ motionWander->setProperty("xvariance", 20.0);
+ motionWander->setProperty("yvariance", 10.0);
+ motionWander->setProperty("pace", 10.0);
- QCOMPARE(motionWander->xVariance(), 20.0);
- QCOMPARE(motionWander->yVariance(), 10.0);
- QCOMPARE(motionWander->pace(), 10.0);
+ QCOMPARE(motionWander->property("xvariance").toDouble(), 20.0);
+ QCOMPARE(motionWander->property("yvariance").toDouble(), 10.0);
+ QCOMPARE(motionWander->property("pace").toDouble(), 10.0);
QCOMPARE(xvarianceSpy.count(), 1);
QCOMPARE(yvarianceSpy.count(), 1);
QCOMPARE(paceSpy.count(), 1);
- motionWander->setXVariance(20.0);
- motionWander->setYVariance(10.0);
- motionWander->setPace(10.0);
+ QCOMPARE(motionWander->property("xvariance").toDouble(), 20.0);
+ QCOMPARE(motionWander->property("yvariance").toDouble(), 10.0);
+ QCOMPARE(motionWander->property("pace").toDouble(), 10.0);
QCOMPARE(xvarianceSpy.count(), 1);
QCOMPARE(yvarianceSpy.count(), 1);
@@ -188,9 +192,10 @@ void tst_QDeclarativeParticles::motionWander()
void tst_QDeclarativeParticles::runs()
{
- QDeclarativeView *canvas = createView(SRCDIR "/data/particles.qml");
+ QDeclarativeView *canvas = createView(SRCDIR "/data/particlestest.qml");
QVERIFY(canvas->rootObject());
- QDeclarativeParticles* particles = canvas->rootObject()->findChild<QDeclarativeParticles*>("particles");
+
+ QObject* particles = canvas->rootObject()->findChild<QObject*>("particles");
QVERIFY(particles);
QTest::qWait(1000);//Run for one second. Test passes if it doesn't crash.
}
diff --git a/tests/auto/declarative/qdeclarativepathview/data/displaypath.qml b/tests/auto/declarative/qdeclarativepathview/data/displaypath.qml
index 627f38a..eded122 100644
--- a/tests/auto/declarative/qdeclarativepathview/data/displaypath.qml
+++ b/tests/auto/declarative/qdeclarativepathview/data/displaypath.qml
@@ -33,7 +33,6 @@ Rectangle {
height: 320
model: testModel
delegate: delegate
- snapPosition: 0.01
path: Path {
startY: 120
startX: 160
diff --git a/tests/auto/declarative/qdeclarativepathview/data/path.qml b/tests/auto/declarative/qdeclarativepathview/data/pathtest.qml
index 7e82a48..7e82a48 100644
--- a/tests/auto/declarative/qdeclarativepathview/data/path.qml
+++ b/tests/auto/declarative/qdeclarativepathview/data/pathtest.qml
diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathview.qml b/tests/auto/declarative/qdeclarativepathview/data/pathview.qml
deleted file mode 100644
index 8fa8d59..0000000
--- a/tests/auto/declarative/qdeclarativepathview/data/pathview.qml
+++ /dev/null
@@ -1,66 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 240
- height: 320
- color: "#ffffff"
- resources: [
- Component {
- id: delegate
- Rectangle {
- id: wrapper
- objectName: "wrapper"
- height: 20
- width: 60
- color: "white"
- border.color: "black"
- Text {
- text: index
- }
- Text {
- x: 20
- id: textName
- objectName: "textName"
- text: name
- }
- Text {
- x: 40
- id: textNumber
- objectName: "textNumber"
- text: number
- }
- }
- }
- ]
- PathView {
- id: view
- objectName: "view"
- width: 240
- height: 320
- model: testModel
- delegate: delegate
- snapPosition: 0.01
- path: Path {
- startY: 120
- startX: 160
- PathQuad {
- y: 120
- x: 80
- controlY: 330
- controlX: 100
- }
- PathLine {
- y: 160
- x: 20
- }
- PathCubic {
- y: 120
- x: 160
- control1Y: 0
- control1X: 100
- control2Y: 000
- control2X: 200
- }
- }
- }
-}
diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml b/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml
new file mode 100644
index 0000000..1866875
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativepathview/data/pathview0.qml
@@ -0,0 +1,79 @@
+import Qt 4.6
+
+Rectangle {
+ id: root
+ property int currentA: -1
+ property int currentB: -1
+ width: 240
+ height: 320
+ color: "#ffffff"
+ resources: [
+ Component {
+ id: delegate
+ Rectangle {
+ id: wrapper
+ objectName: "wrapper"
+ height: 20
+ width: 60
+ color: PathView.isCurrentItem ? "lightsteelblue" : "white"
+ border.color: "black"
+ Text {
+ text: index
+ }
+ Text {
+ x: 20
+ id: textName
+ objectName: "textName"
+ text: name
+ }
+ Text {
+ x: 40
+ id: textNumber
+ objectName: "textNumber"
+ text: number
+ }
+ PathView.onCurrentItemChanged: {
+ if (PathView.isCurrentItem) {
+ root.currentA = index;
+ root.currentB = wrapper.PathView.view.currentIndex;
+ }
+ }
+ }
+ }
+ ]
+ PathView {
+ id: view
+ objectName: "view"
+ width: 240
+ height: 320
+ model: testModel
+ delegate: delegate
+ highlight: Rectangle {
+ width: 60
+ height: 20
+ color: "yellow"
+ }
+ path: Path {
+ startY: 120
+ startX: 160
+ PathQuad {
+ y: 120
+ x: 80
+ controlY: 330
+ controlX: 100
+ }
+ PathLine {
+ y: 160
+ x: 20
+ }
+ PathCubic {
+ y: 120
+ x: 160
+ control1Y: 0
+ control1X: 100
+ control2Y: 000
+ control2X: 200
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathview2.qml b/tests/auto/declarative/qdeclarativepathview/data/pathview2.qml
index 0d5c98b..c825292 100644
--- a/tests/auto/declarative/qdeclarativepathview/data/pathview2.qml
+++ b/tests/auto/declarative/qdeclarativepathview/data/pathview2.qml
@@ -1,7 +1,7 @@
import Qt 4.6
PathView {
- id: photoPathView; model: rssModel; delegate: photoDelegate
+ id: photoPathView
y: 100; width: 800; height: 330; pathItemCount: 10; z: 1
path: Path {
diff --git a/tests/auto/declarative/qdeclarativepathview/data/pathview3.qml b/tests/auto/declarative/qdeclarativepathview/data/pathview3.qml
index 412cca2..b143294 100644
--- a/tests/auto/declarative/qdeclarativepathview/data/pathview3.qml
+++ b/tests/auto/declarative/qdeclarativepathview/data/pathview3.qml
@@ -1,9 +1,11 @@
import Qt 4.6
PathView {
- id: photoPathView; model: rssModel; delegate: photoDelegate
- y: 100; width: 800; height: 330; pathItemCount: 4; offset: 10
- dragMargin: 24; snapPosition: 50
+ id: photoPathView
+ y: 100; width: 800; height: 330; pathItemCount: 4; offset: 1
+ dragMargin: 24
+ preferredHighlightBegin: 0.50
+ preferredHighlightEnd: 0.50
path: Path {
startX: -50; startY: 40;
diff --git a/tests/auto/declarative/qdeclarativepathview/data/propertychanges.qml b/tests/auto/declarative/qdeclarativepathview/data/propertychanges.qml
new file mode 100644
index 0000000..1ae1ad2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativepathview/data/propertychanges.qml
@@ -0,0 +1,116 @@
+import Qt 4.6
+
+Rectangle {
+ width: 350; height: 220; color: "white"
+ Component {
+ id: myDelegate
+ Item {
+ id: wrapper
+ width: 180; height: 40;
+ opacity: PathView.opacity
+ Column {
+ x: 5; y: 5
+ Text { text: '<b>Name:</b> ' + name }
+ Text { text: '<b>Number:</b> ' + number }
+ }
+ }
+ }
+
+ PathView {
+ preferredHighlightBegin: 0.1
+ preferredHighlightEnd: 0.1
+ dragMargin: 5.0
+ id: pathView
+ objectName: "pathView"
+ anchors.fill: parent
+ model: listModel
+ delegate: myDelegate
+ focus: true
+ path: Path {
+ id: myPath
+ objectName: "path"
+ startX: 220; startY: 200
+ PathAttribute { name: "opacity"; value: 1.0; objectName: "pathAttribute"; }
+ PathQuad { x: 220; y: 25; controlX: 260; controlY: 75 }
+ PathAttribute { name: "opacity"; value: 0.3 }
+ PathQuad { x: 220; y: 200; controlX: -20; controlY: 75 }
+ }
+ Timer {
+ interval: 2000; running: true; repeat: true
+ onTriggered: {
+ if (pathView.path == alternatePath)
+ pathView.path = myPath;
+ else
+ pathView.path = alternatePath;
+ }
+ }
+ }
+
+ data:[
+ ListModel {
+ id: listModel
+ ListElement {
+ name: "Bill Smith"
+ number: "555 3264"
+ }
+ ListElement {
+ name: "John Brown"
+ number: "555 8426"
+ }
+ ListElement {
+ name: "Sam Wise"
+ number: "555 0473"
+ }
+ ListElement {
+ name: "Bill Smith"
+ number: "555 3264"
+ }
+ ListElement {
+ name: "John Brown"
+ number: "555 8426"
+ }
+ ListElement {
+ name: "Sam Wise"
+ number: "555 0473"
+ }
+ ListElement {
+ name: "Bill Smith"
+ number: "555 3264"
+ }
+ ListElement {
+ name: "John Brown"
+ number: "555 8426"
+ }
+ ListElement {
+ name: "Sam Wise"
+ number: "555 0473"
+ }
+ },
+ ListModel {
+ objectName: "alternateModel"
+ ListElement {
+ name: "Jack"
+ number: "555 8426"
+ }
+ ListElement {
+ name: "Mary"
+ number: "555 3264"
+ }
+ },
+ Path {
+ id: alternatePath
+ objectName: "alternatePath"
+ startX: 100; startY: 40
+ PathAttribute { name: "opacity"; value: 0.0 }
+ PathLine { x: 100; y: 160 }
+ PathAttribute { name: "opacity"; value: 0.2 }
+ PathLine { x: 300; y: 160 }
+ PathAttribute { name: "opacity"; value: 0.0 }
+ PathLine { x: 300; y: 40 }
+ PathAttribute { name: "opacity"; value: 0.2 }
+ PathLine { x: 100; y: 40 }
+ }
+ ]
+}
+
+
diff --git a/tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro b/tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro
index 2f6ae32..3c327d5 100644
--- a/tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro
+++ b/tests/auto/declarative/qdeclarativepathview/qdeclarativepathview.pro
@@ -6,3 +6,6 @@ SOURCES += tst_qdeclarativepathview.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
index 79bc607..df7c511 100644
--- a/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
+++ b/tests/auto/declarative/qdeclarativepathview/tst_qdeclarativepathview.cpp
@@ -38,20 +38,23 @@
** $QT_END_LICENSE$
**
****************************************************************************/
-#include <private/qdeclarativepathview_p.h>
-#include <private/qdeclarativepath_p.h>
-#include <qdeclarativecontext.h>
-#include <qdeclarativeexpression.h>
-#include <qtest.h>
+
+#include <QtTest/QtTest>
+#include <QtDeclarative/qdeclarativeview.h>
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
-#include <QtDeclarative/qdeclarativeview.h>
+#include <QtDeclarative/qdeclarativecontext.h>
+#include <QtDeclarative/qdeclarativeexpression.h>
+#include <QtDeclarative/private/qdeclarativepathview_p.h>
+#include <QtDeclarative/private/qdeclarativepath_p.h>
#include <QtDeclarative/private/qdeclarativetext_p.h>
#include <QtDeclarative/private/qdeclarativerectangle_p.h>
+#include <QtDeclarative/private/qdeclarativelistmodel_p.h>
+#include <QtDeclarative/private/qdeclarativevaluetype_p.h>
#include <QAbstractListModel>
#include <QStringListModel>
#include <QFile>
-#include <private/qdeclarativevaluetype_p.h>
+
#include "../../../shared/util.h"
class tst_QDeclarativePathView : public QObject
@@ -68,7 +71,13 @@ private slots:
void pathview3();
void path();
void pathMoved();
+ void setCurrentIndex();
void resetModel();
+ void propertyChanges();
+ void pathChanges();
+ void componentChanges();
+ void modelChanges();
+
private:
QDeclarativeView *createView();
@@ -120,7 +129,7 @@ public:
setRoleNames(roles);
}
- int rowCount(const QModelIndex &parent=QModelIndex()) const { return list.count(); }
+ int rowCount(const QModelIndex &parent=QModelIndex()) const { Q_UNUSED(parent); return list.count(); }
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const {
QVariant rv;
if (role == Name)
@@ -185,7 +194,7 @@ void tst_QDeclarativePathView::initValues()
QCOMPARE(obj->model(), QVariant());
QCOMPARE(obj->currentIndex(), 0);
QCOMPARE(obj->offset(), 0.);
- QCOMPARE(obj->snapPosition(), 0.);
+ QCOMPARE(obj->preferredHighlightBegin(), 0.);
QCOMPARE(obj->dragMargin(), 0.);
QCOMPARE(obj->count(), 0);
QCOMPARE(obj->pathItemCount(), -1);
@@ -199,17 +208,18 @@ void tst_QDeclarativePathView::items()
model.addItem("Fred", "12345");
model.addItem("John", "2345");
model.addItem("Bob", "54321");
+ model.addItem("Bill", "4321");
QDeclarativeContext *ctxt = canvas->rootContext();
ctxt->setContextProperty("testModel", &model);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pathview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pathview0.qml"));
qApp->processEvents();
QDeclarativePathView *pathview = findItem<QDeclarativePathView>(canvas->rootObject(), "view");
QVERIFY(pathview != 0);
- QCOMPARE(pathview->childItems().count(), model.count()); // assumes all are visible
+ QCOMPARE(pathview->childItems().count(), model.count()+1); // assumes all are visible, including highlight
for (int i = 0; i < model.count(); ++i) {
QDeclarativeText *name = findItem<QDeclarativeText>(pathview, "textName", i);
@@ -220,6 +230,16 @@ void tst_QDeclarativePathView::items()
QCOMPARE(number->text(), model.number(i));
}
+ QDeclarativePath *path = qobject_cast<QDeclarativePath*>(pathview->path());
+ QVERIFY(path);
+
+ QVERIFY(pathview->highlightItem());
+ QPointF start = path->pointAt(0.0);
+ QPointF offset;
+ offset.setX(pathview->highlightItem()->width()/2);
+ offset.setY(pathview->highlightItem()->height()/2);
+ QCOMPARE(pathview->highlightItem()->pos() + offset, start);
+
delete canvas;
}
@@ -235,7 +255,7 @@ void tst_QDeclarativePathView::pathview2()
QVERIFY(obj->model() != QVariant());
QCOMPARE(obj->currentIndex(), 0);
QCOMPARE(obj->offset(), 0.);
- QCOMPARE(obj->snapPosition(), 0.);
+ QCOMPARE(obj->preferredHighlightBegin(), 0.);
QCOMPARE(obj->dragMargin(), 0.);
QCOMPARE(obj->count(), 8);
QCOMPARE(obj->pathItemCount(), 10);
@@ -252,8 +272,8 @@ void tst_QDeclarativePathView::pathview3()
QVERIFY(obj->delegate() != 0);
QVERIFY(obj->model() != QVariant());
QCOMPARE(obj->currentIndex(), 0);
- QCOMPARE(obj->offset(), 50.); // ???
- QCOMPARE(obj->snapPosition(), 0.5); // ???
+ QCOMPARE(obj->offset(), 1.0);
+ QCOMPARE(obj->preferredHighlightBegin(), 0.5);
QCOMPARE(obj->dragMargin(), 24.);
QCOMPARE(obj->count(), 8);
QCOMPARE(obj->pathItemCount(), 4);
@@ -262,7 +282,7 @@ void tst_QDeclarativePathView::pathview3()
void tst_QDeclarativePathView::path()
{
QDeclarativeEngine engine;
- QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/path.qml"));
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/pathtest.qml"));
QDeclarativePath *obj = qobject_cast<QDeclarativePath*>(c.create());
QVERIFY(obj != 0);
@@ -397,7 +417,7 @@ void tst_QDeclarativePathView::pathMoved()
QDeclarativeContext *ctxt = canvas->rootContext();
ctxt->setContextProperty("testModel", &model);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pathview.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pathview0.qml"));
qApp->processEvents();
QDeclarativePathView *pathview = findItem<QDeclarativePathView>(canvas->rootObject(), "view");
@@ -412,21 +432,61 @@ void tst_QDeclarativePathView::pathMoved()
offset.setX(firstItem->width()/2);
offset.setY(firstItem->height()/2);
QCOMPARE(firstItem->pos() + offset, start);
- pathview->setOffset(10);
- QTest::qWait(1000);//Moving is animated?
+ pathview->setOffset(1.0);
for(int i=0; i<model.count(); i++){
QDeclarativeRectangle *curItem = findItem<QDeclarativeRectangle>(pathview, "wrapper", i);
- QCOMPARE(curItem->pos() + offset, path->pointAt(0.1 + i*0.25));
+ QCOMPARE(curItem->pos() + offset, path->pointAt(0.25 + i*0.25));
}
- pathview->setOffset(100);
- QTest::qWait(1000);//Moving is animated?
+ pathview->setOffset(0.0);
QCOMPARE(firstItem->pos() + offset, start);
delete canvas;
}
+void tst_QDeclarativePathView::setCurrentIndex()
+{
+ QDeclarativeView *canvas = createView();
+
+ TestModel model;
+ model.addItem("Ben", "12345");
+ model.addItem("Bohn", "2345");
+ model.addItem("Bob", "54321");
+ model.addItem("Bill", "4321");
+
+ QDeclarativeContext *ctxt = canvas->rootContext();
+ ctxt->setContextProperty("testModel", &model);
+
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/pathview0.qml"));
+ qApp->processEvents();
+
+ QDeclarativePathView *pathview = findItem<QDeclarativePathView>(canvas->rootObject(), "view");
+ QVERIFY(pathview != 0);
+
+ QDeclarativeRectangle *firstItem = findItem<QDeclarativeRectangle>(pathview, "wrapper", 0);
+ QVERIFY(firstItem);
+ QDeclarativePath *path = qobject_cast<QDeclarativePath*>(pathview->path());
+ QVERIFY(path);
+ QPointF start = path->pointAt(0.0);
+ QPointF offset;//Center of item is at point, but pos is from corner
+ offset.setX(firstItem->width()/2);
+ offset.setY(firstItem->height()/2);
+ QCOMPARE(firstItem->pos() + offset, start);
+ QCOMPARE(canvas->rootObject()->property("currentA").toInt(), 0);
+ QCOMPARE(canvas->rootObject()->property("currentB").toInt(), 0);
+
+ pathview->setCurrentIndex(2);
+ QTest::qWait(1000);
+
+ firstItem = findItem<QDeclarativeRectangle>(pathview, "wrapper", 2);
+ QCOMPARE(firstItem->pos() + offset, start);
+ QCOMPARE(canvas->rootObject()->property("currentA").toInt(), 2);
+ QCOMPARE(canvas->rootObject()->property("currentB").toInt(), 2);
+
+ delete canvas;
+}
+
void tst_QDeclarativePathView::resetModel()
{
QDeclarativeView *canvas = createView();
@@ -465,6 +525,152 @@ void tst_QDeclarativePathView::resetModel()
}
}
+void tst_QDeclarativePathView::propertyChanges()
+{
+ QDeclarativeView *canvas = createView();
+ QVERIFY(canvas);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychanges.qml"));
+
+ QDeclarativePathView *pathView = canvas->rootObject()->findChild<QDeclarativePathView*>("pathView");
+ QVERIFY(pathView);
+
+ QSignalSpy snapPositionSpy(pathView, SIGNAL(preferredHighlightBeginChanged()));
+ QSignalSpy dragMarginSpy(pathView, SIGNAL(dragMarginChanged()));
+
+ QCOMPARE(pathView->preferredHighlightBegin(), 0.1);
+ QCOMPARE(pathView->dragMargin(), 5.0);
+
+ pathView->setPreferredHighlightBegin(0.4);
+ pathView->setPreferredHighlightEnd(0.4);
+ pathView->setDragMargin(20.0);
+
+ QCOMPARE(pathView->preferredHighlightBegin(), 0.4);
+ QCOMPARE(pathView->preferredHighlightEnd(), 0.4);
+ QCOMPARE(pathView->dragMargin(), 20.0);
+
+ QCOMPARE(snapPositionSpy.count(), 1);
+ QCOMPARE(dragMarginSpy.count(), 1);
+
+ pathView->setPreferredHighlightBegin(0.4);
+ pathView->setPreferredHighlightEnd(0.4);
+ pathView->setDragMargin(20.0);
+
+ QCOMPARE(snapPositionSpy.count(), 1);
+ QCOMPARE(dragMarginSpy.count(), 1);
+ delete canvas;
+}
+
+void tst_QDeclarativePathView::pathChanges()
+{
+ QDeclarativeView *canvas = createView();
+ QVERIFY(canvas);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychanges.qml"));
+
+ QDeclarativePathView *pathView = canvas->rootObject()->findChild<QDeclarativePathView*>("pathView");
+ QVERIFY(pathView);
+
+ QDeclarativePath *path = canvas->rootObject()->findChild<QDeclarativePath*>("path");
+ QVERIFY(path);
+
+ QSignalSpy startXSpy(path, SIGNAL(startXChanged()));
+ QSignalSpy startYSpy(path, SIGNAL(startYChanged()));
+
+ QCOMPARE(path->startX(), 220.0);
+ QCOMPARE(path->startY(), 200.0);
+
+ path->setStartX(240.0);
+ path->setStartY(220.0);
+
+ QCOMPARE(path->startX(), 240.0);
+ QCOMPARE(path->startY(), 220.0);
+
+ QCOMPARE(startXSpy.count(),1);
+ QCOMPARE(startYSpy.count(),1);
+
+ path->setStartX(240);
+ path->setStartY(220);
+
+ QCOMPARE(startXSpy.count(),1);
+ QCOMPARE(startYSpy.count(),1);
+
+ QDeclarativePath *alternatePath = canvas->rootObject()->findChild<QDeclarativePath*>("alternatePath");
+ QVERIFY(alternatePath);
+
+ QSignalSpy pathSpy(pathView, SIGNAL(pathChanged()));
+
+ QCOMPARE(pathView->path(), path);
+
+ pathView->setPath(alternatePath);
+ QCOMPARE(pathView->path(), alternatePath);
+ QCOMPARE(pathSpy.count(),1);
+
+ pathView->setPath(alternatePath);
+ QCOMPARE(pathSpy.count(),1);
+
+ QDeclarativePathAttribute *pathAttribute = canvas->rootObject()->findChild<QDeclarativePathAttribute*>("pathAttribute");
+ QVERIFY(pathAttribute);
+
+ QSignalSpy nameSpy(pathAttribute, SIGNAL(nameChanged()));
+ QCOMPARE(pathAttribute->name(), QString("opacity"));
+
+ pathAttribute->setName("scale");
+ QCOMPARE(pathAttribute->name(), QString("scale"));
+ QCOMPARE(nameSpy.count(),1);
+
+ pathAttribute->setName("scale");
+ QCOMPARE(nameSpy.count(),1);
+ delete canvas;
+}
+
+void tst_QDeclarativePathView::componentChanges()
+{
+ QDeclarativeView *canvas = createView();
+ QVERIFY(canvas);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychanges.qml"));
+
+ QDeclarativePathView *pathView = canvas->rootObject()->findChild<QDeclarativePathView*>("pathView");
+ QVERIFY(pathView);
+
+ QDeclarativeComponent delegateComponent(canvas->engine());
+ delegateComponent.setData("import Qt 4.7; Text { text: '<b>Name:</b> ' + name }", QUrl::fromLocalFile(""));
+
+ QSignalSpy delegateSpy(pathView, SIGNAL(delegateChanged()));
+
+ pathView->setDelegate(&delegateComponent);
+ QCOMPARE(pathView->delegate(), &delegateComponent);
+ QCOMPARE(delegateSpy.count(),1);
+
+ pathView->setDelegate(&delegateComponent);
+ QCOMPARE(delegateSpy.count(),1);
+ delete canvas;
+}
+
+void tst_QDeclarativePathView::modelChanges()
+{
+ QDeclarativeView *canvas = createView();
+ QVERIFY(canvas);
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/propertychanges.qml"));
+
+ QDeclarativePathView *pathView = canvas->rootObject()->findChild<QDeclarativePathView*>("pathView");
+ QVERIFY(pathView);
+
+ QDeclarativeListModel *alternateModel = canvas->rootObject()->findChild<QDeclarativeListModel*>("alternateModel");
+ QVERIFY(alternateModel);
+ QVariant modelVariant = QVariant::fromValue(alternateModel);
+ QSignalSpy modelSpy(pathView, SIGNAL(modelChanged()));
+
+ pathView->setModel(modelVariant);
+ QCOMPARE(pathView->model(), modelVariant);
+ QCOMPARE(modelSpy.count(),1);
+
+ pathView->setModel(modelVariant);
+ QCOMPARE(modelSpy.count(),1);
+
+ pathView->setModel(QVariant());
+ QCOMPARE(modelSpy.count(),2);
+
+ delete canvas;
+}
QDeclarativeView *tst_QDeclarativePathView::createView()
{
diff --git a/tests/auto/declarative/visual/webview/zooming/qtlogo.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists.png
index 399bd0b..399bd0b 100644
--- a/tests/auto/declarative/visual/webview/zooming/qtlogo.png
+++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/settings/qtlogo.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists1.png
index 399bd0b..399bd0b 100644
--- a/tests/auto/declarative/visual/webview/settings/qtlogo.png
+++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists2.png
index 399bd0b..399bd0b 100644
--- a/tests/auto/declarative/visual/animation/pauseAnimation/pics/qtlogo.png
+++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists3.png
index 399bd0b..399bd0b 100644
--- a/tests/auto/declarative/visual/animation/easing/pics/qtlogo.png
+++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists3.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists4.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists4.png
new file mode 100644
index 0000000..399bd0b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists4.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists5.png b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists5.png
new file mode 100644
index 0000000..399bd0b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativepixmapcache/data/http/exists5.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro b/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro
index 899c43f..4b247fc 100644
--- a/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro
+++ b/tests/auto/declarative/qdeclarativepixmapcache/qdeclarativepixmapcache.pro
@@ -5,5 +5,14 @@ macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativepixmapcache.cpp
+INCLUDEPATH += ../shared/
+HEADERS += ../shared/testhttpserver.h
+SOURCES += ../shared/testhttpserver.cpp
+
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage
# LIBS += -lgcov
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
index 223f54f..0cc13ad 100644
--- a/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
+++ b/tests/auto/declarative/qdeclarativepixmapcache/tst_qdeclarativepixmapcache.cpp
@@ -43,6 +43,8 @@
#include <private/qdeclarativepixmapcache_p.h>
#include <QtDeclarative/qdeclarativeengine.h>
#include <QNetworkReply>
+#include "testhttpserver.h"
+#include "../../../shared/util.h"
// These don't let normal people run tests!
//#include "../network-settings.h"
@@ -52,8 +54,10 @@ class tst_qdeclarativepixmapcache : public QObject
Q_OBJECT
public:
tst_qdeclarativepixmapcache() :
- thisfile(QUrl::fromLocalFile(__FILE__))
+ thisfile(QUrl::fromLocalFile(__FILE__)),
+ server(14452)
{
+ server.serveDirectory(SRCDIR "/data/http");
}
private slots:
@@ -65,6 +69,7 @@ private slots:
private:
QDeclarativeEngine engine;
QUrl thisfile;
+ TestHTTPServer server;
};
@@ -110,8 +115,8 @@ void tst_qdeclarativepixmapcache::single_data()
// File URLs are optimized
QTest::newRow("local") << thisfile.resolved(QUrl("data/exists.png")) << localfile_optimized << true << false;
QTest::newRow("local") << thisfile.resolved(QUrl("data/notexists.png")) << localfile_optimized << false << false;
- QTest::newRow("remote") << QUrl("http://qt.nokia.com/logo.png") << false << true << false;
- QTest::newRow("remote") << QUrl("http://qt.nokia.com/thereisnologo.png") << false << false << true;
+ QTest::newRow("remote") << QUrl("http://127.0.0.1:14452/exists.png") << false << true << false;
+ QTest::newRow("remote") << QUrl("http://127.0.0.1:14452/notexists.png") << false << false << true;
}
void tst_qdeclarativepixmapcache::single()
@@ -121,19 +126,20 @@ void tst_qdeclarativepixmapcache::single()
QFETCH(bool, exists);
QFETCH(bool, neterror);
+ QString expectedError;
if (neterror) {
- QString expected = "\"Error downloading " + target.toString() + " - server replied: Not Found\" ";
- QTest::ignoreMessage(QtWarningMsg, expected.toLatin1());
+ expectedError = "Error downloading " + target.toString() + " - server replied: Not found";
} else if (!exists) {
- QString expected = "Cannot open QUrl( \"" + target.toString() + "\" ) ";
- QTest::ignoreMessage(QtWarningMsg, expected.toLatin1());
+ expectedError = "Cannot open: " + target.toString();
}
QPixmap pixmap;
QVERIFY(pixmap.width() <= 0); // Check Qt assumption
- QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(target, &pixmap);
+ QString errorString;
+ QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(target, &pixmap, &errorString);
if (incache) {
+ QCOMPARE(errorString, expectedError);
if (exists) {
QVERIFY(status == QDeclarativePixmapReply::Ready);
QVERIFY(pixmap.width() > 0);
@@ -151,13 +157,15 @@ void tst_qdeclarativepixmapcache::single()
QTestEventLoop::instance().enterLoop(10);
QVERIFY(!QTestEventLoop::instance().timeout());
QVERIFY(getter.gotslot);
+ QString errorString;
if (exists) {
- QVERIFY(QDeclarativePixmapCache::get(target, &pixmap) == QDeclarativePixmapReply::Ready);
+ QVERIFY(QDeclarativePixmapCache::get(target, &pixmap, &errorString) == QDeclarativePixmapReply::Ready);
QVERIFY(pixmap.width() > 0);
} else {
- QVERIFY(QDeclarativePixmapCache::get(target, &pixmap) == QDeclarativePixmapReply::Error);
+ QVERIFY(QDeclarativePixmapCache::get(target, &pixmap, &errorString) == QDeclarativePixmapReply::Error);
QVERIFY(pixmap.width() <= 0);
}
+ QCOMPARE(errorString, expectedError);
}
QCOMPARE(QDeclarativePixmapCache::pendingRequests(), 0);
@@ -183,32 +191,32 @@ void tst_qdeclarativepixmapcache::parallel_data()
;
QTest::newRow("remote")
- << QUrl("http://qt.nokia.com/images/template/checkbox-on.png")
- << QUrl("http://qt.nokia.com/images/products/qt-logo/image_tile")
+ << QUrl("http://127.0.0.1:14452/exists2.png")
+ << QUrl("http://127.0.0.1:14452/exists3.png")
<< 0
<< -1
<< 2
;
QTest::newRow("remoteagain")
- << QUrl("http://qt.nokia.com/images/template/checkbox-on.png")
- << QUrl("http://qt.nokia.com/images/products/qt-logo/image_tile")
+ << QUrl("http://127.0.0.1:14452/exists2.png")
+ << QUrl("http://127.0.0.1:14452/exists3.png")
<< 2
<< -1
<< 0
;
QTest::newRow("remotecopy")
- << QUrl("http://qt.nokia.com/images/template/checkbox-off.png")
- << QUrl("http://qt.nokia.com/images/template/checkbox-off.png")
+ << QUrl("http://127.0.0.1:14452/exists4.png")
+ << QUrl("http://127.0.0.1:14452/exists4.png")
<< 0
<< -1
<< 1
;
QTest::newRow("remotecopycancel")
- << QUrl("http://qt.nokia.com/rounded_block_bg.png")
- << QUrl("http://qt.nokia.com/rounded_block_bg.png")
+ << QUrl("http://127.0.0.1:14452/exists5.png")
+ << QUrl("http://127.0.0.1:14452/exists5.png")
<< 0
<< 0
<< 1
@@ -231,8 +239,10 @@ void tst_qdeclarativepixmapcache::parallel()
for (int i=0; i<targets.count(); ++i) {
QUrl target = targets.at(i);
QPixmap pixmap;
- QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(target, &pixmap);
+ QString errorString;
+ QDeclarativePixmapReply::Status status = QDeclarativePixmapCache::get(target, &pixmap, &errorString);
QDeclarativePixmapReply *reply = 0;
+ QVERIFY(status != QDeclarativePixmapReply::Error);
if (status != QDeclarativePixmapReply::Error && status != QDeclarativePixmapReply::Ready)
reply = QDeclarativePixmapCache::request(&engine, target);
replies.append(reply);
@@ -267,7 +277,8 @@ void tst_qdeclarativepixmapcache::parallel()
} else {
QVERIFY(getters[i]->gotslot);
QPixmap pixmap;
- QVERIFY(QDeclarativePixmapCache::get(targets[i], &pixmap) == QDeclarativePixmapReply::Ready);
+ QString errorString;
+ QVERIFY(QDeclarativePixmapCache::get(targets[i], &pixmap, &errorString) == QDeclarativePixmapReply::Ready);
QVERIFY(pixmap.width() > 0);
}
delete getters[i];
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/flowtest.qml b/tests/auto/declarative/qdeclarativepositioners/data/flowtest.qml
new file mode 100644
index 0000000..6c1c823
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativepositioners/data/flowtest.qml
@@ -0,0 +1,40 @@
+import Qt 4.6
+
+Item {
+ width: 90
+ height: 480
+ Flow {
+ objectName: "flow"
+ width: parent.width
+ Rectangle {
+ objectName: "one"
+ color: "red"
+ width: 50
+ height: 50
+ }
+ Rectangle {
+ objectName: "two"
+ color: "green"
+ width: 20
+ height: 50
+ }
+ Rectangle {
+ objectName: "three"
+ color: "blue"
+ width: 50
+ height: 20
+ }
+ Rectangle {
+ objectName: "four"
+ color: "cyan"
+ width: 50
+ height: 50
+ }
+ Rectangle {
+ objectName: "five"
+ color: "magenta"
+ width: 10
+ height: 10
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/grid-animated.qml b/tests/auto/declarative/qdeclarativepositioners/data/grid-animated.qml
index f6376a1..9741ba9 100644
--- a/tests/auto/declarative/qdeclarativepositioners/data/grid-animated.qml
+++ b/tests/auto/declarative/qdeclarativepositioners/data/grid-animated.qml
@@ -4,6 +4,7 @@ Item {
width: 640
height: 480
Grid {
+ objectName: "grid"
columns: 3
add: Transition {
NumberAnimation {
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/grid-spacing.qml b/tests/auto/declarative/qdeclarativepositioners/data/grid-spacing.qml
index 5b4a30d..e335932 100644
--- a/tests/auto/declarative/qdeclarativepositioners/data/grid-spacing.qml
+++ b/tests/auto/declarative/qdeclarativepositioners/data/grid-spacing.qml
@@ -4,6 +4,7 @@ Item {
width: 640
height: 480
Grid {
+ objectName: "grid"
columns: 3
spacing: 4
Rectangle {
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/grid-toptobottom.qml b/tests/auto/declarative/qdeclarativepositioners/data/grid-toptobottom.qml
new file mode 100644
index 0000000..34a84bf
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativepositioners/data/grid-toptobottom.qml
@@ -0,0 +1,41 @@
+import Qt 4.6
+
+Item {
+ width: 640
+ height: 480
+ Grid {
+ objectName: "grid"
+ rows: 3
+ flow: Grid.TopToBottom
+ Rectangle {
+ objectName: "one"
+ color: "red"
+ width: 50
+ height: 50
+ }
+ Rectangle {
+ objectName: "two"
+ color: "green"
+ width: 20
+ height: 50
+ }
+ Rectangle {
+ objectName: "three"
+ color: "blue"
+ width: 50
+ height: 20
+ }
+ Rectangle {
+ objectName: "four"
+ color: "cyan"
+ width: 50
+ height: 50
+ }
+ Rectangle {
+ objectName: "five"
+ color: "magenta"
+ width: 10
+ height: 10
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/grid.qml b/tests/auto/declarative/qdeclarativepositioners/data/grid.qml
deleted file mode 100644
index 830df6a..0000000
--- a/tests/auto/declarative/qdeclarativepositioners/data/grid.qml
+++ /dev/null
@@ -1,39 +0,0 @@
-import Qt 4.6
-
-Item {
- width: 640
- height: 480
- Grid {
- columns: 3
- Rectangle {
- objectName: "one"
- color: "red"
- width: 50
- height: 50
- }
- Rectangle {
- objectName: "two"
- color: "green"
- width: 20
- height: 50
- }
- Rectangle {
- objectName: "three"
- color: "blue"
- width: 50
- height: 20
- }
- Rectangle {
- objectName: "four"
- color: "cyan"
- width: 50
- height: 50
- }
- Rectangle {
- objectName: "five"
- color: "magenta"
- width: 10
- height: 10
- }
- }
-}
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/gridtest.qml b/tests/auto/declarative/qdeclarativepositioners/data/gridtest.qml
new file mode 100644
index 0000000..1d6f44e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativepositioners/data/gridtest.qml
@@ -0,0 +1,40 @@
+import Qt 4.6
+
+Item {
+ width: 640
+ height: 480
+ Grid {
+ objectName: "grid"
+ columns: 3
+ Rectangle {
+ objectName: "one"
+ color: "red"
+ width: 50
+ height: 50
+ }
+ Rectangle {
+ objectName: "two"
+ color: "green"
+ width: 20
+ height: 50
+ }
+ Rectangle {
+ objectName: "three"
+ color: "blue"
+ width: 50
+ height: 20
+ }
+ Rectangle {
+ objectName: "four"
+ color: "cyan"
+ width: 50
+ height: 50
+ }
+ Rectangle {
+ objectName: "five"
+ color: "magenta"
+ width: 10
+ height: 10
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/gridzerocolumns.qml b/tests/auto/declarative/qdeclarativepositioners/data/gridzerocolumns.qml
new file mode 100644
index 0000000..052d96b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativepositioners/data/gridzerocolumns.qml
@@ -0,0 +1,40 @@
+import Qt 4.6
+
+Item {
+ width: 640
+ height: 480
+ Grid {
+ objectName: "grid"
+ columns: 0
+ Rectangle {
+ objectName: "one"
+ color: "red"
+ width: 50
+ height: 50
+ }
+ Rectangle {
+ objectName: "two"
+ color: "green"
+ width: 20
+ height: 50
+ }
+ Rectangle {
+ objectName: "three"
+ color: "blue"
+ width: 50
+ height: 20
+ }
+ Rectangle {
+ objectName: "four"
+ color: "cyan"
+ width: 50
+ height: 50
+ }
+ Rectangle {
+ objectName: "five"
+ color: "magenta"
+ width: 10
+ height: 10
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/horizontal-animated.qml b/tests/auto/declarative/qdeclarativepositioners/data/horizontal-animated.qml
index c113a36..a1c05a8 100644
--- a/tests/auto/declarative/qdeclarativepositioners/data/horizontal-animated.qml
+++ b/tests/auto/declarative/qdeclarativepositioners/data/horizontal-animated.qml
@@ -4,6 +4,7 @@ Item {
width: 640
height: 480
Row {
+ objectName: "row"
add: Transition {
NumberAnimation {
properties: "x";
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/horizontal-spacing.qml b/tests/auto/declarative/qdeclarativepositioners/data/horizontal-spacing.qml
index 32bf775..fb9fdd1 100644
--- a/tests/auto/declarative/qdeclarativepositioners/data/horizontal-spacing.qml
+++ b/tests/auto/declarative/qdeclarativepositioners/data/horizontal-spacing.qml
@@ -4,6 +4,7 @@ Item {
width: 640
height: 480
Row {
+ objectName: "row"
spacing: 10
Rectangle {
objectName: "one"
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/horizontal.qml b/tests/auto/declarative/qdeclarativepositioners/data/horizontal.qml
index 06ae151..3a7a3b1 100644
--- a/tests/auto/declarative/qdeclarativepositioners/data/horizontal.qml
+++ b/tests/auto/declarative/qdeclarativepositioners/data/horizontal.qml
@@ -4,6 +4,7 @@ Item {
width: 640
height: 480
Row {
+ objectName: "row"
Rectangle {
objectName: "one"
color: "red"
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/propertychanges.qml b/tests/auto/declarative/qdeclarativepositioners/data/propertychangestest.qml
index 4370a18..4370a18 100644
--- a/tests/auto/declarative/qdeclarativepositioners/data/propertychanges.qml
+++ b/tests/auto/declarative/qdeclarativepositioners/data/propertychangestest.qml
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/repeater.qml b/tests/auto/declarative/qdeclarativepositioners/data/repeatertest.qml
index 2bc5e94..2bc5e94 100644
--- a/tests/auto/declarative/qdeclarativepositioners/data/repeater.qml
+++ b/tests/auto/declarative/qdeclarativepositioners/data/repeatertest.qml
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/vertical-animated.qml b/tests/auto/declarative/qdeclarativepositioners/data/vertical-animated.qml
index 10f6cbb..31faa54 100644
--- a/tests/auto/declarative/qdeclarativepositioners/data/vertical-animated.qml
+++ b/tests/auto/declarative/qdeclarativepositioners/data/vertical-animated.qml
@@ -4,6 +4,7 @@ Item {
width: 640
height: 480
Column {
+ objectName: "column"
add: Transition {
NumberAnimation {
properties: "y";
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/vertical-spacing.qml b/tests/auto/declarative/qdeclarativepositioners/data/vertical-spacing.qml
index 69a8256..1c5696b 100644
--- a/tests/auto/declarative/qdeclarativepositioners/data/vertical-spacing.qml
+++ b/tests/auto/declarative/qdeclarativepositioners/data/vertical-spacing.qml
@@ -4,6 +4,7 @@ Item {
width: 640
height: 480
Column {
+ objectName: "column"
spacing: 10
Rectangle {
objectName: "one"
diff --git a/tests/auto/declarative/qdeclarativepositioners/data/vertical.qml b/tests/auto/declarative/qdeclarativepositioners/data/vertical.qml
index 856c180..cd777e2 100644
--- a/tests/auto/declarative/qdeclarativepositioners/data/vertical.qml
+++ b/tests/auto/declarative/qdeclarativepositioners/data/vertical.qml
@@ -4,6 +4,7 @@ Item {
width: 640
height: 480
Column {
+ objectName: "column"
Rectangle {
objectName: "one"
color: "red"
diff --git a/tests/auto/declarative/qdeclarativepositioners/qdeclarativepositioners.pro b/tests/auto/declarative/qdeclarativepositioners/qdeclarativepositioners.pro
index 5edfa55..dbe2cbee 100644
--- a/tests/auto/declarative/qdeclarativepositioners/qdeclarativepositioners.pro
+++ b/tests/auto/declarative/qdeclarativepositioners/qdeclarativepositioners.pro
@@ -5,3 +5,6 @@ macx:CONFIG -= app_bundle
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp b/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp
index 3a8a892..b4ac0e1 100644
--- a/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp
+++ b/tests/auto/declarative/qdeclarativepositioners/tst_qdeclarativepositioners.cpp
@@ -61,10 +61,14 @@ private slots:
void test_vertical_spacing();
void test_vertical_animated();
void test_grid();
+ void test_grid_topToBottom();
void test_grid_spacing();
void test_grid_animated();
+ void test_grid_zero_columns();
void test_propertychanges();
void test_repeater();
+ void test_flow();
+ void test_flow_resize();
private:
QDeclarativeView *createView(const QString &filename);
};
@@ -92,6 +96,10 @@ void tst_QDeclarativePositioners::test_horizontal()
QCOMPARE(two->y(), 0.0);
QCOMPARE(three->x(), 70.0);
QCOMPARE(three->y(), 0.0);
+
+ QDeclarativeItem *row = canvas->rootObject()->findChild<QDeclarativeItem*>("row");
+ QCOMPARE(row->width(), 110.0);
+ QCOMPARE(row->height(), 50.0);
}
void tst_QDeclarativePositioners::test_horizontal_spacing()
@@ -113,6 +121,10 @@ void tst_QDeclarativePositioners::test_horizontal_spacing()
QCOMPARE(two->y(), 0.0);
QCOMPARE(three->x(), 90.0);
QCOMPARE(three->y(), 0.0);
+
+ QDeclarativeItem *row = canvas->rootObject()->findChild<QDeclarativeItem*>("row");
+ QCOMPARE(row->width(), 130.0);
+ QCOMPARE(row->height(), 50.0);
}
void tst_QDeclarativePositioners::test_horizontal_animated()
@@ -133,6 +145,11 @@ void tst_QDeclarativePositioners::test_horizontal_animated()
QCOMPARE(two->x(), -100.0);
QCOMPARE(three->x(), -100.0);
+ QDeclarativeItem *row = canvas->rootObject()->findChild<QDeclarativeItem*>("row");
+ QVERIFY(row);
+ QCOMPARE(row->width(), 100.0);
+ QCOMPARE(row->height(), 50.0);
+
//QTRY_COMPARE used instead of waiting for the expected time of animation completion
//Note that this means the duration of the animation is NOT tested
@@ -147,6 +164,11 @@ void tst_QDeclarativePositioners::test_horizontal_animated()
//Add 'two'
two->setOpacity(1.0);
QCOMPARE(two->opacity(), 1.0);
+
+ // New size should be immediate
+ QCOMPARE(row->width(), 150.0);
+ QCOMPARE(row->height(), 50.0);
+
QTest::qWait(0);//Let the animation start
QCOMPARE(two->x(), -100.0);
QCOMPARE(three->x(), 50.0);
@@ -174,6 +196,11 @@ void tst_QDeclarativePositioners::test_vertical()
QCOMPARE(two->y(), 50.0);
QCOMPARE(three->x(), 0.0);
QCOMPARE(three->y(), 60.0);
+
+ QDeclarativeItem *column = canvas->rootObject()->findChild<QDeclarativeItem*>("column");
+ QVERIFY(column);
+ QCOMPARE(column->height(), 80.0);
+ QCOMPARE(column->width(), 50.0);
}
void tst_QDeclarativePositioners::test_vertical_spacing()
@@ -195,6 +222,10 @@ void tst_QDeclarativePositioners::test_vertical_spacing()
QCOMPARE(two->y(), 60.0);
QCOMPARE(three->x(), 0.0);
QCOMPARE(three->y(), 80.0);
+
+ QDeclarativeItem *column = canvas->rootObject()->findChild<QDeclarativeItem*>("column");
+ QCOMPARE(column->height(), 100.0);
+ QCOMPARE(column->width(), 50.0);
}
void tst_QDeclarativePositioners::test_vertical_animated()
@@ -214,6 +245,11 @@ void tst_QDeclarativePositioners::test_vertical_animated()
QVERIFY(three != 0);
QCOMPARE(three->y(), -100.0);
+ QDeclarativeItem *column = canvas->rootObject()->findChild<QDeclarativeItem*>("column");
+ QVERIFY(column);
+ QCOMPARE(column->height(), 100.0);
+ QCOMPARE(column->width(), 50.0);
+
//QTRY_COMPARE used instead of waiting for the expected time of animation completion
//Note that this means the duration of the animation is NOT tested
@@ -228,6 +264,8 @@ void tst_QDeclarativePositioners::test_vertical_animated()
//Add 'two'
two->setOpacity(1.0);
QTRY_COMPARE(two->opacity(), 1.0);
+ QCOMPARE(column->height(), 150.0);
+ QCOMPARE(column->width(), 50.0);
QTest::qWait(0);//Let the animation start
QCOMPARE(two->y(), -100.0);
QCOMPARE(three->y(), 50.0);
@@ -239,7 +277,7 @@ void tst_QDeclarativePositioners::test_vertical_animated()
void tst_QDeclarativePositioners::test_grid()
{
- QDeclarativeView *canvas = createView(SRCDIR "/data/grid.qml");
+ QDeclarativeView *canvas = createView(SRCDIR "/data/gridtest.qml");
QDeclarativeRectangle *one = canvas->rootObject()->findChild<QDeclarativeRectangle*>("one");
QVERIFY(one != 0);
@@ -262,6 +300,41 @@ void tst_QDeclarativePositioners::test_grid()
QCOMPARE(four->y(), 50.0);
QCOMPARE(five->x(), 50.0);
QCOMPARE(five->y(), 50.0);
+
+ QDeclarativeItem *grid = canvas->rootObject()->findChild<QDeclarativeItem*>("grid");
+ QCOMPARE(grid->width(), 120.0);
+ QCOMPARE(grid->height(), 100.0);
+}
+
+void tst_QDeclarativePositioners::test_grid_topToBottom()
+{
+ QDeclarativeView *canvas = createView(SRCDIR "/data/grid-toptobottom.qml");
+
+ QDeclarativeRectangle *one = canvas->rootObject()->findChild<QDeclarativeRectangle*>("one");
+ QVERIFY(one != 0);
+ QDeclarativeRectangle *two = canvas->rootObject()->findChild<QDeclarativeRectangle*>("two");
+ QVERIFY(two != 0);
+ QDeclarativeRectangle *three = canvas->rootObject()->findChild<QDeclarativeRectangle*>("three");
+ QVERIFY(three != 0);
+ QDeclarativeRectangle *four = canvas->rootObject()->findChild<QDeclarativeRectangle*>("four");
+ QVERIFY(four != 0);
+ QDeclarativeRectangle *five = canvas->rootObject()->findChild<QDeclarativeRectangle*>("five");
+ QVERIFY(five != 0);
+
+ QCOMPARE(one->x(), 0.0);
+ QCOMPARE(one->y(), 0.0);
+ QCOMPARE(two->x(), 0.0);
+ QCOMPARE(two->y(), 50.0);
+ QCOMPARE(three->x(), 0.0);
+ QCOMPARE(three->y(), 100.0);
+ QCOMPARE(four->x(), 50.0);
+ QCOMPARE(four->y(), 0.0);
+ QCOMPARE(five->x(), 50.0);
+ QCOMPARE(five->y(), 50.0);
+
+ QDeclarativeItem *grid = canvas->rootObject()->findChild<QDeclarativeItem*>("grid");
+ QCOMPARE(grid->width(), 100.0);
+ QCOMPARE(grid->height(), 120.0);
}
void tst_QDeclarativePositioners::test_grid_spacing()
@@ -289,6 +362,10 @@ void tst_QDeclarativePositioners::test_grid_spacing()
QCOMPARE(four->y(), 54.0);
QCOMPARE(five->x(), 54.0);
QCOMPARE(five->y(), 54.0);
+
+ QDeclarativeItem *grid = canvas->rootObject()->findChild<QDeclarativeItem*>("grid");
+ QCOMPARE(grid->width(), 128.0);
+ QCOMPARE(grid->height(), 104.0);
}
void tst_QDeclarativePositioners::test_grid_animated()
@@ -321,6 +398,11 @@ void tst_QDeclarativePositioners::test_grid_animated()
QCOMPARE(five->x(), -100.0);
QCOMPARE(five->y(), -100.0);
+ QDeclarativeItem *grid = canvas->rootObject()->findChild<QDeclarativeItem*>("grid");
+ QVERIFY(grid);
+ QCOMPARE(grid->width(), 150.0);
+ QCOMPARE(grid->height(), 100.0);
+
//QTRY_COMPARE used instead of waiting for the expected time of animation completion
//Note that this means the duration of the animation is NOT tested
@@ -339,6 +421,8 @@ void tst_QDeclarativePositioners::test_grid_animated()
//Add 'two'
two->setOpacity(1.0);
QCOMPARE(two->opacity(), 1.0);
+ QCOMPARE(grid->width(), 150.0);
+ QCOMPARE(grid->height(), 100.0);
QTest::qWait(0);//Let the animation start
QCOMPARE(two->x(), -100.0);
QCOMPARE(two->y(), -100.0);
@@ -363,11 +447,44 @@ void tst_QDeclarativePositioners::test_grid_animated()
QTRY_COMPARE(five->y(), 50.0);
}
+
+void tst_QDeclarativePositioners::test_grid_zero_columns()
+{
+ QDeclarativeView *canvas = createView(SRCDIR "/data/gridzerocolumns.qml");
+
+ QDeclarativeRectangle *one = canvas->rootObject()->findChild<QDeclarativeRectangle*>("one");
+ QVERIFY(one != 0);
+ QDeclarativeRectangle *two = canvas->rootObject()->findChild<QDeclarativeRectangle*>("two");
+ QVERIFY(two != 0);
+ QDeclarativeRectangle *three = canvas->rootObject()->findChild<QDeclarativeRectangle*>("three");
+ QVERIFY(three != 0);
+ QDeclarativeRectangle *four = canvas->rootObject()->findChild<QDeclarativeRectangle*>("four");
+ QVERIFY(four != 0);
+ QDeclarativeRectangle *five = canvas->rootObject()->findChild<QDeclarativeRectangle*>("five");
+ QVERIFY(five != 0);
+
+ QCOMPARE(one->x(), 0.0);
+ QCOMPARE(one->y(), 0.0);
+ QCOMPARE(two->x(), 50.0);
+ QCOMPARE(two->y(), 0.0);
+ QCOMPARE(three->x(), 70.0);
+ QCOMPARE(three->y(), 0.0);
+ QCOMPARE(four->x(), 120.0);
+ QCOMPARE(four->y(), 0.0);
+ QCOMPARE(five->x(), 0.0);
+ QCOMPARE(five->y(), 50.0);
+
+ QDeclarativeItem *grid = canvas->rootObject()->findChild<QDeclarativeItem*>("grid");
+ QCOMPARE(grid->width(), 170.0);
+ QCOMPARE(grid->height(), 60.0);
+}
+
void tst_QDeclarativePositioners::test_propertychanges()
{
- QDeclarativeView *canvas = createView("data/propertychanges.qml");
+ QDeclarativeView *canvas = createView(SRCDIR "/data/propertychangestest.qml");
QDeclarativeGrid *grid = qobject_cast<QDeclarativeGrid*>(canvas->rootObject());
+ QVERIFY(grid != 0);
QDeclarativeTransition *rowTransition = canvas->rootObject()->findChild<QDeclarativeTransition*>("rowTransition");
QDeclarativeTransition *columnTransition = canvas->rootObject()->findChild<QDeclarativeTransition*>("columnTransition");
@@ -421,7 +538,7 @@ void tst_QDeclarativePositioners::test_propertychanges()
void tst_QDeclarativePositioners::test_repeater()
{
- QDeclarativeView *canvas = createView(SRCDIR "/data/repeater.qml");
+ QDeclarativeView *canvas = createView(SRCDIR "/data/repeatertest.qml");
QDeclarativeRectangle *one = canvas->rootObject()->findChild<QDeclarativeRectangle*>("one");
QVERIFY(one != 0);
@@ -440,6 +557,69 @@ void tst_QDeclarativePositioners::test_repeater()
QCOMPARE(three->y(), 0.0);
}
+void tst_QDeclarativePositioners::test_flow()
+{
+ QDeclarativeView *canvas = createView(SRCDIR "/data/flowtest.qml");
+
+ QDeclarativeRectangle *one = canvas->rootObject()->findChild<QDeclarativeRectangle*>("one");
+ QVERIFY(one != 0);
+ QDeclarativeRectangle *two = canvas->rootObject()->findChild<QDeclarativeRectangle*>("two");
+ QVERIFY(two != 0);
+ QDeclarativeRectangle *three = canvas->rootObject()->findChild<QDeclarativeRectangle*>("three");
+ QVERIFY(three != 0);
+ QDeclarativeRectangle *four = canvas->rootObject()->findChild<QDeclarativeRectangle*>("four");
+ QVERIFY(four != 0);
+ QDeclarativeRectangle *five = canvas->rootObject()->findChild<QDeclarativeRectangle*>("five");
+ QVERIFY(five != 0);
+
+ QCOMPARE(one->x(), 0.0);
+ QCOMPARE(one->y(), 0.0);
+ QCOMPARE(two->x(), 50.0);
+ QCOMPARE(two->y(), 0.0);
+ QCOMPARE(three->x(), 0.0);
+ QCOMPARE(three->y(), 50.0);
+ QCOMPARE(four->x(), 0.0);
+ QCOMPARE(four->y(), 70.0);
+ QCOMPARE(five->x(), 50.0);
+ QCOMPARE(five->y(), 70.0);
+
+ QDeclarativeItem *flow = canvas->rootObject()->findChild<QDeclarativeItem*>("flow");
+ QVERIFY(flow);
+ QCOMPARE(flow->width(), 90.0);
+ QCOMPARE(flow->height(), 120.0);
+}
+
+void tst_QDeclarativePositioners::test_flow_resize()
+{
+ QDeclarativeView *canvas = createView(SRCDIR "/data/flowtest.qml");
+
+ QDeclarativeItem *root = qobject_cast<QDeclarativeItem*>(canvas->rootObject());
+ QVERIFY(root);
+ root->setWidth(125);
+
+ QDeclarativeRectangle *one = canvas->rootObject()->findChild<QDeclarativeRectangle*>("one");
+ QVERIFY(one != 0);
+ QDeclarativeRectangle *two = canvas->rootObject()->findChild<QDeclarativeRectangle*>("two");
+ QVERIFY(two != 0);
+ QDeclarativeRectangle *three = canvas->rootObject()->findChild<QDeclarativeRectangle*>("three");
+ QVERIFY(three != 0);
+ QDeclarativeRectangle *four = canvas->rootObject()->findChild<QDeclarativeRectangle*>("four");
+ QVERIFY(four != 0);
+ QDeclarativeRectangle *five = canvas->rootObject()->findChild<QDeclarativeRectangle*>("five");
+ QVERIFY(five != 0);
+
+ QCOMPARE(one->x(), 0.0);
+ QCOMPARE(one->y(), 0.0);
+ QCOMPARE(two->x(), 50.0);
+ QCOMPARE(two->y(), 0.0);
+ QCOMPARE(three->x(), 70.0);
+ QCOMPARE(three->y(), 0.0);
+ QCOMPARE(four->x(), 0.0);
+ QCOMPARE(four->y(), 50.0);
+ QCOMPARE(five->x(), 50.0);
+ QCOMPARE(five->y(), 50.0);
+}
+
QDeclarativeView *tst_QDeclarativePositioners::createView(const QString &filename)
{
QDeclarativeView *canvas = new QDeclarativeView(0);
diff --git a/tests/auto/declarative/qdeclarativeproperty/data/TestType.qml b/tests/auto/declarative/qdeclarativeproperty/data/TestType.qml
new file mode 100644
index 0000000..1dfb3e1
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeproperty/data/TestType.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+QtObject {
+ property int a: 10
+}
+
diff --git a/tests/auto/declarative/qdeclarativeproperty/data/readSynthesizedObject.qml b/tests/auto/declarative/qdeclarativeproperty/data/readSynthesizedObject.qml
new file mode 100644
index 0000000..8085db2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeproperty/data/readSynthesizedObject.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+
+QtObject {
+ property TestType test
+
+ test: TestType {
+ property int b: 19
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro b/tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro
index 22e50cc..6910ccc 100644
--- a/tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro
+++ b/tests/auto/declarative/qdeclarativeproperty/qdeclarativeproperty.pro
@@ -3,3 +3,8 @@ contains(QT_CONFIG,declarative): QT += declarative
macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativeproperty.cpp
+
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp b/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp
index 0333d98..7d51bb6 100644
--- a/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp
+++ b/tests/auto/declarative/qdeclarativeproperty/tst_qdeclarativeproperty.cpp
@@ -43,9 +43,16 @@
#include <QtDeclarative/qdeclarativecomponent.h>
#include <QtDeclarative/qdeclarativeproperty.h>
#include <QtDeclarative/private/qdeclarativeproperty_p.h>
-#include <private/qguard_p.h>
#include <private/qdeclarativebinding_p.h>
#include <QtGui/QLineEdit>
+#include <QtCore/qfileinfo.h>
+#include <QtCore/qdir.h>
+
+inline QUrl TEST_FILE(const QString &filename)
+{
+ QFileInfo fileInfo(__FILE__);
+ return QUrl::fromLocalFile(fileInfo.absoluteDir().filePath(QLatin1String("data/") + filename));
+}
class MyQmlObject : public QObject
{
@@ -130,9 +137,9 @@ void tst_qdeclarativeproperty::qmlmetaproperty()
{
QDeclarativeProperty prop;
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -161,10 +168,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty()
QCOMPARE(prop.propertyTypeName(), (const char *)0);
QVERIFY(prop.property().name() == 0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding == 0);
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression == 0);
QCOMPARE(prop.index(), -1);
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -175,14 +182,15 @@ void tst_qdeclarativeproperty::qmlmetaproperty()
class PropertyObject : public QObject
{
Q_OBJECT
- Q_PROPERTY(int defaultProperty READ defaultProperty);
- Q_PROPERTY(QRect rectProperty READ rectProperty);
- Q_PROPERTY(QRect wrectProperty READ wrectProperty WRITE setWRectProperty);
- Q_PROPERTY(QUrl url READ url WRITE setUrl);
- Q_PROPERTY(int resettableProperty READ resettableProperty WRITE setResettableProperty RESET resetProperty);
+ Q_PROPERTY(int defaultProperty READ defaultProperty)
+ Q_PROPERTY(QRect rectProperty READ rectProperty)
+ Q_PROPERTY(QRect wrectProperty READ wrectProperty WRITE setWRectProperty)
+ Q_PROPERTY(QUrl url READ url WRITE setUrl)
+ Q_PROPERTY(int resettableProperty READ resettableProperty WRITE setResettableProperty RESET resetProperty)
Q_PROPERTY(int propertyWithNotify READ propertyWithNotify WRITE setPropertyWithNotify NOTIFY oddlyNamedNotifySignal)
+ Q_PROPERTY(MyQmlObject *qmlObject READ qmlObject)
- Q_CLASSINFO("DefaultProperty", "defaultProperty");
+ Q_CLASSINFO("DefaultProperty", "defaultProperty")
public:
PropertyObject() : m_resetProperty(9) {}
@@ -202,6 +210,7 @@ public:
int propertyWithNotify() const { return m_propertyWithNotify; }
void setPropertyWithNotify(int i) { m_propertyWithNotify = i; emit oddlyNamedNotifySignal(); }
+ MyQmlObject *qmlObject() { return &m_qmlObject; }
signals:
void clicked();
void oddlyNamedNotifySignal();
@@ -211,6 +220,7 @@ private:
QRect m_rect;
QUrl m_url;
int m_propertyWithNotify;
+ MyQmlObject m_qmlObject;
};
QML_DECLARE_TYPE(PropertyObject);
@@ -223,9 +233,9 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object()
{
QDeclarativeProperty prop(&object);
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -254,10 +264,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object()
QCOMPARE(prop.propertyTypeName(), (const char *)0);
QVERIFY(prop.property().name() == 0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding == 0);
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression == 0);
QCOMPARE(prop.index(), -1);
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -268,10 +278,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object()
{
QDeclarativeProperty prop(&dobject);
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
- binding->setTarget(prop);
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ binding.data()->setTarget(prop);
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -294,18 +304,18 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object()
QCOMPARE(prop.isDesignable(), true);
QCOMPARE(prop.isResettable(), false);
QCOMPARE(prop.isValid(), true);
- QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.object(), qobject_cast<QObject*>(&dobject));
QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::Normal);
QCOMPARE(prop.propertyType(), (int)QVariant::Int);
QCOMPARE(prop.propertyTypeName(), "int");
QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding != 0);
- QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding);
+ QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding.data());
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression == 0);
QCOMPARE(prop.index(), dobject.metaObject()->indexOfProperty("defaultProperty"));
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -322,9 +332,9 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string()
{
QDeclarativeProperty prop(&object, QString("defaultProperty"));
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -353,10 +363,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string()
QCOMPARE(prop.propertyTypeName(), (const char *)0);
QVERIFY(prop.property().name() == 0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding == 0);
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression == 0);
QCOMPARE(prop.index(), -1);
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -367,10 +377,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string()
{
QDeclarativeProperty prop(&dobject, QString("defaultProperty"));
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
- binding->setTarget(prop);
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ binding.data()->setTarget(prop);
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -393,18 +403,18 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string()
QCOMPARE(prop.isDesignable(), true);
QCOMPARE(prop.isResettable(), false);
QCOMPARE(prop.isValid(), true);
- QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.object(), qobject_cast<QObject*>(&dobject));
QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::Normal);
QCOMPARE(prop.propertyType(), (int)QVariant::Int);
QCOMPARE(prop.propertyTypeName(), "int");
QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding != 0);
- QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding);
+ QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding.data());
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression == 0);
QCOMPARE(prop.index(), dobject.metaObject()->indexOfProperty("defaultProperty"));
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -415,10 +425,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string()
{
QDeclarativeProperty prop(&dobject, QString("onClicked"));
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
- binding->setTarget(prop);
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ binding.data()->setTarget(prop);
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -441,18 +451,18 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string()
QCOMPARE(prop.isDesignable(), false);
QCOMPARE(prop.isResettable(), false);
QCOMPARE(prop.isValid(), true);
- QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.object(), qobject_cast<QObject*>(&dobject));
QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory);
QCOMPARE(prop.propertyType(), 0);
QCOMPARE(prop.propertyTypeName(), (const char *)0);
QCOMPARE(prop.property().name(), (const char *)0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding == 0);
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression != 0);
- QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == expression);
+ QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == expression.data());
QCOMPARE(prop.index(), dobject.metaObject()->indexOfMethod("clicked()"));
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -462,10 +472,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string()
{
QDeclarativeProperty prop(&dobject, QString("onPropertyWithNotifyChanged"));
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
- binding->setTarget(prop);
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ binding.data()->setTarget(prop);
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -488,18 +498,18 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string()
QCOMPARE(prop.isDesignable(), false);
QCOMPARE(prop.isResettable(), false);
QCOMPARE(prop.isValid(), true);
- QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.object(), qobject_cast<QObject*>(&dobject));
QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory);
QCOMPARE(prop.propertyType(), 0);
QCOMPARE(prop.propertyTypeName(), (const char *)0);
QCOMPARE(prop.property().name(), (const char *)0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding == 0);
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression != 0);
- QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == expression);
+ QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == expression.data());
QCOMPARE(prop.index(), dobject.metaObject()->indexOfMethod("oddlyNamedNotifySignal()"));
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -515,9 +525,9 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_context()
{
QDeclarativeProperty prop(&object, engine.rootContext());
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -546,10 +556,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_context()
QCOMPARE(prop.propertyTypeName(), (const char *)0);
QVERIFY(prop.property().name() == 0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding == 0);
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression == 0);
QCOMPARE(prop.index(), -1);
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -560,10 +570,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_context()
{
QDeclarativeProperty prop(&dobject, engine.rootContext());
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
- binding->setTarget(prop);
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ binding.data()->setTarget(prop);
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -586,18 +596,18 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_context()
QCOMPARE(prop.isDesignable(), true);
QCOMPARE(prop.isResettable(), false);
QCOMPARE(prop.isValid(), true);
- QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.object(), qobject_cast<QObject*>(&dobject));
QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::Normal);
QCOMPARE(prop.propertyType(), (int)QVariant::Int);
QCOMPARE(prop.propertyTypeName(), "int");
QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding != 0);
- QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding);
+ QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding.data());
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression == 0);
QCOMPARE(prop.index(), dobject.metaObject()->indexOfProperty("defaultProperty"));
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -614,9 +624,9 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context()
{
QDeclarativeProperty prop(&object, QString("defaultProperty"), engine.rootContext());
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -645,10 +655,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context()
QCOMPARE(prop.propertyTypeName(), (const char *)0);
QVERIFY(prop.property().name() == 0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding == 0);
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression == 0);
QCOMPARE(prop.index(), -1);
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -659,10 +669,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context()
{
QDeclarativeProperty prop(&dobject, QString("defaultProperty"), engine.rootContext());
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
- binding->setTarget(prop);
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ binding.data()->setTarget(prop);
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -685,18 +695,18 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context()
QCOMPARE(prop.isDesignable(), true);
QCOMPARE(prop.isResettable(), false);
QCOMPARE(prop.isValid(), true);
- QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.object(), qobject_cast<QObject*>(&dobject));
QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::Normal);
QCOMPARE(prop.propertyType(), (int)QVariant::Int);
QCOMPARE(prop.propertyTypeName(), "int");
QCOMPARE(QString(prop.property().name()), QString("defaultProperty"));
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
QTest::ignoreMessage(QtWarningMsg, "<Unknown File>:-1: Unable to assign null to int");
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding != 0);
- QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding);
+ QVERIFY(QDeclarativePropertyPrivate::binding(prop) == binding.data());
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression == 0);
QCOMPARE(prop.index(), dobject.metaObject()->indexOfProperty("defaultProperty"));
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -707,10 +717,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context()
{
QDeclarativeProperty prop(&dobject, QString("onClicked"), engine.rootContext());
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
- binding->setTarget(prop);
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ binding.data()->setTarget(prop);
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -733,18 +743,18 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context()
QCOMPARE(prop.isDesignable(), false);
QCOMPARE(prop.isResettable(), false);
QCOMPARE(prop.isValid(), true);
- QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.object(), qobject_cast<QObject*>(&dobject));
QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory);
QCOMPARE(prop.propertyType(), 0);
QCOMPARE(prop.propertyTypeName(), (const char *)0);
QCOMPARE(prop.property().name(), (const char *)0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding == 0);
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression != 0);
- QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == expression);
+ QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == expression.data());
QCOMPARE(prop.index(), dobject.metaObject()->indexOfMethod("clicked()"));
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -754,10 +764,10 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context()
{
QDeclarativeProperty prop(&dobject, QString("onPropertyWithNotifyChanged"), engine.rootContext());
- QGuard<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
- binding->setTarget(prop);
+ QWeakPointer<QDeclarativeBinding> binding(new QDeclarativeBinding(QLatin1String("null"), 0, engine.rootContext()));
+ binding.data()->setTarget(prop);
QVERIFY(binding != 0);
- QGuard<QDeclarativeExpression> expression(new QDeclarativeExpression());
+ QWeakPointer<QDeclarativeExpression> expression(new QDeclarativeExpression());
QVERIFY(expression != 0);
QObject *obj = new QObject;
@@ -780,18 +790,18 @@ void tst_qdeclarativeproperty::qmlmetaproperty_object_string_context()
QCOMPARE(prop.isDesignable(), false);
QCOMPARE(prop.isResettable(), false);
QCOMPARE(prop.isValid(), true);
- QCOMPARE(prop.object(), &dobject);
+ QCOMPARE(prop.object(), qobject_cast<QObject*>(&dobject));
QCOMPARE(prop.propertyTypeCategory(), QDeclarativeProperty::InvalidCategory);
QCOMPARE(prop.propertyType(), 0);
QCOMPARE(prop.propertyTypeName(), (const char *)0);
QCOMPARE(prop.property().name(), (const char *)0);
QVERIFY(QDeclarativePropertyPrivate::binding(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setBinding(prop, binding.data()) == 0);
QVERIFY(binding == 0);
QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == 0);
- QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression) == 0);
+ QVERIFY(QDeclarativePropertyPrivate::setSignalExpression(prop, expression.data()) == 0);
QVERIFY(expression != 0);
- QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == expression);
+ QVERIFY(QDeclarativePropertyPrivate::signalExpression(prop) == expression.data());
QCOMPARE(prop.index(), dobject.metaObject()->indexOfMethod("oddlyNamedNotifySignal()"));
QCOMPARE(QDeclarativePropertyPrivate::valueTypeCoreIndex(prop), -1);
@@ -953,6 +963,32 @@ void tst_qdeclarativeproperty::read()
QCOMPARE(p.read(), QVariant());
}
+ // Object property
+ {
+ PropertyObject o;
+ QDeclarativeProperty p(&o, "qmlObject");
+ QCOMPARE(p.propertyTypeCategory(), QDeclarativeProperty::Object);
+ QCOMPARE(p.propertyType(), qMetaTypeId<MyQmlObject*>());
+ QVariant v = p.read();
+ QVERIFY(v.userType() == QMetaType::QObjectStar);
+ QVERIFY(qvariant_cast<QObject *>(v) == o.qmlObject());
+ }
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("readSynthesizedObject.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QDeclarativeProperty p(object, "test", &engine);
+
+ QCOMPARE(p.propertyTypeCategory(), QDeclarativeProperty::Object);
+ QVERIFY(p.propertyType() != QMetaType::QObjectStar);
+
+ QVariant v = p.read();
+ QVERIFY(v.userType() == QMetaType::QObjectStar);
+ QCOMPARE(qvariant_cast<QObject *>(v)->property("a").toInt(), 10);
+ QCOMPARE(qvariant_cast<QObject *>(v)->property("b").toInt(), 19);
+ }
+
// Attached property
{
QDeclarativeComponent component(&engine);
@@ -1217,7 +1253,7 @@ void tst_qdeclarativeproperty::writeObjectToList()
QDeclarativeProperty prop(container, "children");
prop.write(qVariantFromValue(object));
QCOMPARE(list.count(), 1);
- QCOMPARE(list.at(0), object);
+ QCOMPARE(list.at(0), qobject_cast<QObject*>(object));
}
Q_DECLARE_METATYPE(QList<QObject *>);
@@ -1311,9 +1347,9 @@ void tst_qdeclarativeproperty::copy()
void tst_qdeclarativeproperty::initTestCase()
{
- QML_REGISTER_TYPE(Test,1,0,MyQmlObject,MyQmlObject);
- QML_REGISTER_TYPE(Test,1,0,PropertyObject,PropertyObject);
- QML_REGISTER_TYPE(Test,1,0,MyContainer,MyContainer);
+ qmlRegisterType<MyQmlObject>("Test",1,0,"MyQmlObject");
+ qmlRegisterType<PropertyObject>("Test",1,0,"PropertyObject");
+ qmlRegisterType<MyContainer>("Test",1,0,"MyContainer");
}
diff --git a/tests/auto/declarative/qdeclarativepropertymap/qdeclarativepropertymap.pro b/tests/auto/declarative/qdeclarativepropertymap/qdeclarativepropertymap.pro
index aeccf9b..3c0f7b3 100644
--- a/tests/auto/declarative/qdeclarativepropertymap/qdeclarativepropertymap.pro
+++ b/tests/auto/declarative/qdeclarativepropertymap/qdeclarativepropertymap.pro
@@ -3,3 +3,6 @@ contains(QT_CONFIG,declarative): QT += declarative
macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativepropertymap.cpp
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativepropertymap/tst_qdeclarativepropertymap.cpp b/tests/auto/declarative/qdeclarativepropertymap/tst_qdeclarativepropertymap.cpp
index 22c5581..f1d3bf0 100644
--- a/tests/auto/declarative/qdeclarativepropertymap/tst_qdeclarativepropertymap.cpp
+++ b/tests/auto/declarative/qdeclarativepropertymap/tst_qdeclarativepropertymap.cpp
@@ -59,6 +59,8 @@ private slots:
void clear();
void changed();
void count();
+
+ void crashBug();
};
void tst_QDeclarativePropertyMap::insert()
@@ -123,7 +125,7 @@ void tst_QDeclarativePropertyMap::clear()
void tst_QDeclarativePropertyMap::changed()
{
QDeclarativePropertyMap map;
- QSignalSpy spy(&map, SIGNAL(valueChanged(const QString&)));
+ QSignalSpy spy(&map, SIGNAL(valueChanged(const QString&, const QVariant&)));
map.insert(QLatin1String("key1"),100);
map.insert(QLatin1String("key2"),200);
QCOMPARE(spy.count(), 0);
@@ -136,7 +138,7 @@ void tst_QDeclarativePropertyMap::changed()
QDeclarativeContext *ctxt = engine.rootContext();
ctxt->setContextProperty(QLatin1String("testdata"), &map);
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6\nText { text: { testdata.key1 = 'Hello World'; 'X' } }",
+ component.setData("import Qt 4.7\nText { text: { testdata.key1 = 'Hello World'; 'X' } }",
QUrl::fromLocalFile(""));
QVERIFY(component.isReady());
QDeclarativeText *txt = qobject_cast<QDeclarativeText*>(component.create());
@@ -144,7 +146,9 @@ void tst_QDeclarativePropertyMap::changed()
QCOMPARE(txt->text(), QString('X'));
QCOMPARE(spy.count(), 1);
QList<QVariant> arguments = spy.takeFirst();
+ QCOMPARE(arguments.count(), 2);
QCOMPARE(arguments.at(0).toString(),QLatin1String("key1"));
+ QCOMPARE(arguments.at(1).value<QVariant>(),QVariant("Hello World"));
QCOMPARE(map.value(QLatin1String("key1")), QVariant("Hello World"));
}
@@ -166,6 +170,20 @@ void tst_QDeclarativePropertyMap::count()
QCOMPARE(map.size(), map.count());
}
+void tst_QDeclarativePropertyMap::crashBug()
+{
+ QDeclarativePropertyMap map;
+
+ QDeclarativeEngine engine;
+ QDeclarativeContext context(&engine);
+ context.setContextProperty("map", &map);
+
+ QDeclarativeComponent c(&engine);
+ c.setData("import Qt 4.7\nBinding { target: map; property: \"myProp\"; value: 10 + 23 }",QUrl());
+ QObject *obj = c.create(&context);
+ delete obj;
+}
+
QTEST_MAIN(tst_QDeclarativePropertyMap)
#include "tst_qdeclarativepropertymap.moc"
diff --git a/tests/auto/declarative/qdeclarativeqt/data/closestangle.qml b/tests/auto/declarative/qdeclarativeqt/data/closestangle.qml
deleted file mode 100644
index b5f7fc6..0000000
--- a/tests/auto/declarative/qdeclarativeqt/data/closestangle.qml
+++ /dev/null
@@ -1,12 +0,0 @@
-import Qt 4.6
-
-QtObject {
- property var testSame: Qt.closestAngle(0,1)
- property var testLess: Qt.closestAngle(0,-359)
- property var testMore: Qt.closestAngle(0,361)
- property var testFail: Qt.closestAngle(0)
- property var test5: Qt.closestAngle(0,1,2)
- property var test6: Qt.closestAngle(123.45465768,1.11)
- property var test7: Qt.closestAngle(-3.1415,1.11)
-}
-
diff --git a/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml b/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml
index 9150782..54a3e7d 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/createQmlObject.qml
@@ -7,7 +7,7 @@ Item {
property bool incorrectArgCount2: false
property bool emptyArg: false
property bool noParent: false
- property bool notReady: false
+ property bool notAvailable: false
property bool runtimeError: false
property bool errors: false
@@ -20,7 +20,7 @@ Item {
emptyArg = (createQmlObject("", root) == null);
errors = (createQmlObject("import Qt 4.6\nQtObject{\nproperty int test: 13\nproperty int test: 13\n}", root, "main.qml") == null);
noParent = (createQmlObject("import Qt 4.6\nQtObject{\nproperty int test: 13}", 0) == null);
- notReady = (createQmlObject("import Qt 4.6\nQtObject{\nBlah{}\n}", root, "http://www.example.com/main.qml") == null);
+ notAvailable = (createQmlObject("import Qt 4.6\nQtObject{Blah{}}", root) == null);
runtimeError = (createQmlObject("import Qt 4.6\nQtObject{property int test\nonTestChanged: QtObject{}\n}", root) == null);
var o = createQmlObject("import Qt 4.6\nQtObject{\nproperty int test: 13\n}", root);
diff --git a/tests/auto/declarative/qdeclarativeqt/data/darker.qml b/tests/auto/declarative/qdeclarativeqt/data/darker.qml
index 2df067e..b265a0e 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/darker.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/darker.qml
@@ -1,11 +1,11 @@
import Qt 4.6
QtObject {
- property var test1: Qt.darker(Qt.rgba(1, 0.8, 0.3))
- property var test2: Qt.darker()
- property var test3: Qt.darker(Qt.rgba(1, 0.8, 0.3), 10)
- property var test4: Qt.darker("red");
- property var test5: Qt.darker("perfectred"); // Non-existant color
- property var test6: Qt.darker(10);
+ property variant test1: Qt.darker(Qt.rgba(1, 0.8, 0.3))
+ property variant test2: Qt.darker()
+ property variant test3: Qt.darker(Qt.rgba(1, 0.8, 0.3), 10)
+ property variant test4: Qt.darker("red");
+ property variant test5: Qt.darker("perfectred"); // Non-existant color
+ property variant test6: Qt.darker(10);
}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/formatting.qml b/tests/auto/declarative/qdeclarativeqt/data/formatting.qml
new file mode 100644
index 0000000..4cf0602
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeqt/data/formatting.qml
@@ -0,0 +1,19 @@
+import Qt 4.6
+
+QtObject {
+ property date date1: "2008-12-24"
+ property string test1: Qt.formatDate(date1)
+ property string test2: Qt.formatDate(date1, Qt.DefaultLocaleLongDate)
+ property string test3: Qt.formatDate(date1, "ddd MMMM d yy")
+
+ property variant time1: new Date(0,0,0,14,15,38,200)
+ property string test4: Qt.formatTime(time1)
+ property string test5: Qt.formatTime(time1, Qt.DefaultLocaleLongDate)
+ property string test6: Qt.formatTime(time1, "H:m:s a")
+ property string test7: Qt.formatTime(time1, "hh:mm:ss.zzz")
+
+ property variant dateTime1: new Date(1978,2,4,9,13,54)
+ property string test8: Qt.formatDateTime(dateTime1)
+ property string test9: Qt.formatDateTime(dateTime1, Qt.DefaultLocaleLongDate)
+ property string test10: Qt.formatDateTime(dateTime1, "M/d/yy H:m:s a")
+}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/isQtObject.qml b/tests/auto/declarative/qdeclarativeqt/data/isQtObject.qml
new file mode 100644
index 0000000..d986492
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeqt/data/isQtObject.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+
+QtObject {
+ id: root
+
+ property QtObject nullObject
+
+ property bool test1: Qt.isQtObject(root)
+ property bool test2: Qt.isQtObject(nullObject)
+ property bool test3: Qt.isQtObject(10)
+ property bool test4: Qt.isQtObject(null)
+ property bool test5: Qt.isQtObject({ a: 10, b: 11 })
+}
+
diff --git a/tests/auto/declarative/qdeclarativeqt/data/lighter.qml b/tests/auto/declarative/qdeclarativeqt/data/lighter.qml
index 4e0c431..2d2b835 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/lighter.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/lighter.qml
@@ -1,10 +1,10 @@
import Qt 4.6
QtObject {
- property var test1: Qt.lighter(Qt.rgba(1, 0.8, 0.3))
- property var test2: Qt.lighter()
- property var test3: Qt.lighter(Qt.rgba(1, 0.8, 0.3), 10)
- property var test4: Qt.lighter("red");
- property var test5: Qt.lighter("perfectred"); // Non-existant color
- property var test6: Qt.lighter(10);
+ property variant test1: Qt.lighter(Qt.rgba(1, 0.8, 0.3))
+ property variant test2: Qt.lighter()
+ property variant test3: Qt.lighter(Qt.rgba(1, 0.8, 0.3), 10)
+ property variant test4: Qt.lighter("red");
+ property variant test5: Qt.lighter("perfectred"); // Non-existant color
+ property variant test6: Qt.lighter(10);
}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/openUrlExternally.qml b/tests/auto/declarative/qdeclarativeqt/data/openUrlExternally.qml
new file mode 100644
index 0000000..70bd74d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeqt/data/openUrlExternally.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+QtObject {
+ Component.onCompleted: Qt.openUrlExternally("test:url")
+}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/point.qml b/tests/auto/declarative/qdeclarativeqt/data/point.qml
index c383beb..1054ac9 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/point.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/point.qml
@@ -1,9 +1,9 @@
import Qt 4.6
QtObject {
- property var test1: Qt.point(19, 34);
- property var test2: Qt.point(-3, 109.2);
- property var test3: Qt.point(-3);
- property var test4: Qt.point(-3, 109.2, 1);
+ property variant test1: Qt.point(19, 34);
+ property variant test2: Qt.point(-3, 109.2);
+ property variant test3: Qt.point(-3);
+ property variant test4: Qt.point(-3, 109.2, 1);
}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/rect.qml b/tests/auto/declarative/qdeclarativeqt/data/rect.qml
index 82b6428..e008656 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/rect.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/rect.qml
@@ -1,9 +1,9 @@
import Qt 4.6
QtObject {
- property var test1: Qt.rect(10, 13, 100, 109)
- property var test2: Qt.rect(-10, 13, 100, 109.6)
- property var test3: Qt.rect(10, 13);
- property var test4: Qt.rect(10, 13, 100, 109, 10)
- property var test5: Qt.rect(10, 13, 100, -109)
+ property variant test1: Qt.rect(10, 13, 100, 109)
+ property variant test2: Qt.rect(-10, 13, 100, 109.6)
+ property variant test3: Qt.rect(10, 13);
+ property variant test4: Qt.rect(10, 13, 100, 109, 10)
+ property variant test5: Qt.rect(10, 13, 100, -109)
}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/size.qml b/tests/auto/declarative/qdeclarativeqt/data/size.qml
index 05b0317..93577f2 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/size.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/size.qml
@@ -1,11 +1,11 @@
import Qt 4.6
QtObject {
- property var test1: Qt.size(19, 34);
- property var test2: Qt.size(3, 109.2);
- property var test3: Qt.size(-3, 10);
- property var test4: Qt.size(3);
- property var test5: Qt.size(3, 109.2, 1);
+ property variant test1: Qt.size(19, 34);
+ property variant test2: Qt.size(3, 109.2);
+ property variant test3: Qt.size(-3, 10);
+ property variant test4: Qt.size(3);
+ property variant test5: Qt.size(3, 109.2, 1);
}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/tint.qml b/tests/auto/declarative/qdeclarativeqt/data/tint.qml
index da8afe2..478245f 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/tint.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/tint.qml
@@ -3,7 +3,7 @@ import Qt 4.6
QtObject {
property color test1: Qt.tint("red", "blue");
property color test2: Qt.tint(Qt.rgba(1, 0, 0), Qt.rgba(0, 0, 0, 0));
- property color test3: Qt.tint("red", Qt.rgba(0, 0, 1, 0.5)); // XXX - what should this be?
+ property color test3: Qt.tint("red", Qt.rgba(0, 0, 1, 0.5));
property color test4: Qt.tint("red", Qt.rgba(0, 0, 1, 0.5), 10);
property color test5: Qt.tint("red")
}
diff --git a/tests/auto/declarative/qdeclarativeqt/data/vector.qml b/tests/auto/declarative/qdeclarativeqt/data/vector.qml
index a471c7a..16716db 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/vector.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/vector.qml
@@ -1,8 +1,8 @@
import Qt 4.6
QtObject {
- property var test1: Qt.vector3d(1, 0, 0.9);
- property var test2: Qt.vector3d(102, -10, -982.1);
- property var test3: Qt.vector3d(102, -10);
- property var test4: Qt.vector3d(102, -10, -982.1, 10);
+ property variant test1: Qt.vector3d(1, 0, 0.9);
+ property variant test2: Qt.vector3d(102, -10, -982.1);
+ property variant test3: Qt.vector3d(102, -10);
+ property variant test4: Qt.vector3d(102, -10, -982.1, 10);
}
diff --git a/tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro b/tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro
index aff00ad..10e10a3 100644
--- a/tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro
+++ b/tests/auto/declarative/qdeclarativeqt/qdeclarativeqt.pro
@@ -7,3 +7,6 @@ DEFINES += SRCDIR=\\\"$$PWD\\\"
# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage
# LIBS += -lgcov
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp b/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp
index 9ec6872..98f1200 100644
--- a/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp
+++ b/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp
@@ -44,6 +44,7 @@
#include <QDeclarativeEngine>
#include <QFileInfo>
#include <QDeclarativeComponent>
+#include <QDesktopServices>
#include <QDir>
#include <QVector3D>
#include <QCryptographicHash>
@@ -66,13 +67,13 @@ private slots:
void lighter();
void darker();
void tint();
- void closestAngle();
- void playSound();
void openUrlExternally();
void md5();
void createComponent();
void createQmlObject();
void consoleLog();
+ void formatting();
+ void isQtObject();
private:
QDeclarativeEngine engine;
@@ -254,41 +255,39 @@ void tst_qdeclarativeqt::tint()
QCOMPARE(qvariant_cast<QColor>(object->property("test1")), QColor::fromRgbF(0, 0, 1));
QCOMPARE(qvariant_cast<QColor>(object->property("test2")), QColor::fromRgbF(1, 0, 0));
- QEXPECT_FAIL("", "QT-2424",Continue);
- QCOMPARE(qvariant_cast<QColor>(object->property("test3")), QColor::fromRgbF(1, 0, 0));
+ QColor test3 = qvariant_cast<QColor>(object->property("test3"));
+ QCOMPARE(test3.rgba(), 0xFF7F0080);
QCOMPARE(qvariant_cast<QColor>(object->property("test4")), QColor());
QCOMPARE(qvariant_cast<QColor>(object->property("test5")), QColor());
delete object;
}
-void tst_qdeclarativeqt::closestAngle()
+class MyUrlHandler : public QObject
{
- QDeclarativeComponent component(&engine, TEST_FILE("closestangle.qml"));
- QObject *object = component.create();
- QVERIFY(object != 0);
-
- QCOMPARE(qvariant_cast<qreal>(object->property("testSame")), 1.0);
- QCOMPARE(qvariant_cast<qreal>(object->property("testLess")), 1.0);
- QCOMPARE(qvariant_cast<qreal>(object->property("testMore")), 1.0);
- QCOMPARE(qvariant_cast<qreal>(object->property("testFail")), 0.0);
- QCOMPARE(qvariant_cast<qreal>(object->property("test5")), 1.0);
- QCOMPARE(qvariant_cast<qreal>(object->property("test6")), 1.11);
- QCOMPARE(qvariant_cast<qreal>(object->property("test7")), 1.11);
-
- delete object;
-}
+ Q_OBJECT
+public:
+ MyUrlHandler() : called(0) { }
+ int called;
+ QUrl last;
-void tst_qdeclarativeqt::playSound()
-{
- QEXPECT_FAIL("", "How do we test this?", Abort);
- QVERIFY(false);
-}
+public slots:
+ void noteCall(const QUrl &url) { called++; last = url; }
+};
void tst_qdeclarativeqt::openUrlExternally()
{
- QEXPECT_FAIL("", "How do we test this?", Abort);
- QVERIFY(false);
+ MyUrlHandler handler;
+
+ QDesktopServices::setUrlHandler("test", &handler, "noteCall");
+
+ QDeclarativeComponent component(&engine, TEST_FILE("openUrlExternally.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+ QCOMPARE(handler.called,1);
+ QCOMPARE(handler.last, QUrl("test:url"));
+
+ QDesktopServices::unsetUrlHandler("test");
}
void tst_qdeclarativeqt::md5()
@@ -325,15 +324,17 @@ void tst_qdeclarativeqt::createQmlObject()
QString warning1 = "QDeclarativeEngine::createQmlObject():";
QString warning2 = " " + TEST_FILE("main.qml").toString() + ":4:1: Duplicate property name";
- QString warning3 = "QDeclarativeEngine::createQmlObject(): Component is not ready";
- QString warning4 = "QDeclarativeEngine::createQmlObject():";
- QString warning5 = " " + TEST_FILE("inline").toString() + ":3: Cannot assign object type QObject with no default method";
+ QString warning3 = "QDeclarativeEngine::createQmlObject():";
+ QString warning4 = " " + TEST_FILE("inline").toString() + ":2:10: Blah is not a type";
+ QString warning5 = "QDeclarativeEngine::createQmlObject():";
+ QString warning6 = " " + TEST_FILE("inline").toString() + ":3: Cannot assign object type QObject with no default method";
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning1));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning2));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning3));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning4));
QTest::ignoreMessage(QtWarningMsg, qPrintable(warning5));
+ QTest::ignoreMessage(QtWarningMsg, qPrintable(warning6));
QObject *object = component.create();
QVERIFY(object != 0);
@@ -343,7 +344,7 @@ void tst_qdeclarativeqt::createQmlObject()
QCOMPARE(object->property("emptyArg").toBool(), true);
QCOMPARE(object->property("errors").toBool(), true);
QCOMPARE(object->property("noParent").toBool(), true);
- QCOMPARE(object->property("notReady").toBool(), true);
+ QCOMPARE(object->property("notAvailable").toBool(), true);
QCOMPARE(object->property("runtimeError").toBool(), true);
QCOMPARE(object->property("success").toBool(), true);
@@ -364,6 +365,49 @@ void tst_qdeclarativeqt::consoleLog()
delete object;
}
+void tst_qdeclarativeqt::formatting()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("formatting.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QDate date1(2008,12,24);
+ QCOMPARE(object->property("date1").toDate(), date1);
+ QCOMPARE(object->property("test1").toString(), date1.toString(Qt::DefaultLocaleShortDate));
+ QCOMPARE(object->property("test2").toString(), date1.toString(Qt::DefaultLocaleLongDate));
+ QCOMPARE(object->property("test3").toString(), date1.toString("ddd MMMM d yy"));
+
+ QTime time1(14,15,38,200);
+ QCOMPARE(object->property("time1").toTime(), time1);
+ QCOMPARE(object->property("test4").toString(), time1.toString(Qt::DefaultLocaleShortDate));
+ QCOMPARE(object->property("test5").toString(), time1.toString(Qt::DefaultLocaleLongDate));
+ QCOMPARE(object->property("test6").toString(), time1.toString("H:m:s a"));
+ QCOMPARE(object->property("test7").toString(), time1.toString("hh:mm:ss.zzz"));
+
+ QDateTime dateTime1(QDate(1978,03,04),QTime(9,13,54));
+ QCOMPARE(object->property("dateTime1").toDateTime(),dateTime1);
+ QCOMPARE(object->property("test8").toString(), dateTime1.toString(Qt::DefaultLocaleShortDate));
+ QCOMPARE(object->property("test9").toString(), dateTime1.toString(Qt::DefaultLocaleLongDate));
+ QCOMPARE(object->property("test10").toString(), dateTime1.toString("M/d/yy H:m:s a"));
+
+ delete object;
+}
+
+void tst_qdeclarativeqt::isQtObject()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("isQtObject.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test1").toBool(), true);
+ QCOMPARE(object->property("test2").toBool(), false);
+ QCOMPARE(object->property("test3").toBool(), false);
+ QCOMPARE(object->property("test4").toBool(), false);
+ QCOMPARE(object->property("test5").toBool(), false);
+
+ delete object;
+}
+
QTEST_MAIN(tst_qdeclarativeqt)
#include "tst_qdeclarativeqt.moc"
diff --git a/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml b/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml
index fc6b34c..d74b2dc 100644
--- a/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml
+++ b/tests/auto/declarative/qdeclarativerepeater/data/itemlist.qml
@@ -21,17 +21,17 @@ Rectangle {
objectName: "itemModel"
Rectangle {
objectName: "item1"
- height: view.height; width: view.width; color: "#FFFEF0"
+ height: 50; width: 100; color: "#FFFEF0"
Text { objectName: "text1"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
}
Rectangle {
objectName: "item2"
- height: view.height; width: view.width; color: "#F0FFF7"
+ height: 50; width: 100; color: "#F0FFF7"
Text { objectName: "text2"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
}
Rectangle {
objectName: "item3"
- height: view.height; width: view.width; color: "#F4F0FF"
+ height: 50; width: 100; color: "#F4F0FF"
Text { objectName: "text3"; text: "index: " + parent.VisualItemModel.index; font.bold: true; anchors.centerIn: parent }
}
}
@@ -41,8 +41,6 @@ Rectangle {
Repeater {
id: view
objectName: "repeater"
- anchors.fill: parent
- anchors.bottomMargin: 30
model: testObject.useModel ? itemModel : 0
}
}
diff --git a/tests/auto/declarative/qdeclarativerepeater/data/properties.qml b/tests/auto/declarative/qdeclarativerepeater/data/properties.qml
index 550ce8d..8c9f88e 100644
--- a/tests/auto/declarative/qdeclarativerepeater/data/properties.qml
+++ b/tests/auto/declarative/qdeclarativerepeater/data/properties.qml
@@ -8,4 +8,4 @@ Row {
text: "I'm item " + index
}
}
-} \ No newline at end of file
+}
diff --git a/tests/auto/declarative/qdeclarativerepeater/data/repeater.qml b/tests/auto/declarative/qdeclarativerepeater/data/repeater1.qml
index 7d83230..7d83230 100644
--- a/tests/auto/declarative/qdeclarativerepeater/data/repeater.qml
+++ b/tests/auto/declarative/qdeclarativerepeater/data/repeater1.qml
diff --git a/tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro b/tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro
index 132123a..abd36e0 100644
--- a/tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro
+++ b/tests/auto/declarative/qdeclarativerepeater/qdeclarativerepeater.pro
@@ -6,3 +6,5 @@ SOURCES += tst_qdeclarativerepeater.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp
index 7a97e60..8be7d80 100644
--- a/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp
+++ b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp
@@ -109,7 +109,7 @@ public:
setRoleNames(roles);
}
- int rowCount(const QModelIndex &parent=QModelIndex()) const { return list.count(); }
+ int rowCount(const QModelIndex &parent=QModelIndex()) const { Q_UNUSED(parent); return list.count(); }
QVariant data(const QModelIndex &index, int role=Qt::DisplayRole) const {
QVariant rv;
if (role == Name)
@@ -181,6 +181,7 @@ void tst_QDeclarativeRepeater::numberModel()
QMetaObject::invokeMethod(canvas->rootObject(), "checkProperties");
QVERIFY(testObject->error() == false);
+ delete testObject;
delete canvas;
}
@@ -204,6 +205,9 @@ void tst_QDeclarativeRepeater::objectList()
QVERIFY(repeater != 0);
QCOMPARE(repeater->property("errors").toInt(), 0);//If this fails either they are out of order or can't find the object's data
QCOMPARE(repeater->property("instantiated").toInt(), 100);
+
+ qDeleteAll(data);
+ delete canvas;
}
/*
@@ -224,7 +228,7 @@ void tst_QDeclarativeRepeater::stringList()
QDeclarativeContext *ctxt = canvas->rootContext();
ctxt->setContextProperty("testData", data);
- canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/repeater.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/repeater1.qml"));
qApp->processEvents();
QDeclarativeRepeater *repeater = findItem<QDeclarativeRepeater>(canvas->rootObject(), "repeater");
@@ -293,6 +297,9 @@ void tst_QDeclarativeRepeater::dataModel()
testModel.removeItem(2);
QCOMPARE(container->childItems().count(), 4);
+
+ delete testObject;
+ delete canvas;
}
void tst_QDeclarativeRepeater::itemModel()
@@ -323,6 +330,7 @@ void tst_QDeclarativeRepeater::itemModel()
QVERIFY(qobject_cast<QObject*>(container->childItems().at(2))->objectName() == "item3");
QVERIFY(container->childItems().at(3) == repeater);
+ delete testObject;
delete canvas;
}
@@ -346,12 +354,14 @@ void tst_QDeclarativeRepeater::properties()
QSignalSpy delegateSpy(repeater, SIGNAL(delegateChanged()));
QDeclarativeComponent rectComponent(&engine);
- rectComponent.setData("import Qt 4.6; Rectangle {}", QUrl::fromLocalFile(""));
+ rectComponent.setData("import Qt 4.7; Rectangle {}", QUrl::fromLocalFile(""));
repeater->setDelegate(&rectComponent);
QCOMPARE(delegateSpy.count(),1);
repeater->setDelegate(&rectComponent);
QCOMPARE(delegateSpy.count(),1);
+
+ delete rootObject;
}
QDeclarativeView *tst_QDeclarativeRepeater::createView()
diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation1.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation1.qml
new file mode 100644
index 0000000..cfece41
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation1.qml
@@ -0,0 +1,3 @@
+import Qt 4.6
+
+SmoothedAnimation {}
diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation2.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation2.qml
new file mode 100644
index 0000000..74a110d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation2.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+SmoothedAnimation {
+ to: 10; duration: 300; reversingMode: SmoothedAnimation.Immediate
+}
diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation3.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation3.qml
new file mode 100644
index 0000000..3111e82
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimation3.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+SmoothedAnimation {
+ to: 10; velocity: 250; reversingMode: SmoothedAnimation.Sync
+ maximumEasingTime: 150
+}
diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml
new file mode 100644
index 0000000..ec35067
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml
@@ -0,0 +1,24 @@
+import Qt 4.6
+
+Rectangle {
+ width: 400; height: 400; color: "blue"
+
+ Rectangle {
+ id: rect1
+ color: "red"
+ width: 60; height: 60;
+ x: 100; y: 100;
+ SmoothedAnimation on x { to: 200; velocity: 500 }
+ SmoothedAnimation on y { to: 200; velocity: 500 }
+ }
+
+ Rectangle {
+ objectName: "theRect"
+ color: "green"
+ width: 60; height: 60;
+ x: rect1.x; y: rect1.y;
+ // id are needed for SmoothedAnimation in order to avoid deferred creation
+ Behavior on x { SmoothedAnimation { id: anim1; objectName: "easeX"; velocity: 400 } }
+ Behavior on y { SmoothedAnimation { id: anim2; objectName: "easeY"; velocity: 400 } }
+ }
+ }
diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationValueSource.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationValueSource.qml
new file mode 100644
index 0000000..9ae744c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationValueSource.qml
@@ -0,0 +1,13 @@
+import Qt 4.6
+
+Rectangle {
+ width: 300; height: 300;
+ Rectangle {
+ objectName: "theRect"
+ color: "red"
+ width: 60; height: 60;
+ x: 100; y: 100;
+ SmoothedAnimation on x { objectName: "easeX"; to: 200; velocity: 500 }
+ SmoothedAnimation on y { objectName: "easeY"; to: 200; duration: 250; velocity: 500 }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/qdeclarativesmoothedanimation.pro b/tests/auto/declarative/qdeclarativesmoothedanimation/qdeclarativesmoothedanimation.pro
new file mode 100644
index 0000000..80b757d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedanimation/qdeclarativesmoothedanimation.pro
@@ -0,0 +1,11 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative gui
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qdeclarativesmoothedanimation.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativesmoothedanimation/tst_qdeclarativesmoothedanimation.cpp b/tests/auto/declarative/qdeclarativesmoothedanimation/tst_qdeclarativesmoothedanimation.cpp
new file mode 100644
index 0000000..7cf318a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedanimation/tst_qdeclarativesmoothedanimation.cpp
@@ -0,0 +1,207 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <private/qdeclarativesmoothedanimation_p.h>
+#include <private/qdeclarativerectangle_p.h>
+#include <private/qdeclarativevaluetype_p.h>
+#include "../../../shared/util.h"
+
+class tst_qdeclarativesmoothedanimation : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qdeclarativesmoothedanimation();
+
+private slots:
+ void defaultValues();
+ void values();
+ void disabled();
+ void simpleAnimation();
+ void valueSource();
+ void behavior();
+
+private:
+ QDeclarativeEngine engine;
+};
+
+tst_qdeclarativesmoothedanimation::tst_qdeclarativesmoothedanimation()
+{
+}
+
+void tst_qdeclarativesmoothedanimation::defaultValues()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedanimation1.qml"));
+ QDeclarativeSmoothedAnimation *obj = qobject_cast<QDeclarativeSmoothedAnimation*>(c.create());
+
+ QVERIFY(obj != 0);
+
+ QCOMPARE(obj->to(), 0.);
+ QCOMPARE(obj->velocity(), 200.);
+ QCOMPARE(obj->duration(), -1);
+ QCOMPARE(obj->maximumEasingTime(), -1);
+ QCOMPARE(obj->reversingMode(), QDeclarativeSmoothedAnimation::Eased);
+
+ delete obj;
+}
+
+void tst_qdeclarativesmoothedanimation::values()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedanimation2.qml"));
+ QDeclarativeSmoothedAnimation *obj = qobject_cast<QDeclarativeSmoothedAnimation*>(c.create());
+
+ QVERIFY(obj != 0);
+
+ QCOMPARE(obj->to(), 10.);
+ QCOMPARE(obj->velocity(), 200.);
+ QCOMPARE(obj->duration(), 300);
+ QCOMPARE(obj->maximumEasingTime(), -1);
+ QCOMPARE(obj->reversingMode(), QDeclarativeSmoothedAnimation::Immediate);
+
+ delete obj;
+}
+
+void tst_qdeclarativesmoothedanimation::disabled()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedanimation3.qml"));
+ QDeclarativeSmoothedAnimation *obj = qobject_cast<QDeclarativeSmoothedAnimation*>(c.create());
+
+ QVERIFY(obj != 0);
+
+ QCOMPARE(obj->to(), 10.);
+ QCOMPARE(obj->velocity(), 250.);
+ QCOMPARE(obj->maximumEasingTime(), 150);
+ QCOMPARE(obj->reversingMode(), QDeclarativeSmoothedAnimation::Sync);
+
+ delete obj;
+}
+
+void tst_qdeclarativesmoothedanimation::simpleAnimation()
+{
+ QDeclarativeRectangle rect;
+ QDeclarativeSmoothedAnimation animation;
+ animation.setTarget(&rect);
+ animation.setProperty("x");
+ animation.setTo(200);
+ animation.setDuration(250);
+ QVERIFY(animation.target() == &rect);
+ QVERIFY(animation.property() == "x");
+ QVERIFY(animation.to() == 200);
+ animation.start();
+ QVERIFY(animation.isRunning());
+ QTest::qWait(animation.duration());
+ QTRY_COMPARE(rect.x(), qreal(200));
+
+ rect.setX(0);
+ animation.start();
+ animation.pause();
+ QVERIFY(animation.isRunning());
+ QVERIFY(animation.isPaused());
+ animation.setCurrentTime(125);
+ QVERIFY(animation.currentTime() == 125);
+ QCOMPARE(rect.x(), qreal(100));
+}
+
+void tst_qdeclarativesmoothedanimation::valueSource()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedanimationValueSource.qml"));
+
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QVERIFY(rect);
+
+ QDeclarativeRectangle *theRect = rect->findChild<QDeclarativeRectangle*>("theRect");
+ QVERIFY(theRect);
+
+ QDeclarativeSmoothedAnimation *easeX = rect->findChild<QDeclarativeSmoothedAnimation*>("easeX");
+ QVERIFY(easeX);
+ QVERIFY(easeX->isRunning());
+
+ QDeclarativeSmoothedAnimation *easeY = rect->findChild<QDeclarativeSmoothedAnimation*>("easeY");
+ QVERIFY(easeY);
+ QVERIFY(easeY->isRunning());
+
+ // XXX get the proper duration
+ QTest::qWait(100);
+
+ QTRY_VERIFY(!easeX->isRunning());
+ QTRY_VERIFY(!easeY->isRunning());
+
+ QTRY_COMPARE(theRect->x(), qreal(200));
+ QTRY_COMPARE(theRect->y(), qreal(200));
+}
+
+void tst_qdeclarativesmoothedanimation::behavior()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedanimationBehavior.qml"));
+
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QVERIFY(rect);
+
+ QDeclarativeRectangle *theRect = rect->findChild<QDeclarativeRectangle*>("theRect");
+ QVERIFY(theRect);
+
+ QDeclarativeSmoothedAnimation *easeX = rect->findChild<QDeclarativeSmoothedAnimation*>("easeX");
+ QVERIFY(easeX);
+
+ QDeclarativeSmoothedAnimation *easeY = rect->findChild<QDeclarativeSmoothedAnimation*>("easeY");
+ QVERIFY(easeY);
+
+ // XXX get the proper duration
+ QTest::qWait(400);
+
+ QTRY_VERIFY(!easeX->isRunning());
+ QTRY_VERIFY(!easeY->isRunning());
+
+ QTRY_COMPARE(theRect->x(), qreal(200));
+ QTRY_COMPARE(theRect->y(), qreal(200));
+}
+
+QTEST_MAIN(tst_qdeclarativesmoothedanimation)
+
+#include "tst_qdeclarativesmoothedanimation.moc"
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow1.qml b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow1.qml
new file mode 100644
index 0000000..c162e7a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow1.qml
@@ -0,0 +1,3 @@
+import Qt 4.6
+
+SmoothedFollow {}
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow2.qml b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow2.qml
new file mode 100644
index 0000000..d45001f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow2.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+SmoothedFollow {
+ to: 10; duration: 300; reversingMode: SmoothedFollow.Immediate
+}
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow3.qml b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow3.qml
new file mode 100644
index 0000000..c09fb8e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollow3.qml
@@ -0,0 +1,6 @@
+import Qt 4.6
+
+SmoothedFollow {
+ to: 10; velocity: 250; reversingMode: SmoothedFollow.Sync
+ maximumEasingTime: 150
+}
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowDisabled.qml b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowDisabled.qml
new file mode 100644
index 0000000..131f674
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowDisabled.qml
@@ -0,0 +1,13 @@
+import Qt 4.6
+
+Rectangle {
+ width: 300; height: 300;
+ Rectangle {
+ objectName: "theRect"
+ color: "red"
+ width: 60; height: 60;
+ x: 100; y: 100;
+ SmoothedFollow on x { id: animX; objectName: "animX"; to: 200; enabled: true; duration: 200 }
+ SmoothedFollow on y { id: animY; objectName: "animY"; to: 200; enabled: false; duration: 200 }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowValueSource.qml b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowValueSource.qml
new file mode 100644
index 0000000..514537c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedfollow/data/smoothedfollowValueSource.qml
@@ -0,0 +1,13 @@
+import Qt 4.6
+
+Rectangle {
+ width: 300; height: 300;
+ Rectangle {
+ objectName: "theRect"
+ color: "red"
+ width: 60; height: 60;
+ x: 100; y: 100;
+ SmoothedFollow on x { objectName: "easeX"; to: 200; velocity: 500 }
+ SmoothedFollow on y { objectName: "easeY"; to: 200; duration: 250; velocity: 500 }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/qdeclarativesmoothedfollow.pro b/tests/auto/declarative/qdeclarativesmoothedfollow/qdeclarativesmoothedfollow.pro
new file mode 100644
index 0000000..7f737c2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedfollow/qdeclarativesmoothedfollow.pro
@@ -0,0 +1,11 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative gui
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qdeclarativesmoothedfollow.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativesmoothedfollow/tst_qdeclarativesmoothedfollow.cpp b/tests/auto/declarative/qdeclarativesmoothedfollow/tst_qdeclarativesmoothedfollow.cpp
new file mode 100644
index 0000000..ac750d9
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedfollow/tst_qdeclarativesmoothedfollow.cpp
@@ -0,0 +1,189 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtDeclarative/qdeclarativeview.h>
+
+#include <private/qdeclarativesmoothedfollow_p.h>
+#include <private/qdeclarativerectangle_p.h>
+#include <private/qdeclarativevaluetype_p.h>
+#include "../../../shared/util.h"
+
+class tst_qdeclarativesmoothedfollow : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qdeclarativesmoothedfollow();
+
+private slots:
+ void defaultValues();
+ void values();
+ void disabled();
+ void valueSource();
+ void followTo();
+
+private:
+ QDeclarativeEngine engine;
+};
+
+tst_qdeclarativesmoothedfollow::tst_qdeclarativesmoothedfollow()
+{
+}
+
+void tst_qdeclarativesmoothedfollow::defaultValues()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedfollow1.qml"));
+ QDeclarativeSmoothedFollow *obj = qobject_cast<QDeclarativeSmoothedFollow*>(c.create());
+
+ QVERIFY(obj != 0);
+
+ QCOMPARE(obj->to(), 0.);
+ QCOMPARE(obj->velocity(), 200.);
+ QCOMPARE(obj->duration(), -1);
+ QCOMPARE(obj->maximumEasingTime(), -1);
+ QCOMPARE(obj->reversingMode(), QDeclarativeSmoothedFollow::Eased);
+
+ delete obj;
+}
+
+void tst_qdeclarativesmoothedfollow::values()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedfollow2.qml"));
+ QDeclarativeSmoothedFollow *obj = qobject_cast<QDeclarativeSmoothedFollow*>(c.create());
+
+ QVERIFY(obj != 0);
+
+ QCOMPARE(obj->to(), 10.);
+ QCOMPARE(obj->velocity(), 200.);
+ QCOMPARE(obj->duration(), 300);
+ QCOMPARE(obj->maximumEasingTime(), -1);
+ QCOMPARE(obj->reversingMode(), QDeclarativeSmoothedFollow::Immediate);
+
+ delete obj;
+}
+
+void tst_qdeclarativesmoothedfollow::disabled()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedfollow3.qml"));
+ QDeclarativeSmoothedFollow *obj = qobject_cast<QDeclarativeSmoothedFollow*>(c.create());
+
+ QVERIFY(obj != 0);
+
+ QCOMPARE(obj->to(), 10.);
+ QCOMPARE(obj->velocity(), 250.);
+ QCOMPARE(obj->maximumEasingTime(), 150);
+ QCOMPARE(obj->reversingMode(), QDeclarativeSmoothedFollow::Sync);
+
+ delete obj;
+}
+
+void tst_qdeclarativesmoothedfollow::valueSource()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/smoothedfollowValueSource.qml"));
+
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QVERIFY(rect);
+
+ QDeclarativeRectangle *theRect = rect->findChild<QDeclarativeRectangle*>("theRect");
+ QVERIFY(theRect);
+
+ QDeclarativeSmoothedFollow *easeX = rect->findChild<QDeclarativeSmoothedFollow*>("easeX");
+ QVERIFY(easeX);
+ QVERIFY(easeX->enabled());
+
+ QDeclarativeSmoothedFollow *easeY = rect->findChild<QDeclarativeSmoothedFollow*>("easeY");
+ QVERIFY(easeY);
+ QVERIFY(easeY->enabled());
+
+ // XXX get the proper duration
+ QTest::qWait(200);
+
+ QTRY_COMPARE(theRect->x(), easeX->to());
+ QTRY_COMPARE(theRect->y(), easeY->to());
+
+ QTRY_COMPARE(theRect->x(), qreal(200));
+ QTRY_COMPARE(theRect->y(), qreal(200));
+}
+
+void tst_qdeclarativesmoothedfollow::followTo()
+{
+ QDeclarativeView canvas;
+ canvas.setFixedSize(240,320);
+
+ canvas.setSource(QUrl::fromLocalFile(SRCDIR "/data/smoothedfollowDisabled.qml"));
+ canvas.show();
+ canvas.setFocus();
+ QVERIFY(canvas.rootObject() != 0);
+
+ QDeclarativeRectangle *rect = canvas.rootObject()->findChild<QDeclarativeRectangle*>("theRect");
+ QVERIFY(rect != 0);
+
+ QDeclarativeSmoothedFollow *animX = canvas.rootObject()->findChild<QDeclarativeSmoothedFollow*>("animX");
+ QVERIFY(animX != 0);
+ QDeclarativeSmoothedFollow *animY = canvas.rootObject()->findChild<QDeclarativeSmoothedFollow*>("animY");
+ QVERIFY(animY != 0);
+
+ QVERIFY(animX->enabled());
+ QVERIFY(!animY->enabled());
+
+ // animX should track 'to'
+ animX->setTo(50.0);
+ // animY should not track this 'to' change
+ animY->setTo(50.0);
+
+ // XXX get the proper duration
+ QTest::qWait(250);
+
+ QTRY_COMPARE(rect->x(), animX->to());
+
+ QCOMPARE(rect->x(), 50.0);
+ QCOMPARE(rect->y(), 100.0);
+}
+
+QTEST_MAIN(tst_qdeclarativesmoothedfollow)
+
+#include "tst_qdeclarativesmoothedfollow.moc"
diff --git a/tests/auto/declarative/qdeclarativespringfollow/data/springfollow2.qml b/tests/auto/declarative/qdeclarativespringfollow/data/springfollow2.qml
index 7c81fb5..ffbf7d5 100644
--- a/tests/auto/declarative/qdeclarativespringfollow/data/springfollow2.qml
+++ b/tests/auto/declarative/qdeclarativespringfollow/data/springfollow2.qml
@@ -1,7 +1,7 @@
import Qt 4.6
SpringFollow {
- source: 1.44; velocity: 0.9
+ to: 1.44; velocity: 0.9
spring: 1.0; damping: 0.5
epsilon: 0.25; modulus: 360.0
mass: 2.0; enabled: true
diff --git a/tests/auto/declarative/qdeclarativespringfollow/data/springfollow3.qml b/tests/auto/declarative/qdeclarativespringfollow/data/springfollow3.qml
index 6fec55b..9a8f6f3 100644
--- a/tests/auto/declarative/qdeclarativespringfollow/data/springfollow3.qml
+++ b/tests/auto/declarative/qdeclarativespringfollow/data/springfollow3.qml
@@ -1,7 +1,7 @@
import Qt 4.6
SpringFollow {
- source: 1.44; velocity: 0.9
+ to: 1.44; velocity: 0.9
spring: 1.0; damping: 0.5
epsilon: 0.25; modulus: 360.0
mass: 2.0; enabled: false
diff --git a/tests/auto/declarative/qdeclarativespringfollow/qdeclarativespringfollow.pro b/tests/auto/declarative/qdeclarativespringfollow/qdeclarativespringfollow.pro
index 61aad0f..6f400a3 100644
--- a/tests/auto/declarative/qdeclarativespringfollow/qdeclarativespringfollow.pro
+++ b/tests/auto/declarative/qdeclarativespringfollow/qdeclarativespringfollow.pro
@@ -6,3 +6,6 @@ SOURCES += tst_qdeclarativespringfollow.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativespringfollow/tst_qdeclarativespringfollow.cpp b/tests/auto/declarative/qdeclarativespringfollow/tst_qdeclarativespringfollow.cpp
index 7a60e78..8a07d6b 100644
--- a/tests/auto/declarative/qdeclarativespringfollow/tst_qdeclarativespringfollow.cpp
+++ b/tests/auto/declarative/qdeclarativespringfollow/tst_qdeclarativespringfollow.cpp
@@ -72,7 +72,7 @@ void tst_qdeclarativespringfollow::defaultValues()
QVERIFY(obj != 0);
- QCOMPARE(obj->sourceValue(), 0.);
+ QCOMPARE(obj->to(), 0.);
QCOMPARE(obj->velocity(), 0.);
QCOMPARE(obj->spring(), 0.);
QCOMPARE(obj->damping(), 0.);
@@ -94,7 +94,7 @@ void tst_qdeclarativespringfollow::values()
QVERIFY(obj != 0);
- QCOMPARE(obj->sourceValue(), 1.44);
+ QCOMPARE(obj->to(), 1.44);
QCOMPARE(obj->velocity(), 0.9);
QCOMPARE(obj->spring(), 1.0);
QCOMPARE(obj->damping(), 0.5);
@@ -117,7 +117,7 @@ void tst_qdeclarativespringfollow::disabled()
QVERIFY(obj != 0);
- QCOMPARE(obj->sourceValue(), 1.44);
+ QCOMPARE(obj->to(), 1.44);
QCOMPARE(obj->velocity(), 0.9);
QCOMPARE(obj->spring(), 1.0);
QCOMPARE(obj->damping(), 0.5);
diff --git a/tests/auto/declarative/sql/data/README b/tests/auto/declarative/qdeclarativesqldatabase/data/README
index 7efca3a..7efca3a 100644
--- a/tests/auto/declarative/sql/data/README
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/README
diff --git a/tests/auto/declarative/sql/data/changeversion.js b/tests/auto/declarative/qdeclarativesqldatabase/data/changeversion.js
index 680d7a6..680d7a6 100644
--- a/tests/auto/declarative/sql/data/changeversion.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/changeversion.js
diff --git a/tests/auto/declarative/sql/data/creation-a.js b/tests/auto/declarative/qdeclarativesqldatabase/data/creation-a.js
index bd7d5c5..bd7d5c5 100644
--- a/tests/auto/declarative/sql/data/creation-a.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/creation-a.js
diff --git a/tests/auto/declarative/sql/data/creation.js b/tests/auto/declarative/qdeclarativesqldatabase/data/creation.js
index 317b4c1..317b4c1 100644
--- a/tests/auto/declarative/sql/data/creation.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/creation.js
diff --git a/tests/auto/declarative/sql/data/error-a.js b/tests/auto/declarative/qdeclarativesqldatabase/data/error-a.js
index 10a23f6..10a23f6 100644
--- a/tests/auto/declarative/sql/data/error-a.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/error-a.js
diff --git a/tests/auto/declarative/sql/data/error-b.js b/tests/auto/declarative/qdeclarativesqldatabase/data/error-b.js
index 4dd0ecf..4dd0ecf 100644
--- a/tests/auto/declarative/sql/data/error-b.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/error-b.js
diff --git a/tests/auto/declarative/qdeclarativesqldatabase/data/error-creation.js b/tests/auto/declarative/qdeclarativesqldatabase/data/error-creation.js
new file mode 100644
index 0000000..0ab2a35
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/error-creation.js
@@ -0,0 +1,14 @@
+function test() {
+ var r="transaction_not_finished";
+ try {
+ var db = openDatabaseSync("QmlTestDB-creation", "2.0", "Test database from Qt autotests", 1000000);
+ } catch (err) {
+ if (err.code != SQLException.VERSION_ERR)
+ r = "WRONG ERROR CODE="+err.code;
+ else if (err.message != "SQL: database version mismatch")
+ r = "WRONG ERROR="+err.message;
+ else
+ r = "passed";
+ }
+ return r;
+}
diff --git a/tests/auto/declarative/sql/data/error-notransaction.js b/tests/auto/declarative/qdeclarativesqldatabase/data/error-notransaction.js
index b9cc647..b9cc647 100644
--- a/tests/auto/declarative/sql/data/error-notransaction.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/error-notransaction.js
diff --git a/tests/auto/declarative/sql/data/error-outsidetransaction.js b/tests/auto/declarative/qdeclarativesqldatabase/data/error-outsidetransaction.js
index a7af3bd..a7af3bd 100644
--- a/tests/auto/declarative/sql/data/error-outsidetransaction.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/error-outsidetransaction.js
diff --git a/tests/auto/declarative/sql/data/iteration-forwardonly.js b/tests/auto/declarative/qdeclarativesqldatabase/data/iteration-forwardonly.js
index 45947c0..45947c0 100644
--- a/tests/auto/declarative/sql/data/iteration-forwardonly.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/iteration-forwardonly.js
diff --git a/tests/auto/declarative/sql/data/iteration.js b/tests/auto/declarative/qdeclarativesqldatabase/data/iteration.js
index c34cbbb..c34cbbb 100644
--- a/tests/auto/declarative/sql/data/iteration.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/iteration.js
diff --git a/tests/auto/declarative/sql/data/readonly-error.js b/tests/auto/declarative/qdeclarativesqldatabase/data/readonly-error.js
index 69ec67f..69ec67f 100644
--- a/tests/auto/declarative/sql/data/readonly-error.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/readonly-error.js
diff --git a/tests/auto/declarative/sql/data/readonly.js b/tests/auto/declarative/qdeclarativesqldatabase/data/readonly.js
index 5ee862c..5ee862c 100644
--- a/tests/auto/declarative/sql/data/readonly.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/readonly.js
diff --git a/tests/auto/declarative/sql/data/reopen1.js b/tests/auto/declarative/qdeclarativesqldatabase/data/reopen1.js
index c1a8157..c1a8157 100644
--- a/tests/auto/declarative/sql/data/reopen1.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/reopen1.js
diff --git a/tests/auto/declarative/sql/data/reopen2.js b/tests/auto/declarative/qdeclarativesqldatabase/data/reopen2.js
index 4f7248f..4f7248f 100644
--- a/tests/auto/declarative/sql/data/reopen2.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/reopen2.js
diff --git a/tests/auto/declarative/sql/data/selection-bindnames.js b/tests/auto/declarative/qdeclarativesqldatabase/data/selection-bindnames.js
index 9786821..9786821 100644
--- a/tests/auto/declarative/sql/data/selection-bindnames.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/selection-bindnames.js
diff --git a/tests/auto/declarative/sql/data/selection.js b/tests/auto/declarative/qdeclarativesqldatabase/data/selection.js
index f116eff..f116eff 100644
--- a/tests/auto/declarative/sql/data/selection.js
+++ b/tests/auto/declarative/qdeclarativesqldatabase/data/selection.js
diff --git a/tests/auto/declarative/qdeclarativesqldatabase/qdeclarativesqldatabase.pro b/tests/auto/declarative/qdeclarativesqldatabase/qdeclarativesqldatabase.pro
new file mode 100644
index 0000000..3ff4529
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesqldatabase/qdeclarativesqldatabase.pro
@@ -0,0 +1,12 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative
+QT += sql script
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qdeclarativesqldatabase.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativesqldatabase/tst_qdeclarativesqldatabase.cpp b/tests/auto/declarative/qdeclarativesqldatabase/tst_qdeclarativesqldatabase.cpp
new file mode 100644
index 0000000..7486a4b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesqldatabase/tst_qdeclarativesqldatabase.cpp
@@ -0,0 +1,239 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+#include "../../../shared/util.h"
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <private/qdeclarativetext_p.h>
+#include <private/qdeclarativeengine_p.h>
+#include <QtCore/qcryptographichash.h>
+#include <QtWebKit/qwebpage.h>
+#include <QtWebKit/qwebframe.h>
+#include <QtWebKit/qwebdatabase.h>
+#include <QtWebKit/qwebsecurityorigin.h>
+#include <QtSql/qsqldatabase.h>
+#include <QtCore/qdir.h>
+#include <QtCore/qfile.h>
+
+class tst_qdeclarativesqldatabase : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qdeclarativesqldatabase()
+ {
+ qApp->setApplicationName("tst_qdeclarativesqldatabase");
+ qApp->setOrganizationName("Nokia");
+ qApp->setOrganizationDomain("nokia.com");
+ engine = new QDeclarativeEngine;
+ }
+
+ ~tst_qdeclarativesqldatabase()
+ {
+ delete engine;
+ }
+
+private slots:
+ void initTestCase();
+
+ void checkDatabasePath();
+
+ void testQml_data();
+ void testQml();
+ void testQml_cleanopen_data();
+ void testQml_cleanopen();
+ void totalDatabases();
+
+ void cleanupTestCase();
+
+private:
+ QString dbDir() const;
+ QDeclarativeEngine *engine;
+};
+
+class QWebPageWithJavaScriptConsoleMessages : public QWebPage {
+public:
+ void javaScriptConsoleMessage(const QString& message, int lineNumber, const QString& sourceID)
+ {
+ qWarning() << sourceID << ":" << lineNumber << ":" << message;
+ }
+};
+
+void removeRecursive(const QString& dirname)
+{
+ QDir dir(dirname);
+ QFileInfoList entries(dir.entryInfoList(QDir::Dirs|QDir::Files|QDir::NoDotAndDotDot));
+ for (int i = 0; i < entries.count(); ++i)
+ if (entries[i].isDir())
+ removeRecursive(entries[i].filePath());
+ else
+ dir.remove(entries[i].fileName());
+ QDir().rmdir(dirname);
+}
+
+void tst_qdeclarativesqldatabase::initTestCase()
+{
+ removeRecursive(dbDir());
+ QDir().mkpath(dbDir());
+}
+
+void tst_qdeclarativesqldatabase::cleanupTestCase()
+{
+ removeRecursive(dbDir());
+}
+
+QString tst_qdeclarativesqldatabase::dbDir() const
+{
+ static QString tmpd = QDir::tempPath()+"/tst_qdeclarativesqldatabase_output-"
+ + QDateTime::currentDateTime().toString(QLatin1String("yyyyMMddhhmmss"));
+ return tmpd;
+}
+
+void tst_qdeclarativesqldatabase::checkDatabasePath()
+{
+ // Check default storage path (we can't use it since we don't want to mess with user's data)
+ QVERIFY(engine->offlineStoragePath().contains("tst_qdeclarativesqldatabase"));
+ QVERIFY(engine->offlineStoragePath().contains("OfflineStorage"));
+}
+
+static const int total_databases_created_by_tests = 12;
+void tst_qdeclarativesqldatabase::testQml_data()
+{
+ QTest::addColumn<QString>("jsfile"); // The input file
+
+ // Each test should use a newly named DB to avoid inter-test dependencies
+ QTest::newRow("creation") << "data/creation.js";
+ QTest::newRow("creation-a") << "data/creation-a.js";
+ QTest::newRow("creation") << "data/creation.js";
+ QTest::newRow("error-creation") << "data/error-creation.js"; // re-uses above DB
+ QTest::newRow("changeversion") << "data/changeversion.js";
+ QTest::newRow("readonly") << "data/readonly.js";
+ QTest::newRow("readonly-error") << "data/readonly-error.js";
+ QTest::newRow("selection") << "data/selection.js";
+ QTest::newRow("selection-bindnames") << "data/selection-bindnames.js";
+ QTest::newRow("iteration") << "data/iteration.js";
+ QTest::newRow("iteration-forwardonly") << "data/iteration-forwardonly.js";
+ QTest::newRow("error-a") << "data/error-a.js";
+ QTest::newRow("error-notransaction") << "data/error-notransaction.js";
+ QTest::newRow("error-outsidetransaction") << "data/error-outsidetransaction.js"; // reuse above
+ QTest::newRow("reopen1") << "data/reopen1.js";
+ QTest::newRow("reopen2") << "data/reopen2.js"; // re-uses above DB
+
+ // If you add a test, you should usually use a new database in the
+ // test - in which case increment total_databases_created_by_tests above.
+}
+
+/*
+void tst_qdeclarativesqldatabase::validateAgainstWebkit()
+{
+ // Validates tests against WebKit (HTML5) support.
+ //
+ QFETCH(QString, jsfile);
+ QFETCH(QString, result);
+ QFETCH(int, databases);
+
+ QFile f(jsfile);
+ QVERIFY(f.open(QIODevice::ReadOnly));
+ QString js=f.readAll();
+
+ QWebPageWithJavaScriptConsoleMessages webpage;
+ webpage.settings()->setOfflineStoragePath(dbDir());
+ webpage.settings()->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, true);
+
+ QEXPECT_FAIL("","WebKit doesn't support openDatabaseSync yet", Continue);
+ QCOMPARE(webpage.mainFrame()->evaluateJavaScript(js).toString(),result);
+
+ QTest::qWait(100); // WebKit crashes if you quit it too fast
+
+ QWebSecurityOrigin origin = webpage.mainFrame()->securityOrigin();
+ QList<QWebDatabase> dbs = origin.databases();
+ QCOMPARE(dbs.count(), databases);
+}
+*/
+
+void tst_qdeclarativesqldatabase::testQml()
+{
+ // Tests QML SQL Database support with tests
+ // that have been validated against Webkit.
+ //
+ QFETCH(QString, jsfile);
+
+ QString qml=
+ "import Qt 4.7\n"
+ "import \""+jsfile+"\" as JS\n"
+ "Text { text: JS.test() }";
+
+ engine->setOfflineStoragePath(dbDir());
+ QDeclarativeComponent component(engine);
+ component.setData(qml.toUtf8(), QUrl::fromLocalFile(SRCDIR "/empty.qml")); // just a file for relative local imports
+ QVERIFY(!component.isError());
+ QDeclarativeText *text = qobject_cast<QDeclarativeText*>(component.create());
+ QVERIFY(text != 0);
+ QCOMPARE(text->text(),QString("passed"));
+}
+
+void tst_qdeclarativesqldatabase::testQml_cleanopen_data()
+{
+ QTest::addColumn<QString>("jsfile"); // The input file
+ QTest::newRow("reopen1") << "data/reopen1.js";
+ QTest::newRow("reopen2") << "data/reopen2.js";
+ QTest::newRow("error-creation") << "data/error-creation.js"; // re-uses creation DB
+}
+
+void tst_qdeclarativesqldatabase::testQml_cleanopen()
+{
+ // Same as testQml, but clean connections between tests,
+ // making it more like the tests are running in new processes.
+ testQml();
+
+ QDeclarativeEnginePrivate::getScriptEngine(engine)->collectGarbage(); // close databases
+ foreach (QString dbname, QSqlDatabase::connectionNames()) {
+ QSqlDatabase::removeDatabase(dbname);
+ }
+}
+
+void tst_qdeclarativesqldatabase::totalDatabases()
+{
+ QCOMPARE(QDir(dbDir()+"/Databases").entryInfoList(QDir::Files|QDir::NoDotAndDotDot).count(), total_databases_created_by_tests*2);
+}
+
+QTEST_MAIN(tst_qdeclarativesqldatabase)
+
+#include "tst_qdeclarativesqldatabase.moc"
diff --git a/tests/auto/declarative/qdeclarativestates/data/Implementation/MyType.qml b/tests/auto/declarative/qdeclarativestates/data/Implementation/MyType.qml
new file mode 100644
index 0000000..1872de8
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/Implementation/MyType.qml
@@ -0,0 +1,32 @@
+import Qt 4.7
+
+Item {
+ Column {
+ anchors.centerIn: parent
+ Image { id: image1; objectName: "image1" }
+ Image { id: image2; objectName: "image2" }
+ Image { id: image3; objectName: "image3" }
+ }
+
+ states: State {
+ name: "SetImageState"
+ PropertyChanges {
+ target: image1
+ source: "images/qt-logo.png"
+ }
+ PropertyChanges {
+ target: image2
+ source: "images/" + "qt-logo.png"
+ }
+ PropertyChanges {
+ target: image3
+ source: "images/" + (true ? "qt-logo.png" : "")
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: parent.state = "SetImageState"
+ }
+
+}
diff --git a/tests/auto/declarative/qdeclarativestates/data/Implementation/images/qt-logo.png b/tests/auto/declarative/qdeclarativestates/data/Implementation/images/qt-logo.png
new file mode 100644
index 0000000..14ddf2a
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/Implementation/images/qt-logo.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges.qml
deleted file mode 100644
index 7dce889..0000000
--- a/tests/auto/declarative/qdeclarativestates/data/anchorChanges.qml
+++ /dev/null
@@ -1,23 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- id: container
- width: 200; height: 200
- Rectangle {
- id: myRect
- objectName: "MyRect"
- width: 50; height: 50
- color: "green";
- anchors.left: parent.left
- anchors.leftMargin: 5
- }
- states: State {
- name: "right"
- AnchorChanges {
- id: ancCh
- target: myRect;
- reset: "left"
- right: container.right
- }
- }
-}
diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges1.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges1.qml
new file mode 100644
index 0000000..5443e54
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/anchorChanges1.qml
@@ -0,0 +1,23 @@
+import Qt 4.6
+
+Rectangle {
+ id: container
+ width: 200; height: 200
+ Rectangle {
+ id: myRect
+ objectName: "MyRect"
+ width: 50; height: 50
+ color: "green";
+ anchors.left: parent.left
+ anchors.leftMargin: 5
+ }
+ states: State {
+ name: "right"
+ AnchorChanges {
+ id: ancCh
+ target: myRect;
+ anchors.left: undefined
+ anchors.right: container.right
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges2.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges2.qml
index 545345e..56de560 100644
--- a/tests/auto/declarative/qdeclarativestates/data/anchorChanges2.qml
+++ b/tests/auto/declarative/qdeclarativestates/data/anchorChanges2.qml
@@ -14,8 +14,8 @@ Rectangle {
name: "right"
AnchorChanges {
target: myRect;
- reset: "left"
- right: parent.right
+ anchors.left: undefined
+ anchors.right: parent.right
}
}
}
diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges3.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges3.qml
index 9d5b317..59c3c06 100644
--- a/tests/auto/declarative/qdeclarativestates/data/anchorChanges3.qml
+++ b/tests/auto/declarative/qdeclarativestates/data/anchorChanges3.qml
@@ -20,10 +20,10 @@ Rectangle {
name: "reanchored"
AnchorChanges {
target: myRect;
- left: leftGuideline.left
- right: container.right
- top: container.top
- bottom: bottomGuideline.bottom
+ anchors.left: leftGuideline.left
+ anchors.right: container.right
+ anchors.top: container.top
+ anchors.bottom: bottomGuideline.bottom
}
}
}
diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges4.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges4.qml
index f128989..7e3ba1c 100644
--- a/tests/auto/declarative/qdeclarativestates/data/anchorChanges4.qml
+++ b/tests/auto/declarative/qdeclarativestates/data/anchorChanges4.qml
@@ -15,8 +15,8 @@ Rectangle {
name: "reanchored"
AnchorChanges {
target: myRect;
- horizontalCenter: bottomGuideline.horizontalCenter
- verticalCenter: leftGuideline.verticalCenter
+ anchors.horizontalCenter: bottomGuideline.horizontalCenter
+ anchors.verticalCenter: leftGuideline.verticalCenter
}
}
}
diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChanges5.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChanges5.qml
index 4e6d34b..b85a922 100644
--- a/tests/auto/declarative/qdeclarativestates/data/anchorChanges5.qml
+++ b/tests/auto/declarative/qdeclarativestates/data/anchorChanges5.qml
@@ -15,8 +15,8 @@ Rectangle {
name: "reanchored"
AnchorChanges {
target: myRect;
- horizontalCenter: bottomGuideline.horizontalCenter
- baseline: leftGuideline.baseline
+ anchors.horizontalCenter: bottomGuideline.horizontalCenter
+ anchors.baseline: leftGuideline.baseline
}
}
}
diff --git a/tests/auto/declarative/qdeclarativestates/data/anchorChangesCrash.qml b/tests/auto/declarative/qdeclarativestates/data/anchorChangesCrash.qml
new file mode 100644
index 0000000..861ef8f
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/anchorChangesCrash.qml
@@ -0,0 +1,14 @@
+import Qt 4.7
+
+Rectangle {
+ id: container
+ width: 400
+ height: 400
+
+ states: State {
+ name: "reanchored"
+ AnchorChanges {
+ anchors.top: container.top
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativestates/data/illegalObj.qml b/tests/auto/declarative/qdeclarativestates/data/illegalObj.qml
new file mode 100644
index 0000000..480764e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/illegalObj.qml
@@ -0,0 +1,12 @@
+import Qt 4.6
+
+Rectangle {
+ id: myItem
+
+ states : State {
+ PropertyChanges {
+ target: myItem
+ children: Item { id: newItem }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativestates/data/parentChange.qml b/tests/auto/declarative/qdeclarativestates/data/parentChange1.qml
index b8c7818..b8c7818 100644
--- a/tests/auto/declarative/qdeclarativestates/data/parentChange.qml
+++ b/tests/auto/declarative/qdeclarativestates/data/parentChange1.qml
diff --git a/tests/auto/declarative/qdeclarativestates/data/reset.qml b/tests/auto/declarative/qdeclarativestates/data/reset.qml
index a0a2b8c..7da80b3 100644
--- a/tests/auto/declarative/qdeclarativestates/data/reset.qml
+++ b/tests/auto/declarative/qdeclarativestates/data/reset.qml
@@ -5,9 +5,9 @@ Rectangle {
height: 480
Text {
id: theText
- width: 50
- wrap: true
- text: "a text string that is longer than 50 pixels"
+ width: 40
+ wrapMode: Text.WordWrap
+ text: "a text string that is longer than 40 pixels"
}
states: State {
diff --git a/tests/auto/declarative/qdeclarativestates/data/urlResolution.qml b/tests/auto/declarative/qdeclarativestates/data/urlResolution.qml
new file mode 100644
index 0000000..8995b56
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/urlResolution.qml
@@ -0,0 +1,12 @@
+import Qt 4.7
+import "Implementation"
+
+Rectangle {
+ width: 100
+ height: 200
+
+ MyType {
+ objectName: "MyType"
+ anchors.fill: parent
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativestates/data/whenOrdering.qml b/tests/auto/declarative/qdeclarativestates/data/whenOrdering.qml
new file mode 100644
index 0000000..7369c63
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativestates/data/whenOrdering.qml
@@ -0,0 +1,11 @@
+import Qt 4.6
+
+Rectangle {
+ property bool condition1: false
+ property bool condition2: false
+
+ states: [
+ State { name: "state1"; when: condition1 },
+ State { name: "state2"; when: condition2 }
+ ]
+}
diff --git a/tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro b/tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro
index f874803..706d045 100644
--- a/tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro
+++ b/tests/auto/declarative/qdeclarativestates/qdeclarativestates.pro
@@ -6,3 +6,5 @@ SOURCES += tst_qdeclarativestates.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
index 8d3ca7a..578bcb4 100644
--- a/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
+++ b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
@@ -43,6 +43,7 @@
#include <QtDeclarative/qdeclarativecomponent.h>
#include <private/qdeclarativeanchors_p_p.h>
#include <private/qdeclarativerectangle_p.h>
+#include <private/qdeclarativeimage_p.h>
#include <private/qdeclarativetext_p.h>
#include <private/qdeclarativepropertychanges_p.h>
#include <private/qdeclarativestategroup_p.h>
@@ -94,6 +95,7 @@ private slots:
void anchorChanges3();
void anchorChanges4();
void anchorChanges5();
+ void anchorChangesCrash();
void script();
void restoreEntryValues();
void explicitChanges();
@@ -106,11 +108,14 @@ private slots:
void illegalTempState();
void nonExistantProperty();
void reset();
+ void illegalObjectCreation();
+ void whenOrdering();
+ void urlResolution();
};
void tst_qdeclarativestates::initTestCase()
{
- QML_REGISTER_TYPE(Qt.test, 1, 0, MyRectangle,MyRect);
+ qmlRegisterType<MyRect>("Qt.test", 1, 0, "MyRectangle");
}
QByteArray tst_qdeclarativestates::fullDataPath(const QString &path)
@@ -441,7 +446,7 @@ void tst_qdeclarativestates::parentChange()
QDeclarativeEngine engine;
{
- QDeclarativeComponent rectComponent(&engine, SRCDIR "/data/parentChange.qml");
+ QDeclarativeComponent rectComponent(&engine, SRCDIR "/data/parentChange1.qml");
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(rectComponent.create());
QVERIFY(rect != 0);
@@ -546,7 +551,7 @@ void tst_qdeclarativestates::anchorChanges()
{
QDeclarativeEngine engine;
- QDeclarativeComponent rectComponent(&engine, SRCDIR "/data/anchorChanges.qml");
+ QDeclarativeComponent rectComponent(&engine, SRCDIR "/data/anchorChanges1.qml");
QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(rectComponent.create());
QVERIFY(rect != 0);
@@ -563,10 +568,10 @@ void tst_qdeclarativestates::anchorChanges()
rect->setState("right");
QCOMPARE(innerRect->x(), qreal(150));
- QCOMPARE(aChanges->reset(), QString("left"));
- QCOMPARE(aChanges->object(), innerRect);
- QCOMPARE(aChanges->right().item, rect->right().item);
- QCOMPARE(aChanges->right().anchorLine, rect->right().anchorLine);
+ QCOMPARE(aChanges->anchors()->left().anchorLine, QDeclarativeAnchorLine::Invalid); //### was reset (how do we distinguish from not set at all)
+ QCOMPARE(aChanges->object(), qobject_cast<QDeclarativeItem*>(innerRect));
+ QCOMPARE(aChanges->anchors()->right().item, rect->right().item);
+ QCOMPARE(aChanges->anchors()->right().anchorLine, rect->right().anchorLine);
rect->setState("");
QCOMPARE(innerRect->x(), qreal(5));
@@ -621,15 +626,15 @@ void tst_qdeclarativestates::anchorChanges3()
QVERIFY(aChanges != 0);
rect->setState("reanchored");
- QCOMPARE(aChanges->object(), innerRect);
- QCOMPARE(aChanges->left().item, leftGuideline->left().item);
- QCOMPARE(aChanges->left().anchorLine, leftGuideline->left().anchorLine);
- QCOMPARE(aChanges->right().item, rect->right().item);
- QCOMPARE(aChanges->right().anchorLine, rect->right().anchorLine);
- QCOMPARE(aChanges->top().item, rect->top().item);
- QCOMPARE(aChanges->top().anchorLine, rect->top().anchorLine);
- QCOMPARE(aChanges->bottom().item, bottomGuideline->bottom().item);
- QCOMPARE(aChanges->bottom().anchorLine, bottomGuideline->bottom().anchorLine);
+ QCOMPARE(aChanges->object(), qobject_cast<QDeclarativeItem*>(innerRect));
+ QCOMPARE(aChanges->anchors()->left().item, leftGuideline->left().item);
+ QCOMPARE(aChanges->anchors()->left().anchorLine, leftGuideline->left().anchorLine);
+ QCOMPARE(aChanges->anchors()->right().item, rect->right().item);
+ QCOMPARE(aChanges->anchors()->right().anchorLine, rect->right().anchorLine);
+ QCOMPARE(aChanges->anchors()->top().item, rect->top().item);
+ QCOMPARE(aChanges->anchors()->top().anchorLine, rect->top().anchorLine);
+ QCOMPARE(aChanges->anchors()->bottom().item, bottomGuideline->bottom().item);
+ QCOMPARE(aChanges->anchors()->bottom().anchorLine, bottomGuideline->bottom().anchorLine);
QCOMPARE(innerRect->x(), qreal(10));
QCOMPARE(innerRect->y(), qreal(0));
@@ -671,11 +676,11 @@ void tst_qdeclarativestates::anchorChanges4()
QVERIFY(aChanges != 0);
rect->setState("reanchored");
- QCOMPARE(aChanges->object(), innerRect);
- QCOMPARE(aChanges->horizontalCenter().item, bottomGuideline->horizontalCenter().item);
- QCOMPARE(aChanges->horizontalCenter().anchorLine, bottomGuideline->horizontalCenter().anchorLine);
- QCOMPARE(aChanges->verticalCenter().item, leftGuideline->verticalCenter().item);
- QCOMPARE(aChanges->verticalCenter().anchorLine, leftGuideline->verticalCenter().anchorLine);
+ QCOMPARE(aChanges->object(), qobject_cast<QDeclarativeItem*>(innerRect));
+ QCOMPARE(aChanges->anchors()->horizontalCenter().item, bottomGuideline->horizontalCenter().item);
+ QCOMPARE(aChanges->anchors()->horizontalCenter().anchorLine, bottomGuideline->horizontalCenter().anchorLine);
+ QCOMPARE(aChanges->anchors()->verticalCenter().item, leftGuideline->verticalCenter().item);
+ QCOMPARE(aChanges->anchors()->verticalCenter().anchorLine, leftGuideline->verticalCenter().anchorLine);
delete rect;
}
@@ -706,11 +711,25 @@ void tst_qdeclarativestates::anchorChanges5()
QVERIFY(aChanges != 0);
rect->setState("reanchored");
- QCOMPARE(aChanges->object(), innerRect);
- QCOMPARE(aChanges->horizontalCenter().item, bottomGuideline->horizontalCenter().item);
- QCOMPARE(aChanges->horizontalCenter().anchorLine, bottomGuideline->horizontalCenter().anchorLine);
- QCOMPARE(aChanges->baseline().item, leftGuideline->baseline().item);
- QCOMPARE(aChanges->baseline().anchorLine, leftGuideline->baseline().anchorLine);
+ QCOMPARE(aChanges->object(), qobject_cast<QDeclarativeItem*>(innerRect));
+ QCOMPARE(aChanges->anchors()->horizontalCenter().item, bottomGuideline->horizontalCenter().item);
+ QCOMPARE(aChanges->anchors()->horizontalCenter().anchorLine, bottomGuideline->horizontalCenter().anchorLine);
+ QCOMPARE(aChanges->anchors()->baseline().item, leftGuideline->baseline().item);
+ QCOMPARE(aChanges->anchors()->baseline().anchorLine, leftGuideline->baseline().anchorLine);
+
+ delete rect;
+}
+
+//QTBUG-9609
+void tst_qdeclarativestates::anchorChangesCrash()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent rectComponent(&engine, SRCDIR "/data/anchorChangesCrash.qml");
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(rectComponent.create());
+ QVERIFY(rect != 0);
+
+ rect->setState("reanchored");
delete rect;
}
@@ -955,15 +974,71 @@ void tst_qdeclarativestates::reset()
QDeclarativeText *text = rect->findChild<QDeclarativeText*>();
QVERIFY(text != 0);
- QCOMPARE(text->width(), qreal(50.));
+ QCOMPARE(text->width(), qreal(40.));
QVERIFY(text->width() < text->height());
rect->setState("state1");
- QVERIFY(text->width() > 51);
+ QVERIFY(text->width() > 41);
QVERIFY(text->width() > text->height());
}
+void tst_qdeclarativestates::illegalObjectCreation()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent component(&engine, SRCDIR "/data/illegalObj.qml");
+ QList<QDeclarativeError> errors = component.errors();
+ QVERIFY(errors.count() == 1);
+ const QDeclarativeError &error = errors.at(0);
+ QCOMPARE(error.line(), 9);
+ QCOMPARE(error.column(), 23);
+ QCOMPARE(error.description().toUtf8().constData(), "PropertyChanges does not support creating state-specific objects.");
+}
+
+void tst_qdeclarativestates::whenOrdering()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent c(&engine, SRCDIR "/data/whenOrdering.qml");
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QVERIFY(rect != 0);
+
+ QCOMPARE(rect->state(), QLatin1String(""));
+ rect->setProperty("condition2", true);
+ QCOMPARE(rect->state(), QLatin1String("state2"));
+ rect->setProperty("condition1", true);
+ QCOMPARE(rect->state(), QLatin1String("state1"));
+ rect->setProperty("condition2", false);
+ QCOMPARE(rect->state(), QLatin1String("state1"));
+ rect->setProperty("condition2", true);
+ QCOMPARE(rect->state(), QLatin1String("state1"));
+ rect->setProperty("condition1", false);
+ rect->setProperty("condition2", false);
+ QCOMPARE(rect->state(), QLatin1String(""));
+}
+
+void tst_qdeclarativestates::urlResolution()
+{
+ QDeclarativeEngine engine;
+
+ QDeclarativeComponent c(&engine, SRCDIR "/data/urlResolution.qml");
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QVERIFY(rect != 0);
+
+ QDeclarativeItem *myType = rect->findChild<QDeclarativeItem*>("MyType");
+ QDeclarativeImage *image1 = rect->findChild<QDeclarativeImage*>("image1");
+ QDeclarativeImage *image2 = rect->findChild<QDeclarativeImage*>("image2");
+ QDeclarativeImage *image3 = rect->findChild<QDeclarativeImage*>("image3");
+ QVERIFY(myType != 0 && image1 != 0 && image2 != 0 && image3 != 0);
+
+ myType->setState("SetImageState");
+ QUrl resolved = QUrl::fromLocalFile(SRCDIR "/data/Implementation/images/qt-logo.png");
+ QCOMPARE(image1->source(), resolved);
+ QCOMPARE(image2->source(), resolved);
+ QCOMPARE(image3->source(), resolved);
+}
+
QTEST_MAIN(tst_qdeclarativestates)
#include "tst_qdeclarativestates.moc"
diff --git a/tests/auto/declarative/qdeclarativestyledtext/qdeclarativestyledtext.pro b/tests/auto/declarative/qdeclarativestyledtext/qdeclarativestyledtext.pro
index bd4d829..87d0e5b 100644
--- a/tests/auto/declarative/qdeclarativestyledtext/qdeclarativestyledtext.pro
+++ b/tests/auto/declarative/qdeclarativestyledtext/qdeclarativestyledtext.pro
@@ -7,3 +7,5 @@ SOURCES += tst_qdeclarativestyledtext.cpp
# QMAKE_CXXFLAGS = -fprofile-arcs -ftest-coverage
# LIBS += -lgcov
+
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/qdeclarativestyledtext/tst_qdeclarativestyledtext.cpp b/tests/auto/declarative/qdeclarativestyledtext/tst_qdeclarativestyledtext.cpp
index 7b1293e..e475d42 100644
--- a/tests/auto/declarative/qdeclarativestyledtext/tst_qdeclarativestyledtext.cpp
+++ b/tests/auto/declarative/qdeclarativestyledtext/tst_qdeclarativestyledtext.cpp
@@ -71,11 +71,16 @@ void tst_qdeclarativestyledtext::textOutput_data()
QTest::newRow("missing </b>") << "<b>text" << "text";
QTest::newRow("bad nest") << "<b>text <i>italic</b></i>" << "text italic";
QTest::newRow("font color") << "<font color=\"red\">red text</font>" << "red text";
+ QTest::newRow("font color: single quote") << "<font color='red'>red text</font>" << "red text";
QTest::newRow("font size") << "<font size=\"1\">text</font>" << "text";
QTest::newRow("font empty") << "<font>text</font>" << "text";
QTest::newRow("font bad 1") << "<font ezis=\"blah\">text</font>" << "text";
QTest::newRow("font bad 2") << "<font size=\"1>text</font>" << "";
QTest::newRow("extra close") << "<b>text</b></b>" << "text";
+ QTest::newRow("extra space") << "<b >text</b>" << "text";
+ QTest::newRow("entities") << "&lt;b&gt;this &amp; that&lt;/b&gt;" << "<b>this & that</b>";
+ QTest::newRow("newline") << "text<br>more text" << QLatin1String("text") + QChar(QChar::LineSeparator) + QLatin1String("more text") ;
+ QTest::newRow("self-closing newline") << "text<br/>more text" << QLatin1String("text") + QChar(QChar::LineSeparator) + QLatin1String("more text") ;
QTest::newRow("empty") << "" << "";
}
diff --git a/tests/auto/declarative/qdeclarativesystempalette/qdeclarativesystempalette.pro b/tests/auto/declarative/qdeclarativesystempalette/qdeclarativesystempalette.pro
index 0781774..b2705fa 100644
--- a/tests/auto/declarative/qdeclarativesystempalette/qdeclarativesystempalette.pro
+++ b/tests/auto/declarative/qdeclarativesystempalette/qdeclarativesystempalette.pro
@@ -3,3 +3,6 @@ contains(QT_CONFIG,declarative): QT += declarative gui
macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativesystempalette.cpp
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativesystempalette/tst_qdeclarativesystempalette.cpp b/tests/auto/declarative/qdeclarativesystempalette/tst_qdeclarativesystempalette.cpp
index 5c93952..7927d97 100644
--- a/tests/auto/declarative/qdeclarativesystempalette/tst_qdeclarativesystempalette.cpp
+++ b/tests/auto/declarative/qdeclarativesystempalette/tst_qdeclarativesystempalette.cpp
@@ -70,7 +70,7 @@ tst_qdeclarativesystempalette::tst_qdeclarativesystempalette()
void tst_qdeclarativesystempalette::activePalette()
{
- QString componentStr = "import Qt 4.6\nSystemPalette { }";
+ QString componentStr = "import Qt 4.7\nSystemPalette { }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeSystemPalette *object = qobject_cast<QDeclarativeSystemPalette*>(component.create());
@@ -99,7 +99,7 @@ void tst_qdeclarativesystempalette::activePalette()
void tst_qdeclarativesystempalette::inactivePalette()
{
- QString componentStr = "import Qt 4.6\nSystemPalette { colorGroup: SystemPalette.Inactive }";
+ QString componentStr = "import Qt 4.7\nSystemPalette { colorGroup: SystemPalette.Inactive }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeSystemPalette *object = qobject_cast<QDeclarativeSystemPalette*>(component.create());
@@ -129,7 +129,7 @@ void tst_qdeclarativesystempalette::inactivePalette()
void tst_qdeclarativesystempalette::disabledPalette()
{
- QString componentStr = "import Qt 4.6\nSystemPalette { colorGroup: SystemPalette.Disabled }";
+ QString componentStr = "import Qt 4.7\nSystemPalette { colorGroup: SystemPalette.Disabled }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeSystemPalette *object = qobject_cast<QDeclarativeSystemPalette*>(component.create());
@@ -159,7 +159,7 @@ void tst_qdeclarativesystempalette::disabledPalette()
void tst_qdeclarativesystempalette::paletteChanged()
{
- QString componentStr = "import Qt 4.6\nSystemPalette { }";
+ QString componentStr = "import Qt 4.7\nSystemPalette { }";
QDeclarativeComponent component(&engine);
component.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeSystemPalette *object = qobject_cast<QDeclarativeSystemPalette*>(component.create());
diff --git a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocal.qml b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocal.qml
new file mode 100644
index 0000000..5aeea56
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocal.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+Text {
+ text: "<img src='http/exists.png'>"
+}
diff --git a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocalError.qml b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocalError.qml
new file mode 100644
index 0000000..17bb21c
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesLocalError.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+Text {
+ text: "<img src='http/notexists.png'>"
+}
diff --git a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemote.qml b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemote.qml
new file mode 100644
index 0000000..53b0266
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemote.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+Text {
+ text: "<img src='http://127.0.0.1:14453/exists.png'>"
+}
diff --git a/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemoteError.qml b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemoteError.qml
new file mode 100644
index 0000000..48c7a95
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetext/data/embeddedImagesRemoteError.qml
@@ -0,0 +1,5 @@
+import Qt 4.6
+
+Text {
+ text: "<img src='http://127.0.0.1:14453/notexists.png'>"
+}
diff --git a/tests/auto/declarative/qdeclarativetext/data/http/exists.png b/tests/auto/declarative/qdeclarativetext/data/http/exists.png
new file mode 100644
index 0000000..399bd0b
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetext/data/http/exists.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro b/tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro
index 8b4b4d1..e70443e 100644
--- a/tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro
+++ b/tests/auto/declarative/qdeclarativetext/qdeclarativetext.pro
@@ -1,5 +1,15 @@
load(qttest_p4)
contains(QT_CONFIG,declarative): QT += declarative gui
+QT += network
macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativetext.cpp
+
+INCLUDEPATH += ../shared/
+HEADERS += ../shared/testhttpserver.h
+SOURCES += ../shared/testhttpserver.cpp
+
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
index bbbbd83..edb4a32 100644
--- a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
+++ b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
@@ -48,6 +48,9 @@
#include <QGraphicsSceneMouseEvent>
#include <qmath.h>
+#include "../../../shared/util.h"
+#include "testhttpserver.h"
+
class tst_qdeclarativetext : public QObject
{
@@ -62,6 +65,9 @@ private slots:
void elide();
void textFormat();
+ void embeddedImages_data();
+ void embeddedImages();
+
// ### these tests may be trivial
void horizontalAlignment();
void verticalAlignment();
@@ -156,7 +162,7 @@ void tst_qdeclarativetext::text()
{
{
QDeclarativeComponent textComponent(&engine);
- textComponent.setData("import Qt 4.6\nText { text: \"\" }", QUrl::fromLocalFile(""));
+ textComponent.setData("import Qt 4.7\nText { text: \"\" }", QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
QVERIFY(textObject != 0);
@@ -168,7 +174,7 @@ void tst_qdeclarativetext::text()
for (int i = 0; i < standard.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
@@ -181,7 +187,7 @@ void tst_qdeclarativetext::text()
for (int i = 0; i < richText.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -198,7 +204,7 @@ void tst_qdeclarativetext::width()
// uses Font metrics to find the width for standard and document to find the width for rich
{
QDeclarativeComponent textComponent(&engine);
- textComponent.setData("import Qt 4.6\nText { text: \"\" }", QUrl::fromLocalFile(""));
+ textComponent.setData("import Qt 4.7\nText { text: \"\" }", QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
QVERIFY(textObject != 0);
@@ -214,7 +220,7 @@ void tst_qdeclarativetext::width()
qreal metricWidth = fm.size(Qt::TextExpandTabs && Qt::TextShowMnemonic, standard.at(i)).width();
metricWidth = qCeil(metricWidth);
- QString componentStr = "import Qt 4.6\nText { text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -234,7 +240,7 @@ void tst_qdeclarativetext::width()
int documentWidth = document.idealWidth();
- QString componentStr = "import Qt 4.6\nText { text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -251,18 +257,18 @@ void tst_qdeclarativetext::wrap()
// for specified width and wrap set true
{
QDeclarativeComponent textComponent(&engine);
- textComponent.setData("import Qt 4.6\nText { text: \"Hello\"; wrap: true; width: 300 }", QUrl::fromLocalFile(""));
+ textComponent.setData("import Qt 4.7\nText { text: \"Hello\"; wrapMode: Text.WordWrap; width: 300 }", QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
textHeight = textObject->height();
QVERIFY(textObject != 0);
- QVERIFY(textObject->wrap() == true);
+ QVERIFY(textObject->wrapMode() == QDeclarativeText::WordWrap);
QCOMPARE(textObject->width(), 300.);
}
for (int i = 0; i < standard.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { wrap: true; width: 30; text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { wrapMode: Text.WordWrap; width: 30; text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -278,7 +284,7 @@ void tst_qdeclarativetext::wrap()
for (int i = 0; i < richText.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { wrap: true; width: 30; text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { wrapMode: Text.WordWrap; width: 30; text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -286,8 +292,28 @@ void tst_qdeclarativetext::wrap()
QVERIFY(textObject != 0);
QCOMPARE(textObject->width(), 30.);
QVERIFY(textObject->height() > textHeight);
+
+ qreal oldHeight = textObject->height();
+ textObject->setWidth(100);
+ QVERIFY(textObject->height() < oldHeight);
}
+ // richtext again with a fixed height
+ for (int i = 0; i < richText.size(); i++)
+ {
+ QString componentStr = "import Qt 4.7\nText { wrapMode: Text.WordWrap; width: 30; height: 50; text: \"" + richText.at(i) + "\" }";
+ QDeclarativeComponent textComponent(&engine);
+ textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
+ QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+ QCOMPARE(textObject->width(), 30.);
+ QVERIFY(textObject->implicitHeight() > textHeight);
+
+ qreal oldHeight = textObject->implicitHeight();
+ textObject->setWidth(100);
+ QVERIFY(textObject->implicitHeight() < oldHeight);
+ }
}
void tst_qdeclarativetext::elide()
@@ -300,7 +326,7 @@ void tst_qdeclarativetext::elide()
{
QDeclarativeComponent textComponent(&engine);
- textComponent.setData(("import Qt 4.6\nText { text: \"\"; "+elide+" width: 100 }").toLatin1(), QUrl::fromLocalFile(""));
+ textComponent.setData(("import Qt 4.7\nText { text: \"\"; "+elide+" width: 100 }").toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
QCOMPARE(textObject->elideMode(), m);
@@ -309,7 +335,7 @@ void tst_qdeclarativetext::elide()
for (int i = 0; i < standard.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { "+elide+" width: 100; text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { "+elide+" width: 100; text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -321,7 +347,7 @@ void tst_qdeclarativetext::elide()
// richtext - does nothing
for (int i = 0; i < richText.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { "+elide+" width: 100; text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { "+elide+" width: 100; text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -336,7 +362,7 @@ void tst_qdeclarativetext::textFormat()
{
{
QDeclarativeComponent textComponent(&engine);
- textComponent.setData("import Qt 4.6\nText { text: \"Hello\"; textFormat: Text.RichText }", QUrl::fromLocalFile(""));
+ textComponent.setData("import Qt 4.7\nText { text: \"Hello\"; textFormat: Text.RichText }", QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
QVERIFY(textObject != 0);
@@ -344,7 +370,7 @@ void tst_qdeclarativetext::textFormat()
}
{
QDeclarativeComponent textComponent(&engine);
- textComponent.setData("import Qt 4.6\nText { text: \"<b>Hello</b>\"; textFormat: Text.PlainText }", QUrl::fromLocalFile(""));
+ textComponent.setData("import Qt 4.7\nText { text: \"<b>Hello</b>\"; textFormat: Text.PlainText }", QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
QVERIFY(textObject != 0);
@@ -361,7 +387,7 @@ void tst_qdeclarativetext::horizontalAlignment()
{
for (int j=0; j < horizontalAlignmentmentStrings.size(); j++)
{
- QString componentStr = "import Qt 4.6\nText { horizontalAlignment: \"" + horizontalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { horizontalAlignment: \"" + horizontalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -374,7 +400,7 @@ void tst_qdeclarativetext::horizontalAlignment()
{
for (int j=0; j < horizontalAlignmentmentStrings.size(); j++)
{
- QString componentStr = "import Qt 4.6\nText { horizontalAlignment: \"" + horizontalAlignmentmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { horizontalAlignment: \"" + horizontalAlignmentmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -393,7 +419,7 @@ void tst_qdeclarativetext::verticalAlignment()
{
for (int j=0; j < verticalAlignmentmentStrings.size(); j++)
{
- QString componentStr = "import Qt 4.6\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -407,7 +433,7 @@ void tst_qdeclarativetext::verticalAlignment()
{
for (int j=0; j < verticalAlignmentmentStrings.size(); j++)
{
- QString componentStr = "import Qt 4.6\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { verticalAlignment: \"" + verticalAlignmentmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -423,7 +449,7 @@ void tst_qdeclarativetext::font()
{
//test size, then bold, then italic, then family
{
- QString componentStr = "import Qt 4.6\nText { font.pointSize: 40; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { font.pointSize: 40; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -434,7 +460,7 @@ void tst_qdeclarativetext::font()
}
{
- QString componentStr = "import Qt 4.6\nText { font.pixelSize: 40; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { font.pixelSize: 40; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -445,7 +471,7 @@ void tst_qdeclarativetext::font()
}
{
- QString componentStr = "import Qt 4.6\nText { font.bold: true; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { font.bold: true; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -455,7 +481,7 @@ void tst_qdeclarativetext::font()
}
{
- QString componentStr = "import Qt 4.6\nText { font.italic: true; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { font.italic: true; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -465,7 +491,7 @@ void tst_qdeclarativetext::font()
}
{
- QString componentStr = "import Qt 4.6\nText { font.family: \"Helvetica\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { font.family: \"Helvetica\"; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -476,7 +502,7 @@ void tst_qdeclarativetext::font()
}
{
- QString componentStr = "import Qt 4.6\nText { font.family: \"\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { font.family: \"\"; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -490,7 +516,7 @@ void tst_qdeclarativetext::style()
//test style
for (int i = 0; i < styles.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { style: \"" + styleStrings.at(i) + "\"; styleColor: \"white\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { style: \"" + styleStrings.at(i) + "\"; styleColor: \"white\"; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -505,7 +531,7 @@ void tst_qdeclarativetext::color()
//test style
for (int i = 0; i < colorStrings.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -516,7 +542,7 @@ void tst_qdeclarativetext::color()
for (int i = 0; i < colorStrings.size(); i++)
{
- QString componentStr = "import Qt 4.6\nText { styleColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { styleColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -530,7 +556,7 @@ void tst_qdeclarativetext::color()
{
for (int j = 0; j < colorStrings.size(); j++)
{
- QString componentStr = "import Qt 4.6\nText { color: \"" + colorStrings.at(i) + "\"; styleColor: \"" + colorStrings.at(j) + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { color: \"" + colorStrings.at(i) + "\"; styleColor: \"" + colorStrings.at(j) + "\"; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -544,7 +570,7 @@ void tst_qdeclarativetext::color()
QColor testColor("#001234");
testColor.setAlpha(170);
- QString componentStr = "import Qt 4.6\nText { color: \"" + colorStr + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nText { color: \"" + colorStr + "\"; text: \"Hello World\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -558,14 +584,14 @@ void tst_qdeclarativetext::smooth()
for (int i = 0; i < standard.size(); i++)
{
{
- QString componentStr = "import Qt 4.6\nText { smooth: true; text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { smooth: true; text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
QCOMPARE(textObject->smooth(), true);
}
{
- QString componentStr = "import Qt 4.6\nText { text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -575,14 +601,14 @@ void tst_qdeclarativetext::smooth()
for (int i = 0; i < richText.size(); i++)
{
{
- QString componentStr = "import Qt 4.6\nText { smooth: true; text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { smooth: true; text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
QCOMPARE(textObject->smooth(), true);
}
{
- QString componentStr = "import Qt 4.6\nText { text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -594,7 +620,7 @@ void tst_qdeclarativetext::smooth()
void tst_qdeclarativetext::weight()
{
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -603,7 +629,7 @@ void tst_qdeclarativetext::weight()
QCOMPARE((int)textObject->font().weight(), (int)QDeclarativeFontValueType::Normal);
}
{
- QString componentStr = "import Qt 4.6\nText { font.weight: \"Bold\"; text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { font.weight: \"Bold\"; text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -616,7 +642,7 @@ void tst_qdeclarativetext::weight()
void tst_qdeclarativetext::underline()
{
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -625,7 +651,7 @@ void tst_qdeclarativetext::underline()
QCOMPARE(textObject->font().underline(), false);
}
{
- QString componentStr = "import Qt 4.6\nText { font.underline: true; text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { font.underline: true; text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -638,7 +664,7 @@ void tst_qdeclarativetext::underline()
void tst_qdeclarativetext::overline()
{
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -647,7 +673,7 @@ void tst_qdeclarativetext::overline()
QCOMPARE(textObject->font().overline(), false);
}
{
- QString componentStr = "import Qt 4.6\nText { font.overline: true; text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { font.overline: true; text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -660,7 +686,7 @@ void tst_qdeclarativetext::overline()
void tst_qdeclarativetext::strikeout()
{
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -669,7 +695,7 @@ void tst_qdeclarativetext::strikeout()
QCOMPARE(textObject->font().strikeOut(), false);
}
{
- QString componentStr = "import Qt 4.6\nText { font.strikeout: true; text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { font.strikeout: true; text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -682,7 +708,7 @@ void tst_qdeclarativetext::strikeout()
void tst_qdeclarativetext::capitalization()
{
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -691,7 +717,7 @@ void tst_qdeclarativetext::capitalization()
QCOMPARE((int)textObject->font().capitalization(), (int)QDeclarativeFontValueType::MixedCase);
}
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.capitalization: \"AllUppercase\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.capitalization: \"AllUppercase\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -700,7 +726,7 @@ void tst_qdeclarativetext::capitalization()
QCOMPARE((int)textObject->font().capitalization(), (int)QDeclarativeFontValueType::AllUppercase);
}
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.capitalization: \"AllLowercase\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.capitalization: \"AllLowercase\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -709,7 +735,7 @@ void tst_qdeclarativetext::capitalization()
QCOMPARE((int)textObject->font().capitalization(), (int)QDeclarativeFontValueType::AllLowercase);
}
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.capitalization: \"SmallCaps\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.capitalization: \"SmallCaps\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -718,7 +744,7 @@ void tst_qdeclarativetext::capitalization()
QCOMPARE((int)textObject->font().capitalization(), (int)QDeclarativeFontValueType::SmallCaps);
}
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.capitalization: \"Capitalize\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.capitalization: \"Capitalize\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -731,7 +757,7 @@ void tst_qdeclarativetext::capitalization()
void tst_qdeclarativetext::letterSpacing()
{
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -740,7 +766,7 @@ void tst_qdeclarativetext::letterSpacing()
QCOMPARE(textObject->font().letterSpacing(), 0.0);
}
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.letterSpacing: -50 }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.letterSpacing: -50 }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -749,7 +775,7 @@ void tst_qdeclarativetext::letterSpacing()
QCOMPARE(textObject->font().letterSpacing(), -50.);
}
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.letterSpacing: 200 }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.letterSpacing: 200 }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -762,7 +788,7 @@ void tst_qdeclarativetext::letterSpacing()
void tst_qdeclarativetext::wordSpacing()
{
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -771,7 +797,7 @@ void tst_qdeclarativetext::wordSpacing()
QCOMPARE(textObject->font().wordSpacing(), 0.0);
}
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.wordSpacing: -50 }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.wordSpacing: -50 }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -780,7 +806,7 @@ void tst_qdeclarativetext::wordSpacing()
QCOMPARE(textObject->font().wordSpacing(), -50.);
}
{
- QString componentStr = "import Qt 4.6\nText { text: \"Hello world!\"; font.wordSpacing: 200 }";
+ QString componentStr = "import Qt 4.7\nText { text: \"Hello world!\"; font.wordSpacing: 200 }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -811,7 +837,7 @@ public slots:
void tst_qdeclarativetext::clickLink()
{
{
- QString componentStr = "import Qt 4.6\nText { text: \"<a href=\\\"http://qt.nokia.com\\\">Hello world!</a>\" }";
+ QString componentStr = "import Qt 4.7\nText { text: \"<a href=\\\"http://qt.nokia.com\\\">Hello world!</a>\" }";
QDeclarativeComponent textComponent(&engine);
textComponent.setData(componentStr.toLatin1(), QUrl::fromLocalFile(""));
QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
@@ -839,6 +865,49 @@ void tst_qdeclarativetext::clickLink()
}
}
+void tst_qdeclarativetext::embeddedImages_data()
+{
+ QTest::addColumn<QUrl>("qmlfile");
+ QTest::addColumn<QString>("error");
+ QTest::newRow("local") << QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesLocal.qml") << "";
+ QTest::newRow("local-error") << QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesLocalError.qml")
+ << "QML Text ("+QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesLocalError.qml").toString()+":3:1) Cannot open: " + QUrl::fromLocalFile(SRCDIR "/data/http/notexists.png").toString();
+ QTest::newRow("remote") << QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesRemote.qml") << "";
+ QTest::newRow("remote-error") << QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesRemoteError.qml")
+ << "QML Text ("+QUrl::fromLocalFile(SRCDIR "/data/embeddedImagesRemoteError.qml").toString()+":3:1) Error downloading http://127.0.0.1:14453/notexists.png - server replied: Not found";
+}
+
+void tst_qdeclarativetext::embeddedImages()
+{
+ // Tests QTBUG-9900
+
+ QFETCH(QUrl, qmlfile);
+ QFETCH(QString, error);
+
+ TestHTTPServer server(14453);
+ server.serveDirectory(SRCDIR "/data/http");
+
+ if (!error.isEmpty())
+ QTest::ignoreMessage(QtWarningMsg, error.toLatin1());
+
+ QDeclarativeComponent textComponent(&engine, qmlfile);
+ QDeclarativeText *textObject = qobject_cast<QDeclarativeText*>(textComponent.create());
+
+ QVERIFY(textObject != 0);
+
+ QTRY_COMPARE(textObject->resourcesLoading(), 0);
+
+ QPixmap pm(SRCDIR "/data/http/exists.png");
+ if (error.isEmpty()) {
+ QCOMPARE(textObject->width(), double(pm.width()));
+ QCOMPARE(textObject->height(), double(pm.height()));
+ } else {
+ QVERIFY(16 != pm.width()); // check test is effective
+ QCOMPARE(textObject->width(), 16.0); // default size of QTextDocument broken image icon
+ QCOMPARE(textObject->height(), 16.0);
+ }
+}
+
QTEST_MAIN(tst_qdeclarativetext)
#include "tst_qdeclarativetext.moc"
diff --git a/tests/auto/declarative/qdeclarativetextedit/data/http/qmldir b/tests/auto/declarative/qdeclarativetextedit/data/http/qmldir
new file mode 100644
index 0000000..886e6ff
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetextedit/data/http/qmldir
@@ -0,0 +1,4 @@
+ErrItem ErrItem.qml
+NormItem NormItem.qml
+FailItem FailItem.qml
+WaitItem WaitItem.qml
diff --git a/tests/auto/declarative/qdeclarativetextedit/data/navigation.qml b/tests/auto/declarative/qdeclarativetextedit/data/navigation.qml
index 8d7dbbc..1aed8d8 100644
--- a/tests/auto/declarative/qdeclarativetextedit/data/navigation.qml
+++ b/tests/auto/declarative/qdeclarativetextedit/data/navigation.qml
@@ -1,7 +1,7 @@
import Qt 4.6
Rectangle {
- property var myInput: input
+ property variant myInput: input
width: 800; height: 600; color: "blue"
diff --git a/tests/auto/declarative/qdeclarativetextedit/data/readOnly.qml b/tests/auto/declarative/qdeclarativetextedit/data/readOnly.qml
index 103a627..69a6479 100644
--- a/tests/auto/declarative/qdeclarativetextedit/data/readOnly.qml
+++ b/tests/auto/declarative/qdeclarativetextedit/data/readOnly.qml
@@ -1,7 +1,7 @@
import Qt 4.6
Rectangle {
- property var myInput: input
+ property variant myInput: input
width: 800; height: 600; color: "blue"
diff --git a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
index b677fec..25101ba 100644
--- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
+++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
@@ -79,6 +79,7 @@ private slots:
void inputMethodHints();
void cursorDelegate();
+ void delegateLoading_data();
void delegateLoading();
void navigation();
void readOnly();
@@ -149,7 +150,7 @@ void tst_qdeclarativetextedit::text()
{
{
QDeclarativeComponent texteditComponent(&engine);
- texteditComponent.setData("import Qt 4.6\nTextEdit { text: \"\" }", QUrl());
+ texteditComponent.setData("import Qt 4.7\nTextEdit { text: \"\" }", QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
QVERIFY(textEditObject != 0);
@@ -158,7 +159,7 @@ void tst_qdeclarativetextedit::text()
for (int i = 0; i < standard.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -169,7 +170,7 @@ void tst_qdeclarativetextedit::text()
for (int i = 0; i < richText.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -189,7 +190,7 @@ void tst_qdeclarativetextedit::width()
// uses Font metrics to find the width for standard and document to find the width for rich
{
QDeclarativeComponent texteditComponent(&engine);
- texteditComponent.setData("import Qt 4.6\nTextEdit { text: \"\" }", QUrl());
+ texteditComponent.setData("import Qt 4.7\nTextEdit { text: \"\" }", QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
QVERIFY(textEditObject != 0);
@@ -203,7 +204,7 @@ void tst_qdeclarativetextedit::width()
qreal metricWidth = fm.size(Qt::TextExpandTabs && Qt::TextShowMnemonic, standard.at(i)).width();
metricWidth = floor(metricWidth);
- QString componentStr = "import Qt 4.6\nTextEdit { text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -220,7 +221,7 @@ void tst_qdeclarativetextedit::width()
int documentWidth = document.idealWidth();
- QString componentStr = "import Qt 4.6\nTextEdit { text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -235,7 +236,7 @@ void tst_qdeclarativetextedit::wrap()
// for specified width and wrap set true
{
QDeclarativeComponent texteditComponent(&engine);
- texteditComponent.setData("import Qt 4.6\nTextEdit { text: \"\"; wrap: true; width: 300 }", QUrl());
+ texteditComponent.setData("import Qt 4.7\nTextEdit { text: \"\"; wrapMode: TextEdit.WordWrap; width: 300 }", QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
QVERIFY(textEditObject != 0);
@@ -244,7 +245,7 @@ void tst_qdeclarativetextedit::wrap()
for (int i = 0; i < standard.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { wrap: true; width: 300; text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { wrapMode: TextEdit.WordWrap; width: 300; text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -255,7 +256,7 @@ void tst_qdeclarativetextedit::wrap()
for (int i = 0; i < richText.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { wrap: true; width: 300; text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { wrapMode: TextEdit.WordWrap; width: 300; text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -270,7 +271,7 @@ void tst_qdeclarativetextedit::textFormat()
{
{
QDeclarativeComponent textComponent(&engine);
- textComponent.setData("import Qt 4.6\nTextEdit { text: \"Hello\"; textFormat: Text.RichText }", QUrl::fromLocalFile(""));
+ textComponent.setData("import Qt 4.7\nTextEdit { text: \"Hello\"; textFormat: Text.RichText }", QUrl::fromLocalFile(""));
QDeclarativeTextEdit *textObject = qobject_cast<QDeclarativeTextEdit*>(textComponent.create());
QVERIFY(textObject != 0);
@@ -278,7 +279,7 @@ void tst_qdeclarativetextedit::textFormat()
}
{
QDeclarativeComponent textComponent(&engine);
- textComponent.setData("import Qt 4.6\nTextEdit { text: \"<b>Hello</b>\"; textFormat: Text.PlainText }", QUrl::fromLocalFile(""));
+ textComponent.setData("import Qt 4.7\nTextEdit { text: \"<b>Hello</b>\"; textFormat: Text.PlainText }", QUrl::fromLocalFile(""));
QDeclarativeTextEdit *textObject = qobject_cast<QDeclarativeTextEdit*>(textComponent.create());
QVERIFY(textObject != 0);
@@ -295,7 +296,7 @@ void tst_qdeclarativetextedit::hAlign()
{
for (int j=0; j < hAlignmentStrings.size(); j++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { horizontalAlignment: \"" + hAlignmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { horizontalAlignment: \"" + hAlignmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -309,7 +310,7 @@ void tst_qdeclarativetextedit::hAlign()
{
for (int j=0; j < hAlignmentStrings.size(); j++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { horizontalAlignment: \"" + hAlignmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { horizontalAlignment: \"" + hAlignmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -329,7 +330,7 @@ void tst_qdeclarativetextedit::vAlign()
{
for (int j=0; j < vAlignmentStrings.size(); j++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { verticalAlignment: \"" + vAlignmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { verticalAlignment: \"" + vAlignmentStrings.at(j) + "\"; text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -343,7 +344,7 @@ void tst_qdeclarativetextedit::vAlign()
{
for (int j=0; j < vAlignmentStrings.size(); j++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { verticalAlignment: \"" + vAlignmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { verticalAlignment: \"" + vAlignmentStrings.at(j) + "\"; text: \"" + richText.at(i) + "\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -359,7 +360,7 @@ void tst_qdeclarativetextedit::font()
{
//test size, then bold, then italic, then family
{
- QString componentStr = "import Qt 4.6\nTextEdit { font.pointSize: 40; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { font.pointSize: 40; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -371,7 +372,7 @@ void tst_qdeclarativetextedit::font()
}
{
- QString componentStr = "import Qt 4.6\nTextEdit { font.bold: true; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { font.bold: true; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -382,7 +383,7 @@ void tst_qdeclarativetextedit::font()
}
{
- QString componentStr = "import Qt 4.6\nTextEdit { font.italic: true; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { font.italic: true; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -393,7 +394,7 @@ void tst_qdeclarativetextedit::font()
}
{
- QString componentStr = "import Qt 4.6\nTextEdit { font.family: \"Helvetica\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { font.family: \"Helvetica\"; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -405,7 +406,7 @@ void tst_qdeclarativetextedit::font()
}
{
- QString componentStr = "import Qt 4.6\nTextEdit { font.family: \"\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { font.family: \"\"; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -420,7 +421,7 @@ void tst_qdeclarativetextedit::color()
//test normal
for (int i = 0; i < colorStrings.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -432,7 +433,7 @@ void tst_qdeclarativetextedit::color()
//test selection
for (int i = 0; i < colorStrings.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { selectionColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { selectionColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -443,7 +444,7 @@ void tst_qdeclarativetextedit::color()
//test selected text
for (int i = 0; i < colorStrings.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextEdit { selectedTextColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { selectedTextColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -456,7 +457,7 @@ void tst_qdeclarativetextedit::color()
QColor testColor("#001234");
testColor.setAlpha(170);
- QString componentStr = "import Qt 4.6\nTextEdit { color: \"" + colorStr + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { color: \"" + colorStr + "\"; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -469,7 +470,7 @@ void tst_qdeclarativetextedit::color()
void tst_qdeclarativetextedit::textMargin()
{
for(qreal i=0; i<=10; i+=0.3){
- QString componentStr = "import Qt 4.6\nTextEdit { textMargin: " + QString::number(i) + "; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { textMargin: " + QString::number(i) + "; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -481,7 +482,7 @@ void tst_qdeclarativetextedit::textMargin()
void tst_qdeclarativetextedit::persistentSelection()
{
{
- QString componentStr = "import Qt 4.6\nTextEdit { persistentSelection: true; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { persistentSelection: true; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -490,7 +491,7 @@ void tst_qdeclarativetextedit::persistentSelection()
}
{
- QString componentStr = "import Qt 4.6\nTextEdit { persistentSelection: false; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { persistentSelection: false; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -502,7 +503,7 @@ void tst_qdeclarativetextedit::persistentSelection()
void tst_qdeclarativetextedit::focusOnPress()
{
{
- QString componentStr = "import Qt 4.6\nTextEdit { focusOnPress: true; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { focusOnPress: true; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -511,7 +512,7 @@ void tst_qdeclarativetextedit::focusOnPress()
}
{
- QString componentStr = "import Qt 4.6\nTextEdit { focusOnPress: false; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextEdit { focusOnPress: false; text: \"Hello World\" }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -523,7 +524,7 @@ void tst_qdeclarativetextedit::focusOnPress()
void tst_qdeclarativetextedit::selection()
{
QString testStr = standard[0];//TODO: What should happen for multiline/rich text?
- QString componentStr = "import Qt 4.6\nTextEdit { text: \""+ testStr +"\"; }";
+ QString componentStr = "import Qt 4.7\nTextEdit { text: \""+ testStr +"\"; }";
QDeclarativeComponent texteditComponent(&engine);
texteditComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
@@ -641,39 +642,60 @@ void tst_qdeclarativetextedit::cursorDelegate()
QVERIFY(!textEditObject->findChild<QDeclarativeItem*>("cursorInstance"));
}
+void tst_qdeclarativetextedit::delegateLoading_data()
+{
+ QTest::addColumn<QString>("qmlfile");
+ QTest::addColumn<QString>("error");
+
+ // import installed
+ QTest::newRow("pass") << "cursorHttpTestPass.qml" << "";
+ QTest::newRow("fail1") << "cursorHttpTestFail1.qml" << ":-1: Network error for URL http://localhost:42332/FailItem.qml ";
+ QTest::newRow("fail2") << "cursorHttpTestFail2.qml" << "http://localhost:42332/ErrItem.qml:4:5: Fungus is not a type ";
+}
+
void tst_qdeclarativetextedit::delegateLoading()
{
+ QFETCH(QString, qmlfile);
+ QFETCH(QString, error);
+
TestHTTPServer server(42332);
server.serveDirectory(SRCDIR "/data/httpfail", TestHTTPServer::Disconnect);
server.serveDirectory(SRCDIR "/data/httpslow", TestHTTPServer::Delay);
server.serveDirectory(SRCDIR "/data/http");
+
QDeclarativeView* view = new QDeclarativeView(0);
- view->setSource(QUrl("http://localhost:42332/cursorHttpTestPass.qml"));
- view->show();
- view->setFocus();
- QTRY_VERIFY(view->rootObject());//Wait for loading to finish.
- QDeclarativeTextEdit *textEditObject = view->rootObject()->findChild<QDeclarativeTextEdit*>("textEditObject");
- // view->rootObject()->dumpObjectTree();
- QVERIFY(textEditObject != 0);
- textEditObject->setFocus(true);
- QDeclarativeItem *delegate;
- delegate = view->rootObject()->findChild<QDeclarativeItem*>("delegateOkay");
- QVERIFY(delegate);
- delegate = view->rootObject()->findChild<QDeclarativeItem*>("delegateSlow");
- QVERIFY(delegate);
- view->setSource(QUrl("http://localhost:42332/cursorHttpTestFail1.qml"));
- view->show();
- view->setFocus();
- QTRY_VERIFY(!view->rootObject()); // there is fail item inside this test
- view->setSource(QUrl("http://localhost:42332/cursorHttpTestFail2.qml"));
+
+ view->setSource(QUrl(QLatin1String("http://localhost:42332/") + qmlfile));
view->show();
view->setFocus();
- QTRY_VERIFY(!view->rootObject()); // there is fail item inside this test
- //ErrorB should get a component which is ready but component.create() returns null
+
+ if (!error.isEmpty()) {
+ QTest::ignoreMessage(QtWarningMsg, error.toUtf8());
+ QTRY_VERIFY(view->status()==QDeclarativeView::Error);
+ QTRY_VERIFY(!view->rootObject()); // there is fail item inside this test
+ } else {
+ QTRY_VERIFY(view->rootObject());//Wait for loading to finish.
+ QDeclarativeTextEdit *textEditObject = view->rootObject()->findChild<QDeclarativeTextEdit*>("textEditObject");
+ // view->rootObject()->dumpObjectTree();
+ QVERIFY(textEditObject != 0);
+ textEditObject->setFocus(true);
+ QDeclarativeItem *delegate;
+ delegate = view->rootObject()->findChild<QDeclarativeItem*>("delegateOkay");
+ QVERIFY(delegate);
+ delegate = view->rootObject()->findChild<QDeclarativeItem*>("delegateSlow");
+ QVERIFY(delegate);
+
+ delete delegate;
+ }
+
+
+ //A test should be added here with a component which is ready but component.create() returns null
//Not sure how to accomplish this with QDeclarativeTextEdits cursor delegate
- //###This could be a case of overzealous defensive programming
+ //###This was only needed for code coverage, and could be a case of overzealous defensive programming
//delegate = view->rootObject()->findChild<QDeclarativeItem*>("delegateErrorB");
//QVERIFY(!delegate);
+
+ delete view;
}
/*
diff --git a/tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml b/tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml
new file mode 100644
index 0000000..66a2017
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml
@@ -0,0 +1,11 @@
+import Qt 4.7
+
+Rectangle {
+ property QtObject myInput: input
+
+ width: 400; height: 200; color: "green"
+
+ TextInput { id: input; focus: true
+ text: "ABCDefgh"
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativetextinput/data/navigation.qml b/tests/auto/declarative/qdeclarativetextinput/data/navigation.qml
index 493db5b..04f06da 100644
--- a/tests/auto/declarative/qdeclarativetextinput/data/navigation.qml
+++ b/tests/auto/declarative/qdeclarativetextinput/data/navigation.qml
@@ -1,7 +1,7 @@
import Qt 4.6
Rectangle {
- property var myInput: input
+ property variant myInput: input
width: 800; height: 600; color: "blue"
diff --git a/tests/auto/declarative/qdeclarativetextinput/data/readOnly.qml b/tests/auto/declarative/qdeclarativetextinput/data/readOnly.qml
index c47371a..41e8b59 100644
--- a/tests/auto/declarative/qdeclarativetextinput/data/readOnly.qml
+++ b/tests/auto/declarative/qdeclarativetextinput/data/readOnly.qml
@@ -1,7 +1,7 @@
import Qt 4.6
Rectangle {
- property var myInput: input
+ property variant myInput: input
width: 800; height: 600; color: "blue"
diff --git a/tests/auto/declarative/qdeclarativetextinput/data/validators.qml b/tests/auto/declarative/qdeclarativetextinput/data/validators.qml
index 0c81548..4b1ba27 100644
--- a/tests/auto/declarative/qdeclarativetextinput/data/validators.qml
+++ b/tests/auto/declarative/qdeclarativetextinput/data/validators.qml
@@ -1,22 +1,21 @@
import Qt 4.7
Item {
- property var intInput: intInput
- property var dblInput: dblInput
- property var strInput: strInput
+ property variant intInput: intInput
+ property variant dblInput: dblInput
+ property variant strInput: strInput
width: 800; height: 600;
Column{
TextInput { id: intInput;
- validator: QIntValidator{top: 11; bottom: 2}
+ validator: IntValidator{top: 11; bottom: 2}
}
TextInput { id: dblInput;
- validator: QDoubleValidator{top: 12.12; bottom: 2.93; decimals: 2; notation: QDoubleValidator.StandardNotation}
+ validator: DoubleValidator{top: 12.12; bottom: 2.93; decimals: 2; notation: DoubleValidator.StandardNotation}
}
TextInput { id: strInput;
- //Requires QTBUG-8025 to be implemented first
- //validator: QRegExpValidator { regExp: /[a-zA-z]{2,4}/;}
+ validator: RegExpValidator { regExp: /[a-zA-z]{2,4}/ }
}
}
diff --git a/tests/auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro b/tests/auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro
index 5aed51f..957e75c 100644
--- a/tests/auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro
+++ b/tests/auto/declarative/qdeclarativetextinput/qdeclarativetextinput.pro
@@ -6,3 +6,4 @@ SOURCES += tst_qdeclarativetextinput.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
index 8b513e8..fcd7527 100644
--- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
+++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
@@ -72,7 +72,10 @@ private slots:
void readOnly();
void sendRequestSoftwareInputPanelEvent();
+ void setHAlignClearCache();
+ void focusOutClearSelection();
+ void echoMode();
private:
void simulateKey(QDeclarativeView *, int key);
QDeclarativeView *createView(const QString &filename);
@@ -106,22 +109,26 @@ void tst_qdeclarativetextinput::text()
{
{
QDeclarativeComponent textinputComponent(&engine);
- textinputComponent.setData("import Qt 4.6\nTextInput { text: \"\" }", QUrl());
+ textinputComponent.setData("import Qt 4.7\nTextInput { text: \"\" }", QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->text(), QString(""));
+
+ delete textinputObject;
}
for (int i = 0; i < standard.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextInput { text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->text(), standard.at(i));
+
+ delete textinputObject;
}
}
@@ -131,11 +138,13 @@ void tst_qdeclarativetextinput::width()
// uses Font metrics to find the width for standard
{
QDeclarativeComponent textinputComponent(&engine);
- textinputComponent.setData("import Qt 4.6\nTextInput { text: \"\" }", QUrl());
+ textinputComponent.setData("import Qt 4.7\nTextInput { text: \"\" }", QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->width(), 1.);//1 for the cursor
+
+ delete textinputObject;
}
for (int i = 0; i < standard.size(); i++)
@@ -144,13 +153,15 @@ void tst_qdeclarativetextinput::width()
QFontMetricsF fm(f);
qreal metricWidth = fm.width(standard.at(i));
- QString componentStr = "import Qt 4.6\nTextInput { text: \"" + standard.at(i) + "\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { text: \"" + standard.at(i) + "\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->width(), qreal(metricWidth) + 1.);//1 for the cursor
+
+ delete textinputObject;
}
}
@@ -158,7 +169,7 @@ void tst_qdeclarativetextinput::font()
{
//test size, then bold, then italic, then family
{
- QString componentStr = "import Qt 4.6\nTextInput { font.pointSize: 40; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { font.pointSize: 40; text: \"Hello World\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
@@ -167,10 +178,12 @@ void tst_qdeclarativetextinput::font()
QCOMPARE(textinputObject->font().pointSize(), 40);
QCOMPARE(textinputObject->font().bold(), false);
QCOMPARE(textinputObject->font().italic(), false);
+
+ delete textinputObject;
}
{
- QString componentStr = "import Qt 4.6\nTextInput { font.bold: true; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { font.bold: true; text: \"Hello World\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
@@ -178,10 +191,12 @@ void tst_qdeclarativetextinput::font()
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->font().bold(), true);
QCOMPARE(textinputObject->font().italic(), false);
+
+ delete textinputObject;
}
{
- QString componentStr = "import Qt 4.6\nTextInput { font.italic: true; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { font.italic: true; text: \"Hello World\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
@@ -189,10 +204,12 @@ void tst_qdeclarativetextinput::font()
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->font().italic(), true);
QCOMPARE(textinputObject->font().bold(), false);
+
+ delete textinputObject;
}
{
- QString componentStr = "import Qt 4.6\nTextInput { font.family: \"Helvetica\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { font.family: \"Helvetica\"; text: \"Hello World\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
@@ -201,16 +218,20 @@ void tst_qdeclarativetextinput::font()
QCOMPARE(textinputObject->font().family(), QString("Helvetica"));
QCOMPARE(textinputObject->font().bold(), false);
QCOMPARE(textinputObject->font().italic(), false);
+
+ delete textinputObject;
}
{
- QString componentStr = "import Qt 4.6\nTextInput { font.family: \"\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { font.family: \"\"; text: \"Hello World\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->font().family(), QString(""));
+
+ delete textinputObject;
}
}
@@ -219,34 +240,40 @@ void tst_qdeclarativetextinput::color()
//test color
for (int i = 0; i < colorStrings.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextInput { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { color: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->color(), QColor(colorStrings.at(i)));
+
+ delete textinputObject;
}
//test selection color
for (int i = 0; i < colorStrings.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextInput { selectionColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { selectionColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->selectionColor(), QColor(colorStrings.at(i)));
+
+ delete textinputObject;
}
//test selected text color
for (int i = 0; i < colorStrings.size(); i++)
{
- QString componentStr = "import Qt 4.6\nTextInput { selectedTextColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { selectedTextColor: \"" + colorStrings.at(i) + "\"; text: \"Hello World\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->selectedTextColor(), QColor(colorStrings.at(i)));
+
+ delete textinputObject;
}
{
@@ -254,20 +281,22 @@ void tst_qdeclarativetextinput::color()
QColor testColor("#001234");
testColor.setAlpha(170);
- QString componentStr = "import Qt 4.6\nTextInput { color: \"" + colorStr + "\"; text: \"Hello World\" }";
+ QString componentStr = "import Qt 4.7\nTextInput { color: \"" + colorStr + "\"; text: \"Hello World\" }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->color(), testColor);
+
+ delete textinputObject;
}
}
void tst_qdeclarativetextinput::selection()
{
QString testStr = standard[0];
- QString componentStr = "import Qt 4.6\nTextInput { text: \""+ testStr +"\"; }";
+ QString componentStr = "import Qt 4.7\nTextInput { text: \""+ testStr +"\"; }";
QDeclarativeComponent textinputComponent(&engine);
textinputComponent.setData(componentStr.toLatin1(), QUrl());
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
@@ -343,11 +372,13 @@ void tst_qdeclarativetextinput::selection()
QVERIFY(textinputObject->selectedText().size() == 10);
textinputObject->setSelectionEnd(100);
QVERIFY(textinputObject->selectedText().size() == 10);
+
+ delete textinputObject;
}
void tst_qdeclarativetextinput::maxLength()
{
- //QString componentStr = "import Qt 4.6\nTextInput { maximumLength: 10; }";
+ //QString componentStr = "import Qt 4.7\nTextInput { maximumLength: 10; }";
QDeclarativeView *canvas = createView(SRCDIR "/data/maxLength.qml");
canvas->show();
canvas->setFocus();
@@ -370,12 +401,14 @@ void tst_qdeclarativetextinput::maxLength()
QTest::keyPress(canvas, Qt::Key_A);
QTest::keyRelease(canvas, Qt::Key_A, Qt::NoModifier ,10);
}
+
+ delete canvas;
}
void tst_qdeclarativetextinput::masks()
{
//Not a comprehensive test of the possible masks, that's done elsewhere (QLineEdit)
- //QString componentStr = "import Qt 4.6\nTextInput { inputMask: 'HHHHhhhh'; }";
+ //QString componentStr = "import Qt 4.7\nTextInput { inputMask: 'HHHHhhhh'; }";
QDeclarativeView *canvas = createView(SRCDIR "/data/masks.qml");
canvas->show();
canvas->setFocus();
@@ -392,6 +425,8 @@ void tst_qdeclarativetextinput::masks()
QTest::keyPress(canvas, Qt::Key_A);
QTest::keyRelease(canvas, Qt::Key_A, Qt::NoModifier ,10);
}
+
+ delete canvas;
}
void tst_qdeclarativetextinput::validators()
@@ -462,7 +497,6 @@ void tst_qdeclarativetextinput::validators()
QVERIFY(strInput->hasFocus() == true);
QTest::keyPress(canvas, Qt::Key_1);
QTest::keyRelease(canvas, Qt::Key_1, Qt::NoModifier ,10);
- QEXPECT_FAIL("","Will not work until QTBUG-8025 is resolved", Abort);
QCOMPARE(strInput->text(), QLatin1String(""));
QCOMPARE(strInput->hasAcceptableInput(), false);
QTest::keyPress(canvas, Qt::Key_A);
@@ -485,6 +519,8 @@ void tst_qdeclarativetextinput::validators()
QTest::keyRelease(canvas, Qt::Key_A, Qt::NoModifier ,10);
QCOMPARE(strInput->text(), QLatin1String("aaaa"));
QCOMPARE(strInput->hasAcceptableInput(), true);
+
+ delete canvas;
}
void tst_qdeclarativetextinput::inputMethodHints()
@@ -499,6 +535,8 @@ void tst_qdeclarativetextinput::inputMethodHints()
QVERIFY(textinputObject->inputMethodHints() & Qt::ImhNoPredictiveText);
textinputObject->setInputMethodHints(Qt::ImhUppercaseOnly);
QVERIFY(textinputObject->inputMethodHints() & Qt::ImhUppercaseOnly);
+
+ delete canvas;
}
/*
@@ -523,7 +561,7 @@ void tst_qdeclarativetextinput::navigation()
QVERIFY(input->hasFocus() == false);
simulateKey(canvas, Qt::Key_Right);
QVERIFY(input->hasFocus() == true);
- //QT-2944: If text is selected, then we should deselect first.
+ //QT-2944: If text is selected, ensure we deselect upon cursor motion
input->setCursorPosition(input->text().length());
input->setSelectionStart(0);
input->setSelectionEnd(input->text().length());
@@ -536,6 +574,8 @@ void tst_qdeclarativetextinput::navigation()
QVERIFY(input->hasFocus() == false);
simulateKey(canvas, Qt::Key_Left);
QVERIFY(input->hasFocus() == true);
+
+ delete canvas;
}
void tst_qdeclarativetextinput::cursorDelegate()
@@ -563,6 +603,8 @@ void tst_qdeclarativetextinput::cursorDelegate()
//Test Delegate gets deleted
textInputObject->setCursorDelegate(0);
QVERIFY(!textInputObject->findChild<QDeclarativeItem*>("cursorInstance"));
+
+ delete view;
}
void tst_qdeclarativetextinput::readOnly()
@@ -585,6 +627,46 @@ void tst_qdeclarativetextinput::readOnly()
simulateKey(canvas, Qt::Key_Space);
simulateKey(canvas, Qt::Key_Escape);
QCOMPARE(input->text(), initial);
+
+ delete canvas;
+}
+
+void tst_qdeclarativetextinput::echoMode()
+{
+ QDeclarativeView *canvas = createView(SRCDIR "/data/echoMode.qml");
+ canvas->show();
+ canvas->setFocus();
+
+ QVERIFY(canvas->rootObject() != 0);
+
+ QDeclarativeTextInput *input = qobject_cast<QDeclarativeTextInput *>(qvariant_cast<QObject *>(canvas->rootObject()->property("myInput")));
+
+ QVERIFY(input != 0);
+ QTRY_VERIFY(input->hasFocus() == true);
+ QString initial = input->text();
+ QCOMPARE(initial, QLatin1String("ABCDefgh"));
+ QCOMPARE(input->echoMode(), QDeclarativeTextInput::Normal);
+ QCOMPARE(input->displayText(), input->text());
+ input->setEchoMode(QDeclarativeTextInput::NoEcho);
+ QCOMPARE(input->text(), initial);
+ QCOMPARE(input->displayText(), QLatin1String(""));
+ QCOMPARE(input->passwordCharacter(), QLatin1String("*"));
+ input->setEchoMode(QDeclarativeTextInput::Password);
+ QCOMPARE(input->text(), initial);
+ QCOMPARE(input->displayText(), QLatin1String("********"));
+ input->setPasswordCharacter(QChar('Q'));
+ QCOMPARE(input->passwordCharacter(), QLatin1String("Q"));
+ QCOMPARE(input->text(), initial);
+ QCOMPARE(input->displayText(), QLatin1String("QQQQQQQQ"));
+ input->setEchoMode(QDeclarativeTextInput::PasswordEchoOnEdit);
+ QCOMPARE(input->text(), initial);
+ QCOMPARE(input->displayText(), QLatin1String("QQQQQQQQ"));
+ QTest::keyPress(canvas, Qt::Key_A);//Clearing previous entry is part of PasswordEchoOnEdit
+ QTest::keyRelease(canvas, Qt::Key_A, Qt::NoModifier ,10);
+ QCOMPARE(input->text(), QLatin1String("a"));
+ QCOMPARE(input->displayText(), QLatin1String("a"));
+ input->setFocus(false);
+ QCOMPARE(input->displayText(), QLatin1String("Q"));
}
void tst_qdeclarativetextinput::simulateKey(QDeclarativeView *view, int key)
@@ -651,6 +733,61 @@ void tst_qdeclarativetextinput::sendRequestSoftwareInputPanelEvent()
QCOMPARE(ic.softwareInputPanelEventReceived, true);
}
+class MyTextInput : public QDeclarativeTextInput
+{
+public:
+ MyTextInput(QDeclarativeItem *parent = 0) : QDeclarativeTextInput(parent)
+ {
+ nbPaint = 0;
+ }
+ void paint(QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
+ {
+ nbPaint++;
+ QDeclarativeTextInput::paint(painter, option, widget);
+ }
+ int nbPaint;
+};
+
+void tst_qdeclarativetextinput::setHAlignClearCache()
+{
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+ MyTextInput input;
+ input.setText("Hello world");
+ scene.addItem(&input);
+ view.show();
+ QApplication::setActiveWindow(&view);
+ QTest::qWaitForWindowShown(&view);
+ QTRY_COMPARE(input.nbPaint, 1);
+ input.setHAlign(QDeclarativeTextInput::AlignRight);
+ QApplication::processEvents();
+ //Changing the alignment should trigger a repaint
+ QCOMPARE(input.nbPaint, 2);
+}
+
+void tst_qdeclarativetextinput::focusOutClearSelection()
+{
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+ QDeclarativeTextInput input;
+ QDeclarativeTextInput input2;
+ input.setText(QLatin1String("Hello world"));
+ input.setFocus(true);
+ scene.addItem(&input2);
+ scene.addItem(&input);
+ view.show();
+ QApplication::setActiveWindow(&view);
+ QTest::qWaitForWindowShown(&view);
+ input.setSelectionStart(2);
+ input.setSelectionEnd(5);
+ //The selection should work
+ QTRY_COMPARE(input.selectedText(), QLatin1String("llo"));
+ input2.setFocus(true);
+ QApplication::processEvents();
+ //The input lost the focus selection should be cleared
+ QTRY_COMPARE(input.selectedText(), QLatin1String(""));
+}
+
QTEST_MAIN(tst_qdeclarativetextinput)
#include "tst_qdeclarativetextinput.moc"
diff --git a/tests/auto/declarative/qdeclarativetimer/qdeclarativetimer.pro b/tests/auto/declarative/qdeclarativetimer/qdeclarativetimer.pro
index b162739..42604d8 100644
--- a/tests/auto/declarative/qdeclarativetimer/qdeclarativetimer.pro
+++ b/tests/auto/declarative/qdeclarativetimer/qdeclarativetimer.pro
@@ -5,3 +5,5 @@ macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativetimer.cpp
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp b/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp
index b120d5d..a08a91c 100644
--- a/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp
+++ b/tests/auto/declarative/qdeclarativetimer/tst_qdeclarativetimer.cpp
@@ -38,6 +38,7 @@
** $QT_END_LICENSE$
**
****************************************************************************/
+#include <QtTest/QSignalSpy>
#include <qtest.h>
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
@@ -92,7 +93,7 @@ void tst_qdeclarativetimer::notRepeating()
{
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nTimer { interval: 100; running: true }"), QUrl::fromLocalFile(""));
+ component.setData(QByteArray("import Qt 4.7\nTimer { interval: 100; running: true }"), QUrl::fromLocalFile(""));
QDeclarativeTimer *timer = qobject_cast<QDeclarativeTimer*>(component.create());
QVERIFY(timer != 0);
QVERIFY(timer->isRunning());
@@ -113,7 +114,7 @@ void tst_qdeclarativetimer::notRepeatingStart()
{
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nTimer { interval: 100 }"), QUrl::fromLocalFile(""));
+ component.setData(QByteArray("import Qt 4.7\nTimer { interval: 100 }"), QUrl::fromLocalFile(""));
QDeclarativeTimer *timer = qobject_cast<QDeclarativeTimer*>(component.create());
QVERIFY(timer != 0);
QVERIFY(!timer->isRunning());
@@ -138,7 +139,7 @@ void tst_qdeclarativetimer::repeat()
{
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nTimer { interval: 100; repeat: true; running: true }"), QUrl::fromLocalFile(""));
+ component.setData(QByteArray("import Qt 4.7\nTimer { interval: 100; repeat: true; running: true }"), QUrl::fromLocalFile(""));
QDeclarativeTimer *timer = qobject_cast<QDeclarativeTimer*>(component.create());
QVERIFY(timer != 0);
@@ -161,6 +162,18 @@ void tst_qdeclarativetimer::repeat()
QVERIFY(helper.count == oldCount);
QVERIFY(timer->isRunning() == false);
+ QSignalSpy spy(timer, SIGNAL(repeatChanged()));
+
+ timer->setRepeating(false);
+ QVERIFY(!timer->isRepeating());
+ QCOMPARE(spy.count(),1);
+
+ timer->setRepeating(false);
+ QCOMPARE(spy.count(),1);
+
+ timer->setRepeating(true);
+ QCOMPARE(spy.count(),2);
+
delete timer;
}
@@ -168,7 +181,7 @@ void tst_qdeclarativetimer::triggeredOnStart()
{
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nTimer { interval: 100; running: true; triggeredOnStart: true }"), QUrl::fromLocalFile(""));
+ component.setData(QByteArray("import Qt 4.7\nTimer { interval: 100; running: true; triggeredOnStart: true }"), QUrl::fromLocalFile(""));
QDeclarativeTimer *timer = qobject_cast<QDeclarativeTimer*>(component.create());
QVERIFY(timer != 0);
QVERIFY(timer->triggeredOnStart());
@@ -184,6 +197,18 @@ void tst_qdeclarativetimer::triggeredOnStart()
QCOMPARE(helper.count, 2);
QVERIFY(timer->isRunning() == false);
+ QSignalSpy spy(timer, SIGNAL(triggeredOnStartChanged()));
+
+ timer->setTriggeredOnStart(false);
+ QVERIFY(!timer->triggeredOnStart());
+ QCOMPARE(spy.count(),1);
+
+ timer->setTriggeredOnStart(false);
+ QCOMPARE(spy.count(),1);
+
+ timer->setTriggeredOnStart(true);
+ QCOMPARE(spy.count(),2);
+
delete timer;
}
@@ -191,7 +216,7 @@ void tst_qdeclarativetimer::triggeredOnStartRepeat()
{
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nTimer { interval: 100; running: true; triggeredOnStart: true; repeat: true }"), QUrl::fromLocalFile(""));
+ component.setData(QByteArray("import Qt 4.7\nTimer { interval: 100; running: true; triggeredOnStart: true; repeat: true }"), QUrl::fromLocalFile(""));
QDeclarativeTimer *timer = qobject_cast<QDeclarativeTimer*>(component.create());
QVERIFY(timer != 0);
@@ -215,7 +240,7 @@ void tst_qdeclarativetimer::noTriggerIfNotRunning()
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
component.setData(QByteArray(
- "import Qt 4.6\n"
+ "import Qt 4.7\n"
"Item { property bool ok: true\n"
"Timer { id: t1; interval: 100; repeat: true; running: true; onTriggered: if (!running) ok=false }"
"Timer { interval: 10; running: true; onTriggered: t1.running=false }"
@@ -233,7 +258,7 @@ void tst_qdeclarativetimer::changeDuration()
{
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nTimer { interval: 200; repeat: true; running: true }"), QUrl::fromLocalFile(""));
+ component.setData(QByteArray("import Qt 4.7\nTimer { interval: 200; repeat: true; running: true }"), QUrl::fromLocalFile(""));
QDeclarativeTimer *timer = qobject_cast<QDeclarativeTimer*>(component.create());
QVERIFY(timer != 0);
@@ -250,6 +275,18 @@ void tst_qdeclarativetimer::changeDuration()
QCOMPARE(helper.count, 3);
QVERIFY(timer->isRunning());
+ QSignalSpy spy(timer, SIGNAL(intervalChanged()));
+
+ timer->setInterval(200);
+ QCOMPARE(timer->interval(), 200);
+ QCOMPARE(spy.count(),1);
+
+ timer->setInterval(200);
+ QCOMPARE(spy.count(),1);
+
+ timer->setInterval(300);
+ QCOMPARE(spy.count(),2);
+
delete timer;
}
@@ -257,7 +294,7 @@ void tst_qdeclarativetimer::restart()
{
QDeclarativeEngine engine;
QDeclarativeComponent component(&engine);
- component.setData(QByteArray("import Qt 4.6\nTimer { interval: 500; repeat: true; running: true }"), QUrl::fromLocalFile(""));
+ component.setData(QByteArray("import Qt 4.7\nTimer { interval: 500; repeat: true; running: true }"), QUrl::fromLocalFile(""));
QDeclarativeTimer *timer = qobject_cast<QDeclarativeTimer*>(component.create());
QVERIFY(timer != 0);
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/autoBindingRemoval.3.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/autoBindingRemoval.3.qml
index c82b533..d431b4a 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/autoBindingRemoval.3.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/autoBindingRemoval.3.qml
@@ -1,7 +1,7 @@
import Test 1.0
MyTypeObject {
- property var value
+ property variant value
rect: value
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/bindingVariantCopy.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingVariantCopy.qml
index 691a56c..3a48c8b 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/bindingVariantCopy.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/bindingVariantCopy.qml
@@ -1,7 +1,7 @@
import Test 1.0
MyTypeObject {
- property var object
+ property variant object
object: MyTypeObject {
rect.x: 19
rect.y: 33
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.1.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.1.qml
new file mode 100644
index 0000000..2697bb5
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.1.qml
@@ -0,0 +1,42 @@
+import Qt 4.6
+
+Rectangle {
+ id: root
+
+ width: 800
+ height: 600
+
+ property alias font: myText.font
+
+ property int myPixelSize: 12
+ property int myPixelSize2: 24
+
+ Text {
+ id: other
+ font.pixelSize: 6
+ }
+
+ Text {
+ id: myText
+
+ text: "Hello world!"
+ font.pixelSize: myPixelSize
+ }
+
+ states: State {
+ name: "Swapped"
+ PropertyChanges {
+ target: myText
+ font: other.font
+ }
+ }
+
+ function toggle() {
+ if (root.state == "") root.state = "Swapped"; else root.state = "";
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: { if (root.state == "") root.state = "Swapped"; else root.state = "";}
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.2.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.2.qml
new file mode 100644
index 0000000..478104e1
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.2.qml
@@ -0,0 +1,42 @@
+import Qt 4.6
+
+Rectangle {
+ id: root
+
+ width: 800
+ height: 600
+
+ property alias font: myText.font
+
+ property int myPixelSize: 12
+ property int myPixelSize2: 24
+
+ Text {
+ id: other
+ font.pixelSize: 6
+ }
+
+ Text {
+ id: myText
+
+ text: "Hello world!"
+ font: other.font
+ }
+
+ states: State {
+ name: "Swapped"
+ PropertyChanges {
+ target: myText
+ font.pixelSize: myPixelSize
+ }
+ }
+
+ function toggle() {
+ if (root.state == "") root.state = "Swapped"; else root.state = "";
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: { if (root.state == "") root.state = "Swapped"; else root.state = "";}
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.3.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.3.qml
new file mode 100644
index 0000000..d35c72e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/conflicting.3.qml
@@ -0,0 +1,42 @@
+import Qt 4.6
+
+Rectangle {
+ id: root
+
+ width: 800
+ height: 600
+
+ property alias font: myText.font
+
+ property int myPixelSize: 12
+ property int myPixelSize2: 24
+
+ Text {
+ id: other
+ font.pixelSize: 6
+ }
+
+ Text {
+ id: myText
+
+ text: "Hello world!"
+ font.pixelSize: myPixelSize
+ }
+
+ states: State {
+ name: "Swapped"
+ PropertyChanges {
+ target: myText
+ font.pixelSize: myPixelSize2
+ }
+ }
+
+ function toggle() {
+ if (root.state == "") root.state = "Swapped"; else root.state = "";
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: { if (root.state == "") root.state = "Swapped"; else root.state = "";}
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.qml
index 05459f4..7c22775 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/deletedObject.qml
@@ -1,12 +1,11 @@
import Test 1.0
import Qt 4.6
+import "deletedObject.js" as JS
MyTypeObject {
- property var object
-
- Script { source: "deletedObject.js" }
+ property variant object
object: MyTypeObject {}
- Component.onCompleted: startup()
- onRunScript: afterDelete()
+ Component.onCompleted: JS.startup()
+ onRunScript: JS.afterDelete()
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.1.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.1.qml
index 0eadd50..cb01a80 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.1.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.1.qml
@@ -1,6 +1,6 @@
import Test 1.0
MyTypeObject {
- font.capitalization: "MixedCase"
+ font.capitalization: "AllUppercase"
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.2.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.2.qml
index 81f1c92..93f1ed5 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.2.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.2.qml
@@ -1,6 +1,6 @@
import Test 1.0
MyTypeObject {
- font.capitalization: if (1) "MixedCase"
+ font.capitalization: if (1) "AllUppercase"
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.3.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.3.qml
new file mode 100644
index 0000000..3be5099
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.3.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+import Qt 4.6
+
+MyTypeObject {
+ font.capitalization: Font.AllUppercase
+}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/enums.4.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.4.qml
new file mode 100644
index 0000000..6b494e4
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/enums.4.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+import Qt 4.6 as MyQt
+
+MyTypeObject {
+ font.capitalization: MyQt.Font.AllUppercase
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/font_read.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/font_read.qml
index e1d1ce0..d73bb13 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/font_read.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/font_read.qml
@@ -13,6 +13,6 @@ MyTypeObject {
property int f_capitalization: font.capitalization
property real f_letterSpacing: font.letterSpacing
property real f_wordSpacing: font.wordSpacing;
- property var copy: font
+ property variant copy: font
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/font_write.4.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/font_write.4.qml
new file mode 100644
index 0000000..2ec69d7
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/font_write.4.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ font.pointSize: 19
+ font.pixelSize: 10
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/font_write.5.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/font_write.5.qml
new file mode 100644
index 0000000..4c12f21
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/font_write.5.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+import Test 1.0
+
+Item {
+ MyTypeObject {
+ objectName: "object1"
+ font.pixelSize: 19
+ }
+ MyTypeObject {
+ objectName: "object2"
+ font.pointSize: 14
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/point_read.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/point_read.qml
index 3e67de6..4bb6c53 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/point_read.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/point_read.qml
@@ -3,5 +3,5 @@ import Test 1.0
MyTypeObject {
property int p_x: point.x
property int p_y: point.y
- property var copy: point
+ property variant copy: point
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/pointf_read.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/pointf_read.qml
index d845a5b..0eab6da 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/pointf_read.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/pointf_read.qml
@@ -3,6 +3,6 @@ import Test 1.0
MyTypeObject {
property real p_x: pointf.x
property real p_y: pointf.y
- property var copy: pointf
+ property variant copy: pointf
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/rect_read.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/rect_read.qml
index 5364431..c3b37a7 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/rect_read.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/rect_read.qml
@@ -5,6 +5,6 @@ MyTypeObject {
property int r_y: rect.y
property int r_width: rect.width
property int r_height: rect.height
- property var copy: rect
+ property variant copy: rect
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/rectf_read.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/rectf_read.qml
index aeb9f41..6ff3ce3 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/rectf_read.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/rectf_read.qml
@@ -5,6 +5,6 @@ MyTypeObject {
property real r_y: rectf.y
property real r_width: rectf.width
property real r_height: rectf.height
- property var copy: rectf
+ property variant copy: rectf
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml
new file mode 100644
index 0000000..185e7ba
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/returnValues.qml
@@ -0,0 +1,17 @@
+import Test 1.0
+import Qt 4.6
+
+MyTypeObject {
+ property bool test1: false;
+ property bool test2: false;
+
+ Component.onCompleted: {
+ var a = method();
+
+ test1 = (a.width == 13)
+ test2 = (a.height == 14)
+
+ size = a;
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/scriptVariantCopy.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/scriptVariantCopy.qml
index 29157e8..42fccfa 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/scriptVariantCopy.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/scriptVariantCopy.qml
@@ -1,7 +1,7 @@
import Test 1.0
MyTypeObject {
- property var object
+ property variant object
object: MyTypeObject {
rect.x: 19
rect.y: 33
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/size_read.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/size_read.qml
index 86dba03..a49fd9f 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/size_read.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/size_read.qml
@@ -3,6 +3,6 @@ import Test 1.0
MyTypeObject {
property int s_width: size.width
property int s_height: size.height
- property var copy: size
+ property variant copy: size
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/sizef_read.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/sizef_read.qml
index c6f34e4..96cd425 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/sizef_read.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/sizef_read.qml
@@ -3,7 +3,7 @@ import Test 1.0
MyTypeObject {
property real s_width: sizef.width
property real s_height: sizef.height
- property var copy: sizef
+ property variant copy: sizef
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_read.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_read.qml
new file mode 100644
index 0000000..7f708a0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_read.qml
@@ -0,0 +1,8 @@
+import Test 1.0
+
+MyTypeObject {
+ property int s_width: sizereadonly.width
+ property int s_height: sizereadonly.height
+ property variant copy: sizereadonly
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror.qml
new file mode 100644
index 0000000..3254557
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror.qml
@@ -0,0 +1,6 @@
+import Test 1.0
+
+MyTypeObject {
+ sizereadonly: "13x88"
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror2.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror2.qml
new file mode 100644
index 0000000..656d718
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror2.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ sizereadonly.width: if (true) 13
+ sizereadonly.height: if (true) 88
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror3.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror3.qml
new file mode 100644
index 0000000..b8e3f0d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror3.qml
@@ -0,0 +1,7 @@
+import Test 1.0
+
+MyTypeObject {
+ sizereadonly.width: 13
+ sizereadonly.height: 88
+}
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror4.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror4.qml
new file mode 100644
index 0000000..8ae2ef8
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/sizereadonly_writeerror4.qml
@@ -0,0 +1,10 @@
+import Test 1.0
+import Qt 4.6
+
+MyTypeObject {
+ Component.onCompleted: {
+ sizereadonly.width = 13;
+ }
+}
+
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/valueInterceptors.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/valueInterceptors.qml
index 026ae83..0897847 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/valueInterceptors.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/valueInterceptors.qml
@@ -3,6 +3,6 @@ import Test 1.0
MyTypeObject {
property int value: 13;
- rect.x: MyOffsetValueInterceptor {}
+ MyOffsetValueInterceptor on rect.x {}
rect.x: value
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/valueSources.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/valueSources.qml
index d4d4391..717f350 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/valueSources.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/valueSources.qml
@@ -1,5 +1,5 @@
import Test 1.0
MyTypeObject {
- rect.x: MyConstantValueSource {}
+ MyConstantValueSource on rect.x {}
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/data/vector3d_read.qml b/tests/auto/declarative/qdeclarativevaluetypes/data/vector3d_read.qml
index abdf9f0..f1e876d 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/data/vector3d_read.qml
+++ b/tests/auto/declarative/qdeclarativevaluetypes/data/vector3d_read.qml
@@ -4,6 +4,6 @@ MyTypeObject {
property real v_x: vector.x
property real v_y: vector.y
property real v_z: vector.z
- property var copy: vector
+ property variant copy: vector
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro b/tests/auto/declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro
index 028fc57..d9f1c13 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro
+++ b/tests/auto/declarative/qdeclarativevaluetypes/qdeclarativevaluetypes.pro
@@ -8,3 +8,6 @@ SOURCES += tst_qdeclarativevaluetypes.cpp \
testtypes.cpp
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.cpp b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.cpp
index aa8bd6e..e30a319 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.cpp
+++ b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.cpp
@@ -42,7 +42,7 @@
void registerTypes()
{
- QML_REGISTER_TYPE(Test, 1, 0, MyTypeObject, MyTypeObject);
- QML_REGISTER_TYPE(Test, 1, 0, MyConstantValueSource, MyConstantValueSource);
- QML_REGISTER_TYPE(Test, 1, 0, MyOffsetValueInterceptor, MyOffsetValueInterceptor);
+ qmlRegisterType<MyTypeObject>("Test", 1, 0, "MyTypeObject");
+ qmlRegisterType<MyConstantValueSource>("Test", 1, 0, "MyConstantValueSource");
+ qmlRegisterType<MyOffsetValueInterceptor>("Test", 1, 0, "MyOffsetValueInterceptor");
}
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
index dfc2829..dd13429 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
+++ b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
@@ -59,14 +59,15 @@ class MyTypeObject : public QObject
{
Q_OBJECT
- Q_PROPERTY(QPoint point READ point WRITE setPoint NOTIFY changed);
- Q_PROPERTY(QPointF pointf READ pointf WRITE setPointf NOTIFY changed);
- Q_PROPERTY(QSize size READ size WRITE setSize NOTIFY changed);
- Q_PROPERTY(QSizeF sizef READ sizef WRITE setSizef NOTIFY changed);
- Q_PROPERTY(QRect rect READ rect WRITE setRect NOTIFY changed);
- Q_PROPERTY(QRectF rectf READ rectf WRITE setRectf NOTIFY changed);
- Q_PROPERTY(QVector3D vector READ vector WRITE setVector NOTIFY changed);
- Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY changed);
+ Q_PROPERTY(QPoint point READ point WRITE setPoint NOTIFY changed)
+ Q_PROPERTY(QPointF pointf READ pointf WRITE setPointf NOTIFY changed)
+ Q_PROPERTY(QSize size READ size WRITE setSize NOTIFY changed)
+ Q_PROPERTY(QSizeF sizef READ sizef WRITE setSizef NOTIFY changed)
+ Q_PROPERTY(QSize sizereadonly READ size NOTIFY changed)
+ Q_PROPERTY(QRect rect READ rect WRITE setRect NOTIFY changed)
+ Q_PROPERTY(QRectF rectf READ rectf WRITE setRectf NOTIFY changed)
+ Q_PROPERTY(QVector3D vector READ vector WRITE setVector NOTIFY changed)
+ Q_PROPERTY(QFont font READ font WRITE setFont NOTIFY changed)
public:
MyTypeObject() :
@@ -128,12 +129,16 @@ public:
signals:
void changed();
void runScript();
+
+public slots:
+ QSize method() { return QSize(13, 14); }
};
QML_DECLARE_TYPE(MyTypeObject);
class MyConstantValueSource : public QObject, public QDeclarativePropertyValueSource
{
Q_OBJECT
+ Q_INTERFACES(QDeclarativePropertyValueSource)
public:
virtual void setTarget(const QDeclarativeProperty &p) { p.write(3345); }
};
@@ -142,6 +147,7 @@ QML_DECLARE_TYPE(MyConstantValueSource);
class MyOffsetValueInterceptor : public QObject, public QDeclarativePropertyValueInterceptor
{
Q_OBJECT
+ Q_INTERFACES(QDeclarativePropertyValueInterceptor)
public:
virtual void setTarget(const QDeclarativeProperty &p) { prop = p; }
virtual void write(const QVariant &value) { QDeclarativePropertyPrivate::write(prop, value.toInt() + 13, QDeclarativePropertyPrivate::BypassInterceptor); }
diff --git a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
index 69646b9..b733b10 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
+++ b/tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp
@@ -59,6 +59,7 @@ private slots:
void pointf();
void size();
void sizef();
+ void sizereadonly();
void rect();
void rectf();
void vector3d();
@@ -77,6 +78,8 @@ private slots:
void scriptVariantCopy();
void cppClasses();
void enums();
+ void conflictingBindings();
+ void returnValues();
private:
QDeclarativeEngine engine;
@@ -192,6 +195,50 @@ void tst_qdeclarativevaluetypes::sizef()
}
}
+void tst_qdeclarativevaluetypes::sizereadonly()
+{
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("sizereadonly_read.qml"));
+ MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("s_width").toInt(), 1912);
+ QCOMPARE(object->property("s_height").toInt(), 1913);
+ QCOMPARE(object->property("copy"), QVariant(QSize(1912, 1913)));
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("sizereadonly_writeerror.qml"));
+ QVERIFY(component.isError());
+ QCOMPARE(component.errors().at(0).description(), QLatin1String("Invalid property assignment: \"sizereadonly\" is a read-only property"));
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("sizereadonly_writeerror2.qml"));
+ QVERIFY(component.isError());
+ QCOMPARE(component.errors().at(0).description(), QLatin1String("Invalid property assignment: \"sizereadonly\" is a read-only property"));
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("sizereadonly_writeerror3.qml"));
+ QVERIFY(component.isError());
+ QCOMPARE(component.errors().at(0).description(), QLatin1String("Invalid property assignment: \"sizereadonly\" is a read-only property"));
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("sizereadonly_writeerror4.qml"));
+
+ QObject *object = component.create();
+ QVERIFY(object);
+
+ QCOMPARE(object->property("sizereadonly").toSize(), QSize(1912, 1913));
+
+ delete object;
+ }
+}
+
void tst_qdeclarativevaluetypes::rect()
{
{
@@ -314,8 +361,17 @@ void tst_qdeclarativevaluetypes::font()
font.setLetterSpacing(QFont::AbsoluteSpacing, 9.7);
font.setWordSpacing(11.2);
- QEXPECT_FAIL("", "QT-2920", Continue);
- QCOMPARE(object->font(), font);
+ QFont f = object->font();
+ QCOMPARE(f.family(), font.family());
+ QCOMPARE(f.bold(), font.bold());
+ QCOMPARE(f.weight(), font.weight());
+ QCOMPARE(f.italic(), font.italic());
+ QCOMPARE(f.underline(), font.underline());
+ QCOMPARE(f.strikeOut(), font.strikeOut());
+ QCOMPARE(f.pointSize(), font.pointSize());
+ QCOMPARE(f.capitalization(), font.capitalization());
+ QCOMPARE(f.letterSpacing(), font.letterSpacing());
+ QCOMPARE(f.wordSpacing(), font.wordSpacing());
delete object;
}
@@ -342,6 +398,30 @@ void tst_qdeclarativevaluetypes::font()
delete object;
}
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("font_write.4.qml"));
+ QTest::ignoreMessage(QtWarningMsg, "Both point size and pixel size set. Using pixel size. ");
+ MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->font().pixelSize(), 10);
+
+ delete object;
+ }
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("font_write.5.qml"));
+ QObject *object = qobject_cast<QObject *>(component.create());
+ QVERIFY(object != 0);
+ MyTypeObject *object1 = object->findChild<MyTypeObject *>("object1");
+ QVERIFY(object1 != 0);
+ MyTypeObject *object2 = object->findChild<MyTypeObject *>("object2");
+ QVERIFY(object2 != 0);
+
+ QCOMPARE(object1->font().pixelSize(), 19);
+ QCOMPARE(object2->font().pointSize(), 14);
+
+ delete object;
+ }
}
// Test bindings can write to value types
@@ -422,12 +502,12 @@ void tst_qdeclarativevaluetypes::autoBindingRemoval()
object->setProperty("value", QVariant(92));
- QEXPECT_FAIL("", "QT-2920", Continue);
QCOMPARE(object->rect().x(), 42);
delete object;
}
+ /*
{
QDeclarativeComponent component(&engine, TEST_FILE("autoBindingRemoval.2.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
@@ -465,12 +545,11 @@ void tst_qdeclarativevaluetypes::autoBindingRemoval()
object->setProperty("value", QVariant(QRect(19, 3, 4, 8)));
- QEXPECT_FAIL("", "QT-2920", Continue);
QCOMPARE(object->rect(), QRect(44, 22, 33, 44));
delete object;
}
-
+*/
}
// Test that property value sources assign to value types
@@ -502,10 +581,9 @@ void tst_qdeclarativevaluetypes::valueInterceptors()
QDeclarativeComponent component(&engine, TEST_FILE("valueInterceptors.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
checkNoErrors(component);
- QEXPECT_FAIL("", "QT-2920", Abort);
QVERIFY(object != 0);
- QCOMPARE(object->rect().x(), 26);
+ QCOMPARE(object->rect().x(), 13);
object->setProperty("value", 99);
@@ -598,7 +676,7 @@ void tst_qdeclarativevaluetypes::enums()
QDeclarativeComponent component(&engine, TEST_FILE("enums.1.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
QVERIFY(object != 0);
- QVERIFY(object->font().capitalization() == QFont::MixedCase);
+ QVERIFY(object->font().capitalization() == QFont::AllUppercase);
delete object;
}
@@ -606,9 +684,97 @@ void tst_qdeclarativevaluetypes::enums()
QDeclarativeComponent component(&engine, TEST_FILE("enums.2.qml"));
MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
QVERIFY(object != 0);
- QVERIFY(object->font().capitalization() == QFont::MixedCase);
+ QVERIFY(object->font().capitalization() == QFont::AllUppercase);
delete object;
}
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("enums.3.qml"));
+ MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
+ QVERIFY(object != 0);
+ QVERIFY(object->font().capitalization() == QFont::AllUppercase);
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("enums.4.qml"));
+ MyTypeObject *object = qobject_cast<MyTypeObject *>(component.create());
+ QVERIFY(object != 0);
+ QVERIFY(object->font().capitalization() == QFont::AllUppercase);
+ delete object;
+ }
+}
+
+// Tests switching between "conflicting" bindings (eg. a binding on the core
+// property, to a binding on the value-type sub-property)
+void tst_qdeclarativevaluetypes::conflictingBindings()
+{
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("conflicting.1.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(qvariant_cast<QFont>(object->property("font")).pixelSize(), 12);
+
+ QMetaObject::invokeMethod(object, "toggle");
+
+ QCOMPARE(qvariant_cast<QFont>(object->property("font")).pixelSize(), 6);
+
+ QMetaObject::invokeMethod(object, "toggle");
+
+ QCOMPARE(qvariant_cast<QFont>(object->property("font")).pixelSize(), 12);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("conflicting.2.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(qvariant_cast<QFont>(object->property("font")).pixelSize(), 6);
+
+ QMetaObject::invokeMethod(object, "toggle");
+
+ QCOMPARE(qvariant_cast<QFont>(object->property("font")).pixelSize(), 12);
+
+ QMetaObject::invokeMethod(object, "toggle");
+
+ QCOMPARE(qvariant_cast<QFont>(object->property("font")).pixelSize(), 6);
+
+ delete object;
+ }
+
+ {
+ QDeclarativeComponent component(&engine, TEST_FILE("conflicting.3.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(qvariant_cast<QFont>(object->property("font")).pixelSize(), 12);
+
+ QMetaObject::invokeMethod(object, "toggle");
+
+ QCOMPARE(qvariant_cast<QFont>(object->property("font")).pixelSize(), 24);
+
+ QMetaObject::invokeMethod(object, "toggle");
+
+ QCOMPARE(qvariant_cast<QFont>(object->property("font")).pixelSize(), 12);
+
+ delete object;
+ }
+}
+
+void tst_qdeclarativevaluetypes::returnValues()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("returnValues.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
+
+ QCOMPARE(object->property("test1").toBool(), true);
+ QCOMPARE(object->property("test2").toBool(), true);
+ QCOMPARE(object->property("size").toSize(), QSize(13, 14));
+
+ delete object;
}
QTEST_MAIN(tst_qdeclarativevaluetypes)
diff --git a/tests/auto/declarative/qdeclarativewebview/data/basic.qml b/tests/auto/declarative/qdeclarativewebview/data/basic.qml
index 5394837..f0b41ef 100644
--- a/tests/auto/declarative/qdeclarativewebview/data/basic.qml
+++ b/tests/auto/declarative/qdeclarativewebview/data/basic.qml
@@ -1,4 +1,5 @@
import Qt 4.6
+import org.webkit 1.0
WebView {
url: "basic.html"
diff --git a/tests/auto/declarative/qdeclarativewebview/data/elements.qml b/tests/auto/declarative/qdeclarativewebview/data/elements.qml
index 7c030e6..16e5788 100644
--- a/tests/auto/declarative/qdeclarativewebview/data/elements.qml
+++ b/tests/auto/declarative/qdeclarativewebview/data/elements.qml
@@ -1,4 +1,5 @@
import Qt 4.6
+import org.webkit 1.0
WebView {
url: "elements.html"
diff --git a/tests/auto/declarative/qdeclarativewebview/data/forward.png b/tests/auto/declarative/qdeclarativewebview/data/forward.png
new file mode 100644
index 0000000..a82533e
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativewebview/data/forward.png
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativewebview/data/javaScript.qml b/tests/auto/declarative/qdeclarativewebview/data/javaScript.qml
index 07eee88..0e92e0e 100644
--- a/tests/auto/declarative/qdeclarativewebview/data/javaScript.qml
+++ b/tests/auto/declarative/qdeclarativewebview/data/javaScript.qml
@@ -1,4 +1,5 @@
import Qt 4.6
+import org.webkit 1.0
WebView {
url: "javaScript.html"
diff --git a/tests/auto/declarative/qdeclarativewebview/data/loadError.qml b/tests/auto/declarative/qdeclarativewebview/data/loadError.qml
index 1460f30..f827238 100644
--- a/tests/auto/declarative/qdeclarativewebview/data/loadError.qml
+++ b/tests/auto/declarative/qdeclarativewebview/data/loadError.qml
@@ -1,4 +1,5 @@
import Qt 4.6
+import org.webkit 1.0
WebView {
url: "does-not-exist.html"
diff --git a/tests/auto/declarative/qdeclarativewebview/data/newwindows.qml b/tests/auto/declarative/qdeclarativewebview/data/newwindows.qml
index 0bc8263..5f9f757 100644
--- a/tests/auto/declarative/qdeclarativewebview/data/newwindows.qml
+++ b/tests/auto/declarative/qdeclarativewebview/data/newwindows.qml
@@ -1,6 +1,7 @@
// Demonstrates opening new WebViews from HTML
import Qt 4.6
+import org.webkit 1.0
Grid {
columns: 3
@@ -22,8 +23,8 @@ Grid {
newWindowParent: pages
url: "newwindows.html"
Timer {
- interval: 10; running: webView.status==WebView.Ready && total<4; repeat: false;
- onTriggered: {total++; webView.evaluateJavaScript("clickTheLink()")}
+ interval: 10; running: total<4; repeat: false;
+ onTriggered: { if (webView.status==WebView.Ready) { total++; webView.evaluateJavaScript("clickTheLink()") } }
}
}
}
diff --git a/tests/auto/declarative/qdeclarativewebview/data/propertychanges.qml b/tests/auto/declarative/qdeclarativewebview/data/propertychanges.qml
index 3dd4e51..0770acf 100644
--- a/tests/auto/declarative/qdeclarativewebview/data/propertychanges.qml
+++ b/tests/auto/declarative/qdeclarativewebview/data/propertychanges.qml
@@ -1,4 +1,5 @@
import Qt 4.6
+import org.webkit 1.0
Item {
width: 240
@@ -30,4 +31,4 @@ Item {
pressGrabTime: 200
}
}
-} \ No newline at end of file
+}
diff --git a/tests/auto/declarative/qdeclarativewebview/data/sethtml.qml b/tests/auto/declarative/qdeclarativewebview/data/sethtml.qml
index 063b5a8..9e17597 100644
--- a/tests/auto/declarative/qdeclarativewebview/data/sethtml.qml
+++ b/tests/auto/declarative/qdeclarativewebview/data/sethtml.qml
@@ -1,4 +1,5 @@
import Qt 4.6
+import org.webkit 1.0
WebView {
html: "<p>This is a <b>string</b> set on the WebView"
diff --git a/tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro b/tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro
index 6af0a60..956272f 100644
--- a/tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro
+++ b/tests/auto/declarative/qdeclarativewebview/qdeclarativewebview.pro
@@ -3,8 +3,9 @@ contains(QT_CONFIG,declarative): QT += declarative
contains(QT_CONFIG,webkit): QT += webkit
macx:CONFIG -= app_bundle
-SOURCES += tst_qdeclarativewebview.cpp testtypes.cpp
-HEADERS += testtypes.h
+SOURCES += tst_qdeclarativewebview.cpp
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/qdeclarativewebview/testtypes.cpp b/tests/auto/declarative/qdeclarativewebview/testtypes.cpp
deleted file mode 100644
index 7efc214..0000000
--- a/tests/auto/declarative/qdeclarativewebview/testtypes.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include "testtypes.h"
-
-void MyWebView::drawContents(QPainter *p, const QRect &r)
-{
- pp += r.width()*r.height();
- QDeclarativeWebView::drawContents(p,r);
-}
-
-void registerTypes()
-{
- QML_REGISTER_TYPE(Test,1,0,MyWebView,MyWebView);
-}
diff --git a/tests/auto/declarative/qdeclarativewebview/testtypes.h b/tests/auto/declarative/qdeclarativewebview/testtypes.h
deleted file mode 100644
index 8eb703f..0000000
--- a/tests/auto/declarative/qdeclarativewebview/testtypes.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#ifndef TESTTYPES_H
-#define TESTTYPES_H
-
-#include <private/qdeclarativewebview_p.h>
-
-class MyWebView : public QDeclarativeWebView
-{
- Q_OBJECT
- Q_PROPERTY(int pixelsPainted READ pixelsPainted);
-
-public:
- MyWebView() : pp(0) {}
-
- int pixelsPainted() const { return pp; }
-
- void drawContents(QPainter *p, const QRect &r);
-
-private:
- int pp;
-};
-
-QML_DECLARE_TYPE(MyWebView);
-
-void registerTypes();
-
-#endif // TESTTYPES_H
diff --git a/tests/auto/declarative/qdeclarativewebview/tst_qdeclarativewebview.cpp b/tests/auto/declarative/qdeclarativewebview/tst_qdeclarativewebview.cpp
index 6d16056..beabf86 100644
--- a/tests/auto/declarative/qdeclarativewebview/tst_qdeclarativewebview.cpp
+++ b/tests/auto/declarative/qdeclarativewebview/tst_qdeclarativewebview.cpp
@@ -43,15 +43,12 @@
#include "../../../shared/util.h"
#include <QtDeclarative/qdeclarativeengine.h>
#include <QtDeclarative/qdeclarativecomponent.h>
-#include <private/qdeclarativewebview_p.h>
-#include <private/qdeclarativewebview_p_p.h>
#include <private/qdeclarativepositioners_p.h>
#include <QtWebKit/qwebpage.h>
#include <QtWebKit/qwebframe.h>
#include <QtCore/qdir.h>
#include <QtCore/qfile.h>
#include <QtGui/qpainter.h>
-#include "testtypes.h"
class tst_qdeclarativewebview : public QObject
{
@@ -70,7 +67,7 @@ private slots:
void setHtml();
void javaScript();
void cleanupTestCase();
- void pixelCache();
+ //void pixelCache();
void newWindowParent();
void newWindowComponent();
void renderingEnabled();
@@ -89,7 +86,6 @@ private:
void tst_qdeclarativewebview::initTestCase()
{
- registerTypes();
}
static QString strippedHtml(QString html)
@@ -126,8 +122,7 @@ void tst_qdeclarativewebview::cleanupTestCase()
void tst_qdeclarativewebview::checkNoErrors(const QDeclarativeComponent& component)
{
// Wait until the component is ready
- QTRY_VERIFY(component.isReady());
-
+ QTRY_VERIFY(component.isReady() || component.isError());
if (component.isError()) {
QList<QDeclarativeError> errors = component.errors();
@@ -148,81 +143,82 @@ void tst_qdeclarativewebview::basicProperties()
checkNoErrors(component);
QWebSettings::enablePersistentStorage(tmpDir());
- QDeclarativeWebView *wv = qobject_cast<QDeclarativeWebView*>(component.create());
+ QObject *wv = component.create();
QVERIFY(wv != 0);
- QTRY_COMPARE(wv->progress(), 1.0);
- QCOMPARE(wv->title(),QString("Basic"));
- QTRY_COMPARE(wv->icon().width(), 48);
- QCOMPARE(wv->icon(),QPixmap(SRCDIR "/data/basic.png"));
- QCOMPARE(wv->statusText(),QString("status here"));
- QCOMPARE(strippedHtml(fileContents(SRCDIR "/data/basic.html")), strippedHtml(wv->html()));
- QCOMPARE(wv->width(), 123.0);
- QCOMPARE(wv->preferredWidth(), 0);
- QCOMPARE(wv->preferredHeight(), 0);
- QCOMPARE(wv->zoomFactor(), 1.0);
- QCOMPARE(wv->url(), QUrl::fromLocalFile(SRCDIR "/data/basic.html"));
- QCOMPARE(wv->status(), QDeclarativeWebView::Ready);
- QVERIFY(wv->reloadAction());
- QVERIFY(wv->reloadAction()->isEnabled());
- QVERIFY(wv->backAction());
- QVERIFY(!wv->backAction()->isEnabled());
- QVERIFY(wv->forwardAction());
- QVERIFY(!wv->forwardAction()->isEnabled());
- QVERIFY(wv->stopAction());
- QVERIFY(!wv->stopAction()->isEnabled());
-
- wv->setPixelCacheSize(0); // mainly testing that it doesn't crash or anything!
- QCOMPARE(wv->pixelCacheSize(),0);
- wv->reloadAction()->trigger();
- QTRY_COMPARE(wv->progress(), 1.0);
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
+ QCOMPARE(wv->property("title").toString(),QString("Basic"));
+ QTRY_COMPARE(qvariant_cast<QPixmap>(wv->property("icon")).width(), 48);
+ QCOMPARE(qvariant_cast<QPixmap>(wv->property("icon")),QPixmap(SRCDIR "/data/basic.png"));
+ QCOMPARE(wv->property("statusText").toString(),QString("status here"));
+ QCOMPARE(strippedHtml(fileContents(SRCDIR "/data/basic.html")), strippedHtml(wv->property("html").toString()));
+ QCOMPARE(wv->property("width").toDouble(), 123.0);
+ QCOMPARE(wv->property("preferredWidth").toInt(), 0);
+ QCOMPARE(wv->property("preferredHeight").toInt(), 0);
+ QCOMPARE(wv->property("zoomFactor").toDouble(), 1.0);
+ QCOMPARE(wv->property("url").toUrl(), QUrl::fromLocalFile(SRCDIR "/data/basic.html"));
+ QCOMPARE(wv->property("status").toInt(), 1 /*QDeclarativeWebView::Ready*/);
+ QVERIFY(qvariant_cast<QAction*>(wv->property("reload")));
+ QVERIFY(qvariant_cast<QAction*>(wv->property("reload"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("back")));
+ QVERIFY(!qvariant_cast<QAction*>(wv->property("back"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("forward")));
+ QVERIFY(!qvariant_cast<QAction*>(wv->property("forward"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("stop")));
+ QVERIFY(!qvariant_cast<QAction*>(wv->property("stop"))->isEnabled());
+
+ wv->setProperty("pixelCacheSize", 0); // mainly testing that it doesn't crash or anything!
+ QCOMPARE(wv->property("pixelCacheSize").toInt(),0);
+ qvariant_cast<QAction*>(wv->property("reload"))->trigger();
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
}
void tst_qdeclarativewebview::settings()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/basic.qml"));
checkNoErrors(component);
- QDeclarativeWebView *wv = qobject_cast<QDeclarativeWebView*>(component.create());
+ QObject *wv = component.create();
QVERIFY(wv != 0);
- QTRY_COMPARE(wv->progress(), 1.0);
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
- QDeclarativeWebSettings *s = wv->settingsObject();
+ QObject *s = QDeclarativeProperty(wv,"settings").object();
+ QVERIFY(s != 0);
// merely tests that setting gets stored (in QWebSettings)
// behavioural tests are in WebKit.
for (int b=0; b<=1; ++b) {
bool on = !!b;
- s->setAutoLoadImages(on);
- s->setDeveloperExtrasEnabled(on);
- s->setJavaEnabled(on);
- s->setJavascriptCanAccessClipboard(on);
- s->setJavascriptCanOpenWindows(on);
- s->setJavascriptEnabled(on);
- s->setLinksIncludedInFocusChain(on);
- s->setLocalContentCanAccessRemoteUrls(on);
- s->setLocalStorageDatabaseEnabled(on);
- s->setOfflineStorageDatabaseEnabled(on);
- s->setOfflineWebApplicationCacheEnabled(on);
- s->setPluginsEnabled(on);
- s->setPrintElementBackgrounds(on);
- s->setPrivateBrowsingEnabled(on);
- s->setZoomTextOnly(on);
-
- QVERIFY(s->autoLoadImages() == on);
- QVERIFY(s->developerExtrasEnabled() == on);
- QVERIFY(s->javaEnabled() == on);
- QVERIFY(s->javascriptCanAccessClipboard() == on);
- QVERIFY(s->javascriptCanOpenWindows() == on);
- QVERIFY(s->javascriptEnabled() == on);
- QVERIFY(s->linksIncludedInFocusChain() == on);
- QVERIFY(s->localContentCanAccessRemoteUrls() == on);
- QVERIFY(s->localStorageDatabaseEnabled() == on);
- QVERIFY(s->offlineStorageDatabaseEnabled() == on);
- QVERIFY(s->offlineWebApplicationCacheEnabled() == on);
- QVERIFY(s->pluginsEnabled() == on);
- QVERIFY(s->printElementBackgrounds() == on);
- QVERIFY(s->privateBrowsingEnabled() == on);
- QVERIFY(s->zoomTextOnly() == on);
+ s->setProperty("autoLoadImages", on);
+ s->setProperty("developerExtrasEnabled", on);
+ s->setProperty("javaEnabled", on);
+ s->setProperty("javascriptCanAccessClipboard", on);
+ s->setProperty("javascriptCanOpenWindows", on);
+ s->setProperty("javascriptEnabled", on);
+ s->setProperty("linksIncludedInFocusChain", on);
+ s->setProperty("localContentCanAccessRemoteUrls", on);
+ s->setProperty("localStorageDatabaseEnabled", on);
+ s->setProperty("offlineStorageDatabaseEnabled", on);
+ s->setProperty("offlineWebApplicationCacheEnabled", on);
+ s->setProperty("pluginsEnabled", on);
+ s->setProperty("printElementBackgrounds", on);
+ s->setProperty("privateBrowsingEnabled", on);
+ s->setProperty("zoomTextOnly", on);
+
+ QVERIFY(s->property("autoLoadImages") == on);
+ QVERIFY(s->property("developerExtrasEnabled") == on);
+ QVERIFY(s->property("javaEnabled") == on);
+ QVERIFY(s->property("javascriptCanAccessClipboard") == on);
+ QVERIFY(s->property("javascriptCanOpenWindows") == on);
+ QVERIFY(s->property("javascriptEnabled") == on);
+ QVERIFY(s->property("linksIncludedInFocusChain") == on);
+ QVERIFY(s->property("localContentCanAccessRemoteUrls") == on);
+ QVERIFY(s->property("localStorageDatabaseEnabled") == on);
+ QVERIFY(s->property("offlineStorageDatabaseEnabled") == on);
+ QVERIFY(s->property("offlineWebApplicationCacheEnabled") == on);
+ QVERIFY(s->property("pluginsEnabled") == on);
+ QVERIFY(s->property("printElementBackgrounds") == on);
+ QVERIFY(s->property("privateBrowsingEnabled") == on);
+ QVERIFY(s->property("zoomTextOnly") == on);
QVERIFY(s->property("autoLoadImages") == on);
QVERIFY(s->property("developerExtrasEnabled") == on);
@@ -248,65 +244,65 @@ void tst_qdeclarativewebview::historyNav()
checkNoErrors(component);
QWebSettings::enablePersistentStorage(tmpDir());
- QDeclarativeWebView *wv = qobject_cast<QDeclarativeWebView*>(component.create());
+ QObject *wv = component.create();
QVERIFY(wv != 0);
for (int i=1; i<=2; ++i) {
- QTRY_COMPARE(wv->progress(), 1.0);
- QCOMPARE(wv->title(),QString("Basic"));
- QTRY_COMPARE(wv->icon().width(), 48);
- QCOMPARE(wv->icon(),QPixmap(SRCDIR "/data/basic.png"));
- QCOMPARE(wv->statusText(),QString("status here"));
- QCOMPARE(strippedHtml(fileContents(SRCDIR "/data/basic.html")), strippedHtml(wv->html()));
- QCOMPARE(wv->width(), 123.0);
- QCOMPARE(wv->preferredWidth(), 0);
- QCOMPARE(wv->zoomFactor(), 1.0);
- QCOMPARE(wv->url(), QUrl::fromLocalFile(SRCDIR "/data/basic.html"));
- QCOMPARE(wv->status(), QDeclarativeWebView::Ready);
- QVERIFY(wv->reloadAction());
- QVERIFY(wv->reloadAction()->isEnabled());
- QVERIFY(wv->backAction());
- QVERIFY(!wv->backAction()->isEnabled());
- QVERIFY(wv->forwardAction());
- QVERIFY(!wv->forwardAction()->isEnabled());
- QVERIFY(wv->stopAction());
- QVERIFY(!wv->stopAction()->isEnabled());
-
- wv->reloadAction()->trigger();
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
+ QCOMPARE(wv->property("title").toString(),QString("Basic"));
+ QTRY_COMPARE(qvariant_cast<QPixmap>(wv->property("icon")).width(), 48);
+ QCOMPARE(qvariant_cast<QPixmap>(wv->property("icon")),QPixmap(SRCDIR "/data/basic.png"));
+ QCOMPARE(wv->property("statusText").toString(),QString("status here"));
+ QCOMPARE(strippedHtml(fileContents(SRCDIR "/data/basic.html")), strippedHtml(wv->property("html").toString()));
+ QCOMPARE(wv->property("width").toDouble(), 123.0);
+ QCOMPARE(wv->property("preferredWidth").toDouble(), 0.0);
+ QCOMPARE(wv->property("zoomFactor").toDouble(), 1.0);
+ QCOMPARE(wv->property("url").toUrl(), QUrl::fromLocalFile(SRCDIR "/data/basic.html"));
+ QCOMPARE(wv->property("status").toInt(), 1 /*QDeclarativeWebView::Ready*/);
+ QVERIFY(qvariant_cast<QAction*>(wv->property("reload")));
+ QVERIFY(qvariant_cast<QAction*>(wv->property("reload"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("back")));
+ QVERIFY(!qvariant_cast<QAction*>(wv->property("back"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("forward")));
+ QVERIFY(!qvariant_cast<QAction*>(wv->property("forward"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("stop")));
+ QVERIFY(!qvariant_cast<QAction*>(wv->property("stop"))->isEnabled());
+
+ qvariant_cast<QAction*>(wv->property("reload"))->trigger();
}
- wv->setUrl(QUrl::fromLocalFile(SRCDIR "/data/forward.html"));
- QTRY_COMPARE(wv->progress(), 1.0);
- QCOMPARE(wv->title(),QString("Forward"));
- QTRY_COMPARE(wv->icon().width(), 32);
- QCOMPARE(wv->icon(),QPixmap(SRCDIR "/data/forward.png"));
- QCOMPARE(strippedHtml(fileContents(SRCDIR "/data/forward.html")), strippedHtml(wv->html()));
- QCOMPARE(wv->url(), QUrl::fromLocalFile(SRCDIR "/data/forward.html"));
- QCOMPARE(wv->status(), QDeclarativeWebView::Ready);
- QCOMPARE(wv->statusText(),QString(""));
- QVERIFY(wv->reloadAction());
- QVERIFY(wv->reloadAction()->isEnabled());
- QVERIFY(wv->backAction());
- QVERIFY(wv->backAction()->isEnabled());
- QVERIFY(wv->forwardAction());
- QVERIFY(!wv->forwardAction()->isEnabled());
- QVERIFY(wv->stopAction());
- QVERIFY(!wv->stopAction()->isEnabled());
-
- wv->backAction()->trigger();
-
- QTRY_COMPARE(wv->progress(), 1.0);
- QCOMPARE(wv->title(),QString("Basic"));
- QCOMPARE(strippedHtml(fileContents(SRCDIR "/data/basic.html")), strippedHtml(wv->html()));
- QCOMPARE(wv->url(), QUrl::fromLocalFile(SRCDIR "/data/basic.html"));
- QCOMPARE(wv->status(), QDeclarativeWebView::Ready);
- QVERIFY(wv->reloadAction());
- QVERIFY(wv->reloadAction()->isEnabled());
- QVERIFY(wv->backAction());
- QVERIFY(!wv->backAction()->isEnabled());
- QVERIFY(wv->forwardAction());
- QVERIFY(wv->forwardAction()->isEnabled());
- QVERIFY(wv->stopAction());
- QVERIFY(!wv->stopAction()->isEnabled());
+ wv->setProperty("url", QUrl::fromLocalFile(SRCDIR "/data/forward.html"));
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
+ QCOMPARE(wv->property("title").toString(),QString("Forward"));
+ QTRY_COMPARE(qvariant_cast<QPixmap>(wv->property("icon")).width(), 32);
+ QCOMPARE(qvariant_cast<QPixmap>(wv->property("icon")),QPixmap(SRCDIR "/data/forward.png"));
+ QCOMPARE(strippedHtml(fileContents(SRCDIR "/data/forward.html")), strippedHtml(wv->property("html").toString()));
+ QCOMPARE(wv->property("url").toUrl(), QUrl::fromLocalFile(SRCDIR "/data/forward.html"));
+ QCOMPARE(wv->property("status").toInt(), 1 /*QDeclarativeWebView::Ready*/);
+ QCOMPARE(wv->property("statusText").toString(),QString(""));
+ QVERIFY(qvariant_cast<QAction*>(wv->property("reload")));
+ QVERIFY(qvariant_cast<QAction*>(wv->property("reload"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("back")));
+ QVERIFY(qvariant_cast<QAction*>(wv->property("back"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("forward")));
+ QVERIFY(!qvariant_cast<QAction*>(wv->property("forward"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("stop")));
+ QVERIFY(!qvariant_cast<QAction*>(wv->property("stop"))->isEnabled());
+
+ qvariant_cast<QAction*>(wv->property("back"))->trigger();
+
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
+ QCOMPARE(wv->property("title").toString(),QString("Basic"));
+ QCOMPARE(strippedHtml(fileContents(SRCDIR "/data/basic.html")), strippedHtml(wv->property("html").toString()));
+ QCOMPARE(wv->property("url").toUrl(), QUrl::fromLocalFile(SRCDIR "/data/basic.html"));
+ QCOMPARE(wv->property("status").toInt(), 1 /*QDeclarativeWebView::Ready*/);
+ QVERIFY(qvariant_cast<QAction*>(wv->property("reload")));
+ QVERIFY(qvariant_cast<QAction*>(wv->property("reload"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("back")));
+ QVERIFY(!qvariant_cast<QAction*>(wv->property("back"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("forward")));
+ QVERIFY(qvariant_cast<QAction*>(wv->property("forward"))->isEnabled());
+ QVERIFY(qvariant_cast<QAction*>(wv->property("stop")));
+ QVERIFY(!qvariant_cast<QAction*>(wv->property("stop"))->isEnabled());
}
void tst_qdeclarativewebview::multipleWindows()
@@ -316,8 +312,8 @@ void tst_qdeclarativewebview::multipleWindows()
QDeclarativeGrid *grid = qobject_cast<QDeclarativeGrid*>(component.create());
QVERIFY(grid != 0);
- QTRY_COMPARE(grid->children().count(), 2+5); // Component, Loader, 5 WebViews
- QDeclarativeItem* popup = qobject_cast<QDeclarativeItem*>(grid->children().at(3)); // first popup after Component, Loaded, original.
+ QTRY_COMPARE(grid->children().count(), 2+4); // Component, Loader (with 1 WebView), 4 new-window WebViews
+ QDeclarativeItem* popup = qobject_cast<QDeclarativeItem*>(grid->children().at(2)); // first popup after Component and Loader.
QVERIFY(popup != 0);
QTRY_COMPARE(popup->x(), 150.0);
}
@@ -328,16 +324,16 @@ void tst_qdeclarativewebview::loadError()
checkNoErrors(component);
QWebSettings::enablePersistentStorage(tmpDir());
- QDeclarativeWebView *wv = qobject_cast<QDeclarativeWebView*>(component.create());
+ QObject *wv = component.create();
QVERIFY(wv != 0);
for (int i=1; i<=2; ++i) {
- QTRY_COMPARE(wv->progress(), 1.0);
- QCOMPARE(wv->title(),QString(""));
- QCOMPARE(wv->statusText(),QString("")); // HTML 'status bar' text, not error message
- QCOMPARE(wv->url(), QUrl::fromLocalFile(SRCDIR "/data/does-not-exist.html")); // Unlike QWebPage, which loses url
- QCOMPARE(wv->status(), QDeclarativeWebView::Error);
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
+ QCOMPARE(wv->property("title").toString(),QString(""));
+ QCOMPARE(wv->property("statusText").toString(),QString("")); // HTML 'status bar' text, not error message
+ QCOMPARE(wv->property("url").toUrl(), QUrl::fromLocalFile(SRCDIR "/data/does-not-exist.html")); // Unlike QWebPage, which loses url
+ QCOMPARE(wv->property("status").toInt(), 3 /*QDeclarativeWebView::Error*/);
- wv->reloadAction()->trigger();
+ qvariant_cast<QAction*>(wv->property("reload"))->trigger();
}
}
@@ -345,12 +341,12 @@ void tst_qdeclarativewebview::setHtml()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/sethtml.qml"));
checkNoErrors(component);
- QDeclarativeWebView *wv = qobject_cast<QDeclarativeWebView*>(component.create());
+ QObject *wv = component.create();
QVERIFY(wv != 0);
- QCOMPARE(wv->html(),QString("<html><head></head><body><p>This is a <b>string</b> set on the WebView</p></body></html>"));
+ QCOMPARE(wv->property("html").toString(),QString("<html><head></head><body><p>This is a <b>string</b> set on the WebView</p></body></html>"));
QSignalSpy spy(wv, SIGNAL(htmlChanged()));
- wv->setHtml(QString("<html><head><title>Basic</title></head><body><p>text</p></body></html>"));
+ wv->setProperty("html", QString("<html><head><title>Basic</title></head><body><p>text</p></body></html>"));
QCOMPARE(spy.count(),1);
}
@@ -358,81 +354,91 @@ void tst_qdeclarativewebview::elementAreaAt()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/elements.qml"));
checkNoErrors(component);
- QDeclarativeWebView *wv = qobject_cast<QDeclarativeWebView*>(component.create());
+ QObject *wv = component.create();
QVERIFY(wv != 0);
- QTRY_COMPARE(wv->progress(), 1.0);
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
+ /* not now it's a plugin...
QCOMPARE(wv->elementAreaAt(40,30,100,100),QRect(1,1,75,54)); // Area A in data/elements.html
QCOMPARE(wv->elementAreaAt(130,30,200,100),QRect(78,3,110,50)); // Area B
QCOMPARE(wv->elementAreaAt(40,30,400,400),QRect(0,0,310,100)); // Whole view
QCOMPARE(wv->elementAreaAt(130,30,280,280),QRect(76,1,223,54)); // Area BC
QCOMPARE(wv->elementAreaAt(130,30,400,400),QRect(0,0,310,100)); // Whole view
+ */
}
void tst_qdeclarativewebview::javaScript()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/javaScript.qml"));
checkNoErrors(component);
- QDeclarativeWebView *wv = qobject_cast<QDeclarativeWebView*>(component.create());
+ QObject *wv = component.create();
QVERIFY(wv != 0);
- QTRY_COMPARE(wv->progress(), 1.0);
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
+ /* not now it's a plugin...
QCOMPARE(wv->evaluateJavaScript("123").toInt(), 123);
QCOMPARE(wv->evaluateJavaScript("window.status").toString(), QString("status here"));
QCOMPARE(wv->evaluateJavaScript("window.myjsname.qmlprop").toString(), QString("qmlvalue"));
+ */
}
+/*
+Cannot be done now that webkit is a plugin
+
void tst_qdeclarativewebview::pixelCache()
{
+
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/pixelCache.qml"));
checkNoErrors(component);
MyWebView *wv = qobject_cast<MyWebView*>(component.create());
QVERIFY(wv != 0);
- QTRY_COMPARE(wv->progress(), 1.0);
+ QTRY_COMPARE(wv->property("progress"), 1.0);
QPixmap pm(150,150);
QPainter p(&pm);
wv->paint(&p,0,0);
const int expected = 120*(150+128); // 120 = width of HTML page, 150=pixmap height, 128=cache extra area
- QCOMPARE(wv->pixelsPainted(), expected);
+ QCOMPARE(wv->property("pixelsPainted"), expected);
wv->paint(&p,0,0);
- QCOMPARE(wv->pixelsPainted(), expected); // nothing new needed to be painted
- wv->setPixelCacheSize(0); // clears the cache
+ QCOMPARE(wv->property("pixelsPainted"), expected); // nothing new needed to be painted
+ wv->setProperty("pixelCacheSize", 0); // clears the cache
wv->paint(&p,0,0);
- QCOMPARE(wv->pixelsPainted(), expected*2); // everything needed to be painted
+ QCOMPARE(wv->property("pixelsPainted"), expected*2); // everything needed to be painted
// Note that painted things always go into the cache (even if they don't "fit"),
// just that they will be removed if anything else needs to be painted.
- wv->setPixelCacheSize(expected); // won't clear the cache
+ wv->setProperty("pixelCacheSize", expected); // won't clear the cache
wv->paint(&p,0,0);
- QCOMPARE(wv->pixelsPainted(), expected*2); // still there
- wv->setPixelCacheSize(expected-1); // too small - will clear the cache
+ QCOMPARE(wv->property("pixelsPainted"), expected*2); // still there
+ wv->setProperty("pixelCacheSize", expected-1); // too small - will clear the cache
wv->paint(&p,0,0);
- QCOMPARE(wv->pixelsPainted(), expected*3); // repainted
+ QCOMPARE(wv->property("pixelsPainted"), expected*3); // repainted
}
+*/
void tst_qdeclarativewebview::newWindowParent()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/propertychanges.qml"));
checkNoErrors(component);
QDeclarativeItem *rootItem = qobject_cast<QDeclarativeItem*>(component.create());
- QDeclarativeWebView *wv = rootItem->findChild<QDeclarativeWebView*>("webView");
+ QObject *wv = rootItem->findChild<QObject*>("webView");
QVERIFY(rootItem != 0);
QVERIFY(wv != 0);
- QTRY_COMPARE(wv->progress(), 1.0);
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
QDeclarativeItem* oldWindowParent = rootItem->findChild<QDeclarativeItem*>("oldWindowParent");
- QCOMPARE(wv->newWindowParent(), oldWindowParent);
+ QCOMPARE(qvariant_cast<QDeclarativeItem*>(wv->property("newWindowParent")), oldWindowParent);
QSignalSpy newWindowParentSpy(wv, SIGNAL(newWindowParentChanged()));
QDeclarativeItem* newWindowParent = rootItem->findChild<QDeclarativeItem*>("newWindowParent");
- wv->setNewWindowParent(newWindowParent);
+ wv->setProperty("newWindowParent", QVariant::fromValue(newWindowParent));
+ QVERIFY(newWindowParent);
QVERIFY(oldWindowParent);
QVERIFY(oldWindowParent->childItems().count() == 0);
- QCOMPARE(wv->newWindowParent(), newWindowParent);
+ QCOMPARE(wv->property("newWindowParent"), QVariant::fromValue(newWindowParent));
QCOMPARE(newWindowParentSpy.count(),1);
- wv->setNewWindowParent(newWindowParent);
+ wv->setProperty("newWindowParent", QVariant::fromValue(newWindowParent));
QCOMPARE(newWindowParentSpy.count(),1);
- wv->setNewWindowParent(0);
+ wv->setProperty("newWindowParent", QVariant::fromValue((QDeclarativeItem*)0));
QCOMPARE(newWindowParentSpy.count(),2);
}
@@ -441,23 +447,23 @@ void tst_qdeclarativewebview::newWindowComponent()
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/propertychanges.qml"));
checkNoErrors(component);
QDeclarativeItem *rootItem = qobject_cast<QDeclarativeItem*>(component.create());
- QDeclarativeWebView *wv = rootItem->findChild<QDeclarativeWebView*>("webView");
+ QObject *wv = rootItem->findChild<QObject*>("webView");
QVERIFY(rootItem != 0);
QVERIFY(wv != 0);
- QTRY_COMPARE(wv->progress(), 1.0);
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
QDeclarativeComponent substituteComponent(&engine);
- substituteComponent.setData("import Qt 4.6; WebView { objectName: 'newWebView'; url: 'basic.html'; }", QUrl::fromLocalFile(""));
+ substituteComponent.setData("import Qt 4.7; WebView { objectName: 'newWebView'; url: 'basic.html'; }", QUrl::fromLocalFile(""));
QSignalSpy newWindowComponentSpy(wv, SIGNAL(newWindowComponentChanged()));
- wv->setNewWindowComponent(&substituteComponent);
- QCOMPARE(wv->newWindowComponent(), &substituteComponent);
+ wv->setProperty("newWindowComponent", QVariant::fromValue(&substituteComponent));
+ QCOMPARE(wv->property("newWindowComponent"), QVariant::fromValue(&substituteComponent));
QCOMPARE(newWindowComponentSpy.count(),1);
- wv->setNewWindowComponent(&substituteComponent);
+ wv->setProperty("newWindowComponent", QVariant::fromValue(&substituteComponent));
QCOMPARE(newWindowComponentSpy.count(),1);
- wv->setNewWindowComponent(0);
+ wv->setProperty("newWindowComponent", QVariant::fromValue((QDeclarativeComponent*)0));
QCOMPARE(newWindowComponentSpy.count(),2);
}
@@ -466,22 +472,22 @@ void tst_qdeclarativewebview::renderingEnabled()
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/propertychanges.qml"));
checkNoErrors(component);
QDeclarativeItem *rootItem = qobject_cast<QDeclarativeItem*>(component.create());
- QDeclarativeWebView *wv = rootItem->findChild<QDeclarativeWebView*>("webView");
+ QObject *wv = rootItem->findChild<QObject*>("webView");
QVERIFY(rootItem != 0);
QVERIFY(wv != 0);
- QTRY_COMPARE(wv->progress(), 1.0);
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
- QVERIFY(wv->renderingEnabled());
+ QVERIFY(wv->property("renderingEnabled").toBool());
QSignalSpy renderingEnabledSpy(wv, SIGNAL(renderingEnabledChanged()));
- wv->setRenderingEnabled(false);
- QVERIFY(!wv->renderingEnabled());
+ wv->setProperty("renderingEnabled", false);
+ QVERIFY(!wv->property("renderingEnabled").toBool());
QCOMPARE(renderingEnabledSpy.count(),1);
- wv->setRenderingEnabled(false);
+ wv->setProperty("renderingEnabled", false);
QCOMPARE(renderingEnabledSpy.count(),1);
- wv->setRenderingEnabled(true);
+ wv->setProperty("renderingEnabled", true);
QCOMPARE(renderingEnabledSpy.count(),2);
}
@@ -490,21 +496,21 @@ void tst_qdeclarativewebview::pressGrabTime()
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/propertychanges.qml"));
checkNoErrors(component);
QDeclarativeItem *rootItem = qobject_cast<QDeclarativeItem*>(component.create());
- QDeclarativeWebView *wv = rootItem->findChild<QDeclarativeWebView*>("webView");
+ QObject *wv = rootItem->findChild<QObject*>("webView");
QVERIFY(rootItem != 0);
QVERIFY(wv != 0);
- QTRY_COMPARE(wv->progress(), 1.0);
- QCOMPARE(wv->pressGrabTime(), 200);
+ QTRY_COMPARE(wv->property("progress").toDouble(), 1.0);
+ QCOMPARE(wv->property("pressGrabTime").toInt(), 200);
QSignalSpy pressGrabTimeSpy(wv, SIGNAL(pressGrabTimeChanged()));
- wv->setPressGrabTime(100);
- QCOMPARE(wv->pressGrabTime(), 100);
+ wv->setProperty("pressGrabTime", 100);
+ QCOMPARE(wv->property("pressGrabTime").toInt(), 100);
QCOMPARE(pressGrabTimeSpy.count(),1);
- wv->setPressGrabTime(100);
+ wv->setProperty("pressGrabTime", 100);
QCOMPARE(pressGrabTimeSpy.count(),1);
- wv->setPressGrabTime(0);
+ wv->setProperty("pressGrabTime", 0);
QCOMPARE(pressGrabTimeSpy.count(),2);
}
diff --git a/tests/auto/declarative/qdeclarativeworkerscript/data/script.js b/tests/auto/declarative/qdeclarativeworkerscript/data/script.js
new file mode 100644
index 0000000..09199de
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeworkerscript/data/script.js
@@ -0,0 +1,5 @@
+WorkerScript.onMessage = function(msg) {
+ WorkerScript.sendMessage(msg)
+}
+
+
diff --git a/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml b/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml
new file mode 100644
index 0000000..ca989f8
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml
@@ -0,0 +1,24 @@
+import Qt 4.6
+
+WorkerScript {
+ id: worker
+ source: "script.js"
+
+ property variant response
+
+ signal done()
+
+ function testSend(value) {
+ worker.sendMessage(value)
+ }
+
+ function compareLiteralResponse(expected) {
+ var e = eval('(' + expected + ')')
+ return worker.response == e
+ }
+
+ onMessage: {
+ worker.response = messageObject
+ worker.done()
+ }
+}
diff --git a/tests/auto/declarative/qdeclarativeworkerscript/qdeclarativeworkerscript.pro b/tests/auto/declarative/qdeclarativeworkerscript/qdeclarativeworkerscript.pro
new file mode 100644
index 0000000..2e3da4d
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeworkerscript/qdeclarativeworkerscript.pro
@@ -0,0 +1,11 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative script
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qdeclarativeworkerscript.cpp
+
+# Define SRCDIR equal to test's source directory
+DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp b/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp
new file mode 100644
index 0000000..a1dae24
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativeworkerscript/tst_qdeclarativeworkerscript.cpp
@@ -0,0 +1,182 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+#include <QtCore/qdebug.h>
+#include <QtCore/qtimer.h>
+#include <QtScript/qscriptengine.h>
+
+#include <QtDeclarative/qdeclarativecomponent.h>
+#include <QtDeclarative/qdeclarativeengine.h>
+#include <QtDeclarative/qdeclarativeitem.h>
+
+#include <private/qdeclarativeworkerscript_p.h>
+#include <private/qdeclarativeengine_p.h>
+#include "../../../shared/util.h"
+
+Q_DECLARE_METATYPE(QScriptValue)
+
+class tst_QDeclarativeWorkerScript : public QObject
+{
+ Q_OBJECT
+public:
+ tst_QDeclarativeWorkerScript() {}
+private slots:
+ void source();
+ void messaging();
+ void messaging_data();
+ void messaging_sendQObjectList();
+ void messaging_sendJsObject();
+
+private:
+ void waitForEchoMessage(QDeclarativeWorkerScript *worker) {
+ QEventLoop loop;
+ QVERIFY(connect(worker, SIGNAL(done()), &loop, SLOT(quit())));
+ QTimer timer;
+ timer.setSingleShot(true);
+ connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+ timer.start(10000);
+ loop.exec();
+ QVERIFY(timer.isActive());
+ }
+
+ QDeclarativeEngine m_engine;
+};
+
+void tst_QDeclarativeWorkerScript::source()
+{
+ QUrl source = QUrl::fromLocalFile(SRCDIR "/data/worker.qml");
+
+ QDeclarativeComponent component(&m_engine);
+ component.setData("import Qt 4.7\nWorkerScript { source: '" + source.toString().toUtf8() + "'; }", QUrl());
+
+ QDeclarativeWorkerScript *item = qobject_cast<QDeclarativeWorkerScript*>(component.create());
+ QVERIFY(item != 0);
+
+ QCOMPARE(item->source(), source);
+
+ qApp->processEvents();
+ delete item;
+}
+
+void tst_QDeclarativeWorkerScript::messaging()
+{
+ QFETCH(QVariant, value);
+
+ QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker.qml");
+ QDeclarativeWorkerScript *worker = qobject_cast<QDeclarativeWorkerScript*>(component.create());
+ QVERIFY(worker != 0);
+
+ QVERIFY(QMetaObject::invokeMethod(worker, "testSend", Q_ARG(QVariant, value)));
+ waitForEchoMessage(worker);
+
+ const QMetaObject *mo = worker->metaObject();
+ QCOMPARE(mo->property(mo->indexOfProperty("response")).read(worker).value<QVariant>(), value);
+
+ qApp->processEvents();
+ delete worker;
+}
+
+void tst_QDeclarativeWorkerScript::messaging_data()
+{
+ QTest::addColumn<QVariant>("value");
+
+ QTest::newRow("invalid") << QVariant();
+ QTest::newRow("bool") << qVariantFromValue(true);
+ QTest::newRow("int") << qVariantFromValue(1001);
+ QTest::newRow("real") << qVariantFromValue(10334.323);
+ QTest::newRow("string") << qVariantFromValue(QString("More cheeeese, Gromit!"));
+ QTest::newRow("variant list") << qVariantFromValue((QVariantList() << "a" << "b" << "c"));
+}
+
+void tst_QDeclarativeWorkerScript::messaging_sendQObjectList()
+{
+ // Not allowed to send QObjects other than QDeclarativeWorkerListModelAgent
+ // instances. If objects are sent in a list, they will be sent as 'undefined'
+ // js values.
+
+ QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker.qml");
+ QDeclarativeWorkerScript *worker = qobject_cast<QDeclarativeWorkerScript*>(component.create());
+ QVERIFY(worker != 0);
+
+ QVariantList objects;
+ for (int i=0; i<3; i++)
+ objects << qVariantFromValue(new QObject(this));
+
+ QVERIFY(QMetaObject::invokeMethod(worker, "testSend", Q_ARG(QVariant, qVariantFromValue(objects))));
+ waitForEchoMessage(worker);
+
+ const QMetaObject *mo = worker->metaObject();
+ QVariantList result = mo->property(mo->indexOfProperty("response")).read(worker).value<QVariantList>();
+ QCOMPARE(result, (QVariantList() << QVariant() << QVariant() << QVariant()));
+
+ qApp->processEvents();
+ delete worker;
+}
+
+void tst_QDeclarativeWorkerScript::messaging_sendJsObject()
+{
+ QDeclarativeComponent component(&m_engine, SRCDIR "/data/worker.qml");
+ QDeclarativeWorkerScript *worker = qobject_cast<QDeclarativeWorkerScript*>(component.create());
+ QVERIFY(worker != 0);
+
+ QString jsObject = "{'name': 'zyz', 'spell power': 3101, 'haste': 1125}";
+
+ QScriptEngine *engine = QDeclarativeEnginePrivate::getScriptEngine(qmlEngine(worker));
+ QScriptValue sv = engine->newObject();
+ sv.setProperty("name", "zyz");
+ sv.setProperty("spell power", 3101);
+ sv.setProperty("haste", 1125);
+
+ QVERIFY(QMetaObject::invokeMethod(worker, "testSend", Q_ARG(QVariant, qVariantFromValue(sv))));
+ waitForEchoMessage(worker);
+
+ QVariant result = qVariantFromValue(false);
+ QVERIFY(QMetaObject::invokeMethod(worker, "compareLiteralResponse", Qt::DirectConnection,
+ Q_RETURN_ARG(QVariant, result), Q_ARG(QVariant, jsObject)));
+ QVERIFY(result.toBool());
+
+ qApp->processEvents();
+ delete worker;
+}
+
+QTEST_MAIN(tst_QDeclarativeWorkerScript)
+
+#include "tst_qdeclarativeworkerscript.moc"
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.expect
index f43e043..4d21122 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.expect
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.expect
@@ -1,9 +1,9 @@
PUT /testdocument.html HTTP/1.1
+ACCEPT-LANGUAGE: en-US
Content-Type: text/plain;charset=UTF-8
Content-Length: 9
Connection: Keep-Alive
Accept-Encoding: gzip
-Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: 127.0.0.1:14445
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml
index d7b9266..729793e 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort.qml
@@ -13,6 +13,7 @@ QtObject {
var x = new XMLHttpRequest;
x.open("GET", urlDummy);
x.setRequestHeader("Test-header", "TestValue");
+ x.setRequestHeader("Accept-Language", "en-US");
x.send();
x.onreadystatechange = function() {
@@ -35,6 +36,7 @@ QtObject {
}
}
x.open("PUT", url);
+ x.setRequestHeader("Accept-Language", "en-US");
x.send("Test Data");
}
}
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml
index 72a45e7..33ca020 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_opened.qml
@@ -21,10 +21,12 @@ QtObject {
readyState = true;
x.open("PUT", url);
+ x.setRequestHeader("Accept-Language", "en-US");
x.abort();
x.open("GET", url);
+ x.setRequestHeader("Accept-Language", "en-US");
if (x.readyState == XMLHttpRequest.OPENED)
openedState = true;
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml
index aa78cde..c0957ed 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/abort_unsent.qml
@@ -21,6 +21,7 @@ QtObject {
readyState = true;
x.open("GET", url);
+ x.setRequestHeader("Accept-Language", "en-US");
if (x.readyState == XMLHttpRequest.OPENED)
openedState = true;
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.qml
index 9049fc7..0b4badc 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/attr.qml
@@ -4,55 +4,53 @@ QtObject {
property bool xmlTest: false
property bool dataOK: false
- Script {
- function checkAttr(documentElement, attr)
- {
- if (attr == null)
- return;
+ function checkAttr(documentElement, attr)
+ {
+ if (attr == null)
+ return;
- if (attr.name != "attr")
- return;
+ if (attr.name != "attr")
+ return;
- if (attr.value != "myvalue")
- return;
+ if (attr.value != "myvalue")
+ return;
- if (attr.ownerElement.tagName != documentElement.tagName)
- return;
+ if (attr.ownerElement.tagName != documentElement.tagName)
+ return;
- if (attr.nodeName != "attr")
- return;
+ if (attr.nodeName != "attr")
+ return;
- if (attr.nodeValue != "myvalue")
- return;
+ if (attr.nodeValue != "myvalue")
+ return;
- if (attr.nodeType != 2)
- return;
+ if (attr.nodeType != 2)
+ return;
- if (attr.childNodes.length != 0)
- return;
+ if (attr.childNodes.length != 0)
+ return;
- if (attr.firstChild != null)
- return;
+ if (attr.firstChild != null)
+ return;
- if (attr.lastChild != null)
- return;
+ if (attr.lastChild != null)
+ return;
- if (attr.previousSibling != null)
- return;
+ if (attr.previousSibling != null)
+ return;
- if (attr.nextSibling != null)
- return;
+ if (attr.nextSibling != null)
+ return;
- if (attr.attributes != null)
- return;
+ if (attr.attributes != null)
+ return;
- xmlTest = true;
- }
+ xmlTest = true;
+ }
- function checkXML(document)
- {
- checkAttr(document.documentElement, document.documentElement.attributes[0]);
- }
+ function checkXML(document)
+ {
+ checkAttr(document.documentElement, document.documentElement.attributes[0]);
}
Component.onCompleted: {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.qml
index b2d0209..928e514 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/cdata.qml
@@ -4,108 +4,106 @@ QtObject {
property bool xmlTest: false
property bool dataOK: false
- Script {
- function checkCData(text, whitespacetext)
- {
- // This is essentially a copy of text.qml/checkText()
+ function checkCData(text, whitespacetext)
+ {
+ // This is essentially a copy of text.qml/checkText()
- if (text == null)
- return;
+ if (text == null)
+ return;
- if (text.nodeName != "#cdata-section")
- return;
+ if (text.nodeName != "#cdata-section")
+ return;
- if (text.nodeValue != "Hello world!")
- return;
+ if (text.nodeValue != "Hello world!")
+ return;
- if (text.nodeType != 4)
- return;
+ if (text.nodeType != 4)
+ return;
- if (text.parentNode.nodeName != "item")
- return;
+ if (text.parentNode.nodeName != "item")
+ return;
- if (text.childNodes.length != 0)
- return;
+ if (text.childNodes.length != 0)
+ return;
- if (text.firstChild != null)
- return;
+ if (text.firstChild != null)
+ return;
- if (text.lastChild != null)
- return;
+ if (text.lastChild != null)
+ return;
- if (text.previousSibling != null)
- return;
+ if (text.previousSibling != null)
+ return;
- if (text.nextSibling != null)
- return;
+ if (text.nextSibling != null)
+ return;
- if (text.attributes != null)
- return;
+ if (text.attributes != null)
+ return;
- if (text.wholeText != "Hello world!")
- return;
+ if (text.wholeText != "Hello world!")
+ return;
- if (text.data != "Hello world!")
- return;
+ if (text.data != "Hello world!")
+ return;
- if (text.length != 12)
- return;
+ if (text.length != 12)
+ return;
- if (text.isElementContentWhitespace != false)
- return;
+ if (text.isElementContentWhitespace != false)
+ return;
- if (whitespacetext.nodeName != "#cdata-section")
- return;
+ if (whitespacetext.nodeName != "#cdata-section")
+ return;
- if (whitespacetext.nodeValue != " ")
- return;
+ if (whitespacetext.nodeValue != " ")
+ return;
- if (whitespacetext.nodeType != 4)
- return;
+ if (whitespacetext.nodeType != 4)
+ return;
- if (whitespacetext.parentNode.nodeName != "item")
- return;
+ if (whitespacetext.parentNode.nodeName != "item")
+ return;
- if (whitespacetext.childNodes.length != 0)
- return;
+ if (whitespacetext.childNodes.length != 0)
+ return;
- if (whitespacetext.firstChild != null)
- return;
+ if (whitespacetext.firstChild != null)
+ return;
- if (whitespacetext.lastChild != null)
- return;
+ if (whitespacetext.lastChild != null)
+ return;
- if (whitespacetext.previousSibling != null)
- return;
+ if (whitespacetext.previousSibling != null)
+ return;
- if (whitespacetext.nextSibling != null)
- return;
+ if (whitespacetext.nextSibling != null)
+ return;
- if (whitespacetext.attributes != null)
- return;
+ if (whitespacetext.attributes != null)
+ return;
- if (whitespacetext.wholeText != " ")
- return;
+ if (whitespacetext.wholeText != " ")
+ return;
- if (whitespacetext.data != " ")
- return;
+ if (whitespacetext.data != " ")
+ return;
- if (whitespacetext.length != 3)
- return;
+ if (whitespacetext.length != 3)
+ return;
- if (whitespacetext.isElementContentWhitespace != true)
- return;
+ if (whitespacetext.isElementContentWhitespace != true)
+ return;
- xmlTest = true;
- }
+ xmlTest = true;
+ }
- function checkXML(document)
- {
- checkCData(document.documentElement.childNodes[0].childNodes[0],
- document.documentElement.childNodes[1].childNodes[0]);
+ function checkXML(document)
+ {
+ checkCData(document.documentElement.childNodes[0].childNodes[0],
+ document.documentElement.childNodes[1].childNodes[0]);
- }
}
Component.onCompleted: {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/document.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/document.qml
index e372361..682ea9f 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/document.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/document.qml
@@ -4,34 +4,32 @@ QtObject {
property bool xmlTest: false
property bool dataOK: false
- Script {
- function checkXML(document)
- {
- if (document.xmlVersion != "1.0")
- return;
+ function checkXML(document)
+ {
+ if (document.xmlVersion != "1.0")
+ return;
- if (document.xmlEncoding != "UTF-8")
- return;
+ if (document.xmlEncoding != "UTF-8")
+ return;
- if (document.xmlStandalone != true)
- return;
+ if (document.xmlStandalone != true)
+ return;
- if (document.documentElement == null)
- return;
+ if (document.documentElement == null)
+ return;
- if (document.nodeName != "#document")
- return;
+ if (document.nodeName != "#document")
+ return;
- if (document.nodeValue != null)
- return;
+ if (document.nodeValue != null)
+ return;
- if (document.parentNode != null)
- return;
+ if (document.parentNode != null)
+ return;
- // ### Test other node properties
- // ### test encoding (what is a valid qt encoding?)
- xmlTest = true;
- }
+ // ### Test other node properties
+ // ### test encoding (what is a valid qt encoding?)
+ xmlTest = true;
}
Component.onCompleted: {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/element.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/element.qml
index 78c0374..200214f 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/element.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/element.qml
@@ -4,122 +4,120 @@ QtObject {
property bool xmlTest: false
property bool dataOK: false
- Script {
- function checkElement(e, person, fruit)
- {
- if (e.tagName != "root")
- return;
+ function checkElement(e, person, fruit)
+ {
+ if (e.tagName != "root")
+ return;
- if (e.nodeName != "root")
- return;
+ if (e.nodeName != "root")
+ return;
- if (e.nodeValue != null)
- return;
+ if (e.nodeValue != null)
+ return;
- if (e.nodeType != 1)
- return;
+ if (e.nodeType != 1)
+ return;
- var childTagNames = [ "person", "fruit" ];
+ var childTagNames = [ "person", "fruit" ];
- if (e.childNodes.length != childTagNames.length)
- return;
+ if (e.childNodes.length != childTagNames.length)
+ return;
- for (var ii = 0; ii < childTagNames.length; ++ii) {
- if (e.childNodes[ii].tagName != childTagNames[ii])
- return;
- }
-
- if (e.childNodes[childTagNames.length + 1] != null)
+ for (var ii = 0; ii < childTagNames.length; ++ii) {
+ if (e.childNodes[ii].tagName != childTagNames[ii])
return;
+ }
- // Check writing fails
- e.childNodes[0] = null;
- if (e.childNodes[0] == null)
- return;
+ if (e.childNodes[childTagNames.length + 1] != null)
+ return;
- e.childNodes[10] = 10;
- if (e.childNodes[10] != null)
- return;
+ // Check writing fails
+ e.childNodes[0] = null;
+ if (e.childNodes[0] == null)
+ return;
- if (e.firstChild.tagName != e.childNodes[0].tagName)
- return;
+ e.childNodes[10] = 10;
+ if (e.childNodes[10] != null)
+ return;
- if (e.lastChild.tagName != e.childNodes[1].tagName)
- return;
+ if (e.firstChild.tagName != e.childNodes[0].tagName)
+ return;
- if (e.previousSibling != null)
- return;
+ if (e.lastChild.tagName != e.childNodes[1].tagName)
+ return;
- if (e.nextSibling != null)
- return;
+ if (e.previousSibling != null)
+ return;
- if (e.attributes == null)
- return;
+ if (e.nextSibling != null)
+ return;
- if (e.attributes.length != 2)
- return;
+ if (e.attributes == null)
+ return;
- var attr1 = e.attributes["attr"];
- if (attr1.nodeValue != "value")
- return;
+ if (e.attributes.length != 2)
+ return;
- var attrIdx = e.attributes[0];
- if (attrIdx.nodeValue != "value")
- return;
+ var attr1 = e.attributes["attr"];
+ if (attr1.nodeValue != "value")
+ return;
- var attr2 = e.attributes["attr2"];
- if (attr2.nodeValue != "value2")
- return;
+ var attrIdx = e.attributes[0];
+ if (attrIdx.nodeValue != "value")
+ return;
- var attr3 = e.attributes["attr3"];
- if (attr3 != null)
- return;
+ var attr2 = e.attributes["attr2"];
+ if (attr2.nodeValue != "value2")
+ return;
- var attrIdx2 = e.attributes[11];
- if (attrIdx2 != null)
- return;
+ var attr3 = e.attributes["attr3"];
+ if (attr3 != null)
+ return;
- // Check writing fails
- e.attributes[0] = null;
- if (e.attributes[0] == null)
- return;
+ var attrIdx2 = e.attributes[11];
+ if (attrIdx2 != null)
+ return;
- e.attributes["attr"] = null;
- if (e.attributes["attr"] == null)
- return;
+ // Check writing fails
+ e.attributes[0] = null;
+ if (e.attributes[0] == null)
+ return;
- e.attributes["attr3"] = 10;
- if (e.attributes["attr3"] != null)
- return;
+ e.attributes["attr"] = null;
+ if (e.attributes["attr"] == null)
+ return;
- // Check person and fruit sub elements
- if (person.parentNode.nodeName != "root")
- return;
+ e.attributes["attr3"] = 10;
+ if (e.attributes["attr3"] != null)
+ return;
- if (person.previousSibling != null)
- return;
+ // Check person and fruit sub elements
+ if (person.parentNode.nodeName != "root")
+ return;
- if (person.nextSibling.nodeName != "fruit")
- return;
+ if (person.previousSibling != null)
+ return;
- if (fruit.parentNode.nodeName != "root")
- return;
+ if (person.nextSibling.nodeName != "fruit")
+ return;
- if (fruit.previousSibling.nodeName != "person")
- return;
+ if (fruit.parentNode.nodeName != "root")
+ return;
- if (fruit.nextSibling != null)
- return;
+ if (fruit.previousSibling.nodeName != "person")
+ return;
- xmlTest = true;
- }
+ if (fruit.nextSibling != null)
+ return;
- function checkXML(document)
- {
- checkElement(document.documentElement,
- document.documentElement.childNodes[0],
- document.documentElement.childNodes[1]);
- }
+ xmlTest = true;
+ }
+
+ function checkXML(document)
+ {
+ checkElement(document.documentElement,
+ document.documentElement.childNodes[0],
+ document.documentElement.childNodes[1]);
}
Component.onCompleted: {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml
index 8d67fad..9096999 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getAllResponseHeaders.qml
@@ -31,6 +31,7 @@ QtObject {
readyState = true;
x.open("GET", url);
+ x.setRequestHeader("Accept-Language", "en-US");
if (x.readyState == XMLHttpRequest.OPENED)
openedState = true;
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.expect
index a740c79..c6cad70 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.expect
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.expect
@@ -1,7 +1,7 @@
GET /testdocument.html HTTP/1.1
+ACCEPT-LANGUAGE: en-US
Connection: Keep-Alive
Accept-Encoding: gzip
-Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: 127.0.0.1:14445
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml
index 2f949e1..7a65e25 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/getResponseHeader.qml
@@ -37,6 +37,7 @@ QtObject {
readyState = true;
x.open("GET", url);
+ x.setRequestHeader("Accept-Language", "en-US");
if (x.readyState == XMLHttpRequest.OPENED)
openedState = true;
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml
index c06bae3..72fb9d7 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open.qml
@@ -20,6 +20,7 @@ QtObject {
readyState = true;
x.open("GET", url);
+ x.setRequestHeader("Accept-Language","en-US");
if (x.readyState == XMLHttpRequest.OPENED)
openedState = true;
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.expect
index a740c79..c6cad70 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.expect
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_network.expect
@@ -1,7 +1,7 @@
GET /testdocument.html HTTP/1.1
+ACCEPT-LANGUAGE: en-US
Connection: Keep-Alive
Accept-Encoding: gzip
-Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: 127.0.0.1:14445
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml
index 19e37fa..b07f8e7 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/open_user.qml
@@ -20,6 +20,7 @@ QtObject {
readyState = true;
x.open("GET", url, true, "username", "password");
+ x.setRequestHeader("Accept-Language","en-US");
if (x.readyState == XMLHttpRequest.OPENED)
openedState = true;
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml
index 4bb3a7a..9fa4847 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/responseText.qml
@@ -22,6 +22,7 @@ QtObject {
unsent = (x.responseText == "");
x.open("GET", url);
+ x.setRequestHeader("Accept-Language", "en-US");
opened = (x.responseText == "");
@@ -39,6 +40,7 @@ QtObject {
dataOK = (x.responseText == expectedText);
x.open("GET", url);
+ x.setRequestHeader("Accept-Language", "en-US");
reset = (x.responseText == "");
}
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml
index 0bad7df..a9ef3e8 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_alreadySent.qml
@@ -7,6 +7,7 @@ QtObject {
Component.onCompleted: {
var x = new XMLHttpRequest;
x.open("GET", "testdocument.html");
+ x.setRequestHeader("Accept-Language","en-US");
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.expect
index 81dd4a0..2effbdc 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.expect
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.expect
@@ -1,9 +1,9 @@
POST /testdocument.html HTTP/1.1
+ACCEPT-LANGUAGE: en-US
Content-Type: text/plain;charset=UTF-8
Content-Length: 12
Connection: Keep-Alive
Accept-Encoding: gzip
-Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: 127.0.0.1:14445
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml
index 03543a9..171e0b1 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.1.qml
@@ -8,6 +8,7 @@ QtObject {
Component.onCompleted: {
var x = new XMLHttpRequest;
x.open("POST", url);
+ x.setRequestHeader("Accept-Language","en-US");
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml
index 79a27b6..09b742b 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.2.qml
@@ -9,6 +9,7 @@ QtObject {
var x = new XMLHttpRequest;
x.open("POST", url);
x.setRequestHeader("Content-Type", "text/plain;charset=UTF-8");
+ x.setRequestHeader("Accept-Language","en-US");
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml
index e048769..8786917 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.3.qml
@@ -9,6 +9,7 @@ QtObject {
var x = new XMLHttpRequest;
x.open("POST", url);
x.setRequestHeader("Content-Type", "text/plain;charset=latin1");
+ x.setRequestHeader("Accept-Language","en-US");
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.expect
index 8fcf3ac..8336860 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.expect
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.expect
@@ -1,9 +1,9 @@
POST /testdocument.html HTTP/1.1
+ACCEPT-LANGUAGE: en-US
Content-Type: charset=UTF-8;text/plain
Content-Length: 12
Connection: Keep-Alive
Accept-Encoding: gzip
-Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: 127.0.0.1:14445
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml
index 7ab0b27..6789480 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.4.qml
@@ -9,6 +9,7 @@ QtObject {
var x = new XMLHttpRequest;
x.open("POST", url);
x.setRequestHeader("Content-Type", "charset=UTF-8;text/plain");
+ x.setRequestHeader("Accept-Language","en-US");
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml
index 29bf2c2..08d999d 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.5.qml
@@ -9,6 +9,7 @@ QtObject {
var x = new XMLHttpRequest;
x.open("POST", url);
x.setRequestHeader("Content-Type", "charset=latin1;text/plain");
+ x.setRequestHeader("Accept-Language","en-US");
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.expect
index 97e6fac..4f10bbc 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.expect
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.expect
@@ -1,9 +1,9 @@
PUT /testdocument.html HTTP/1.1
+ACCEPT-LANGUAGE: en-US
Content-Type: text/plain;charset=UTF-8
Content-Length: 12
Connection: Keep-Alive
Accept-Encoding: gzip
-Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: 127.0.0.1:14445
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml
index 135f45c..e047fc8 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.6.qml
@@ -8,6 +8,7 @@ QtObject {
Component.onCompleted: {
var x = new XMLHttpRequest;
x.open("PUT", url);
+ x.setRequestHeader("Accept-Language","en-US");
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml
index 4a09527..ba0db25 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_data.7.qml
@@ -9,6 +9,7 @@ QtObject {
var x = new XMLHttpRequest;
x.open("POST", url);
x.setRequestHeader("Content-Type", "text/plain");
+ x.setRequestHeader("Accept-Language","en-US");
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml
index dd5fa46..ddf520e 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData.qml
@@ -9,6 +9,7 @@ QtObject {
Component.onCompleted: {
var x = new XMLHttpRequest;
x.open(reqType, url);
+ x.setRequestHeader("Accept-Language","en-US");
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_GET.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_GET.expect
index a740c79..c6cad70 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_GET.expect
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_GET.expect
@@ -1,7 +1,7 @@
GET /testdocument.html HTTP/1.1
+ACCEPT-LANGUAGE: en-US
Connection: Keep-Alive
Accept-Encoding: gzip
-Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: 127.0.0.1:14445
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_PUT.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_PUT.expect
index 991bd59..74a9798 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_PUT.expect
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/send_ignoreData_PUT.expect
@@ -1,7 +1,7 @@
HEAD /testdocument.html HTTP/1.1
+ACCEPT-LANGUAGE: en-US
Connection: Keep-Alive
Accept-Encoding: gzip
-Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: 127.0.0.1:14445
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.expect
index 4600f2a..7b8e260 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.expect
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.expect
@@ -1,9 +1,9 @@
GET /testdocument.html HTTP/1.1
+ACCEPT-LANGUAGE: en-US
TEST-HEADER: value
TEST-HEADER2: value,value2
Connection: Keep-Alive
Accept-Encoding: gzip
-Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: 127.0.0.1:14445
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml
index b0723aa..61eea33 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader.qml
@@ -9,6 +9,7 @@ QtObject {
var x = new XMLHttpRequest;
x.open("GET", url);
+ x.setRequestHeader("Accept-Language","en-US");
x.setRequestHeader("Test-header", "value");
x.setRequestHeader("Test-header2", "value");
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml
index bf31eca..b22b239 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_illegalName.qml
@@ -21,6 +21,7 @@ QtObject {
readyState = true;
x.open("GET", url);
+ x.setRequestHeader("Accept-Language","en-US");
x.setRequestHeader(header, "Value");
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml
index c2bbc6e..666c791 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/setRequestHeader_sent.qml
@@ -10,6 +10,7 @@ QtObject {
var x = new XMLHttpRequest;
x.open("GET", url);
+ x.setRequestHeader("Accept-Language","en-US");
// Test to the end
x.onreadystatechange = function() {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.expect b/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.expect
index a740c79..c6cad70 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.expect
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.expect
@@ -1,7 +1,7 @@
GET /testdocument.html HTTP/1.1
+ACCEPT-LANGUAGE: en-US
Connection: Keep-Alive
Accept-Encoding: gzip
-Accept-Language: en-US,*
User-Agent: Mozilla/5.0
Host: 127.0.0.1:14445
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml
index 04202c4..c903e12 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/status.qml
@@ -27,6 +27,7 @@ QtObject {
}
x.open("GET", url);
+ x.setRequestHeader("Accept-Language", "en-US");
try {
var a = x.status;
@@ -54,6 +55,7 @@ QtObject {
}
x.open("GET", url);
+ x.setRequestHeader("Accept-Language", "en-US");
try {
var a = x.status;
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml
index 8becc3b..a3b98be 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/statusText.qml
@@ -27,6 +27,7 @@ QtObject {
}
x.open("GET", url);
+ x.setRequestHeader("Accept-Language", "en-US");
try {
var a = x.statusText;
@@ -54,6 +55,7 @@ QtObject {
}
x.open("GET", url);
+ x.setRequestHeader("Accept-Language", "en-US");
try {
var a = x.statusText;
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/text.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/text.qml
index 4615a07..0eb31d5 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/data/text.qml
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/text.qml
@@ -4,105 +4,103 @@ QtObject {
property bool xmlTest: false
property bool dataOK: false
- Script {
- function checkText(text, whitespacetext)
- {
- if (text == null)
- return;
+ function checkText(text, whitespacetext)
+ {
+ if (text == null)
+ return;
- if (text.nodeName != "#text")
- return;
+ if (text.nodeName != "#text")
+ return;
- if (text.nodeValue != "Hello world!")
- return;
+ if (text.nodeValue != "Hello world!")
+ return;
- if (text.nodeType != 3)
- return;
+ if (text.nodeType != 3)
+ return;
- if (text.parentNode.nodeName != "item")
- return;
+ if (text.parentNode.nodeName != "item")
+ return;
- if (text.childNodes.length != 0)
- return;
+ if (text.childNodes.length != 0)
+ return;
- if (text.firstChild != null)
- return;
+ if (text.firstChild != null)
+ return;
- if (text.lastChild != null)
- return;
+ if (text.lastChild != null)
+ return;
- if (text.previousSibling != null)
- return;
+ if (text.previousSibling != null)
+ return;
- if (text.nextSibling != null)
- return;
+ if (text.nextSibling != null)
+ return;
- if (text.attributes != null)
- return;
+ if (text.attributes != null)
+ return;
- if (text.wholeText != "Hello world!")
- return;
+ if (text.wholeText != "Hello world!")
+ return;
- if (text.data != "Hello world!")
- return;
+ if (text.data != "Hello world!")
+ return;
- if (text.length != 12)
- return;
+ if (text.length != 12)
+ return;
- if (text.isElementContentWhitespace != false)
- return;
+ if (text.isElementContentWhitespace != false)
+ return;
- if (whitespacetext.nodeName != "#text")
- return;
+ if (whitespacetext.nodeName != "#text")
+ return;
- if (whitespacetext.nodeValue != " ")
- return;
+ if (whitespacetext.nodeValue != " ")
+ return;
- if (whitespacetext.nodeType != 3)
- return;
+ if (whitespacetext.nodeType != 3)
+ return;
- if (whitespacetext.parentNode.nodeName != "item")
- return;
+ if (whitespacetext.parentNode.nodeName != "item")
+ return;
- if (whitespacetext.childNodes.length != 0)
- return;
+ if (whitespacetext.childNodes.length != 0)
+ return;
- if (whitespacetext.firstChild != null)
- return;
+ if (whitespacetext.firstChild != null)
+ return;
- if (whitespacetext.lastChild != null)
- return;
+ if (whitespacetext.lastChild != null)
+ return;
- if (whitespacetext.previousSibling != null)
- return;
+ if (whitespacetext.previousSibling != null)
+ return;
- if (whitespacetext.nextSibling != null)
- return;
+ if (whitespacetext.nextSibling != null)
+ return;
- if (whitespacetext.attributes != null)
- return;
+ if (whitespacetext.attributes != null)
+ return;
- if (whitespacetext.wholeText != " ")
- return;
+ if (whitespacetext.wholeText != " ")
+ return;
- if (whitespacetext.data != " ")
- return;
+ if (whitespacetext.data != " ")
+ return;
- if (whitespacetext.length != 3)
- return;
+ if (whitespacetext.length != 3)
+ return;
- if (whitespacetext.isElementContentWhitespace != true)
- return;
+ if (whitespacetext.isElementContentWhitespace != true)
+ return;
- xmlTest = true;
- }
+ xmlTest = true;
+ }
- function checkXML(document)
- {
- checkText(document.documentElement.childNodes[0].childNodes[0],
- document.documentElement.childNodes[1].childNodes[0]);
+ function checkXML(document)
+ {
+ checkText(document.documentElement.childNodes[0].childNodes[0],
+ document.documentElement.childNodes[1].childNodes[0]);
- }
}
Component.onCompleted: {
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml
new file mode 100644
index 0000000..63165ab
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.qml
@@ -0,0 +1,28 @@
+import Qt 4.6
+
+QtObject {
+ property bool dataOK: false
+
+ property string responseText
+ property string responseXmlRootNodeValue
+
+ Component.onCompleted: {
+ var x = new XMLHttpRequest;
+
+ x.open("GET", "utf16.xml");
+
+ // Test to the end
+ x.onreadystatechange = function() {
+ if (x.readyState == XMLHttpRequest.DONE) {
+
+ responseText = x.responseText
+ if (x.responseXML)
+ responseXmlRootNodeValue = x.responseXML.documentElement.childNodes[0].nodeValue
+
+ dataOK = true;
+ }
+ }
+ x.send()
+ }
+}
+
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.xml b/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.xml
new file mode 100644
index 0000000..0fbb126
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/data/utf16.xml
Binary files differ
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro b/tests/auto/declarative/qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro
index 7bc92af..160300e 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/qdeclarativexmlhttprequest.pro
@@ -11,3 +11,6 @@ SOURCES += tst_qdeclarativexmlhttprequest.cpp \
# Define SRCDIR equal to test's source directory
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp b/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp
index 37d48fa..1d26f2c 100644
--- a/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp
+++ b/tests/auto/declarative/qdeclarativexmlhttprequest/tst_qdeclarativexmlhttprequest.cpp
@@ -55,12 +55,6 @@ public:
tst_qdeclarativexmlhttprequest() {}
private slots:
- void initTestCase() {
- if (QLocale::system().name().replace(QChar::fromAscii('_'),QChar::fromAscii('-')) != QLatin1String("en-US")) {
- qWarning() << "Test will fail unless LANG is en_US";
- }
- }
-
void domExceptionCodes();
void callbackException();
void callbackException_data();
@@ -69,6 +63,7 @@ private slots:
void constructor();
void defaultState();
void open();
+ void open_data();
void open_invalid_method();
void open_sync();
void open_arg_count();
@@ -82,6 +77,7 @@ private slots:
void send_alreadySent();
void send_ignoreData();
void send_withdata();
+ void send_withdata_data();
void abort();
void abort_unsent();
void abort_opened();
@@ -94,11 +90,15 @@ private slots:
void getAllResponseHeaders_sent();
void getAllResponseHeaders_args();
void status();
+ void status_data();
void statusText();
+ void statusText_data();
void responseText();
+ void responseText_data();
void responseXML_invalid();
void invalidMethodUsage();
void redirects();
+ void nonUtf8();
// Attributes
void document();
@@ -257,99 +257,50 @@ void tst_qdeclarativexmlhttprequest::defaultState()
// Test valid XMLHttpRequest.open() calls
void tst_qdeclarativexmlhttprequest::open()
{
- // Relative url
- {
- QDeclarativeComponent component(&engine, TEST_FILE("open.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "testdocument.html");
- component.completeCreate();
-
- QCOMPARE(object->property("readyState").toBool(), true);
- QCOMPARE(object->property("openedState").toBool(), true);
- QCOMPARE(object->property("status").toBool(), true);
- QCOMPARE(object->property("statusText").toBool(), true);
- QCOMPARE(object->property("responseText").toBool(), true);
- QCOMPARE(object->property("responseXML").toBool(), true);
-
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- delete object;
+ QFETCH(QUrl, qmlFile);
+ QFETCH(QString, url);
+ QFETCH(bool, remote);
+
+ TestHTTPServer *server = 0;
+ if (remote) {
+ server = new TestHTTPServer(SERVER_PORT);
+ QVERIFY(server->isValid());
+ QVERIFY(server->wait(TEST_FILE("open_network.expect"),
+ TEST_FILE("open_network.reply"),
+ TEST_FILE("testdocument.html")));
}
- // Absolute url
- {
- QDeclarativeComponent component(&engine, TEST_FILE("open.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", TEST_FILE("testdocument.html").toString());
- component.completeCreate();
-
- QCOMPARE(object->property("readyState").toBool(), true);
- QCOMPARE(object->property("openedState").toBool(), true);
- QCOMPARE(object->property("status").toBool(), true);
- QCOMPARE(object->property("statusText").toBool(), true);
- QCOMPARE(object->property("responseText").toBool(), true);
- QCOMPARE(object->property("responseXML").toBool(), true);
-
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- delete object;
- }
-
- // Absolute network url
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("open_network.expect"),
- TEST_FILE("open_network.reply"),
- TEST_FILE("testdocument.html")));
-
- QDeclarativeComponent component(&engine, TEST_FILE("open.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- component.completeCreate();
-
- QCOMPARE(object->property("readyState").toBool(), true);
- QCOMPARE(object->property("openedState").toBool(), true);
- QCOMPARE(object->property("status").toBool(), true);
- QCOMPARE(object->property("statusText").toBool(), true);
- QCOMPARE(object->property("responseText").toBool(), true);
- QCOMPARE(object->property("responseXML").toBool(), true);
-
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- delete object;
- }
+ QDeclarativeComponent component(&engine, qmlFile);
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", url);
+ component.completeCreate();
- // User/pass
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("open_network.expect"),
- TEST_FILE("open_network.reply"),
- TEST_FILE("testdocument.html")));
+ QCOMPARE(object->property("readyState").toBool(), true);
+ QCOMPARE(object->property("openedState").toBool(), true);
+ QCOMPARE(object->property("status").toBool(), true);
+ QCOMPARE(object->property("statusText").toBool(), true);
+ QCOMPARE(object->property("responseText").toBool(), true);
+ QCOMPARE(object->property("responseXML").toBool(), true);
- QDeclarativeComponent component(&engine, TEST_FILE("open_user.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- component.completeCreate();
+ TRY_WAIT(object->property("dataOK").toBool() == true);
- QCOMPARE(object->property("readyState").toBool(), true);
- QCOMPARE(object->property("openedState").toBool(), true);
- QCOMPARE(object->property("status").toBool(), true);
- QCOMPARE(object->property("statusText").toBool(), true);
- QCOMPARE(object->property("responseText").toBool(), true);
- QCOMPARE(object->property("responseXML").toBool(), true);
+ delete server;
+ delete object;
+}
- TRY_WAIT(object->property("dataOK").toBool() == true);
+void tst_qdeclarativexmlhttprequest::open_data()
+{
+ QTest::addColumn<QUrl>("qmlFile");
+ QTest::addColumn<QString>("url");
+ QTest::addColumn<bool>("remote");
- // ### Check that the username/password were sent to the server
+ QTest::newRow("Relative url)") << TEST_FILE("open.qml") << "testdocument.html" << false;
+ QTest::newRow("Absolute url)") << TEST_FILE("open.qml") << TEST_FILE("testdocument.html").toString() << false;
+ QTest::newRow("Absolute network url)") << TEST_FILE("open.qml") << "http://127.0.0.1:14445/testdocument.html" << true;
- delete object;
- }
+ // ### Check that the username/password were sent to the server
+ QTest::newRow("User/pass") << TEST_FILE("open_user.qml") << "http://127.0.0.1:14445/testdocument.html" << true;
}
// Test that calling XMLHttpRequest.open() with an invalid method raises an exception
@@ -594,138 +545,38 @@ void tst_qdeclarativexmlhttprequest::send_ignoreData()
// Test that send()'ing data works
void tst_qdeclarativexmlhttprequest::send_withdata()
{
- // No content-type
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("send_data.1.expect"),
- TEST_FILE("send_data.reply"),
- TEST_FILE("testdocument.html")));
-
- QDeclarativeComponent component(&engine, TEST_FILE("send_data.1.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- component.completeCreate();
-
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- delete object;
- }
-
- // Correct content-type
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("send_data.1.expect"),
- TEST_FILE("send_data.reply"),
- TEST_FILE("testdocument.html")));
-
- QDeclarativeComponent component(&engine, TEST_FILE("send_data.2.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- component.completeCreate();
-
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- delete object;
- }
-
- // Incorrect content-type
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("send_data.1.expect"),
- TEST_FILE("send_data.reply"),
- TEST_FILE("testdocument.html")));
-
- QDeclarativeComponent component(&engine, TEST_FILE("send_data.3.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- component.completeCreate();
-
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- delete object;
- }
-
- // Correct content-type - out of order
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("send_data.4.expect"),
- TEST_FILE("send_data.reply"),
- TEST_FILE("testdocument.html")));
-
- QDeclarativeComponent component(&engine, TEST_FILE("send_data.4.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- component.completeCreate();
-
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- delete object;
- }
-
- // Incorrect content-type - out of order
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("send_data.4.expect"),
- TEST_FILE("send_data.reply"),
- TEST_FILE("testdocument.html")));
-
- QDeclarativeComponent component(&engine, TEST_FILE("send_data.5.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- component.completeCreate();
+ QFETCH(QString, file_expected);
+ QFETCH(QString, file_qml);
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- delete object;
- }
-
- // PUT
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("send_data.6.expect"),
- TEST_FILE("send_data.reply"),
- TEST_FILE("testdocument.html")));
-
- QDeclarativeComponent component(&engine, TEST_FILE("send_data.6.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- component.completeCreate();
-
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- delete object;
- }
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE(file_expected),
+ TEST_FILE("send_data.reply"),
+ TEST_FILE("testdocument.html")));
- // Correct content-type - no charset
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("send_data.1.expect"),
- TEST_FILE("send_data.reply"),
- TEST_FILE("testdocument.html")));
+ QDeclarativeComponent component(&engine, TEST_FILE(file_qml));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
+ component.completeCreate();
- QDeclarativeComponent component(&engine, TEST_FILE("send_data.7.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- component.completeCreate();
+ TRY_WAIT(object->property("dataOK").toBool() == true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ delete object;
+}
- delete object;
- }
+void tst_qdeclarativexmlhttprequest::send_withdata_data()
+{
+ QTest::addColumn<QString>("file_expected");
+ QTest::addColumn<QString>("file_qml");
+
+ QTest::newRow("No content-type") << "send_data.1.expect" << "send_data.1.qml";
+ QTest::newRow("Correct content-type") << "send_data.1.expect" << "send_data.2.qml";
+ QTest::newRow("Incorrect content-type") << "send_data.1.expect" << "send_data.3.qml";
+ QTest::newRow("Correct content-type - out of order") << "send_data.4.expect" << "send_data.4.qml";
+ QTest::newRow("Incorrect content-type - out of order") << "send_data.4.expect" << "send_data.5.qml";
+ QTest::newRow("PUT") << "send_data.6.expect" << "send_data.6.qml";
+ QTest::newRow("Correct content-type - no charset") << "send_data.1.expect" << "send_data.7.qml";
}
// Test abort() has no effect in unsent state
@@ -940,200 +791,149 @@ void tst_qdeclarativexmlhttprequest::getAllResponseHeaders_args()
void tst_qdeclarativexmlhttprequest::status()
{
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("status.expect"),
- TEST_FILE("status.200.reply"),
- TEST_FILE("testdocument.html")));
-
- QDeclarativeComponent component(&engine, TEST_FILE("status.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- object->setProperty("expectedStatus", 200);
- component.completeCreate();
+ QFETCH(QUrl, replyUrl);
+ QFETCH(int, status);
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- QCOMPARE(object->property("unsentException").toBool(), true);
- QCOMPARE(object->property("openedException").toBool(), true);
- QCOMPARE(object->property("sentException").toBool(), true);
- QCOMPARE(object->property("headersReceived").toBool(), true);
- QCOMPARE(object->property("loading").toBool(), true);
- QCOMPARE(object->property("done").toBool(), true);
- QCOMPARE(object->property("resetException").toBool(), true);
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("status.expect"),
+ replyUrl,
+ TEST_FILE("testdocument.html")));
- delete object;
- }
+ QDeclarativeComponent component(&engine, TEST_FILE("status.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
+ object->setProperty("expectedStatus", status);
+ component.completeCreate();
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("status.expect"),
- TEST_FILE("status.404.reply"),
- TEST_FILE("testdocument.html")));
+ TRY_WAIT(object->property("dataOK").toBool() == true);
- QDeclarativeComponent component(&engine, TEST_FILE("status.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- object->setProperty("expectedStatus", 404);
- component.completeCreate();
+ QCOMPARE(object->property("unsentException").toBool(), true);
+ QCOMPARE(object->property("openedException").toBool(), true);
+ QCOMPARE(object->property("sentException").toBool(), true);
+ QCOMPARE(object->property("headersReceived").toBool(), true);
+ QCOMPARE(object->property("loading").toBool(), true);
+ QCOMPARE(object->property("done").toBool(), true);
+ QCOMPARE(object->property("resetException").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ delete object;
+}
- QCOMPARE(object->property("unsentException").toBool(), true);
- QCOMPARE(object->property("openedException").toBool(), true);
- QCOMPARE(object->property("sentException").toBool(), true);
- QCOMPARE(object->property("headersReceived").toBool(), true);
- QCOMPARE(object->property("loading").toBool(), true);
- QCOMPARE(object->property("done").toBool(), true);
- QCOMPARE(object->property("resetException").toBool(), true);
+void tst_qdeclarativexmlhttprequest::status_data()
+{
+ QTest::addColumn<QUrl>("replyUrl");
+ QTest::addColumn<int>("status");
- delete object;
- }
+ QTest::newRow("OK") << TEST_FILE("status.200.reply") << 200;
+ QTest::newRow("Not Found") << TEST_FILE("status.404.reply") << 404;
}
void tst_qdeclarativexmlhttprequest::statusText()
{
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("status.expect"),
- TEST_FILE("status.200.reply"),
- TEST_FILE("testdocument.html")));
-
- QDeclarativeComponent component(&engine, TEST_FILE("statusText.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- object->setProperty("expectedStatus", "OK");
- component.completeCreate();
+ QFETCH(QUrl, replyUrl);
+ QFETCH(QString, statusText);
- TRY_WAIT(object->property("dataOK").toBool() == true);
-
- QCOMPARE(object->property("unsentException").toBool(), true);
- QCOMPARE(object->property("openedException").toBool(), true);
- QCOMPARE(object->property("sentException").toBool(), true);
- QCOMPARE(object->property("headersReceived").toBool(), true);
- QCOMPARE(object->property("loading").toBool(), true);
- QCOMPARE(object->property("done").toBool(), true);
- QCOMPARE(object->property("resetException").toBool(), true);
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("status.expect"),
+ replyUrl,
+ TEST_FILE("testdocument.html")));
- delete object;
- }
+ QDeclarativeComponent component(&engine, TEST_FILE("statusText.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
+ object->setProperty("expectedStatus", statusText);
+ component.completeCreate();
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("status.expect"),
- TEST_FILE("status.404.reply"),
- TEST_FILE("testdocument.html")));
+ TRY_WAIT(object->property("dataOK").toBool() == true);
- QDeclarativeComponent component(&engine, TEST_FILE("statusText.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- object->setProperty("expectedStatus", "Document not found");
- component.completeCreate();
+ QCOMPARE(object->property("unsentException").toBool(), true);
+ QCOMPARE(object->property("openedException").toBool(), true);
+ QCOMPARE(object->property("sentException").toBool(), true);
+ QCOMPARE(object->property("headersReceived").toBool(), true);
+ QCOMPARE(object->property("loading").toBool(), true);
+ QCOMPARE(object->property("done").toBool(), true);
+ QCOMPARE(object->property("resetException").toBool(), true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ delete object;
+}
- QCOMPARE(object->property("unsentException").toBool(), true);
- QCOMPARE(object->property("openedException").toBool(), true);
- QCOMPARE(object->property("sentException").toBool(), true);
- QCOMPARE(object->property("headersReceived").toBool(), true);
- QCOMPARE(object->property("loading").toBool(), true);
- QCOMPARE(object->property("done").toBool(), true);
- QCOMPARE(object->property("resetException").toBool(), true);
+void tst_qdeclarativexmlhttprequest::statusText_data()
+{
+ QTest::addColumn<QUrl>("replyUrl");
+ QTest::addColumn<QString>("statusText");
- delete object;
- }
+ QTest::newRow("OK") << TEST_FILE("status.200.reply") << "OK";
+ QTest::newRow("Not Found") << TEST_FILE("status.404.reply") << "Document not found";
}
void tst_qdeclarativexmlhttprequest::responseText()
{
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("status.expect"),
- TEST_FILE("status.200.reply"),
- TEST_FILE("testdocument.html")));
-
- QDeclarativeComponent component(&engine, TEST_FILE("responseText.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- object->setProperty("expectedText", "QML Rocks!\n");
- component.completeCreate();
+ QFETCH(QUrl, replyUrl);
+ QFETCH(QUrl, bodyUrl);
+ QFETCH(QString, responseText);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ TestHTTPServer server(SERVER_PORT);
+ QVERIFY(server.isValid());
+ QVERIFY(server.wait(TEST_FILE("status.expect"),
+ replyUrl,
+ bodyUrl));
- QCOMPARE(object->property("unsent").toBool(), true);
- QCOMPARE(object->property("opened").toBool(), true);
- QCOMPARE(object->property("sent").toBool(), true);
- QCOMPARE(object->property("headersReceived").toBool(), true);
- QCOMPARE(object->property("loading").toBool(), true);
- QCOMPARE(object->property("done").toBool(), true);
- QCOMPARE(object->property("reset").toBool(), true);
+ QDeclarativeComponent component(&engine, TEST_FILE("responseText.qml"));
+ QObject *object = component.beginCreate(engine.rootContext());
+ QVERIFY(object != 0);
+ object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
+ object->setProperty("expectedText", responseText);
+ component.completeCreate();
- delete object;
- }
+ TRY_WAIT(object->property("dataOK").toBool() == true);
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("status.expect"),
- TEST_FILE("status.200.reply"),
- QUrl()));
+ QCOMPARE(object->property("unsent").toBool(), true);
+ QCOMPARE(object->property("opened").toBool(), true);
+ QCOMPARE(object->property("sent").toBool(), true);
+ QCOMPARE(object->property("headersReceived").toBool(), true);
+ QCOMPARE(object->property("loading").toBool(), true);
+ QCOMPARE(object->property("done").toBool(), true);
+ QCOMPARE(object->property("reset").toBool(), true);
- QDeclarativeComponent component(&engine, TEST_FILE("responseText.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- object->setProperty("expectedText", "");
- component.completeCreate();
+ delete object;
+}
- TRY_WAIT(object->property("dataOK").toBool() == true);
+void tst_qdeclarativexmlhttprequest::responseText_data()
+{
+ QTest::addColumn<QUrl>("replyUrl");
+ QTest::addColumn<QUrl>("bodyUrl");
+ QTest::addColumn<QString>("responseText");
- QCOMPARE(object->property("unsent").toBool(), true);
- QCOMPARE(object->property("opened").toBool(), true);
- QCOMPARE(object->property("sent").toBool(), true);
- QCOMPARE(object->property("headersReceived").toBool(), true);
- QCOMPARE(object->property("loading").toBool(), true);
- QCOMPARE(object->property("done").toBool(), true);
- QCOMPARE(object->property("reset").toBool(), true);
+ QTest::newRow("OK") << TEST_FILE("status.200.reply") << TEST_FILE("testdocument.html") << "QML Rocks!\n";
+ QTest::newRow("empty body") << TEST_FILE("status.200.reply") << QUrl() << "";
+ QTest::newRow("Not Found") << TEST_FILE("status.404.reply") << TEST_FILE("testdocument.html") << "";
+}
- delete object;
- }
+void tst_qdeclarativexmlhttprequest::nonUtf8()
+{
+ QDeclarativeComponent component(&engine, TEST_FILE("utf16.qml"));
+ QObject *object = component.create();
+ QVERIFY(object != 0);
- {
- TestHTTPServer server(SERVER_PORT);
- QVERIFY(server.isValid());
- QVERIFY(server.wait(TEST_FILE("status.expect"),
- TEST_FILE("status.404.reply"),
- TEST_FILE("testdocument.html")));
+ QString uc;
+ uc.resize(3);
+ uc[0] = QChar(0x10e3);
+ uc[1] = QChar(' ');
+ uc[2] = QChar(0x03a3);
+ QString xml = "<?xml version=\"1.0\" encoding=\"UTF-16\" standalone='yes'?>\n<root>\n" + uc + "\n</root>\n";
- QDeclarativeComponent component(&engine, TEST_FILE("responseText.qml"));
- QObject *object = component.beginCreate(engine.rootContext());
- QVERIFY(object != 0);
- object->setProperty("url", "http://127.0.0.1:14445/testdocument.html");
- object->setProperty("expectedText", "");
- component.completeCreate();
+ TRY_WAIT(object->property("dataOK").toBool() == true);
- TRY_WAIT(object->property("dataOK").toBool() == true);
+ QString responseText = object->property("responseText").toString();
+ QCOMPARE(responseText, xml);
- QCOMPARE(object->property("unsent").toBool(), true);
- QCOMPARE(object->property("opened").toBool(), true);
- QCOMPARE(object->property("sent").toBool(), true);
- QCOMPARE(object->property("headersReceived").toBool(), true);
- QCOMPARE(object->property("loading").toBool(), true);
- QCOMPARE(object->property("done").toBool(), true);
- QCOMPARE(object->property("reset").toBool(), true);
+ QString responseXmlText = object->property("responseXmlRootNodeValue").toString();
+ QCOMPARE(responseXmlText, '\n' + uc + '\n');
- delete object;
- }
+ delete object;
}
// Test that calling hte XMLHttpRequest methods on a non-XMLHttpRequest object
@@ -1168,7 +968,7 @@ void tst_qdeclarativexmlhttprequest::redirects()
TestHTTPServer server(SERVER_PORT);
QVERIFY(server.isValid());
server.addRedirect("redirect.html", "http://127.0.0.1:14445/redirecttarget.html");
- server.serveDirectory("data");
+ server.serveDirectory(SRCDIR "/data");
QDeclarativeComponent component(&engine, TEST_FILE("redirects.qml"));
QObject *object = component.beginCreate(engine.rootContext());
@@ -1187,7 +987,7 @@ void tst_qdeclarativexmlhttprequest::redirects()
TestHTTPServer server(SERVER_PORT);
QVERIFY(server.isValid());
server.addRedirect("redirect.html", "http://127.0.0.1:14445/redirectmissing.html");
- server.serveDirectory("data");
+ server.serveDirectory(SRCDIR "/data");
QDeclarativeComponent component(&engine, TEST_FILE("redirectError.qml"));
QObject *object = component.beginCreate(engine.rootContext());
@@ -1206,7 +1006,7 @@ void tst_qdeclarativexmlhttprequest::redirects()
TestHTTPServer server(SERVER_PORT);
QVERIFY(server.isValid());
server.addRedirect("redirect.html", "http://127.0.0.1:14445/redirect.html");
- server.serveDirectory("data");
+ server.serveDirectory(SRCDIR "/data");
QDeclarativeComponent component(&engine, TEST_FILE("redirectRecur.qml"));
QObject *object = component.beginCreate(engine.rootContext());
diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/data/model2.xml b/tests/auto/declarative/qdeclarativexmllistmodel/data/model2.xml
new file mode 100644
index 0000000..dab2ec6
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativexmllistmodel/data/model2.xml
@@ -0,0 +1,14 @@
+<Pets>
+ <Pet>
+ <name>Polly</name>
+ <type>Parrot</type>
+ <age>12</age>
+ <size>Small</size>
+ </Pet>
+ <Pet>
+ <name>Penny</name>
+ <type>Turtle</type>
+ <age>4</age>
+ <size>Small</size>
+ </Pet>
+</Pets>
diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/data/propertychanges.qml b/tests/auto/declarative/qdeclarativexmllistmodel/data/propertychanges.qml
new file mode 100644
index 0000000..737ec81
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativexmllistmodel/data/propertychanges.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+
+XmlListModel {
+ source: "model.xml"
+ query: "/Pets/Pet"
+ XmlRole { objectName: "role"; name: "name"; query: "name/string()" }
+ XmlRole { name: "type"; query: "type/string()" }
+ XmlRole { name: "age"; query: "age/number()" }
+ XmlRole { name: "size"; query: "size/string()" }
+}
diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro b/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro
index 88832dc..8c5052a 100644
--- a/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro
+++ b/tests/auto/declarative/qdeclarativexmllistmodel/qdeclarativexmllistmodel.pro
@@ -9,3 +9,6 @@ macx:CONFIG -= app_bundle
SOURCES += tst_qdeclarativexmllistmodel.cpp
DEFINES += SRCDIR=\\\"$$PWD\\\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp b/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp
index e19e03d..cf7e357 100644
--- a/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp
+++ b/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp
@@ -41,6 +41,8 @@
#include <qtest.h>
#include <QtTest/qsignalspy.h>
#include <QtCore/qtimer.h>
+#include <QtCore/qfile.h>
+#include <QtCore/qtemporaryfile.h>
#ifdef QTEST_XMLPATTERNS
#include <QtDeclarative/qdeclarativeengine.h>
@@ -53,6 +55,7 @@ typedef QList<QVariantList> QDeclarativeXmlModelData;
Q_DECLARE_METATYPE(QList<QDeclarativeXmlListRange>)
Q_DECLARE_METATYPE(QDeclarativeXmlModelData)
+Q_DECLARE_METATYPE(QDeclarativeXmlListModel::Status)
class tst_qdeclarativexmllistmodel : public QObject
@@ -62,6 +65,10 @@ public:
tst_qdeclarativexmllistmodel() {}
private slots:
+ void initTestCase() {
+ qRegisterMetaType<QDeclarativeXmlListModel::Status>("QDeclarativeXmlListModel::Status");
+ }
+
void buildModel();
void missingFields();
void cdata();
@@ -69,10 +76,19 @@ private slots:
void roles();
void roleErrors();
void uniqueRoleNames();
+ void xml();
+ void xml_data();
+ void source();
+ void source_data();
+ void data();
+ void reload();
void useKeys();
void useKeys_data();
void noKeysValueChanges();
void keysChanged();
+ void threading();
+ void threading_data();
+ void propertyChanges();
private:
QString makeItemXmlAndData(const QString &data, QDeclarativeXmlModelData *modelData = 0) const
@@ -84,6 +100,8 @@ private:
if (!data.isEmpty()) {
QStringList items = data.split(";");
foreach(const QString &item, items) {
+ if (item.isEmpty())
+ continue;
QVariantList variants;
xml += QLatin1String("<item>");
QStringList fields = item.split(",");
@@ -116,90 +134,89 @@ private:
void tst_qdeclarativexmllistmodel::buildModel()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/model.qml"));
- QDeclarativeXmlListModel *listModel = qobject_cast<QDeclarativeXmlListModel*>(component.create());
- QVERIFY(listModel != 0);
- QTRY_COMPARE(listModel->count(), 9);
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(model != 0);
+ QTRY_COMPARE(model->count(), 9);
QList<int> roles;
roles << Qt::UserRole << Qt::UserRole + 1 << Qt::UserRole + 2 << Qt::UserRole + 3;
- QHash<int, QVariant> data = listModel->data(3, roles);
+ QHash<int, QVariant> data = model->data(3, roles);
QVERIFY(data.count() == 4);
QCOMPARE(data.value(Qt::UserRole).toString(), QLatin1String("Spot"));
QCOMPARE(data.value(Qt::UserRole+1).toString(), QLatin1String("Dog"));
QCOMPARE(data.value(Qt::UserRole+2).toInt(), 9);
QCOMPARE(data.value(Qt::UserRole+3).toString(), QLatin1String("Medium"));
- delete listModel;
+ delete model;
}
void tst_qdeclarativexmllistmodel::missingFields()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/model2.qml"));
- QDeclarativeXmlListModel *listModel = qobject_cast<QDeclarativeXmlListModel*>(component.create());
- QVERIFY(listModel != 0);
- QTRY_COMPARE(listModel->count(), 9);
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(model != 0);
+ QTRY_COMPARE(model->count(), 9);
QList<int> roles;
roles << Qt::UserRole << Qt::UserRole + 1 << Qt::UserRole + 2 << Qt::UserRole + 3 << Qt::UserRole + 4;
- QHash<int, QVariant> data = listModel->data(5, roles);
+ QHash<int, QVariant> data = model->data(5, roles);
QVERIFY(data.count() == 5);
QCOMPARE(data.value(Qt::UserRole+3).toString(), QLatin1String(""));
QCOMPARE(data.value(Qt::UserRole+4).toString(), QLatin1String(""));
- data = listModel->data(7, roles);
+ data = model->data(7, roles);
QVERIFY(data.count() == 5);
QCOMPARE(data.value(Qt::UserRole+2).toString(), QLatin1String(""));
- delete listModel;
+ delete model;
}
void tst_qdeclarativexmllistmodel::cdata()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/recipes.qml"));
- QDeclarativeXmlListModel *listModel = qobject_cast<QDeclarativeXmlListModel*>(component.create());
- QVERIFY(listModel != 0);
- QTRY_COMPARE(listModel->count(), 5);
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(model != 0);
+ QTRY_COMPARE(model->count(), 5);
QList<int> roles;
roles << Qt::UserRole + 2;
- QHash<int, QVariant> data = listModel->data(2, roles);
+ QHash<int, QVariant> data = model->data(2, roles);
QVERIFY(data.count() == 1);
QVERIFY(data.value(Qt::UserRole+2).toString().startsWith(QLatin1String("<html>")));
- delete listModel;
+ delete model;
}
void tst_qdeclarativexmllistmodel::attributes()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/recipes.qml"));
- QDeclarativeXmlListModel *listModel = qobject_cast<QDeclarativeXmlListModel*>(component.create());
- QVERIFY(listModel != 0);
- QTRY_COMPARE(listModel->count(), 5);
-
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(model != 0);
+ QTRY_COMPARE(model->count(), 5);
QList<int> roles;
roles << Qt::UserRole;
- QHash<int, QVariant> data = listModel->data(2, roles);
+ QHash<int, QVariant> data = model->data(2, roles);
QVERIFY(data.count() == 1);
QCOMPARE(data.value(Qt::UserRole).toString(), QLatin1String("Vegetable Soup"));
- delete listModel;
+ delete model;
}
void tst_qdeclarativexmllistmodel::roles()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/model.qml"));
- QDeclarativeXmlListModel *listModel = qobject_cast<QDeclarativeXmlListModel*>(component.create());
- QVERIFY(listModel != 0);
- QTRY_COMPARE(listModel->count(), 9);
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(model != 0);
+ QTRY_COMPARE(model->count(), 9);
- QList<int> roles = listModel->roles();
+ QList<int> roles = model->roles();
QCOMPARE(roles.count(), 4);
- QCOMPARE(listModel->toString(roles.at(0)), QLatin1String("name"));
- QCOMPARE(listModel->toString(roles.at(1)), QLatin1String("type"));
- QCOMPARE(listModel->toString(roles.at(2)), QLatin1String("age"));
- QCOMPARE(listModel->toString(roles.at(3)), QLatin1String("size"));
+ QCOMPARE(model->toString(roles.at(0)), QLatin1String("name"));
+ QCOMPARE(model->toString(roles.at(1)), QLatin1String("type"));
+ QCOMPARE(model->toString(roles.at(2)), QLatin1String("age"));
+ QCOMPARE(model->toString(roles.at(3)), QLatin1String("size"));
- delete listModel;
+ delete model;
}
void tst_qdeclarativexmllistmodel::roleErrors()
@@ -207,13 +224,13 @@ void tst_qdeclarativexmllistmodel::roleErrors()
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/roleErrors.qml"));
QTest::ignoreMessage(QtWarningMsg, QString("QML XmlRole (" + QUrl::fromLocalFile(SRCDIR "/data/roleErrors.qml").toString() + ":6:5) An XmlRole query must not start with '/'").toUtf8().constData());
//### make sure we receive all expected warning messages.
- QDeclarativeXmlListModel *listModel = qobject_cast<QDeclarativeXmlListModel*>(component.create());
- QVERIFY(listModel != 0);
- QTRY_COMPARE(listModel->count(), 9);
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(model != 0);
+ QTRY_COMPARE(model->count(), 9);
QList<int> roles;
roles << Qt::UserRole << Qt::UserRole + 1 << Qt::UserRole + 2 << Qt::UserRole + 3;
- QHash<int, QVariant> data = listModel->data(3, roles);
+ QHash<int, QVariant> data = model->data(3, roles);
QVERIFY(data.count() == 4);
//### should any of these return valid values?
@@ -224,21 +241,170 @@ void tst_qdeclarativexmllistmodel::roleErrors()
QEXPECT_FAIL("", "QT-2456", Continue);
QCOMPARE(data.value(Qt::UserRole+3), QVariant());
- delete listModel;
+ delete model;
}
void tst_qdeclarativexmllistmodel::uniqueRoleNames()
{
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/unique.qml"));
QTest::ignoreMessage(QtWarningMsg, QString("QML XmlRole (" + QUrl::fromLocalFile(SRCDIR "/data/unique.qml").toString() + ":7:5) \"name\" duplicates a previous role name and will be disabled.").toUtf8().constData());
- QDeclarativeXmlListModel *listModel = qobject_cast<QDeclarativeXmlListModel*>(component.create());
- QVERIFY(listModel != 0);
- QTRY_COMPARE(listModel->count(), 9);
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(model != 0);
+ QTRY_COMPARE(model->count(), 9);
- QList<int> roles = listModel->roles();
+ QList<int> roles = model->roles();
QCOMPARE(roles.count(), 1);
- delete listModel;
+ delete model;
+}
+
+
+void tst_qdeclarativexmllistmodel::xml()
+{
+ QFETCH(QString, xml);
+ QFETCH(int, count);
+
+ QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/model.qml"));
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QSignalSpy spy(model, SIGNAL(statusChanged(QDeclarativeXmlListModel::Status)));
+
+ QCOMPARE(model->progress(), qreal(0.0));
+ QCOMPARE(model->status(), QDeclarativeXmlListModel::Loading);
+ QTRY_COMPARE(spy.count(), 1); spy.clear();
+ QCOMPARE(model->status(), QDeclarativeXmlListModel::Ready);
+ QCOMPARE(model->progress(), qreal(1.0));
+ QCOMPARE(model->count(), 9);
+
+ // if xml is empty (i.e. clearing) it won't have any effect if a source is set
+ if (xml.isEmpty())
+ model->setSource(QUrl());
+ model->setXml(xml);
+ QCOMPARE(model->progress(), qreal(1.0)); // immediately goes to 1.0 if using setXml()
+ QTRY_COMPARE(spy.count(), 1); spy.clear();
+ QCOMPARE(model->status(), QDeclarativeXmlListModel::Loading);
+ QTRY_COMPARE(spy.count(), 1); spy.clear();
+ QCOMPARE(model->status(), QDeclarativeXmlListModel::Ready);
+ QCOMPARE(model->count(), count);
+
+ delete model;
+}
+
+void tst_qdeclarativexmllistmodel::xml_data()
+{
+ QTest::addColumn<QString>("xml");
+ QTest::addColumn<int>("count");
+
+ QTest::newRow("xml with no items") << "<Pets></Pets>" << 0;
+ QTest::newRow("empty xml") << "" << 0;
+ QTest::newRow("one item") << "<Pets><Pet><name>Hobbes</name><type>Tiger</type><age>7</age><size>Large</size></Pet></Pets>" << 1;
+}
+
+void tst_qdeclarativexmllistmodel::source()
+{
+ QFETCH(QUrl, source);
+ QFETCH(int, count);
+ QFETCH(QDeclarativeXmlListModel::Status, status);
+
+ QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/model.qml"));
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QSignalSpy spy(model, SIGNAL(statusChanged(QDeclarativeXmlListModel::Status)));
+
+ QCOMPARE(model->progress(), qreal(0.0));
+ QCOMPARE(model->status(), QDeclarativeXmlListModel::Loading);
+ QTRY_COMPARE(spy.count(), 1); spy.clear();
+ QCOMPARE(model->status(), QDeclarativeXmlListModel::Ready);
+ QCOMPARE(model->progress(), qreal(1.0));
+ QCOMPARE(model->count(), 9);
+
+ model->setSource(source);
+ QCOMPARE(model->progress(), qreal(0.0));
+ QTRY_COMPARE(spy.count(), 1); spy.clear();
+ QCOMPARE(model->status(), QDeclarativeXmlListModel::Loading);
+
+ QEventLoop loop;
+ QTimer timer;
+ timer.setSingleShot(true);
+ connect(model, SIGNAL(statusChanged(QDeclarativeXmlListModel::Status)), &loop, SLOT(quit()));
+ connect(&timer, SIGNAL(timeout()), &loop, SLOT(quit()));
+ timer.start(20000);
+ loop.exec();
+
+ if (spy.count() == 0 && status != QDeclarativeXmlListModel::Ready) {
+ qWarning("QDeclarativeXmlListModel invalid source test timed out");
+ } else {
+ QCOMPARE(spy.count(), 1); spy.clear();
+ }
+
+ QCOMPARE(model->status(), status);
+ QCOMPARE(model->count(), count);
+ if (status == QDeclarativeXmlListModel::Ready)
+ QCOMPARE(model->progress(), qreal(1.0));
+
+ delete model;
+}
+
+void tst_qdeclarativexmllistmodel::source_data()
+{
+ QTest::addColumn<QUrl>("source");
+ QTest::addColumn<int>("count");
+ QTest::addColumn<QDeclarativeXmlListModel::Status>("status");
+
+ QTest::newRow("valid") << QUrl::fromLocalFile(SRCDIR "/data/model2.xml") << 2 << QDeclarativeXmlListModel::Ready;
+ QTest::newRow("invalid") << QUrl("http://blah.blah/blah.xml") << 0 << QDeclarativeXmlListModel::Error;
+
+ // empty file
+ QTemporaryFile *temp = new QTemporaryFile(this);
+ if (temp->open())
+ QTest::newRow("empty file") << QUrl::fromLocalFile(temp->fileName()) << 0 << QDeclarativeXmlListModel::Ready;
+ temp->close();
+}
+
+void tst_qdeclarativexmllistmodel::data()
+{
+ QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/model.qml"));
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(model != 0);
+
+ QHash<int,QVariant> blank;
+ for (int i=0; i<model->roles().count(); i++)
+ blank.insert(model->roles()[i], QVariant());
+ for (int i=0; i<9; i++) {
+ QCOMPARE(model->data(i, model->roles()), blank);
+ for (int j=0; j<model->roles().count(); j++) {
+ QCOMPARE(model->data(i, j), QVariant());
+ }
+ }
+ QTRY_COMPARE(model->count(), 9);
+
+ delete model;
+}
+
+void tst_qdeclarativexmllistmodel::reload()
+{
+ // If no keys are used, the model should be rebuilt from scratch when
+ // reload() is called.
+
+ QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/model.qml"));
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(model != 0);
+ QTRY_COMPARE(model->count(), 9);
+
+ QSignalSpy spyInsert(model, SIGNAL(itemsInserted(int,int)));
+ QSignalSpy spyRemove(model, SIGNAL(itemsRemoved(int,int)));
+ QSignalSpy spyCount(model, SIGNAL(countChanged()));
+
+ model->reload();
+ QTRY_COMPARE(spyCount.count(), 1);
+ QTRY_COMPARE(spyInsert.count(), 1);
+ QTRY_COMPARE(spyRemove.count(), 1);
+
+ QCOMPARE(spyInsert[0][0].toInt(), 0);
+ QCOMPARE(spyInsert[0][1].toInt(), 9);
+
+ QCOMPARE(spyRemove[0][0].toInt(), 0);
+ QCOMPARE(spyRemove[0][1].toInt(), 9);
+
+ delete model;
}
void tst_qdeclarativexmllistmodel::useKeys()
@@ -257,7 +423,7 @@ void tst_qdeclarativexmllistmodel::useKeys()
QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/roleKeys.qml"));
QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
QVERIFY(model != 0);
-
+
model->setXml(oldXml);
QTRY_COMPARE(model->count(), oldCount);
@@ -292,6 +458,8 @@ void tst_qdeclarativexmllistmodel::useKeys()
QCOMPARE(spyRemove[i][0].toInt(), removeRanges[i].first);
QCOMPARE(spyRemove[i][1].toInt(), removeRanges[i].second);
}
+
+ delete model;
}
void tst_qdeclarativexmllistmodel::useKeys_data()
@@ -368,12 +536,33 @@ void tst_qdeclarativexmllistmodel::useKeys_data()
<< (QList<QDeclarativeXmlListRange>() << qMakePair(0, 1))
<< (QList<QDeclarativeXmlListRange>() << qMakePair(0, 1));
- QTest::newRow("add and remove simultaneously")
+ QTest::newRow("add and remove simultaneously, in different spots")
<< makeItemXmlAndData("name=A,age=25,sport=Football;name=B,age=35,sport=Athletics;name=C,age=45,sport=Curling;name=D,age=55,sport=Golf") << 4
<< makeItemXmlAndData("name=B,age=35,sport=Athletics;name=E,age=65,sport=Fencing", &modelData)
<< modelData
<< (QList<QDeclarativeXmlListRange>() << qMakePair(1, 1))
<< (QList<QDeclarativeXmlListRange>() << qMakePair(0, 1) << qMakePair(2,2));
+
+ QTest::newRow("insert at start, remove at end i.e. rss feed")
+ << makeItemXmlAndData("name=C,age=45,sport=Curling;name=D,age=55,sport=Golf;name=E,age=65,sport=Fencing") << 3
+ << makeItemXmlAndData("name=A,age=25,sport=Football;name=B,age=35,sport=Athletics;name=C,age=45,sport=Curling", &modelData)
+ << modelData
+ << (QList<QDeclarativeXmlListRange>() << qMakePair(0, 2))
+ << (QList<QDeclarativeXmlListRange>() << qMakePair(1, 2));
+
+ QTest::newRow("remove at start, insert at end")
+ << makeItemXmlAndData("name=A,age=25,sport=Football;name=B,age=35,sport=Athletics;name=C,age=45,sport=Curling") << 3
+ << makeItemXmlAndData("name=C,age=45,sport=Curling;name=D,age=55,sport=Golf;name=E,age=65,sport=Fencing", &modelData)
+ << modelData
+ << (QList<QDeclarativeXmlListRange>() << qMakePair(1, 2))
+ << (QList<QDeclarativeXmlListRange>() << qMakePair(0, 2));
+
+ QTest::newRow("all data has changed")
+ << makeItemXmlAndData("name=A,age=25,sport=Football;name=B,age=35") << 2
+ << makeItemXmlAndData("name=C,age=45,sport=Curling;name=D,age=55,sport=Golf", &modelData)
+ << modelData
+ << (QList<QDeclarativeXmlListRange>() << qMakePair(0, 2))
+ << (QList<QDeclarativeXmlListRange>() << qMakePair(0, 2));
}
void tst_qdeclarativexmllistmodel::noKeysValueChanges()
@@ -392,6 +581,8 @@ void tst_qdeclarativexmllistmodel::noKeysValueChanges()
model->setXml(xml);
QTRY_COMPARE(model->count(), 2);
+ model->setXml("");
+
QSignalSpy spyInsert(model, SIGNAL(itemsInserted(int,int)));
QSignalSpy spyRemove(model, SIGNAL(itemsRemoved(int,int)));
QSignalSpy spyCount(model, SIGNAL(countChanged()));
@@ -400,18 +591,16 @@ void tst_qdeclarativexmllistmodel::noKeysValueChanges()
model->setXml(xml);
// wait for the new xml data to be set, and verify no signals were emitted
- for (int i=0; i<50; i++) {
- QTest::qWait(100);
- if (model->data(0, model->roles()[2]).toString() != QLatin1String("AussieRules"))
- break;
- }
+ QTRY_VERIFY(model->data(0, model->roles()[2]).toString() != QLatin1String("Football"));
QCOMPARE(model->data(0, model->roles()[2]).toString(), QLatin1String("AussieRules"));
QVERIFY(spyInsert.count() == 0);
QVERIFY(spyRemove.count() == 0);
QVERIFY(spyCount.count() == 0);
-
+
QCOMPARE(model->count(), 2);
+
+ delete model;
}
void tst_qdeclarativexmllistmodel::keysChanged()
@@ -428,6 +617,8 @@ void tst_qdeclarativexmllistmodel::keysChanged()
model->setXml(xml);
QTRY_COMPARE(model->count(), 2);
+ model->setXml("");
+
QSignalSpy spyInsert(model, SIGNAL(itemsInserted(int,int)));
QSignalSpy spyRemove(model, SIGNAL(itemsRemoved(int,int)));
QSignalSpy spyCount(model, SIGNAL(countChanged()));
@@ -446,6 +637,135 @@ void tst_qdeclarativexmllistmodel::keysChanged()
QCOMPARE(spyRemove[0][1].toInt(), 2);
QCOMPARE(spyCount.count(), 0);
+
+ delete model;
+}
+
+void tst_qdeclarativexmllistmodel::threading()
+{
+ QFETCH(int, xmlDataCount);
+
+ QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/roleKeys.qml"));
+
+ QDeclarativeXmlListModel *m1 = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(m1 != 0);
+ QDeclarativeXmlListModel *m2 = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(m2 != 0);
+ QDeclarativeXmlListModel *m3 = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(m3 != 0);
+
+ for (int dataCount=0; dataCount<xmlDataCount; dataCount++) {
+
+ QString data1, data2, data3;
+ for (int i=0; i<dataCount; i++) {
+ data1 += "name=A" + QString::number(i) + ",age=1" + QString::number(i) + ",sport=Football;";
+ data2 += "name=B" + QString::number(i) + ",age=2" + QString::number(i) + ",sport=Athletics;";
+ data3 += "name=C" + QString::number(i) + ",age=3" + QString::number(i) + ",sport=Curling;";
+ }
+
+ m1->setXml(makeItemXmlAndData(data1));
+ m2->setXml(makeItemXmlAndData(data2));
+ m3->setXml(makeItemXmlAndData(data3));
+
+ QTRY_VERIFY(m1->count() == dataCount && m2->count() == dataCount && m3->count() == dataCount);
+
+ for (int i=0; i<dataCount; i++) {
+ QCOMPARE(m1->data(i, m1->roles()[0]).toString(), QString("A" + QString::number(i)));
+ QCOMPARE(m1->data(i, m1->roles()[1]).toString(), QString("1" + QString::number(i)));
+ QCOMPARE(m1->data(i, m1->roles()[2]).toString(), QString("Football"));
+
+ QCOMPARE(m2->data(i, m2->roles()[0]).toString(), QString("B" + QString::number(i)));
+ QCOMPARE(m2->data(i, m2->roles()[1]).toString(), QString("2" + QString::number(i)));
+ QCOMPARE(m2->data(i, m2->roles()[2]).toString(), QString("Athletics"));
+
+ QCOMPARE(m3->data(i, m3->roles()[0]).toString(), QString("C" + QString::number(i)));
+ QCOMPARE(m3->data(i, m3->roles()[1]).toString(), QString("3" + QString::number(i)));
+ QCOMPARE(m3->data(i, m3->roles()[2]).toString(), QString("Curling"));
+ }
+ }
+
+ delete m1;
+ delete m2;
+ delete m3;
+}
+
+void tst_qdeclarativexmllistmodel::threading_data()
+{
+ QTest::addColumn<int>("xmlDataCount");
+
+ QTest::newRow("1") << 1;
+ QTest::newRow("2") << 2;
+ QTest::newRow("10") << 10;
+}
+
+void tst_qdeclarativexmllistmodel::propertyChanges()
+{
+ QDeclarativeComponent component(&engine, QUrl::fromLocalFile(SRCDIR "/data/propertychanges.qml"));
+ QDeclarativeXmlListModel *model = qobject_cast<QDeclarativeXmlListModel*>(component.create());
+ QVERIFY(model != 0);
+ QTRY_COMPARE(model->count(), 9);
+
+ QDeclarativeXmlListModelRole *role = model->findChild<QDeclarativeXmlListModelRole*>("role");
+ QVERIFY(role);
+
+ QSignalSpy nameSpy(role, SIGNAL(nameChanged()));
+ QSignalSpy querySpy(role, SIGNAL(queryChanged()));
+ QSignalSpy isKeySpy(role, SIGNAL(isKeyChanged()));
+
+ role->setName("size");
+ role->setQuery("size/string()");
+ role->setIsKey(true);
+
+ QCOMPARE(role->name(), QString("size"));
+ QCOMPARE(role->query(), QString("size/string()"));
+ QVERIFY(role->isKey());
+
+ QCOMPARE(nameSpy.count(),1);
+ QCOMPARE(querySpy.count(),1);
+ QCOMPARE(isKeySpy.count(),1);
+
+ role->setName("size");
+ role->setQuery("size/string()");
+ role->setIsKey(true);
+
+ QCOMPARE(nameSpy.count(),1);
+ QCOMPARE(querySpy.count(),1);
+ QCOMPARE(isKeySpy.count(),1);
+
+ QSignalSpy sourceSpy(model, SIGNAL(sourceChanged()));
+ QSignalSpy xmlSpy(model, SIGNAL(xmlChanged()));
+ QSignalSpy modelQuerySpy(model, SIGNAL(queryChanged()));
+ QSignalSpy namespaceDeclarationsSpy(model, SIGNAL(namespaceDeclarationsChanged()));
+
+ model->setSource(QUrl(""));
+ model->setXml("<Pets><Pet><name>Polly</name><type>Parrot</type><age>12</age><size>Small</size></Pet></Pets>");
+ model->setQuery("/Pets");
+ model->setNamespaceDeclarations("declare namespace media=\"http://search.yahoo.com/mrss/\";");
+
+ QCOMPARE(model->source(), QUrl(""));
+ QCOMPARE(model->xml(), QString("<Pets><Pet><name>Polly</name><type>Parrot</type><age>12</age><size>Small</size></Pet></Pets>"));
+ QCOMPARE(model->query(), QString("/Pets"));
+ QCOMPARE(model->namespaceDeclarations(), QString("declare namespace media=\"http://search.yahoo.com/mrss/\";"));
+
+ QTRY_VERIFY(model->count() == 1);
+
+ QCOMPARE(sourceSpy.count(),1);
+ QCOMPARE(xmlSpy.count(),1);
+ QCOMPARE(modelQuerySpy.count(),1);
+ QCOMPARE(namespaceDeclarationsSpy.count(),1);
+
+ model->setSource(QUrl(""));
+ model->setXml("<Pets><Pet><name>Polly</name><type>Parrot</type><age>12</age><size>Small</size></Pet></Pets>");
+ model->setQuery("/Pets");
+ model->setNamespaceDeclarations("declare namespace media=\"http://search.yahoo.com/mrss/\";");
+
+ QCOMPARE(sourceSpy.count(),1);
+ QCOMPARE(xmlSpy.count(),1);
+ QCOMPARE(modelQuerySpy.count(),1);
+ QCOMPARE(namespaceDeclarationsSpy.count(),1);
+
+ QTRY_VERIFY(model->count() == 1);
+ delete model;
}
QTEST_MAIN(tst_qdeclarativexmllistmodel)
diff --git a/tests/auto/declarative/qmetaobjectbuilder/qmetaobjectbuilder.pro b/tests/auto/declarative/qmetaobjectbuilder/qmetaobjectbuilder.pro
index 94ffe4b..988177e 100644
--- a/tests/auto/declarative/qmetaobjectbuilder/qmetaobjectbuilder.pro
+++ b/tests/auto/declarative/qmetaobjectbuilder/qmetaobjectbuilder.pro
@@ -5,3 +5,4 @@ macx:CONFIG -= app_bundle
SOURCES += \
tst_qmetaobjectbuilder.cpp
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp b/tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
index c1dc924..8ba9d45 100644
--- a/tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
+++ b/tests/auto/declarative/qmetaobjectbuilder/tst_qmetaobjectbuilder.cpp
@@ -139,10 +139,10 @@ void tst_QMetaObjectBuilder::mocVersionCheck()
// It is intended as a reminder to also update QMetaObjectBuilder
// whenenver moc changes. Once QMetaObjectBuilder has been
// updated, this test can be changed to check for the next version.
- QEXPECT_FAIL("", "QT-2918", Continue);
- QCOMPARE(int(QObject::staticMetaObject.d.data[0]), 4);
- QEXPECT_FAIL("", "QT-2918", Continue);
- QCOMPARE(int(staticMetaObject.d.data[0]), 4);
+ int version = int(QObject::staticMetaObject.d.data[0]);
+ QVERIFY(version == 4 || version == 5);
+ version = int(staticMetaObject.d.data[0]);
+ QVERIFY(version == 4 || version == 5);
}
void tst_QMetaObjectBuilder::create()
diff --git a/tests/auto/declarative/visual/ListView/basic1.qml b/tests/auto/declarative/qmlvisual/ListView/basic1.qml
index 3c371a6..3c371a6 100644
--- a/tests/auto/declarative/visual/ListView/basic1.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/basic1.qml
diff --git a/tests/auto/declarative/visual/ListView/basic2.qml b/tests/auto/declarative/qmlvisual/ListView/basic2.qml
index bdba65e..bdba65e 100644
--- a/tests/auto/declarative/visual/ListView/basic2.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/basic2.qml
diff --git a/tests/auto/declarative/qmlvisual/ListView/basic3.qml b/tests/auto/declarative/qmlvisual/ListView/basic3.qml
new file mode 100644
index 0000000..2d68c0a
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/ListView/basic3.qml
@@ -0,0 +1,29 @@
+import Qt 4.6
+
+Rectangle {
+ color: "blue"
+ width: 200
+ height: 300
+ id: page
+ ListModel {
+ id: model
+ ListElement {
+ name: "January"
+ }
+ ListElement {
+ name: "February"
+ }
+ }
+ ListView {
+ anchors.fill: parent
+ model: model
+ delegate: Rectangle {
+ color: "red"
+ width: 100
+ height: 100
+ Text {
+ text: name
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/ListView/basic4.qml b/tests/auto/declarative/qmlvisual/ListView/basic4.qml
new file mode 100644
index 0000000..7c68df1
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/ListView/basic4.qml
@@ -0,0 +1,33 @@
+import Qt 4.6
+
+Rectangle {
+ color: "blue"
+ width: 200
+ height: 300
+ id: page
+ ListModel {
+ id: model
+ ListElement {
+ name: "January"
+ }
+ ListElement {
+ name: "February"
+ }
+ }
+ Component {
+ id: delegate
+ Rectangle {
+ color: "red"
+ width: 100
+ height: 100
+ Text {
+ text: name
+ }
+ }
+ }
+ ListView {
+ anchors.fill: parent
+ model: model
+ delegate: delegate
+ }
+}
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/basic1.qml b/tests/auto/declarative/qmlvisual/ListView/data-MAC/basic1.qml
index 83b700d..83b700d 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/basic1.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/basic1.qml
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/basic2.qml b/tests/auto/declarative/qmlvisual/ListView/data-MAC/basic2.qml
index 1483512..1483512 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/basic2.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/basic2.qml
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/basic3.qml b/tests/auto/declarative/qmlvisual/ListView/data-MAC/basic3.qml
index bf68998..bf68998 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/basic3.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/basic3.qml
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/basic4.qml b/tests/auto/declarative/qmlvisual/ListView/data-MAC/basic4.qml
index 4aa9ab6..4aa9ab6 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/basic4.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/basic4.qml
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.0.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.0.png
index 13b280c..13b280c 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.0.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.1.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.1.png
index 402872b..402872b 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.1.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.2.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.2.png
index afd0830..afd0830 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.2.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.3.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.3.png
index 7c15f61..7c15f61 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.3.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.4.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.4.png
index afd0830..afd0830 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.4.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.5.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.5.png
index fddf1cb..fddf1cb 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.5.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.6.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.6.png
index 13b280c..13b280c 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.6.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.qml b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.qml
index 073749f..073749f 100644
--- a/tests/auto/declarative/visual/ListView/data/itemlist.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/itemlist.qml
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.0.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.0.png
index a1ab987..a1ab987 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.0.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.1.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.1.png
index a1ab987..a1ab987 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.1.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.10.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.10.png
index dcfca3f..dcfca3f 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.10.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.10.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.11.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.11.png
index 7cc4047..7cc4047 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.11.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.11.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.12.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.12.png
index a97f4ad..a97f4ad 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.12.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.12.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.13.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.13.png
index 7a8c6bd..7a8c6bd 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.13.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.13.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.14.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.14.png
index ae47356..ae47356 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.14.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.14.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.15.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.15.png
index b3a7260..b3a7260 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.15.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.15.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.16.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.16.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.16.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.16.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.17.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.17.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.17.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.17.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.18.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.18.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.18.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.18.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.19.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.19.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.19.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.19.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.2.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.2.png
index 9877b92..9877b92 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.2.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.3.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.3.png
index 603bd24..603bd24 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.3.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.4.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.4.png
index 5fdfbb8..5fdfbb8 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.4.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.5.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.5.png
index a1ab987..a1ab987 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.5.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.6.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.6.png
index 9ccf9b0..9ccf9b0 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.6.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.7.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.7.png
index 6b40e1b..6b40e1b 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.7.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.8.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.8.png
index 2fda36d..2fda36d 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.8.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.9.png b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.9.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.9.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.qml b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.qml
index 3765668..3765668 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data-MAC/listview.qml
diff --git a/tests/auto/declarative/visual/ListView/data-X11/basic1.qml b/tests/auto/declarative/qmlvisual/ListView/data-X11/basic1.qml
index ae59b14..ae59b14 100644
--- a/tests/auto/declarative/visual/ListView/data-X11/basic1.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data-X11/basic1.qml
diff --git a/tests/auto/declarative/visual/ListView/data-X11/basic2.qml b/tests/auto/declarative/qmlvisual/ListView/data-X11/basic2.qml
index ff19d22..ff19d22 100644
--- a/tests/auto/declarative/visual/ListView/data-X11/basic2.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data-X11/basic2.qml
diff --git a/tests/auto/declarative/visual/ListView/data-X11/basic3.qml b/tests/auto/declarative/qmlvisual/ListView/data-X11/basic3.qml
index 2f33cae..2f33cae 100644
--- a/tests/auto/declarative/visual/ListView/data-X11/basic3.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data-X11/basic3.qml
diff --git a/tests/auto/declarative/visual/ListView/data-X11/basic4.qml b/tests/auto/declarative/qmlvisual/ListView/data-X11/basic4.qml
index 4b1c5cf..4b1c5cf 100644
--- a/tests/auto/declarative/visual/ListView/data-X11/basic4.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data-X11/basic4.qml
diff --git a/tests/auto/declarative/visual/ListView/data/basic1.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic1.qml
index 4cd44fc..4cd44fc 100644
--- a/tests/auto/declarative/visual/ListView/data/basic1.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data/basic1.qml
diff --git a/tests/auto/declarative/visual/ListView/data/basic2.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic2.qml
index 34ad5ed..34ad5ed 100644
--- a/tests/auto/declarative/visual/ListView/data/basic2.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data/basic2.qml
diff --git a/tests/auto/declarative/visual/ListView/data/basic3.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic3.qml
index 1c5ddb0..1c5ddb0 100644
--- a/tests/auto/declarative/visual/ListView/data/basic3.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data/basic3.qml
diff --git a/tests/auto/declarative/visual/ListView/data/basic4.qml b/tests/auto/declarative/qmlvisual/ListView/data/basic4.qml
index d121d91..d121d91 100644
--- a/tests/auto/declarative/visual/ListView/data/basic4.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data/basic4.qml
diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.0.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.0.png
index a1947ca..a1947ca 100644
--- a/tests/auto/declarative/visual/ListView/data/itemlist.0.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.1.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.1.png
index d27b7fa..d27b7fa 100644
--- a/tests/auto/declarative/visual/ListView/data/itemlist.1.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.2.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.2.png
index fdab8c6..fdab8c6 100644
--- a/tests/auto/declarative/visual/ListView/data/itemlist.2.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.3.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.3.png
index dc321a8..dc321a8 100644
--- a/tests/auto/declarative/visual/ListView/data/itemlist.3.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.4.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.4.png
index fdab8c6..fdab8c6 100644
--- a/tests/auto/declarative/visual/ListView/data/itemlist.4.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.5.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.5.png
index 15b51cb..15b51cb 100644
--- a/tests/auto/declarative/visual/ListView/data/itemlist.5.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/itemlist.6.png b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.6.png
index a1947ca..a1947ca 100644
--- a/tests/auto/declarative/visual/ListView/data/itemlist.6.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.qml b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml
index 073749f..073749f 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/itemlist.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data/itemlist.qml
diff --git a/tests/auto/declarative/visual/ListView/data/listview.0.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.0.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.0.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.1.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.1.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.1.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.10.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.10.png
index dcfca3f..dcfca3f 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.10.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.10.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.11.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.11.png
index 7cc4047..7cc4047 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.11.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.11.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.12.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.12.png
index a97f4ad..a97f4ad 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.12.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.12.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.13.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.13.png
index 7a8c6bd..7a8c6bd 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.13.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.13.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.14.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.14.png
index ae47356..ae47356 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.14.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.14.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.15.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.15.png
index b3a7260..b3a7260 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.15.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.15.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.16.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.16.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.16.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.16.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.17.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.17.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.17.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.17.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.18.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.18.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.18.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.18.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.19.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.19.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.19.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.19.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.2.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.2.png
index 579c68c..579c68c 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.2.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.3.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.3.png
index b3a7260..b3a7260 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.3.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.4.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.4.png
index 19758b0..19758b0 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.4.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.5.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.5.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.6.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png
index 82cac48..82cac48 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.6.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.7.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.7.png
index 9277a82..9277a82 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.7.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.8.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.8.png
index 8c36da7..8c36da7 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.8.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data-MAC/listview.9.png b/tests/auto/declarative/qmlvisual/ListView/data/listview.9.png
index 581e824..581e824 100644
--- a/tests/auto/declarative/visual/ListView/data-MAC/listview.9.png
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/ListView/data/listview.qml b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml
index cd5d7b4..cd5d7b4 100644
--- a/tests/auto/declarative/visual/ListView/data/listview.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/data/listview.qml
diff --git a/tests/auto/declarative/visual/ListView/itemlist.qml b/tests/auto/declarative/qmlvisual/ListView/itemlist.qml
index 8cbbdb0..8cbbdb0 100644
--- a/tests/auto/declarative/visual/ListView/itemlist.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/itemlist.qml
diff --git a/tests/auto/declarative/visual/ListView/listview.qml b/tests/auto/declarative/qmlvisual/ListView/listview.qml
index fb9eecd..fb9eecd 100644
--- a/tests/auto/declarative/visual/ListView/listview.qml
+++ b/tests/auto/declarative/qmlvisual/ListView/listview.qml
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.0.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.0.png
index c59b816..c59b816 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.0.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.1.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.1.png
index d4dbc70..d4dbc70 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.1.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.10.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.10.png
index ed9d345..ed9d345 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.10.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.10.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.11.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.11.png
index ed9d345..ed9d345 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.11.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.11.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.12.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.12.png
index 45ee400..45ee400 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.12.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.12.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.13.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.13.png
index c73e158..c73e158 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.13.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.13.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.14.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.14.png
index e2fff6d..e2fff6d 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.14.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.14.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.15.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.15.png
index d7a13df..d7a13df 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.15.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.15.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.16.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.16.png
index beb3094..beb3094 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.16.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.16.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.17.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.17.png
index beb3094..beb3094 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.17.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.17.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.18.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.18.png
index beb3094..beb3094 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.18.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.18.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.19.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.19.png
index d3a2650..d3a2650 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.19.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.19.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.2.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.2.png
index a09dd28..a09dd28 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.2.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.20.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.20.png
index 600462a..600462a 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.20.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.20.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.21.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.21.png
index 6defca0..6defca0 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.21.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.21.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.22.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.22.png
index 91967e1..91967e1 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.22.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.22.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.3.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.3.png
index d099a79..d099a79 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.3.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.4.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.4.png
index 385efc8..385efc8 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.4.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.5.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.5.png
index 25a7c3c..25a7c3c 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.5.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.6.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.6.png
index 25a7c3c..25a7c3c 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.6.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.7.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.7.png
index 7a24f51..7a24f51 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.7.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.8.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.8.png
index 7a24f51..7a24f51 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.8.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.9.png b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.9.png
index 45ee400..45ee400 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.9.png
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/Package_Views/data/packageviews.qml b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml
index d062667..d062667 100644
--- a/tests/auto/declarative/visual/Package_Views/data/packageviews.qml
+++ b/tests/auto/declarative/qmlvisual/Package_Views/data/packageviews.qml
diff --git a/tests/auto/declarative/qmlvisual/Package_Views/packageviews.qml b/tests/auto/declarative/qmlvisual/Package_Views/packageviews.qml
new file mode 100644
index 0000000..7ccba10
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/Package_Views/packageviews.qml
@@ -0,0 +1,90 @@
+import Qt 4.6
+
+Rectangle {
+ id: root
+ width: 200
+ height: 200
+ color: "black"
+
+ VisualDataModel {
+ id: model
+ model: ListModel {
+ ListElement { itemColor: "red" }
+ ListElement { itemColor: "green" }
+ ListElement { itemColor: "blue" }
+ ListElement { itemColor: "orange" }
+ ListElement { itemColor: "purple" }
+ ListElement { itemColor: "yellow" }
+ ListElement { itemColor: "slategrey" }
+ ListElement { itemColor: "cyan" }
+ ListElement { itemColor: "red" }
+ ListElement { itemColor: "green" }
+ ListElement { itemColor: "blue" }
+ ListElement { itemColor: "orange" }
+ ListElement { itemColor: "purple" }
+ ListElement { itemColor: "yellow" }
+ ListElement { itemColor: "slategrey" }
+ ListElement { itemColor: "cyan" }
+ }
+ delegate: Package {
+ Rectangle {
+ id: listItem; Package.name: "list"; width:root.width/2; height: 50; color: "transparent"; border.color: "white"
+ MouseArea {
+ anchors.fill: parent
+ onClicked: myState.state = myState.state == "list" ? "grid" : "list"
+ }
+ }
+ Rectangle {
+ id: gridItem; Package.name: "grid"; width:50; height: 50; color: "transparent"; border.color: "white"
+ MouseArea {
+ anchors.fill: parent
+ onClicked: myState.state = myState.state == "list" ? "grid" : "list"
+ }
+ }
+ Rectangle { id: myContent; width:50; height: 50; color: itemColor }
+
+ StateGroup {
+ id: myState
+ state: "list"
+ states: [
+ State {
+ name: "list"
+ ParentChange { target: myContent; parent: listItem }
+ PropertyChanges { target: myContent; x: 0; y: 0; width: listItem.width }
+ },
+ State {
+ name: "grid"
+ ParentChange { target: myContent; parent: gridItem }
+ PropertyChanges { target: myContent; x: 0; y: 0; width: gridItem.width }
+ }
+ ]
+
+ transitions: [
+ Transition {
+ from: "*"; to: "*"
+ SequentialAnimation {
+ ParentAnimation{
+ NumberAnimation { properties: "x,y,width"; easing.type: "InOutQuad" }
+ }
+ }
+ }
+ ]
+ }
+ }
+ }
+
+ ListView {
+ width: parent.width/2
+ height: parent.height
+ model: model.parts.list
+ }
+
+ GridView {
+ x: parent.width/2
+ width: parent.width/2
+ cellWidth: 50
+ cellHeight: 50
+ height: parent.height
+ model: model.parts.grid
+ }
+}
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml b/tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml
index 70c14cf..70c14cf 100644
--- a/tests/auto/declarative/visual/animation/bindinganimation/bindinganimation.qml
+++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/bindinganimation.qml
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png
index 1b08c81..1b08c81 100644
--- a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.0.png
+++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png
index f3074fc..f3074fc 100644
--- a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.1.png
+++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png
index 1b08c81..1b08c81 100644
--- a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.2.png
+++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png
index e2560e0..e2560e0 100644
--- a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.3.png
+++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.4.png
index 2ddde86..2ddde86 100644
--- a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.4.png
+++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.5.png
index f3074fc..f3074fc 100644
--- a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.5.png
+++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.6.png
index 1b08c81..1b08c81 100644
--- a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.6.png
+++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml
index 8297c5a..8297c5a 100644
--- a/tests/auto/declarative/visual/animation/bindinganimation/data/bindinganimation.qml
+++ b/tests/auto/declarative/qmlvisual/animation/bindinganimation/data/bindinganimation.qml
diff --git a/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml b/tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation-visual.qml
index f205ae8..f205ae8 100644
--- a/tests/auto/declarative/visual/animation/colorAnimation/colorAnimation.qml
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation-visual.qml
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png
new file mode 100644
index 0000000..e6ea16d
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png
new file mode 100644
index 0000000..b75ba61
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png
new file mode 100644
index 0000000..4320f6f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml
new file mode 100644
index 0000000..4ab94f3
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml
@@ -0,0 +1,951 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "acc736435c9f84aa82941ba561bc5dbc"
+ }
+ 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
+ image: "colorAnimation-visual.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "85b1821cc50f2a9f3ed6944f792b7a2f"
+ }
+ Frame {
+ msec: 992
+ hash: "395195716d76bc0be7b2033ed37a7a1c"
+ }
+ Frame {
+ msec: 1008
+ hash: "e0f53c5605116a30d9bf3c031c63d958"
+ }
+ 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: "45770fe0d61c485c13992d0f98b2a3ba"
+ }
+ 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: "a2fa71b4147372175774250501b6625e"
+ }
+ 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
+ image: "colorAnimation-visual.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "e7aa6374c73832e57ceb2427a1e258aa"
+ }
+ 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: "10d46d2862e333e5136b1c046dabb33b"
+ }
+ 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
+ image: "colorAnimation-visual.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "8c0fcda4f8956394c53fc4ba18caa850"
+ }
+ 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/visual/animation/easing/data/easing.0.png b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png
index 4f75bfd..4f75bfd 100644
--- a/tests/auto/declarative/visual/animation/easing/data/easing.0.png
+++ b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.1.png b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.1.png
index dc17765..dc17765 100644
--- a/tests/auto/declarative/visual/animation/easing/data/easing.1.png
+++ b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.2.png b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.2.png
index 7f83548..7f83548 100644
--- a/tests/auto/declarative/visual/animation/easing/data/easing.2.png
+++ b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.3.png b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.3.png
index c68e0fa..c68e0fa 100644
--- a/tests/auto/declarative/visual/animation/easing/data/easing.3.png
+++ b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/easing/data/easing.qml b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml
index d8e8688..d8e8688 100644
--- a/tests/auto/declarative/visual/animation/easing/data/easing.qml
+++ b/tests/auto/declarative/qmlvisual/animation/easing/data/easing.qml
diff --git a/tests/auto/declarative/visual/animation/easing/easing.qml b/tests/auto/declarative/qmlvisual/animation/easing/easing.qml
index 4248d88..4248d88 100644
--- a/tests/auto/declarative/visual/animation/easing/easing.qml
+++ b/tests/auto/declarative/qmlvisual/animation/easing/easing.qml
diff --git a/tests/auto/declarative/visual/animation/loop/data/loop.0.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.0.png
index f4301d3..f4301d3 100644
--- a/tests/auto/declarative/visual/animation/loop/data/loop.0.png
+++ b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/loop/data/loop.1.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.1.png
index ceb0e20..ceb0e20 100644
--- a/tests/auto/declarative/visual/animation/loop/data/loop.1.png
+++ b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/loop/data/loop.2.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.2.png
index 197c8c0..197c8c0 100644
--- a/tests/auto/declarative/visual/animation/loop/data/loop.2.png
+++ b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/loop/data/loop.3.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.3.png
index 3a4327e..3a4327e 100644
--- a/tests/auto/declarative/visual/animation/loop/data/loop.3.png
+++ b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/loop/data/loop.4.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.4.png
index 2397719..2397719 100644
--- a/tests/auto/declarative/visual/animation/loop/data/loop.4.png
+++ b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/loop/data/loop.5.png b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.5.png
index 70d91a2..70d91a2 100644
--- a/tests/auto/declarative/visual/animation/loop/data/loop.5.png
+++ b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/loop/data/loop.qml b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml
index 8804d44..8804d44 100644
--- a/tests/auto/declarative/visual/animation/loop/data/loop.qml
+++ b/tests/auto/declarative/qmlvisual/animation/loop/data/loop.qml
diff --git a/tests/auto/declarative/qmlvisual/animation/loop/loop.qml b/tests/auto/declarative/qmlvisual/animation/loop/loop.qml
new file mode 100644
index 0000000..5389b26
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/loop/loop.qml
@@ -0,0 +1,24 @@
+import Qt 4.6
+
+Rectangle {
+ id: wrapper
+ width: 600
+ height: 100
+
+ Rectangle {
+ id: redRect
+ width: 100; height: 100
+ color: Qt.rgba(1,0,0)
+ /* This should produce an animation that starts at 0, animates smoothly
+ to 100, jumps to 200, animates smoothly to 400, animates smoothly
+ back to 100, jumps to 200, and so on.
+ */
+ SequentialAnimation on x {
+ loops: Animation.Infinite
+ NumberAnimation { to: 100; duration: 1000 }
+ NumberAnimation { from: 200; to: 400; duration: 1000 }
+ }
+
+ }
+
+}
diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml
index 5f5b8fc..5f5b8fc 100644
--- a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.qml
+++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml
diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.0.png
index 82c18d7..82c18d7 100644
--- a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.0.png
+++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.1.png
index b9a3b89..b9a3b89 100644
--- a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.1.png
+++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.2.png
index 789615b..789615b 100644
--- a/tests/auto/declarative/visual/animation/parallelAnimation/data/parallelAnimation.2.png
+++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml
new file mode 100644
index 0000000..ba606f4
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml
@@ -0,0 +1,51 @@
+import Qt 4.6
+
+/*
+ This test verifies that a single animation animating two properties is visually the same as two
+ animations in a parallel group animating the same properties. Visually, you should see a red
+ rectangle at 0,0 stretching from the top of the window to the bottom. This rect will be moved to
+ the right side of the window while turning purple. If the bottom half is visually different
+ than the top half, there is a problem.
+*/
+
+Rectangle {
+ width: 400; height: 200
+ Rectangle {
+ id: redRect
+ width: 100; height: 100
+ color: "red"
+ }
+ Rectangle {
+ id: redRect2
+ width: 100; height: 100
+ y: 100
+ color: "red"
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: parent.state = "state1"
+ }
+
+ states: State {
+ name: "state1"
+ PropertyChanges {
+ target: redRect
+ x: 300
+ color: "purple"
+ }
+ PropertyChanges {
+ target: redRect2
+ x: 300
+ color: "purple"
+ }
+ }
+
+ transitions: Transition {
+ PropertyAnimation { targets: redRect; properties: "x,color"; duration: 300 }
+ ParallelAnimation {
+ NumberAnimation { targets: redRect2; properties: "x"; duration: 300 }
+ ColorAnimation { targets: redRect2; properties: "color"; duration: 300 }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml
new file mode 100644
index 0000000..5718560
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation-visual.qml
@@ -0,0 +1,1663 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 32
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 48
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 64
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 80
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 96
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 112
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 128
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 144
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 160
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 176
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 192
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 208
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 224
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 240
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 256
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 272
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 288
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 304
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 320
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 336
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 352
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 368
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 384
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 400
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 416
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 432
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 448
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 464
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 480
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 496
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 512
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 528
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 544
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 560
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 576
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 592
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 608
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 624
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 640
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 656
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 672
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 688
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 704
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 720
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 736
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 752
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 768
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 784
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 800
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 816
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 832
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 848
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 864
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 880
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 896
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 912
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 928
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 944
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 960
+ image: "parentAnimation.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 992
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1008
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1024
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1040
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1056
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1072
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1088
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1104
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1120
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1136
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1152
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1168
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1184
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1200
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1216
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1232
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1248
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1264
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1280
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1296
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1312
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1328
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1344
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1360
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1376
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1392
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1408
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1424
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1440
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1456
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1472
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1488
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1504
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1520
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1536
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 237; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1552
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 1568
+ hash: "633b5668278295faa57d0cfffe8a29cb"
+ }
+ Frame {
+ msec: 1584
+ hash: "ccbf4505e0f05547d2f7ce874ab941c0"
+ }
+ Frame {
+ msec: 1600
+ hash: "be904489959fa365badb642fa9e85922"
+ }
+ Frame {
+ msec: 1616
+ hash: "de6a97ac6e2677feb223336199cbffe1"
+ }
+ Frame {
+ msec: 1632
+ hash: "997b0a547336a9bb6a67cd9beffe1831"
+ }
+ Frame {
+ msec: 1648
+ hash: "ac9a6e111050b8a7c4492f06c33d3969"
+ }
+ Frame {
+ msec: 1664
+ hash: "7313c0d2ee06e393f486670222c29bb4"
+ }
+ Frame {
+ msec: 1680
+ hash: "24cea420d03d1fdcddb1b9cf5112cbee"
+ }
+ Frame {
+ msec: 1696
+ hash: "764688785eeaa01e9c84821476911edb"
+ }
+ Frame {
+ msec: 1712
+ hash: "b24ae0cb512abfd2606ff9c20a6751bf"
+ }
+ Frame {
+ msec: 1728
+ hash: "f1daed3391f10e27435a54222df8d0ab"
+ }
+ Frame {
+ msec: 1744
+ hash: "99704e182267f2c12d0215b9c03f4d68"
+ }
+ Frame {
+ msec: 1760
+ hash: "143cd9259a41b8af5d41a5b2aaf8de64"
+ }
+ Frame {
+ msec: 1776
+ hash: "b5f0a0f838b5870c162a24cd767f068b"
+ }
+ Frame {
+ msec: 1792
+ hash: "c5c8cdcbfab7466e447eaff582bf7312"
+ }
+ Frame {
+ msec: 1808
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 1824
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 1840
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 1856
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 1872
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 1888
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 1904
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 1920
+ image: "parentAnimation.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 1952
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 1968
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 1984
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2000
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2016
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2032
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2048
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2064
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2080
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2096
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2112
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2128
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2144
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2160
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2176
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2192
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2208
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2224
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2240
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2256
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2272
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2288
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2304
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2320
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2336
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2352
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2368
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2384
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2400
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2416
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2432
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2448
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2464
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2480
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 237; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2496
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 2512
+ hash: "eaeeb8c51d43e3c38ff7dde632d1f9c8"
+ }
+ Frame {
+ msec: 2528
+ hash: "ec0e68c2e7a75fedd1091ce633dadd4f"
+ }
+ Frame {
+ msec: 2544
+ hash: "a5d60efc176dee9083a2d746e7ad8315"
+ }
+ Frame {
+ msec: 2560
+ hash: "48bcbbacf413080247f818e35e496e04"
+ }
+ Frame {
+ msec: 2576
+ hash: "c521af8efa19fbac39119ad75cd469f5"
+ }
+ Frame {
+ msec: 2592
+ hash: "0e74613c67fc9d9acb21a3d382c5efcd"
+ }
+ Frame {
+ msec: 2608
+ hash: "eeb3f4467ebd7ee678c3b7371db28519"
+ }
+ Frame {
+ msec: 2624
+ hash: "9c5b9009a35b74d0ddec8fec85f204bf"
+ }
+ Frame {
+ msec: 2640
+ hash: "aefc70824e23428aebf0a40830a57469"
+ }
+ Frame {
+ msec: 2656
+ hash: "1fa9c23760193b74b0063b4e4c434070"
+ }
+ Frame {
+ msec: 2672
+ hash: "8091700d4729163bd87521385853e608"
+ }
+ Frame {
+ msec: 2688
+ hash: "a13558e609570f9390f20a85d244fa22"
+ }
+ Frame {
+ msec: 2704
+ hash: "7be5e3609bbeb9a2c1df7d52f3953d4d"
+ }
+ Frame {
+ msec: 2720
+ hash: "51c8ae31f858121d86ef09cc9a5c5ef3"
+ }
+ Frame {
+ msec: 2736
+ hash: "84ce8f39207f4b07c2c3323425a8c238"
+ }
+ Frame {
+ msec: 2752
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2768
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2784
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2800
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2816
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2832
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2848
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2864
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2880
+ image: "parentAnimation.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2912
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2928
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2944
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2960
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2976
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 2992
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3008
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3024
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3040
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3056
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3072
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3088
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3104
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3120
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3136
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3152
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3168
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3184
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3200
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3216
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3232
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3248
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3264
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3280
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3296
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3312
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3328
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3344
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3360
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3376
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 237; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3392
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 3408
+ hash: "633b5668278295faa57d0cfffe8a29cb"
+ }
+ Frame {
+ msec: 3424
+ hash: "ccbf4505e0f05547d2f7ce874ab941c0"
+ }
+ Frame {
+ msec: 3440
+ hash: "be904489959fa365badb642fa9e85922"
+ }
+ Frame {
+ msec: 3456
+ hash: "de6a97ac6e2677feb223336199cbffe1"
+ }
+ Frame {
+ msec: 3472
+ hash: "997b0a547336a9bb6a67cd9beffe1831"
+ }
+ Frame {
+ msec: 3488
+ hash: "ac9a6e111050b8a7c4492f06c33d3969"
+ }
+ Frame {
+ msec: 3504
+ hash: "7313c0d2ee06e393f486670222c29bb4"
+ }
+ Frame {
+ msec: 3520
+ hash: "24cea420d03d1fdcddb1b9cf5112cbee"
+ }
+ Frame {
+ msec: 3536
+ hash: "764688785eeaa01e9c84821476911edb"
+ }
+ Frame {
+ msec: 3552
+ hash: "b24ae0cb512abfd2606ff9c20a6751bf"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 237; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3568
+ hash: "b24ae0cb512abfd2606ff9c20a6751bf"
+ }
+ Frame {
+ msec: 3584
+ hash: "d7bf1b48f1a03974e7f095468e07f037"
+ }
+ Frame {
+ msec: 3600
+ hash: "a59ab4fe1c22d27b5cdde949cf90e6f4"
+ }
+ Frame {
+ msec: 3616
+ hash: "7c3082720e65b8a6217bf5a5fe4d48c0"
+ }
+ Frame {
+ msec: 3632
+ hash: "350d1ff24fb8fba0ab8a6694d99544b3"
+ }
+ Frame {
+ msec: 3648
+ hash: "81d17a62c33d79ed25968ec47771d292"
+ }
+ Frame {
+ msec: 3664
+ hash: "43fd3ef88bd7a2e5bf4546f088783077"
+ }
+ Frame {
+ msec: 3680
+ hash: "041938ad2e023202db18df28f2329c8f"
+ }
+ Frame {
+ msec: 3696
+ hash: "ec8677eae06cbf77a9508953325b179e"
+ }
+ Mouse {
+ type: 4
+ button: 1
+ buttons: 1
+ x: 237; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3712
+ hash: "ec8677eae06cbf77a9508953325b179e"
+ }
+ Frame {
+ msec: 3728
+ hash: "453026339c3901ee286831b4b41088f6"
+ }
+ Frame {
+ msec: 3744
+ hash: "d58a7a41ade691cc0acfb0303bfc3b68"
+ }
+ Frame {
+ msec: 3760
+ hash: "a200b05ef3d7e39e11513fd2f8ff1497"
+ }
+ Frame {
+ msec: 3776
+ hash: "faa1223975acdf2d4b48045d7f2ce445"
+ }
+ Frame {
+ msec: 3792
+ hash: "964d9b80d82d0fe3d3fb328a1661a60e"
+ }
+ Frame {
+ msec: 3808
+ hash: "705871bc384de93100354acb19b371b0"
+ }
+ Frame {
+ msec: 3824
+ hash: "1a4480463adfc5a3d525916b03c2c3ce"
+ }
+ Frame {
+ msec: 3840
+ image: "parentAnimation.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "9a55bdf428f45f02d9c8cf414dcd7754"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 237; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3872
+ hash: "9a55bdf428f45f02d9c8cf414dcd7754"
+ }
+ Frame {
+ msec: 3888
+ hash: "0f6d82d02ce7d79a1bdf6bf81791f321"
+ }
+ Frame {
+ msec: 3904
+ hash: "b145b9d299714020686069baec11cb71"
+ }
+ Frame {
+ msec: 3920
+ hash: "5dbf5e4151c01f10cf23b07ca1df56ab"
+ }
+ Frame {
+ msec: 3936
+ hash: "822d4397ac514673ca1015ad05c9b4ac"
+ }
+ Frame {
+ msec: 3952
+ hash: "461d35e865153d22e9a67bb0ffddefb7"
+ }
+ Frame {
+ msec: 3968
+ hash: "676fff498e6879144090d5596056c6c8"
+ }
+ Frame {
+ msec: 3984
+ hash: "854da7ed627237250e20b263f9eb9d90"
+ }
+ Frame {
+ msec: 4000
+ hash: "157ec877797883d329ff329537205d02"
+ }
+ Frame {
+ msec: 4016
+ hash: "613669ca60240fcc490d548fe802390d"
+ }
+ Frame {
+ msec: 4032
+ hash: "803e84f027c773db96f9530511e5fedb"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 237; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4048
+ hash: "803e84f027c773db96f9530511e5fedb"
+ }
+ Frame {
+ msec: 4064
+ hash: "f47cfd1f1094b782c08490be2f49c6ed"
+ }
+ Frame {
+ msec: 4080
+ hash: "db5953f3ee4e2db87e33b85464167f74"
+ }
+ Frame {
+ msec: 4096
+ hash: "8313cb750b9abc586a43b9422de08f53"
+ }
+ Frame {
+ msec: 4112
+ hash: "deb390ce992fee85c56733168b4bd1ec"
+ }
+ Frame {
+ msec: 4128
+ hash: "29a1cda3647c49731e9adcd107a2d13c"
+ }
+ Frame {
+ msec: 4144
+ hash: "bfa17a3afa06699107b217df6e4aed43"
+ }
+ Frame {
+ msec: 4160
+ hash: "8e639ef01ab6d8876c3f40adc44928c6"
+ }
+ Frame {
+ msec: 4176
+ hash: "14038aedf42de0ca62d872d317018ee0"
+ }
+ Frame {
+ msec: 4192
+ hash: "c1288465163d44ed40e28f21e0298ea6"
+ }
+ Frame {
+ msec: 4208
+ hash: "d6915f22a905737488d27e8138002f31"
+ }
+ Frame {
+ msec: 4224
+ hash: "5b1621451a5a3af40302603ec31bb8bb"
+ }
+ Frame {
+ msec: 4240
+ hash: "16fd73c0cb615cc717cdc4a6787471c2"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 237; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4256
+ hash: "16fd73c0cb615cc717cdc4a6787471c2"
+ }
+ Frame {
+ msec: 4272
+ hash: "db5caf42e11705ecdb2006e1ed6b0c4f"
+ }
+ Frame {
+ msec: 4288
+ hash: "4b7e51e4e9fb1dacb32aac11a4a46ceb"
+ }
+ Frame {
+ msec: 4304
+ hash: "63c93cda9892f733809125991af997b6"
+ }
+ Frame {
+ msec: 4320
+ hash: "0e74613c67fc9d9acb21a3d382c5efcd"
+ }
+ Frame {
+ msec: 4336
+ hash: "58e813a6619828b6c9ec9cf300ff0e2d"
+ }
+ Frame {
+ msec: 4352
+ hash: "181a6e334d745381f091bf1b55fc1690"
+ }
+ Frame {
+ msec: 4368
+ hash: "f25bbc9ddc8cc72036c49d50b45bece8"
+ }
+ Frame {
+ msec: 4384
+ hash: "88e8f0496debfee6bc2426895fe1c3d9"
+ }
+ Frame {
+ msec: 4400
+ hash: "db5953f3ee4e2db87e33b85464167f74"
+ }
+ Frame {
+ msec: 4416
+ hash: "9818a899adb916b6ba5f7537697ef062"
+ }
+ Frame {
+ msec: 4432
+ hash: "3842f40093d70089a4004fb803c05981"
+ }
+ Frame {
+ msec: 4448
+ hash: "be904489959fa365badb642fa9e85922"
+ }
+ Frame {
+ msec: 4464
+ hash: "cbae27751ff0ebce4fcc164564f4cf1b"
+ }
+ Frame {
+ msec: 4480
+ hash: "3a1b468bd3fd747bbe6b069426b170a9"
+ }
+ Frame {
+ msec: 4496
+ hash: "57fbcd580eb1607a2a7526a65842dfeb"
+ }
+ Frame {
+ msec: 4512
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 4528
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 4544
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 4560
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 4576
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 4592
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 4608
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 4624
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 237; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4640
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 4656
+ hash: "633b5668278295faa57d0cfffe8a29cb"
+ }
+ Frame {
+ msec: 4672
+ hash: "ccbf4505e0f05547d2f7ce874ab941c0"
+ }
+ Frame {
+ msec: 4688
+ hash: "be904489959fa365badb642fa9e85922"
+ }
+ Frame {
+ msec: 4704
+ hash: "de6a97ac6e2677feb223336199cbffe1"
+ }
+ Frame {
+ msec: 4720
+ hash: "997b0a547336a9bb6a67cd9beffe1831"
+ }
+ Frame {
+ msec: 4736
+ hash: "ac9a6e111050b8a7c4492f06c33d3969"
+ }
+ Frame {
+ msec: 4752
+ hash: "7313c0d2ee06e393f486670222c29bb4"
+ }
+ Frame {
+ msec: 4768
+ hash: "24cea420d03d1fdcddb1b9cf5112cbee"
+ }
+ Frame {
+ msec: 4784
+ hash: "764688785eeaa01e9c84821476911edb"
+ }
+ Frame {
+ msec: 4800
+ image: "parentAnimation.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "f1daed3391f10e27435a54222df8d0ab"
+ }
+ Frame {
+ msec: 4832
+ hash: "99704e182267f2c12d0215b9c03f4d68"
+ }
+ Frame {
+ msec: 4848
+ hash: "143cd9259a41b8af5d41a5b2aaf8de64"
+ }
+ Frame {
+ msec: 4864
+ hash: "b5f0a0f838b5870c162a24cd767f068b"
+ }
+ Frame {
+ msec: 4880
+ hash: "c5c8cdcbfab7466e447eaff582bf7312"
+ }
+ Frame {
+ msec: 4896
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 4912
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 4928
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 4944
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 4960
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 4976
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 4992
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5008
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5024
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5040
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5056
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5072
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5088
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5104
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5120
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5136
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5152
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5168
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5184
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5200
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5216
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5232
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5248
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5264
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5280
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5296
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5312
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5328
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5344
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 237; y: 299
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5360
+ hash: "f1bc451d1f62cfb5dd60a7ea483d3844"
+ }
+ Frame {
+ msec: 5376
+ hash: "eaeeb8c51d43e3c38ff7dde632d1f9c8"
+ }
+ Frame {
+ msec: 5392
+ hash: "ec0e68c2e7a75fedd1091ce633dadd4f"
+ }
+ Frame {
+ msec: 5408
+ hash: "a5d60efc176dee9083a2d746e7ad8315"
+ }
+ Frame {
+ msec: 5424
+ hash: "48bcbbacf413080247f818e35e496e04"
+ }
+ Frame {
+ msec: 5440
+ hash: "c521af8efa19fbac39119ad75cd469f5"
+ }
+ Frame {
+ msec: 5456
+ hash: "0e74613c67fc9d9acb21a3d382c5efcd"
+ }
+ Frame {
+ msec: 5472
+ hash: "eeb3f4467ebd7ee678c3b7371db28519"
+ }
+ Frame {
+ msec: 5488
+ hash: "9c5b9009a35b74d0ddec8fec85f204bf"
+ }
+ Frame {
+ msec: 5504
+ hash: "aefc70824e23428aebf0a40830a57469"
+ }
+ Frame {
+ msec: 5520
+ hash: "1fa9c23760193b74b0063b4e4c434070"
+ }
+ Frame {
+ msec: 5536
+ hash: "8091700d4729163bd87521385853e608"
+ }
+ Frame {
+ msec: 5552
+ hash: "a13558e609570f9390f20a85d244fa22"
+ }
+ Frame {
+ msec: 5568
+ hash: "7be5e3609bbeb9a2c1df7d52f3953d4d"
+ }
+ Frame {
+ msec: 5584
+ hash: "51c8ae31f858121d86ef09cc9a5c5ef3"
+ }
+ Frame {
+ msec: 5600
+ hash: "84ce8f39207f4b07c2c3323425a8c238"
+ }
+ Frame {
+ msec: 5616
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5632
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5648
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5664
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5680
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5696
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5712
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5728
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5744
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5760
+ image: "parentAnimation.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5792
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5808
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5824
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5840
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5856
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5872
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5888
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5904
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5920
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5936
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5952
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5968
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 5984
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6000
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6016
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6032
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6048
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6064
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6080
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6096
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6112
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6128
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6144
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6160
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6176
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6192
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6208
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6224
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6240
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6256
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+ Frame {
+ msec: 6272
+ hash: "4135271d78a5c63c3837a09c86f35ebe"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.0.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.0.png
new file mode 100644
index 0000000..7d41abc
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.1.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.1.png
new file mode 100644
index 0000000..16b95ab
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.2.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.2.png
new file mode 100644
index 0000000..7d41abc
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.3.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.3.png
new file mode 100644
index 0000000..800bf12
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.4.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.4.png
new file mode 100644
index 0000000..d0155bb
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.5.png b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.5.png
new file mode 100644
index 0000000..7d41abc
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/data/parentAnimation.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml
new file mode 100644
index 0000000..8d0b375
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/parentAnimation/parentAnimation-visual.qml
@@ -0,0 +1,68 @@
+import Qt 4.6
+
+/*
+This test shows a green rectangle moving and growing from the upper-left corner
+of the black rectangle to the same position as the red rectangle (it should end up
+the same height as the red rect and twice as wide). There should be no odd jumps or clipping seen.
+
+The test shows one full transition (to the red and back), then several partial transitions, and
+then a final full transition.
+*/
+
+Rectangle {
+ width: 800;
+ height: 480;
+ color: "black";
+
+ Rectangle {
+ id: gr
+ color: "green"
+ width: 100; height: 100
+ }
+
+ MouseArea {
+ id: mouser
+ anchors.fill: parent
+ }
+
+ Rectangle {
+ id: np
+ x: 300
+ width: 300; height: 300
+ color: "yellow"
+ clip: true
+ Rectangle {
+ color: "red"
+ x: 100; y: 100; height: 100; width: 100
+ }
+
+ }
+
+ Rectangle {
+ id: vp
+ x: 200; y: 200
+ width: 100; height: 100
+ color: "blue"
+ rotation: 45
+ scale: 2
+ }
+
+ states: State {
+ name: "state1"
+ when: mouser.pressed
+ ParentChange {
+ target: gr
+ parent: np
+ x: 100; y: 100; width: 200;
+ }
+ }
+
+ transitions: Transition {
+ reversible: true
+ to: "state1"
+ ParentAnimation {
+ target: gr; via: vp;
+ NumberAnimation { properties: "x,y,rotation,scale,width" }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml
index 73c6542..73c6542 100644
--- a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.qml
+++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation-visual.qml
diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.0.png
index 693a794..693a794 100644
--- a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.0.png
+++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.1.png
index 06d43f1..06d43f1 100644
--- a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.1.png
+++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.2.png
index e619baf..e619baf 100644
--- a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.2.png
+++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.3.png
index 30c7671..30c7671 100644
--- a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.3.png
+++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.4.png
index 132803c..132803c 100644
--- a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.4.png
+++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.5.png
index 8372bc3..8372bc3 100644
--- a/tests/auto/declarative/visual/animation/pauseAnimation/data/pauseAnimation.5.png
+++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/data/pauseAnimation.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/pauseAnimation-visual.qml b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/pauseAnimation-visual.qml
new file mode 100644
index 0000000..8830170
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/pauseAnimation-visual.qml
@@ -0,0 +1,36 @@
+import Qt 4.6
+
+/*
+This test shows a bouncing logo.
+When the test starts the logo should be resting at the bottom. It should immediately move
+to the top, and then fall down to bounce at the bottom. There should be a pause, and then
+one repeat of the sequence.
+*/
+
+Rectangle {
+ id: rect
+ width: 120
+ height: 200
+ color: "white"
+ Image {
+ id: img
+ source: "pics/qtlogo.png"
+ x: 60-width/2
+ y: 100
+ SequentialAnimation on y {
+ loops: Animation.Infinite
+ NumberAnimation {
+ to: 0; duration: 500
+ easing.type: "InOutQuad"
+ }
+ NumberAnimation {
+ to: 100
+ easing.type: "OutBounce"
+ duration: 2000
+ }
+ PauseAnimation {
+ duration: 1000
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/animation/pauseAnimation/pics/qtlogo.png b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/pics/qtlogo.png
new file mode 100644
index 0000000..399bd0b
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/pauseAnimation/pics/qtlogo.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.0.png
index 64d6b06..64d6b06 100644
--- a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.0.png
+++ b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.1.png
index f7fce15..f7fce15 100644
--- a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.1.png
+++ b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.2.png
index 3080df5..3080df5 100644
--- a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.2.png
+++ b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml
new file mode 100644
index 0000000..0a9057e
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml
@@ -0,0 +1,939 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 32
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 48
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 64
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 80
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 96
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 112
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 128
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 144
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 160
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 176
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 192
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 208
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 224
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 240
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 256
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 272
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 288
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 304
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 320
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 336
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 352
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 368
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 384
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 400
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 416
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 432
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 448
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 464
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 480
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 496
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 512
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 528
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 544
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 560
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 576
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 592
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 608
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 624
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 640
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 656
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 672
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 688
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 704
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 720
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 736
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 752
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 768
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 784
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 800
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 816
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 832
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 848
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 864
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 880
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 896
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 912
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 928
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 944
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 960
+ image: "propertyAction-visual.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 992
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1008
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1024
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1040
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1056
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1072
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1088
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1104
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1120
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1136
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1152
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1168
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1184
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1200
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1216
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1232
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1248
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1264
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1280
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1296
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1312
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1328
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1344
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1360
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1376
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1392
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1408
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1424
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1440
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1456
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1472
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1488
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1504
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1520
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1536
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1552
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1568
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1584
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1600
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 109; y: 247
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1616
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 1632
+ hash: "c91921dba899d7a86de3cd013773889f"
+ }
+ Frame {
+ msec: 1648
+ hash: "888c0fc86155e10b5fc577ef6ec5755a"
+ }
+ Frame {
+ msec: 1664
+ hash: "7fd61a8910bf7b0d2bf57653a268c5d8"
+ }
+ Frame {
+ msec: 1680
+ hash: "f42f5073f90a423adf011d0e168c8a9b"
+ }
+ Frame {
+ msec: 1696
+ hash: "a3d89deb6cfa2bbbaa1d7d5b5e5b48d5"
+ }
+ Frame {
+ msec: 1712
+ hash: "f10e997d7a17c18251a32d58b018105a"
+ }
+ Frame {
+ msec: 1728
+ hash: "09ffb57d5f67edfa34d6aad36a002554"
+ }
+ Frame {
+ msec: 1744
+ hash: "01f3a2f5b9815f1397a907b099339360"
+ }
+ Frame {
+ msec: 1760
+ hash: "58c0910c49748edd2ef8472960179472"
+ }
+ Frame {
+ msec: 1776
+ hash: "cc82c5f7f93c5bc1af1c6c509268566a"
+ }
+ Frame {
+ msec: 1792
+ hash: "3ef272c6439b85fbc166375d1b98403c"
+ }
+ Frame {
+ msec: 1808
+ hash: "98c576f0900e4b8752d1f951bb6bf391"
+ }
+ Frame {
+ msec: 1824
+ hash: "4d66dd64d8736ef50163e08723873478"
+ }
+ Frame {
+ msec: 1840
+ hash: "9a5d8455b6763456185625811253e0b1"
+ }
+ Frame {
+ msec: 1856
+ hash: "77e85731efa786a2492aae19a87523c6"
+ }
+ Frame {
+ msec: 1872
+ hash: "f3199d0c860f1236e0b9472bef8785bc"
+ }
+ Frame {
+ msec: 1888
+ hash: "f3199d0c860f1236e0b9472bef8785bc"
+ }
+ Frame {
+ msec: 1904
+ hash: "32ccdab249268b01d9f1658a736052f1"
+ }
+ Frame {
+ msec: 1920
+ image: "propertyAction-visual.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "db3010ef552146df938c237f6c92bff5"
+ }
+ Frame {
+ msec: 1952
+ hash: "101e8595d0301e88376ec52ba9361f84"
+ }
+ Frame {
+ msec: 1968
+ hash: "119d548c59baa7e47266d2ceca663288"
+ }
+ Frame {
+ msec: 1984
+ hash: "f141fafe102a0b9a2bf33e8c3fc800ff"
+ }
+ Frame {
+ msec: 2000
+ hash: "b01f9ca8d4fbff17b3d48c70898a044d"
+ }
+ Frame {
+ msec: 2016
+ hash: "cf67954a2d1b22e8d2cfdc26419bafb8"
+ }
+ Frame {
+ msec: 2032
+ hash: "7680b2b5a63dea13d733947297e01355"
+ }
+ Frame {
+ msec: 2048
+ hash: "af1c017acf6b3c8cff86c9ceb60db3cb"
+ }
+ Frame {
+ msec: 2064
+ hash: "0b23ec51f71fddae5e2238ab5754f1db"
+ }
+ Frame {
+ msec: 2080
+ hash: "976643961ecbdc86335180ba812b874e"
+ }
+ Frame {
+ msec: 2096
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2112
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2128
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2144
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2160
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2176
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2192
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2208
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2224
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2240
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2256
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2272
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2288
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2304
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2320
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2336
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2352
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2368
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2384
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2400
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2416
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2432
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2448
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2464
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2480
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2496
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2512
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2528
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2544
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2560
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2576
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2592
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2608
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2624
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2640
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2656
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2672
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2688
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2704
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2720
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2736
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2752
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 109; y: 247
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2768
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2784
+ hash: "aeed60899abb6c486a5b1df81f9a0224"
+ }
+ Frame {
+ msec: 2800
+ hash: "ab924ae435262e76381c2e4af5d64342"
+ }
+ Frame {
+ msec: 2816
+ hash: "d60758fc12471a19d31c85f058f2ded7"
+ }
+ Frame {
+ msec: 2832
+ hash: "c62e2956f8eb5d2c8cd76ba05c5929d5"
+ }
+ Frame {
+ msec: 2848
+ hash: "f2967ee7e035a9ff258116a2706529f8"
+ }
+ Frame {
+ msec: 2864
+ hash: "885c4705c6c29f69c56c44abc1251d75"
+ }
+ Frame {
+ msec: 2880
+ image: "propertyAction-visual.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "f4af6871e522511f95bc4c5abfc2a562"
+ }
+ Frame {
+ msec: 2912
+ hash: "b27e1e7e0d90468525309528ccfe2823"
+ }
+ Frame {
+ msec: 2928
+ hash: "78e7d84a4466258b40315fe61b7ca15c"
+ }
+ Frame {
+ msec: 2944
+ hash: "471013d921d8d6e7468fd6aba0b75c71"
+ }
+ Frame {
+ msec: 2960
+ hash: "856048da893c9136ac5740bc89b64128"
+ }
+ Frame {
+ msec: 2976
+ hash: "32ccdab249268b01d9f1658a736052f1"
+ }
+ Frame {
+ msec: 2992
+ hash: "2264fa3acd979f104633c1301a0efd8f"
+ }
+ Frame {
+ msec: 3008
+ hash: "f3199d0c860f1236e0b9472bef8785bc"
+ }
+ Frame {
+ msec: 3024
+ hash: "ad899d1ecaa43a5541be7b70413caee5"
+ }
+ Frame {
+ msec: 3040
+ hash: "4e652524c992f5ee1b987275ca509728"
+ }
+ Frame {
+ msec: 3056
+ hash: "a44b3dec2a016694bc8553a51b29d46c"
+ }
+ Frame {
+ msec: 3072
+ hash: "7fbe20346bc3c28c345e0797b55599f3"
+ }
+ Frame {
+ msec: 3088
+ hash: "bcff18ad433bb4f08126ee66efb037d1"
+ }
+ Frame {
+ msec: 3104
+ hash: "836666c64f73c38e87de95944ff2fe72"
+ }
+ Frame {
+ msec: 3120
+ hash: "4379982d23db239b1741b5d72c53e160"
+ }
+ Frame {
+ msec: 3136
+ hash: "0ed9476337214e1493c1510b8a4c90f8"
+ }
+ Frame {
+ msec: 3152
+ hash: "dab637406577a1924c7dbb30680e1af3"
+ }
+ Frame {
+ msec: 3168
+ hash: "38b7e5894cf49a19ac055264d6447b9f"
+ }
+ Frame {
+ msec: 3184
+ hash: "5f207d1dfad4907f200d76104881bf56"
+ }
+ Frame {
+ msec: 3200
+ hash: "3434fc7f81e859722585dae97c557864"
+ }
+ Frame {
+ msec: 3216
+ hash: "7c775b9be8c5293d4962324574267c22"
+ }
+ Frame {
+ msec: 3232
+ hash: "da0ff6955c2e4cd86421bdb9053f56e6"
+ }
+ Frame {
+ msec: 3248
+ hash: "a1297d525a3ad41abbbb7c2f15efd4fb"
+ }
+ Frame {
+ msec: 3264
+ hash: "5326b220995b2a1eaa308ad10fd353fa"
+ }
+ Frame {
+ msec: 3280
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3296
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3312
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3328
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3344
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3360
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3376
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3392
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3408
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3424
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3440
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3456
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3472
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3488
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3504
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3520
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3536
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3552
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3568
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3584
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3600
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3616
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+ Frame {
+ msec: 3632
+ hash: "55b713dcb7c810bf126e06cc97d26d24"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml b/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml
new file mode 100644
index 0000000..5651b87
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml
@@ -0,0 +1,41 @@
+import Qt 4.6
+
+/*
+This test starts with a red rectangle at 0,0. It should animate a color change to blue,
+then jump 50 pixels right, and then animate moving 50 pixels down. Afer this it should
+do an exact visual reversal (animate up 50 pixels, jump left 50 pixels, and then animate
+a change back to red).
+*/
+
+Rectangle {
+ width: 400; height: 400
+ Rectangle {
+ id: myRect
+ width: 100; height: 100
+ color: "red"
+ }
+ MouseArea {
+ id: clickable
+ anchors.fill: parent
+ }
+
+ states: State {
+ name: "state1"
+ when: clickable.pressed
+ PropertyChanges {
+ target: myRect
+ x: 50; y: 50
+ color: "blue"
+ }
+ }
+
+ transitions: Transition {
+ to: "state1"
+ reversible: true
+ SequentialAnimation {
+ ColorAnimation {}
+ PropertyAction { properties: "x" }
+ NumberAnimation { properties: "y"; easing.type: "InOutQuad" }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.0.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.0.png
new file mode 100644
index 0000000..454f6c1
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.1.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.1.png
new file mode 100644
index 0000000..9dde537
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.2.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.2.png
new file mode 100644
index 0000000..454f6c1
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.3.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.3.png
new file mode 100644
index 0000000..454f6c1
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.4.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.4.png
new file mode 100644
index 0000000..043b487
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.5.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.5.png
new file mode 100644
index 0000000..79c791d
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.6.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.6.png
new file mode 100644
index 0000000..454f6c1
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.7.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.7.png
new file mode 100644
index 0000000..454f6c1
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.8.png b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.8.png
new file mode 100644
index 0000000..a7d6674
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.8.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml
new file mode 100644
index 0000000..a130b75
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/data/reanchor.qml
@@ -0,0 +1,2471 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 32
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 48
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 64
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 80
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 96
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 112
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 128
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 144
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 160
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 176
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 192
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 208
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 224
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 240
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 256
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 272
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 288
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 304
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 320
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 336
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 352
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 368
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 384
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 400
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 416
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 432
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 448
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 464
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 480
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 496
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 512
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 528
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 544
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 560
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 576
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 592
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 608
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 624
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 640
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 656
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 672
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 688
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 704
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 720
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 736
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 752
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 768
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 784
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 800
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 816
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 832
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 848
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 864
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 880
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 896
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 912
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 928
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 944
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 960
+ image: "reanchor.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 992
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1008
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1024
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1040
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1056
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1072
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1088
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1104
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1120
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1136
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1152
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1168
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1184
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1200
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1216
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1232
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1248
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1264
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1280
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1296
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1312
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1328
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1344
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1360
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 88; y: 115
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1376
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1392
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1408
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1424
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1440
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 88; y: 115
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1456
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 1472
+ hash: "eb3eeb37ab7b26692cbf100adfaf3772"
+ }
+ Frame {
+ msec: 1488
+ hash: "e1a8cdcb1f3ec097a968b3b20964c6e8"
+ }
+ Frame {
+ msec: 1504
+ hash: "44fc52479251327d0612de17ddb056eb"
+ }
+ Frame {
+ msec: 1520
+ hash: "fa7e4a910aa60500575a34852c0c7cb8"
+ }
+ Frame {
+ msec: 1536
+ hash: "66d205a02e35221e7684ab995acc1312"
+ }
+ Frame {
+ msec: 1552
+ hash: "4ebe8dba6d9f3179b610b2298a7484a2"
+ }
+ Frame {
+ msec: 1568
+ hash: "9b2582fccffa34fe389ba427ce47619a"
+ }
+ Frame {
+ msec: 1584
+ hash: "e6f15478bda9995f82976b9e16659c8e"
+ }
+ Frame {
+ msec: 1600
+ hash: "f08df0885fff04819ada6c10b25dd489"
+ }
+ Frame {
+ msec: 1616
+ hash: "0f57c152306747cfa27171f1947ca65d"
+ }
+ Frame {
+ msec: 1632
+ hash: "89d9c988abd55063e210b81193c6a8f0"
+ }
+ Frame {
+ msec: 1648
+ hash: "91e0d0a5d57210c790c2d2399d1f7022"
+ }
+ Frame {
+ msec: 1664
+ hash: "267874fdc09459b3e854c06d9ae99a54"
+ }
+ Frame {
+ msec: 1680
+ hash: "2f58a508f439c40c6f2bd7da1f30deff"
+ }
+ Frame {
+ msec: 1696
+ hash: "1451548d9f0002a6c4765cb616ab7f59"
+ }
+ Frame {
+ msec: 1712
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1728
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1744
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1760
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1776
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1792
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1808
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1824
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1840
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1856
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1872
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1888
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1904
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1920
+ image: "reanchor.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1952
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1968
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 1984
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2000
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2016
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2032
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2048
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2064
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2080
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2096
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 87; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2112
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2128
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2144
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2160
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2176
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2192
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2208
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 87; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2224
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 2240
+ hash: "8ceca291e28f52368346f171c2f31664"
+ }
+ Frame {
+ msec: 2256
+ hash: "903877286f3ef112e6a661abde5c17bd"
+ }
+ Frame {
+ msec: 2272
+ hash: "cc2d15c96571f9328b929f96849c8f9e"
+ }
+ Frame {
+ msec: 2288
+ hash: "26e6c03b1b91b725d6e0fe9216a7413e"
+ }
+ Frame {
+ msec: 2304
+ hash: "213e8e9905bea32ddb97d38b75cd19cc"
+ }
+ Frame {
+ msec: 2320
+ hash: "17d5726a282d42fcde7796be84606fcd"
+ }
+ Frame {
+ msec: 2336
+ hash: "f4629bf9f5837f687ae49008c9d28d02"
+ }
+ Frame {
+ msec: 2352
+ hash: "fbc927cb136d8d29b2578e78c4793e41"
+ }
+ Frame {
+ msec: 2368
+ hash: "c7099e732490dd2f3205986a7c43a165"
+ }
+ Frame {
+ msec: 2384
+ hash: "b3b464a8e67fab05109b49604f1ce705"
+ }
+ Frame {
+ msec: 2400
+ hash: "7629b2a77f9f87aa0ef2535aa9b8d390"
+ }
+ Frame {
+ msec: 2416
+ hash: "6a329c289236782e095cfa6f15409726"
+ }
+ Frame {
+ msec: 2432
+ hash: "1cfbf6f4c292e1520b44d84dd59b93a8"
+ }
+ Frame {
+ msec: 2448
+ hash: "a8d3d838bffb39053eb705aefcb39c46"
+ }
+ Frame {
+ msec: 2464
+ hash: "a56ad66a949e07e3174a58c80145c85e"
+ }
+ Frame {
+ msec: 2480
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2496
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2512
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2528
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2544
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2560
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2576
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2592
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2608
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2624
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2640
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2656
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2672
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2688
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2704
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2720
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2736
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2752
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 87; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2768
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2784
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2800
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2816
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2832
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2848
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 2864
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 87; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2880
+ image: "reanchor.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "eb3eeb37ab7b26692cbf100adfaf3772"
+ }
+ Frame {
+ msec: 2912
+ hash: "e1a8cdcb1f3ec097a968b3b20964c6e8"
+ }
+ Frame {
+ msec: 2928
+ hash: "44fc52479251327d0612de17ddb056eb"
+ }
+ Frame {
+ msec: 2944
+ hash: "fa7e4a910aa60500575a34852c0c7cb8"
+ }
+ Frame {
+ msec: 2960
+ hash: "66d205a02e35221e7684ab995acc1312"
+ }
+ Frame {
+ msec: 2976
+ hash: "4ebe8dba6d9f3179b610b2298a7484a2"
+ }
+ Frame {
+ msec: 2992
+ hash: "9b2582fccffa34fe389ba427ce47619a"
+ }
+ Frame {
+ msec: 3008
+ hash: "e6f15478bda9995f82976b9e16659c8e"
+ }
+ Frame {
+ msec: 3024
+ hash: "f08df0885fff04819ada6c10b25dd489"
+ }
+ Frame {
+ msec: 3040
+ hash: "0f57c152306747cfa27171f1947ca65d"
+ }
+ Frame {
+ msec: 3056
+ hash: "89d9c988abd55063e210b81193c6a8f0"
+ }
+ Frame {
+ msec: 3072
+ hash: "91e0d0a5d57210c790c2d2399d1f7022"
+ }
+ Frame {
+ msec: 3088
+ hash: "267874fdc09459b3e854c06d9ae99a54"
+ }
+ Frame {
+ msec: 3104
+ hash: "2f58a508f439c40c6f2bd7da1f30deff"
+ }
+ Frame {
+ msec: 3120
+ hash: "1451548d9f0002a6c4765cb616ab7f59"
+ }
+ Frame {
+ msec: 3136
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3152
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3168
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3184
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3200
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3216
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3232
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3248
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3264
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3280
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3296
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3312
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3328
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3344
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3360
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 87; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3376
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3392
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3408
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3424
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3440
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3456
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3472
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 87; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3488
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 3504
+ hash: "8ceca291e28f52368346f171c2f31664"
+ }
+ Frame {
+ msec: 3520
+ hash: "903877286f3ef112e6a661abde5c17bd"
+ }
+ Frame {
+ msec: 3536
+ hash: "cc2d15c96571f9328b929f96849c8f9e"
+ }
+ Frame {
+ msec: 3552
+ hash: "26e6c03b1b91b725d6e0fe9216a7413e"
+ }
+ Frame {
+ msec: 3568
+ hash: "213e8e9905bea32ddb97d38b75cd19cc"
+ }
+ Frame {
+ msec: 3584
+ hash: "17d5726a282d42fcde7796be84606fcd"
+ }
+ Frame {
+ msec: 3600
+ hash: "f4629bf9f5837f687ae49008c9d28d02"
+ }
+ Frame {
+ msec: 3616
+ hash: "fbc927cb136d8d29b2578e78c4793e41"
+ }
+ Frame {
+ msec: 3632
+ hash: "c7099e732490dd2f3205986a7c43a165"
+ }
+ Frame {
+ msec: 3648
+ hash: "b3b464a8e67fab05109b49604f1ce705"
+ }
+ Frame {
+ msec: 3664
+ hash: "7629b2a77f9f87aa0ef2535aa9b8d390"
+ }
+ Frame {
+ msec: 3680
+ hash: "6a329c289236782e095cfa6f15409726"
+ }
+ Frame {
+ msec: 3696
+ hash: "1cfbf6f4c292e1520b44d84dd59b93a8"
+ }
+ Frame {
+ msec: 3712
+ hash: "a8d3d838bffb39053eb705aefcb39c46"
+ }
+ Frame {
+ msec: 3728
+ hash: "a56ad66a949e07e3174a58c80145c85e"
+ }
+ Frame {
+ msec: 3744
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3760
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3776
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3792
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3808
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3824
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3840
+ image: "reanchor.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3872
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3888
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3904
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3920
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3936
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3952
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3968
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 3984
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4000
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4016
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4032
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4048
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4064
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4080
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4096
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4112
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4128
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4144
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4160
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4176
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4192
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4208
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4224
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4240
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4256
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4272
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4288
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4304
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4320
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4336
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4352
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4368
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4384
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4400
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4416
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4432
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4448
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4464
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4480
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4496
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4512
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4528
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 174; y: 174
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4544
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4560
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4576
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4592
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4608
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4624
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4640
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4656
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 174; y: 174
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4672
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 4688
+ hash: "5d38bf4a033de31985ae9989107908af"
+ }
+ Frame {
+ msec: 4704
+ hash: "ed1bd2abd42848ecd07f0f0654c2b80f"
+ }
+ Frame {
+ msec: 4720
+ hash: "588de6662123733303d93f62c6481f6a"
+ }
+ Frame {
+ msec: 4736
+ hash: "aae79c2fbb2fd1ac7efa9802bff40f95"
+ }
+ Frame {
+ msec: 4752
+ hash: "f17512798136f67f25aaa0aeb60678e1"
+ }
+ Frame {
+ msec: 4768
+ hash: "79578a1e0e3e9cd45c210d0c5d3e75d6"
+ }
+ Frame {
+ msec: 4784
+ hash: "5dad4ff201744cda6ff41f89414c8d11"
+ }
+ Frame {
+ msec: 4800
+ image: "reanchor.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "c4559982aa3f3d291364deed4bd96d65"
+ }
+ Frame {
+ msec: 4832
+ hash: "0dff03ea9154bdb2a813358b04cfbde9"
+ }
+ Frame {
+ msec: 4848
+ hash: "09bdf2869dee1c0cbe3c8c2e9254580b"
+ }
+ Frame {
+ msec: 4864
+ hash: "ba7762978bbd63d624029910fe16fb6d"
+ }
+ Frame {
+ msec: 4880
+ hash: "f00d198ab8f4f625b60e9e2071d8adfd"
+ }
+ Frame {
+ msec: 4896
+ hash: "adcec9c9a5b0d60cf45b2915365ea09c"
+ }
+ Frame {
+ msec: 4912
+ hash: "a65cd6fbb26d618692ef23148015a4f2"
+ }
+ Frame {
+ msec: 4928
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 4944
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 4960
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 4976
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 4992
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5008
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5024
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5040
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5056
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5072
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5088
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5104
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5120
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5136
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5152
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5168
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5184
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5200
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5216
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5232
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5248
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5264
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5280
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5296
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5312
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5328
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5344
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5360
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5376
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5392
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5408
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5424
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5440
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5456
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5472
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5488
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5504
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5520
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5536
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5552
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5568
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5584
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5600
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5616
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5632
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5648
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5664
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5680
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5696
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5712
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5728
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5744
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5760
+ image: "reanchor.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5792
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5808
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 95; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5824
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5840
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5856
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5872
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5888
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5904
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5920
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5936
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 95; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5952
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 5968
+ hash: "103bbc9ce594851f5243b103f8fef1c1"
+ }
+ Frame {
+ msec: 5984
+ hash: "c381148b052be2e6244f24c2292b89cf"
+ }
+ Frame {
+ msec: 6000
+ hash: "2fda1d635fa47bff7de867df3dadfb4f"
+ }
+ Frame {
+ msec: 6016
+ hash: "4d35e00af33ad5dc84998cda2d066b4e"
+ }
+ Frame {
+ msec: 6032
+ hash: "14005d52d372acf6d3495f69bbf00b7d"
+ }
+ Frame {
+ msec: 6048
+ hash: "29728f64d12e858d960c4e197824ef43"
+ }
+ Frame {
+ msec: 6064
+ hash: "798822f0c20ef87cb01fe1dcd76c7585"
+ }
+ Frame {
+ msec: 6080
+ hash: "4cdeea0f91587ef32a2c2e282f6d00e6"
+ }
+ Frame {
+ msec: 6096
+ hash: "08ca5d16771e58da6cdd20b86dc65f03"
+ }
+ Frame {
+ msec: 6112
+ hash: "e9aeb432709d275048ad9d84fb21db1a"
+ }
+ Frame {
+ msec: 6128
+ hash: "3b642f27d356fd1815dc50f8e750623d"
+ }
+ Frame {
+ msec: 6144
+ hash: "7c1db0ec278849ec044ea0aa3383075b"
+ }
+ Frame {
+ msec: 6160
+ hash: "da902850879c95d4ddffbb1ba0060f25"
+ }
+ Frame {
+ msec: 6176
+ hash: "e4053bd0db7752e7a47e096da645b69b"
+ }
+ Frame {
+ msec: 6192
+ hash: "aabbb6d34399818347db265151a547b7"
+ }
+ Frame {
+ msec: 6208
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6224
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6240
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6256
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6272
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6288
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6304
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6320
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6336
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6352
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6368
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6384
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6400
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6416
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6432
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6448
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6464
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6480
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6496
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6512
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6528
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6544
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6560
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6576
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6592
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6608
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6624
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6640
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6656
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6672
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6688
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6704
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6720
+ image: "reanchor.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6752
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6768
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6784
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6800
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6816
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6832
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6848
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6864
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6880
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6896
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6912
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6928
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6944
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6960
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6976
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 6992
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7008
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7024
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7040
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7056
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7072
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7088
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7104
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7120
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7136
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7152
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7168
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7184
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7200
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7216
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7232
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7248
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7264
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7280
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7296
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7312
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7328
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7344
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7360
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7376
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7392
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7408
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7424
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7440
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7456
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7472
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7488
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7504
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7520
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7536
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7552
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7568
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7584
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7600
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 86; y: 136
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7616
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7632
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7648
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Frame {
+ msec: 7664
+ hash: "213811853dbefdc418099721e3bf8651"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 86; y: 136
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7680
+ image: "reanchor.7.png"
+ }
+ Frame {
+ msec: 7696
+ hash: "eb3eeb37ab7b26692cbf100adfaf3772"
+ }
+ Frame {
+ msec: 7712
+ hash: "e1a8cdcb1f3ec097a968b3b20964c6e8"
+ }
+ Frame {
+ msec: 7728
+ hash: "44fc52479251327d0612de17ddb056eb"
+ }
+ Frame {
+ msec: 7744
+ hash: "fa7e4a910aa60500575a34852c0c7cb8"
+ }
+ Frame {
+ msec: 7760
+ hash: "66d205a02e35221e7684ab995acc1312"
+ }
+ Frame {
+ msec: 7776
+ hash: "4ebe8dba6d9f3179b610b2298a7484a2"
+ }
+ Frame {
+ msec: 7792
+ hash: "9b2582fccffa34fe389ba427ce47619a"
+ }
+ Frame {
+ msec: 7808
+ hash: "e6f15478bda9995f82976b9e16659c8e"
+ }
+ Frame {
+ msec: 7824
+ hash: "f08df0885fff04819ada6c10b25dd489"
+ }
+ Frame {
+ msec: 7840
+ hash: "0f57c152306747cfa27171f1947ca65d"
+ }
+ Frame {
+ msec: 7856
+ hash: "89d9c988abd55063e210b81193c6a8f0"
+ }
+ Frame {
+ msec: 7872
+ hash: "91e0d0a5d57210c790c2d2399d1f7022"
+ }
+ Frame {
+ msec: 7888
+ hash: "267874fdc09459b3e854c06d9ae99a54"
+ }
+ Frame {
+ msec: 7904
+ hash: "2f58a508f439c40c6f2bd7da1f30deff"
+ }
+ Frame {
+ msec: 7920
+ hash: "1451548d9f0002a6c4765cb616ab7f59"
+ }
+ Frame {
+ msec: 7936
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 7952
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 7968
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 7984
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8000
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8016
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8032
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8048
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8064
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8080
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8096
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8112
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8128
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8144
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8160
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8176
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8192
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8208
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8224
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8240
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8256
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8272
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8288
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8304
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8320
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8336
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8352
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8368
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8384
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8400
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 177; y: 173
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8416
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8432
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8448
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8464
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8480
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8496
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8512
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 177; y: 173
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8528
+ hash: "ad3837dcf3e69274ac2918d796974f29"
+ }
+ Frame {
+ msec: 8544
+ hash: "49a6ed64f80094b41348eda19fa5a55e"
+ }
+ Frame {
+ msec: 8560
+ hash: "3ee42fb431d7824c1cd6ddf95af91d10"
+ }
+ Frame {
+ msec: 8576
+ hash: "d807890cc0670eda9fac267769366771"
+ }
+ Frame {
+ msec: 8592
+ hash: "50cb68de9ca0c3a8db1df58d7cbb0d21"
+ }
+ Frame {
+ msec: 8608
+ hash: "0af06233156b3a469ce9e7d80a5767c0"
+ }
+ Frame {
+ msec: 8624
+ hash: "9b2c77f004e480fd485e092c08feaf81"
+ }
+ Frame {
+ msec: 8640
+ image: "reanchor.8.png"
+ }
+ Frame {
+ msec: 8656
+ hash: "6ed9b6118a0dc81c22af9fee108b7432"
+ }
+ Frame {
+ msec: 8672
+ hash: "4d3aa8219edffe6fda316482821d4a64"
+ }
+ Frame {
+ msec: 8688
+ hash: "ea8a7104840254ac2706ca2635b8a95f"
+ }
+ Frame {
+ msec: 8704
+ hash: "a8569ef3287da9699809a2ad107b87b1"
+ }
+ Frame {
+ msec: 8720
+ hash: "91d09653dbced4ecb3d711737cb89ca1"
+ }
+ Frame {
+ msec: 8736
+ hash: "d5391f3b40f2dfada0336d889d438d69"
+ }
+ Frame {
+ msec: 8752
+ hash: "27cd9690607f97cc84c2a0a4455feccb"
+ }
+ Frame {
+ msec: 8768
+ hash: "f885588779a5de5d7d47f48bf9a2a6ee"
+ }
+ Frame {
+ msec: 8784
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8800
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8816
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8832
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8848
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8864
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8880
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8896
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8912
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8928
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8944
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8960
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8976
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 8992
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9008
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9024
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9040
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9056
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9072
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9088
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9104
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9120
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9136
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 9152
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9168
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9184
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9200
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9216
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9232
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9248
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9264
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9280
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9296
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+ Frame {
+ msec: 9312
+ hash: "1137e22c68e043950811dee295e19b04"
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/animation/reanchor/reanchor.qml b/tests/auto/declarative/qmlvisual/animation/reanchor/reanchor.qml
new file mode 100644
index 0000000..1d0495e
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/reanchor/reanchor.qml
@@ -0,0 +1,69 @@
+import Qt 4.6
+
+Rectangle {
+ id: container
+ width: 200; height: 200
+ Rectangle {
+ id: myRect
+ objectName: "MyRect"
+ color: "green";
+ anchors.left: parent.left
+ anchors.right: rightGuideline.left
+ anchors.top: topGuideline.top
+ anchors.bottom: container.bottom
+ }
+ Item { id: leftGuideline; x: 10 }
+ Item { id: rightGuideline; x: 150 }
+ Item { id: topGuideline; y: 10 }
+ Item { id: bottomGuideline; y: 150 }
+ Item { id: topGuideline2; y: 50 }
+ Item { id: bottomGuideline2; y: 175 }
+
+ MouseArea {
+ id: wholeArea
+ anchors.fill: parent
+ onClicked: {
+ if (container.state == "") {
+ container.state = "reanchored";
+ } else if (container.state == "reanchored") {
+ container.state = "reanchored2";
+ } else if (container.state == "reanchored2")
+ container.state = "reanchored";
+ }
+ }
+
+ states: [ State {
+ name: "reanchored"
+ AnchorChanges {
+ target: myRect;
+ anchors.left: leftGuideline.left
+ anchors.right: container.right
+ anchors.top: container.top
+ anchors.bottom: bottomGuideline.bottom
+ }
+ }, State {
+ name: "reanchored2"
+ AnchorChanges {
+ target: myRect;
+ anchors.left: undefined
+ anchors.right: undefined
+ anchors.top: topGuideline2.top
+ anchors.bottom: bottomGuideline2.bottom
+ }
+ }]
+
+ transitions: Transition {
+ AnchorAnimation { }
+ }
+
+ MouseArea {
+ width: 50; height: 50
+ anchors.right: parent.right
+ anchors.bottom: parent.bottom
+ onClicked: {
+ container.state = "";
+ }
+ }
+
+ state: "reanchored"
+}
diff --git a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml
index 01da490..01da490 100644
--- a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.qml
+++ b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml
diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction.0.png
index 64d6b06..64d6b06 100644
--- a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.0.png
+++ b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction.1.png
index 1a25c63..1a25c63 100644
--- a/tests/auto/declarative/visual/animation/scriptAction/data/scriptAction.1.png
+++ b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml b/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml
new file mode 100644
index 0000000..dc2fcee
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml
@@ -0,0 +1,40 @@
+import Qt 4.6
+
+/*
+This test starts with a red rectangle at 0,0. It should animate moving 50 pixels right,
+then immediately change blue, and then animate moving 50 pixels down.
+*/
+
+Rectangle {
+ width: 400; height: 400
+ Rectangle {
+ id: myRect
+ width: 100; height: 100
+ color: "red"
+ }
+ MouseArea {
+ id: clickable
+ anchors.fill: parent
+ }
+
+ states: State {
+ name: "state1"
+ when: clickable.pressed
+ PropertyChanges {
+ target: myRect
+ x: 50; y: 50
+ }
+ StateChangeScript {
+ name: "setColor"
+ script: myRect.color = "blue"
+ }
+ }
+
+ transitions: Transition {
+ SequentialAnimation {
+ NumberAnimation { properties: "x"; easing.type: "InOutQuad" }
+ ScriptAction { scriptName: "setColor" }
+ NumberAnimation { properties: "y"; easing.type: "InOutQuad" }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/fillmode/data/fillmode.0.png b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png
index 9c9ceae..9c9ceae 100644
--- a/tests/auto/declarative/visual/fillmode/data/fillmode.0.png
+++ b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml
new file mode 100644
index 0000000..08ed609
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/fillmode/data/fillmode.qml
@@ -0,0 +1,11 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ image: "fillmode.0.png"
+ }
+}
diff --git a/tests/auto/declarative/visual/fillmode/face.png b/tests/auto/declarative/qmlvisual/fillmode/face.png
index 9623b1a..9623b1a 100644
--- a/tests/auto/declarative/visual/fillmode/face.png
+++ b/tests/auto/declarative/qmlvisual/fillmode/face.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml b/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml
new file mode 100644
index 0000000..7c3b486
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml
@@ -0,0 +1,21 @@
+import Qt 4.6
+
+/*
+ This is a static display test of the various Image fill modes. See the png file in the data
+ subdirectory to see what the image should look like.
+*/
+
+Rectangle {
+ id: screen; width: 750; height: 600; color: "gray"
+ property string source: "face.png"
+
+ Grid {
+ columns: 3
+ Image { width: 250; height: 300; source: screen.source; fillMode: Image.Stretch }
+ Image { width: 250; height: 300; source: screen.source; fillMode: Image.PreserveAspectFit; smooth: true }
+ Image { width: 250; height: 300; source: screen.source; fillMode: Image.PreserveAspectCrop }
+ Image { width: 250; height: 300; source: screen.source; fillMode: Image.Tile; smooth: true }
+ Image { width: 250; height: 300; source: screen.source; fillMode: Image.TileHorizontally }
+ Image { width: 250; height: 300; source: screen.source; fillMode: Image.TileVertically }
+ }
+}
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test.0.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.0.png
index 0f33d99..0f33d99 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test.0.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test.1.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.1.png
index 0f33d99..0f33d99 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test.1.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test.2.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.2.png
index 06a3dbd..06a3dbd 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test.2.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test.3.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.3.png
index e0d02d6..e0d02d6 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test.3.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test.4.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.4.png
index e0d02d6..e0d02d6 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test.4.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test.5.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.5.png
index e0d02d6..e0d02d6 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test.5.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test.qml b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.qml
index 44900fc..44900fc 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test.qml
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test2.0.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test2.0.png
index fa711c1..fa711c1 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test2.0.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test2.1.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test2.1.png
index fa711c1..fa711c1 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test2.1.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test2.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test2.qml b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test2.qml
index 7837ad9..7837ad9 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test2.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test2.qml
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.0.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.png
index 9309e37..9309e37 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.0.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.1.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.png
index 20e6c8e..20e6c8e 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.1.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.2.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.png
index c7559ac..c7559ac 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.2.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.3.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.png
index bf2844b..bf2844b 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.3.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.4.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.4.png
index beef0bf..beef0bf 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.4.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.5.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.5.png
index 1847dc7..1847dc7 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.5.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.6.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.6.png
index c7559ac..c7559ac 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.6.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.7.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.7.png
index 20e6c8e..20e6c8e 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.7.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.8.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.8.png
index 9309e37..9309e37 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.8.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.9.png b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.9.png
index 7ac879b..7ac879b 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.9.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-MAC/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml
index 7308a23..7308a23 100644
--- a/tests/auto/declarative/visual/focusscope/data-MAC/test3.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-MAC/test3.qml
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.0.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.0.png
index f68f7dc..f68f7dc 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.0.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.1.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.1.png
index f68f7dc..f68f7dc 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.1.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.2.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.2.png
index e26c028..e26c028 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.2.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.3.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.3.png
index 9c4b2f2..9c4b2f2 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.3.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.4.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.4.png
index 9c4b2f2..9c4b2f2 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.4.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.5.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.5.png
index 9c4b2f2..9c4b2f2 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.5.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test.qml b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.qml
index 93189fa..93189fa 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test.qml
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test2.0.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test2.0.png
index 6be7aef..6be7aef 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test2.0.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test2.1.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test2.1.png
index 6be7aef..6be7aef 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test2.1.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test2.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test2.qml b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test2.qml
index 7170907..7170907 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test2.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test2.qml
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.0.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.0.png
index 5f93c67..5f93c67 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.0.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.1.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.1.png
index 3b4e0e6..3b4e0e6 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.1.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.2.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.2.png
index 54a3934..54a3934 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.2.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.3.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.3.png
index 4f08fd2..4f08fd2 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.3.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.4.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.4.png
index 9aee1f8..9aee1f8 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.4.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.5.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.5.png
index 04eb05c..04eb05c 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.5.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.6.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.6.png
index 54a3934..54a3934 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.6.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.7.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.7.png
index 3b4e0e6..3b4e0e6 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.7.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.8.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.8.png
index 2df55df..2df55df 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.8.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.9.png b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.9.png
index 91816fd..91816fd 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.9.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data-X11/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.qml
index b1f628f..b1f628f 100644
--- a/tests/auto/declarative/visual/focusscope/data-X11/test3.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data-X11/test3.qml
diff --git a/tests/auto/declarative/visual/focusscope/data/test.0.png b/tests/auto/declarative/qmlvisual/focusscope/data/test.0.png
index 67b99e0..67b99e0 100644
--- a/tests/auto/declarative/visual/focusscope/data/test.0.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test.1.png b/tests/auto/declarative/qmlvisual/focusscope/data/test.1.png
index 67b99e0..67b99e0 100644
--- a/tests/auto/declarative/visual/focusscope/data/test.1.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test.2.png b/tests/auto/declarative/qmlvisual/focusscope/data/test.2.png
index 69f0366..69f0366 100644
--- a/tests/auto/declarative/visual/focusscope/data/test.2.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test.3.png b/tests/auto/declarative/qmlvisual/focusscope/data/test.3.png
index afe0bd9..afe0bd9 100644
--- a/tests/auto/declarative/visual/focusscope/data/test.3.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test.4.png b/tests/auto/declarative/qmlvisual/focusscope/data/test.4.png
index afe0bd9..afe0bd9 100644
--- a/tests/auto/declarative/visual/focusscope/data/test.4.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test.5.png b/tests/auto/declarative/qmlvisual/focusscope/data/test.5.png
index afe0bd9..afe0bd9 100644
--- a/tests/auto/declarative/visual/focusscope/data/test.5.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test.qml
index d86c034..d86c034 100644
--- a/tests/auto/declarative/visual/focusscope/data/test.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test.qml
diff --git a/tests/auto/declarative/visual/focusscope/data/test2.0.png b/tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png
index 555a968..555a968 100644
--- a/tests/auto/declarative/visual/focusscope/data/test2.0.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test2.1.png b/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png
index 555a968..555a968 100644
--- a/tests/auto/declarative/visual/focusscope/data/test2.1.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test2.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test2.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml
index fedc96a..fedc96a 100644
--- a/tests/auto/declarative/visual/focusscope/data/test2.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test2.qml
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.0.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png
index 374acf5..374acf5 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.0.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.1.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png
index b75cb10..b75cb10 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.1.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.2.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png
index 9b2f919..9b2f919 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.2.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.3.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png
index bf63032..bf63032 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.3.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.4.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.4.png
index 6981a06..6981a06 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.4.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.5.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.5.png
index 5856325..5856325 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.5.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.6.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.6.png
index 9b2f919..9b2f919 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.6.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.7.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.7.png
index b75cb10..b75cb10 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.7.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.8.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.8.png
index 374acf5..374acf5 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.8.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.9.png b/tests/auto/declarative/qmlvisual/focusscope/data/test3.9.png
index 11a08bd..11a08bd 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.9.png
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/focusscope/data/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml
index 8ce7944..8ce7944 100644
--- a/tests/auto/declarative/visual/focusscope/data/test3.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/data/test3.qml
diff --git a/tests/auto/declarative/visual/focusscope/test.qml b/tests/auto/declarative/qmlvisual/focusscope/test.qml
index 401c7dc..401c7dc 100644
--- a/tests/auto/declarative/visual/focusscope/test.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/test.qml
diff --git a/tests/auto/declarative/visual/focusscope/test2.qml b/tests/auto/declarative/qmlvisual/focusscope/test2.qml
index 5b6971a..5b6971a 100644
--- a/tests/auto/declarative/visual/focusscope/test2.qml
+++ b/tests/auto/declarative/qmlvisual/focusscope/test2.qml
diff --git a/tests/auto/declarative/qmlvisual/focusscope/test3.qml b/tests/auto/declarative/qmlvisual/focusscope/test3.qml
new file mode 100644
index 0000000..a8bb523
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/focusscope/test3.qml
@@ -0,0 +1,52 @@
+import Qt 4.6
+
+Rectangle {
+ color: "white"
+ width: 800
+ height: 600
+
+ ListModel {
+ id: model
+ ListElement { name: "1" }
+ ListElement { name: "2" }
+ ListElement { name: "3" }
+ ListElement { name: "4" }
+ ListElement { name: "5" }
+ ListElement { name: "6" }
+ ListElement { name: "7" }
+ ListElement { name: "8" }
+ ListElement { name: "9" }
+ }
+
+ Component {
+ id: verticalDelegate
+ FocusScope {
+ id: root
+ width: 50; height: 50;
+ Keys.onDigit9Pressed: console.log("Error - " + name)
+ Rectangle {
+ focus: true
+ Keys.onDigit9Pressed: console.log(name)
+ width: 50; height: 50;
+ color: root.ListView.isCurrentItem?"red":"green"
+ Text { text: name; anchors.centerIn: parent }
+ }
+ }
+ }
+
+ ListView {
+ width: 800; height: 50; orientation: "Horizontal"
+ focus: true
+ model: model
+ delegate: verticalDelegate
+ preferredHighlightBegin: 100
+ preferredHighlightEnd: 101
+ highlightRangeMode: ListView.StrictlyEnforceRange
+ }
+
+
+ Text {
+ y: 100; x: 50
+ text: "Currently selected element should be red\nPressing \"9\" should print the number of the currently selected item\nBe sure to scroll all the way to the right, pause, and then all the way to the left."
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/animated-smooth.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml
index 0ceaf49..0ceaf49 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/animated-smooth.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated-smooth.qml
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/animated.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml
index 29c02b3..29c02b3 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/animated.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/animated.qml
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/borders.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/borders.qml
index 9879416..9879416 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/borders.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/borders.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml
new file mode 100644
index 0000000..58d03a6
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/MyBorderImage.qml
@@ -0,0 +1,38 @@
+import Qt 4.6
+
+Item {
+ property alias horizontalMode: image.horizontalTileMode
+ property alias verticalMode: image.verticalTileMode
+ property alias source: image.source
+ property alias antialiased: image.smooth
+
+ property int minWidth
+ property int minHeight
+ property int maxWidth
+ property int maxHeight
+ property int margin
+
+ id: container
+ width: 240; height: 240
+
+ BorderImage {
+ id: image; x: container.width / 2 - width / 2; y: container.height / 2 - height / 2
+
+ SequentialAnimation on width {
+ loops: Animation.Infinite
+ NumberAnimation { from: container.minWidth; to: container.maxWidth; duration: 2000; easing.type: "InOutQuad"}
+ NumberAnimation { from: container.maxWidth; to: container.minWidth; duration: 2000; easing.type: "InOutQuad" }
+ }
+
+ SequentialAnimation on height {
+ loops: Animation.Infinite
+ NumberAnimation { from: container.minHeight; to: container.maxHeight; duration: 2000; easing.type: "InOutQuad"}
+ NumberAnimation { from: container.maxHeight; to: container.minHeight; duration: 2000; easing.type: "InOutQuad" }
+ }
+
+ border.top: container.margin
+ border.left: container.margin
+ border.bottom: container.margin
+ border.right: container.margin
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/content/bw.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/bw.png
index 486eaae..486eaae 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/content/bw.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/bw.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/content/colors-round.sci b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-round.sci
index 506f6f5..506f6f5 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/content/colors-round.sci
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-round.sci
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/content/colors-stretch.sci b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-stretch.sci
index e4989a7..e4989a7 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/content/colors-stretch.sci
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors-stretch.sci
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/content/colors.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors.png
index dfb62f3..dfb62f3 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/content/colors.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/content/colors.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png
index 9a6b079..9a6b079 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.1.png
new file mode 100644
index 0000000..4366d53
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.2.png
index 85a2729..85a2729 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.3.png
index de6ff7c..de6ff7c 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.4.png
index fe7d3dd..fe7d3dd 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.5.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.5.png
index e73bef5..e73bef5 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.6.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.6.png
index 0c75422..0c75422 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml
new file mode 100644
index 0000000..c6df3c4
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated-smooth.qml
@@ -0,0 +1,1823 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 32
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 48
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 64
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 80
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 96
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 112
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 128
+ hash: "cd2180be80101c2aa4350b51b7a6f502"
+ }
+ Frame {
+ msec: 144
+ hash: "de471829f8ad3b43bf1b4df9d1d65a4d"
+ }
+ Frame {
+ msec: 160
+ hash: "ed9f2ca797894612600bc4b7fbaecb84"
+ }
+ Frame {
+ msec: 176
+ hash: "59470d71fa4426d0283e86371f2bfc2a"
+ }
+ Frame {
+ msec: 192
+ hash: "9a2f92efb51bcc6293d6a8e82d5314ea"
+ }
+ Frame {
+ msec: 208
+ hash: "7b66e21652a7d0982226e281a48411a9"
+ }
+ Frame {
+ msec: 224
+ hash: "a716c8d2c94433dee719f92f0822c8ec"
+ }
+ Frame {
+ msec: 240
+ hash: "f22a47b846cfee96ebdf39bbce2e6d51"
+ }
+ Frame {
+ msec: 256
+ hash: "5a8932d13d624932a65694fd19ec05cd"
+ }
+ Frame {
+ msec: 272
+ hash: "48e62dd171f5da82b5aa26c765e4042c"
+ }
+ Frame {
+ msec: 288
+ hash: "63d3c47f7dec1236440a05e0a8380900"
+ }
+ Frame {
+ msec: 304
+ hash: "323af110731b7af0c30f8862ff59b833"
+ }
+ Frame {
+ msec: 320
+ hash: "83c029e328e80af83158c37089cf0ece"
+ }
+ Frame {
+ msec: 336
+ hash: "3f9a09ae19be34348bb2552915360cf7"
+ }
+ Frame {
+ msec: 352
+ hash: "df624d70cae1bcefda8d69c0ff055d83"
+ }
+ Frame {
+ msec: 368
+ hash: "d671a3b971468e1d8aa30ab655e020a9"
+ }
+ Frame {
+ msec: 384
+ hash: "74c837b29f7f05b615123f0e608b523f"
+ }
+ Frame {
+ msec: 400
+ hash: "277ef98ea859fb7685fe6cd44a538a7d"
+ }
+ Frame {
+ msec: 416
+ hash: "0a8da7a3f57c3e06e4be5ea1d8a83ae9"
+ }
+ Frame {
+ msec: 432
+ hash: "456be9c208d690c479ba12bf6325dde0"
+ }
+ Frame {
+ msec: 448
+ hash: "10307beea6d99ab0ff5863f8e35555ed"
+ }
+ Frame {
+ msec: 464
+ hash: "170a1d5fe3422cf5223a78015a6a45fd"
+ }
+ Frame {
+ msec: 480
+ hash: "64ecb03aa538e74d0b99c6dec7751401"
+ }
+ Frame {
+ msec: 496
+ hash: "f3a7e74a1839f9366f9eeec4d2b80d1e"
+ }
+ Frame {
+ msec: 512
+ hash: "0f347763f25350ebb62dda1536372b45"
+ }
+ Frame {
+ msec: 528
+ hash: "0af81ee0d76ff8335a0e347dc086ca37"
+ }
+ Frame {
+ msec: 544
+ hash: "061406edcbd2d4930ab89c3fcab63c7f"
+ }
+ Frame {
+ msec: 560
+ hash: "31d65134f340d82dd40f2401bda3fb7e"
+ }
+ Frame {
+ msec: 576
+ hash: "16c16c77c65b36d1e0954d5ead2642be"
+ }
+ Frame {
+ msec: 592
+ hash: "61c16009b65a55bffb63e27727e1615e"
+ }
+ Frame {
+ msec: 608
+ hash: "e1474c2cdd8768ca1ef45bf3bc5234ca"
+ }
+ Frame {
+ msec: 624
+ hash: "89c159ef00d273ecfe61332e1bf7244d"
+ }
+ Frame {
+ msec: 640
+ hash: "f4d0d3bca25e67908b38910f47b4757e"
+ }
+ Frame {
+ msec: 656
+ hash: "0e0c40f8e11a7bd499c80562ac6f8a82"
+ }
+ Frame {
+ msec: 672
+ hash: "4310a4c3037d845f088f21ad608f366a"
+ }
+ Frame {
+ msec: 688
+ hash: "3d518cd0348d6202243364af1dd6ce89"
+ }
+ Frame {
+ msec: 704
+ hash: "41987e6b4248d7944c0dbc6eb3862023"
+ }
+ Frame {
+ msec: 720
+ hash: "3e81338d38723d56f2d6c428271f81c1"
+ }
+ Frame {
+ msec: 736
+ hash: "74af3457583fbaf73f14556aeccc8403"
+ }
+ Frame {
+ msec: 752
+ hash: "efc119983701908a904deb24108c59cb"
+ }
+ Frame {
+ msec: 768
+ hash: "3a77785cfd7755f567619d8e04583f6a"
+ }
+ Frame {
+ msec: 784
+ hash: "fd85d1dd931033973283a408b5e328a8"
+ }
+ Frame {
+ msec: 800
+ hash: "5d3e85acabe5e5ff802eb7731676274f"
+ }
+ Frame {
+ msec: 816
+ hash: "ae12f1f37a746e16b06e6b869c89fac1"
+ }
+ Frame {
+ msec: 832
+ hash: "d2ed2cf3a12e41bac299399cc35abe6a"
+ }
+ Frame {
+ msec: 848
+ hash: "84ef6dda8318b623832f58c46d762e89"
+ }
+ Frame {
+ msec: 864
+ hash: "b699285764f5e8866a9996f4a0dccc69"
+ }
+ Frame {
+ msec: 880
+ hash: "ddd8a006ef048c8d929144aa9fcd7c5a"
+ }
+ Frame {
+ msec: 896
+ hash: "177666cb3bb784c83196886b2c6cf6b6"
+ }
+ Frame {
+ msec: 912
+ hash: "9cd29b4b023a8b92573575fb3c3dda83"
+ }
+ Frame {
+ msec: 928
+ hash: "adc670a9aa0326744cb23e4f5912e6c7"
+ }
+ Frame {
+ msec: 944
+ hash: "48db9a5e6aad9a9563a3cd35fb7fa9b6"
+ }
+ Frame {
+ msec: 960
+ image: "animated-smooth.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "64b21b89576fdd0083f60a26f57b9c11"
+ }
+ Frame {
+ msec: 992
+ hash: "0d407ee07692d0e5a480a60952807b3c"
+ }
+ Frame {
+ msec: 1008
+ hash: "845170815a87565dc4229792032b3357"
+ }
+ Frame {
+ msec: 1024
+ hash: "8b8120cfc14de03e048632fdea61be21"
+ }
+ Frame {
+ msec: 1040
+ hash: "b0070117f1c24a4da87434725d4bb989"
+ }
+ Frame {
+ msec: 1056
+ hash: "0239d697642ca1d1b1d1daa3ea048e1e"
+ }
+ Frame {
+ msec: 1072
+ hash: "3df54504f8891306fa8f1e9e2075a5e2"
+ }
+ Frame {
+ msec: 1088
+ hash: "853429387cc639496c7338244de7e1b7"
+ }
+ Frame {
+ msec: 1104
+ hash: "bd70500fbdfe5aa2fe4362a97a1dee2d"
+ }
+ Frame {
+ msec: 1120
+ hash: "b375e723b2396b13b8f55cfc0c81c3c3"
+ }
+ Frame {
+ msec: 1136
+ hash: "53f05993ba3b426949badd2e4cd66d84"
+ }
+ Frame {
+ msec: 1152
+ hash: "23291a0239c69ea07db959e709b1ff5f"
+ }
+ Frame {
+ msec: 1168
+ hash: "85ef33fcb3f91e4fc20391bf94455984"
+ }
+ Frame {
+ msec: 1184
+ hash: "d6615fc345831a3cc5b9a7196284b632"
+ }
+ Frame {
+ msec: 1200
+ hash: "07acba64dc608439a8a54fcb080379e8"
+ }
+ Frame {
+ msec: 1216
+ hash: "2a1fcfb753ca237b518da26e67c928e5"
+ }
+ Frame {
+ msec: 1232
+ hash: "1f964c6c9bebdc9945dc69a6095400f7"
+ }
+ Frame {
+ msec: 1248
+ hash: "bd045f4532d78bba0ef1b64118fd9f24"
+ }
+ Frame {
+ msec: 1264
+ hash: "2084ccc60ddd493399c128717816d33b"
+ }
+ Frame {
+ msec: 1280
+ hash: "0640fcb0b24d3ba4ab8695f78271a438"
+ }
+ Frame {
+ msec: 1296
+ hash: "7c9a98e2101c33e17c1bd7e6c2d921ff"
+ }
+ Frame {
+ msec: 1312
+ hash: "fce2648975106bc5c0ca9a4530f7f748"
+ }
+ Frame {
+ msec: 1328
+ hash: "39cc17ee2e889f17dd07179fda99e431"
+ }
+ Frame {
+ msec: 1344
+ hash: "39c46d85d20f7ef3eca1d09c7eb6a068"
+ }
+ Frame {
+ msec: 1360
+ hash: "d65d50fbb920e683b041a1c72238225b"
+ }
+ Frame {
+ msec: 1376
+ hash: "45d891d804609ebbe1d5ac3f826d0c17"
+ }
+ Frame {
+ msec: 1392
+ hash: "05cbce0eaa80b4610a9067af8c40f819"
+ }
+ Frame {
+ msec: 1408
+ hash: "00ab7798bcd77a99886dff0414f35382"
+ }
+ Frame {
+ msec: 1424
+ hash: "5cc90d798786c270ddd2616512f4459f"
+ }
+ Frame {
+ msec: 1440
+ hash: "e5df07ea21e8e415c3ec82560f2d0f34"
+ }
+ Frame {
+ msec: 1456
+ hash: "ddf1f5c0b97fe4821719ec5bf4bd091b"
+ }
+ Frame {
+ msec: 1472
+ hash: "c61d2aa7f934fb5a9f9f7883e063b51c"
+ }
+ Frame {
+ msec: 1488
+ hash: "29ddde3300d0520a4c01b5536d8b9e7a"
+ }
+ Frame {
+ msec: 1504
+ hash: "2fede2f5d871654f3f8a6e9d890adeac"
+ }
+ Frame {
+ msec: 1520
+ hash: "deed4c06c9b713834490832b88e7acaf"
+ }
+ Frame {
+ msec: 1536
+ hash: "c2edb016cfdd47c192d1c48281ee76ed"
+ }
+ Frame {
+ msec: 1552
+ hash: "a261be47ae89e6b53e6bc1c1197154ae"
+ }
+ Frame {
+ msec: 1568
+ hash: "e860e97ebd73b7d1d5d5d90458b34bfe"
+ }
+ Frame {
+ msec: 1584
+ hash: "a087b532ecb2f28e4ee60819228c2522"
+ }
+ Frame {
+ msec: 1600
+ hash: "64df51b4c1bf744b2aae1c6d908c2cc3"
+ }
+ Frame {
+ msec: 1616
+ hash: "880640372bf584955627f6835f24be13"
+ }
+ Frame {
+ msec: 1632
+ hash: "d1110817827c318ceb0c112e8c2bfc1d"
+ }
+ Frame {
+ msec: 1648
+ hash: "705d9c8de05c859a42769f73761c6a63"
+ }
+ Frame {
+ msec: 1664
+ hash: "3bae40654ec551d69e7c8c72f631c7a5"
+ }
+ Frame {
+ msec: 1680
+ hash: "774740a393f3e9b8f12b81cce8da8280"
+ }
+ Frame {
+ msec: 1696
+ hash: "64cd225202ed6c91b02c368a9160a656"
+ }
+ Frame {
+ msec: 1712
+ hash: "2b7eb8a9fe26b032be8b4b9c00995912"
+ }
+ Frame {
+ msec: 1728
+ hash: "47e920e3884ccf2f0f49e78070af6929"
+ }
+ Frame {
+ msec: 1744
+ hash: "fe899138116774df4c4441687e3019c5"
+ }
+ Frame {
+ msec: 1760
+ hash: "5d9ee853f083d514fbe51d6953d8e000"
+ }
+ Frame {
+ msec: 1776
+ hash: "5736362b42bc2d801e02edabb983663a"
+ }
+ Frame {
+ msec: 1792
+ hash: "c3ea530de646612f9203c5800cad884b"
+ }
+ Frame {
+ msec: 1808
+ hash: "48952ffa5e300778eafa768b9fe7df0c"
+ }
+ Frame {
+ msec: 1824
+ hash: "fe04cae65aeec18697eca4f3f83a40e9"
+ }
+ Frame {
+ msec: 1840
+ hash: "382d454f2366c1fb4ca472faa3bfa5e9"
+ }
+ Frame {
+ msec: 1856
+ hash: "89022a8e2feb3dcb845de69aafc333ad"
+ }
+ Frame {
+ msec: 1872
+ hash: "25506557c853a0020e98cf3992956989"
+ }
+ Frame {
+ msec: 1888
+ hash: "9a64706c52c9e962816953e32950b8ba"
+ }
+ Frame {
+ msec: 1904
+ hash: "3cbfded47413172ada64095e65c55e8a"
+ }
+ Frame {
+ msec: 1920
+ image: "animated-smooth.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "c5e399e29b988148913e62ee208b3326"
+ }
+ Frame {
+ msec: 1952
+ hash: "b980703c1d0018937e83a8ba8862469e"
+ }
+ Frame {
+ msec: 1968
+ hash: "05312f9529c94d3331ace7d73c544284"
+ }
+ Frame {
+ msec: 1984
+ hash: "a94de4e90a8f8eb4ec33fe902afd226c"
+ }
+ Frame {
+ msec: 2000
+ hash: "ee297a2d68c9e58157d9bf189d353713"
+ }
+ Frame {
+ msec: 2016
+ hash: "00f3c9b8b37cb104cf2a7701639bc61f"
+ }
+ Frame {
+ msec: 2032
+ hash: "ee297a2d68c9e58157d9bf189d353713"
+ }
+ Frame {
+ msec: 2048
+ hash: "a94de4e90a8f8eb4ec33fe902afd226c"
+ }
+ Frame {
+ msec: 2064
+ hash: "05312f9529c94d3331ace7d73c544284"
+ }
+ Frame {
+ msec: 2080
+ hash: "b980703c1d0018937e83a8ba8862469e"
+ }
+ Frame {
+ msec: 2096
+ hash: "c5e399e29b988148913e62ee208b3326"
+ }
+ Frame {
+ msec: 2112
+ hash: "3b7b83e97d17440b42e6ef4b962076d8"
+ }
+ Frame {
+ msec: 2128
+ hash: "3cbfded47413172ada64095e65c55e8a"
+ }
+ Frame {
+ msec: 2144
+ hash: "9a64706c52c9e962816953e32950b8ba"
+ }
+ Frame {
+ msec: 2160
+ hash: "25506557c853a0020e98cf3992956989"
+ }
+ Frame {
+ msec: 2176
+ hash: "89022a8e2feb3dcb845de69aafc333ad"
+ }
+ Frame {
+ msec: 2192
+ hash: "382d454f2366c1fb4ca472faa3bfa5e9"
+ }
+ Frame {
+ msec: 2208
+ hash: "fe04cae65aeec18697eca4f3f83a40e9"
+ }
+ Frame {
+ msec: 2224
+ hash: "48952ffa5e300778eafa768b9fe7df0c"
+ }
+ Frame {
+ msec: 2240
+ hash: "c3ea530de646612f9203c5800cad884b"
+ }
+ Frame {
+ msec: 2256
+ hash: "5736362b42bc2d801e02edabb983663a"
+ }
+ Frame {
+ msec: 2272
+ hash: "5d9ee853f083d514fbe51d6953d8e000"
+ }
+ Frame {
+ msec: 2288
+ hash: "fe899138116774df4c4441687e3019c5"
+ }
+ Frame {
+ msec: 2304
+ hash: "47e920e3884ccf2f0f49e78070af6929"
+ }
+ Frame {
+ msec: 2320
+ hash: "2b7eb8a9fe26b032be8b4b9c00995912"
+ }
+ Frame {
+ msec: 2336
+ hash: "64cd225202ed6c91b02c368a9160a656"
+ }
+ Frame {
+ msec: 2352
+ hash: "774740a393f3e9b8f12b81cce8da8280"
+ }
+ Frame {
+ msec: 2368
+ hash: "3bae40654ec551d69e7c8c72f631c7a5"
+ }
+ Frame {
+ msec: 2384
+ hash: "705d9c8de05c859a42769f73761c6a63"
+ }
+ Frame {
+ msec: 2400
+ hash: "d1110817827c318ceb0c112e8c2bfc1d"
+ }
+ Frame {
+ msec: 2416
+ hash: "880640372bf584955627f6835f24be13"
+ }
+ Frame {
+ msec: 2432
+ hash: "64df51b4c1bf744b2aae1c6d908c2cc3"
+ }
+ Frame {
+ msec: 2448
+ hash: "a087b532ecb2f28e4ee60819228c2522"
+ }
+ Frame {
+ msec: 2464
+ hash: "e860e97ebd73b7d1d5d5d90458b34bfe"
+ }
+ Frame {
+ msec: 2480
+ hash: "a261be47ae89e6b53e6bc1c1197154ae"
+ }
+ Frame {
+ msec: 2496
+ hash: "c2edb016cfdd47c192d1c48281ee76ed"
+ }
+ Frame {
+ msec: 2512
+ hash: "deed4c06c9b713834490832b88e7acaf"
+ }
+ Frame {
+ msec: 2528
+ hash: "2fede2f5d871654f3f8a6e9d890adeac"
+ }
+ Frame {
+ msec: 2544
+ hash: "29ddde3300d0520a4c01b5536d8b9e7a"
+ }
+ Frame {
+ msec: 2560
+ hash: "c61d2aa7f934fb5a9f9f7883e063b51c"
+ }
+ Frame {
+ msec: 2576
+ hash: "ddf1f5c0b97fe4821719ec5bf4bd091b"
+ }
+ Frame {
+ msec: 2592
+ hash: "e5df07ea21e8e415c3ec82560f2d0f34"
+ }
+ Frame {
+ msec: 2608
+ hash: "5cc90d798786c270ddd2616512f4459f"
+ }
+ Frame {
+ msec: 2624
+ hash: "00ab7798bcd77a99886dff0414f35382"
+ }
+ Frame {
+ msec: 2640
+ hash: "05cbce0eaa80b4610a9067af8c40f819"
+ }
+ Frame {
+ msec: 2656
+ hash: "45d891d804609ebbe1d5ac3f826d0c17"
+ }
+ Frame {
+ msec: 2672
+ hash: "d65d50fbb920e683b041a1c72238225b"
+ }
+ Frame {
+ msec: 2688
+ hash: "39c46d85d20f7ef3eca1d09c7eb6a068"
+ }
+ Frame {
+ msec: 2704
+ hash: "39cc17ee2e889f17dd07179fda99e431"
+ }
+ Frame {
+ msec: 2720
+ hash: "fce2648975106bc5c0ca9a4530f7f748"
+ }
+ Frame {
+ msec: 2736
+ hash: "7c9a98e2101c33e17c1bd7e6c2d921ff"
+ }
+ Frame {
+ msec: 2752
+ hash: "0640fcb0b24d3ba4ab8695f78271a438"
+ }
+ Frame {
+ msec: 2768
+ hash: "2084ccc60ddd493399c128717816d33b"
+ }
+ Frame {
+ msec: 2784
+ hash: "bd045f4532d78bba0ef1b64118fd9f24"
+ }
+ Frame {
+ msec: 2800
+ hash: "1f964c6c9bebdc9945dc69a6095400f7"
+ }
+ Frame {
+ msec: 2816
+ hash: "2a1fcfb753ca237b518da26e67c928e5"
+ }
+ Frame {
+ msec: 2832
+ hash: "07acba64dc608439a8a54fcb080379e8"
+ }
+ Frame {
+ msec: 2848
+ hash: "d6615fc345831a3cc5b9a7196284b632"
+ }
+ Frame {
+ msec: 2864
+ hash: "85ef33fcb3f91e4fc20391bf94455984"
+ }
+ Frame {
+ msec: 2880
+ image: "animated-smooth.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "53f05993ba3b426949badd2e4cd66d84"
+ }
+ Frame {
+ msec: 2912
+ hash: "b375e723b2396b13b8f55cfc0c81c3c3"
+ }
+ Frame {
+ msec: 2928
+ hash: "bd70500fbdfe5aa2fe4362a97a1dee2d"
+ }
+ Frame {
+ msec: 2944
+ hash: "853429387cc639496c7338244de7e1b7"
+ }
+ Frame {
+ msec: 2960
+ hash: "3df54504f8891306fa8f1e9e2075a5e2"
+ }
+ Frame {
+ msec: 2976
+ hash: "0239d697642ca1d1b1d1daa3ea048e1e"
+ }
+ Frame {
+ msec: 2992
+ hash: "b0070117f1c24a4da87434725d4bb989"
+ }
+ Frame {
+ msec: 3008
+ hash: "8b8120cfc14de03e048632fdea61be21"
+ }
+ Frame {
+ msec: 3024
+ hash: "845170815a87565dc4229792032b3357"
+ }
+ Frame {
+ msec: 3040
+ hash: "0d407ee07692d0e5a480a60952807b3c"
+ }
+ Frame {
+ msec: 3056
+ hash: "64b21b89576fdd0083f60a26f57b9c11"
+ }
+ Frame {
+ msec: 3072
+ hash: "d7e96278583f83ab636ed68fa130e4d2"
+ }
+ Frame {
+ msec: 3088
+ hash: "48db9a5e6aad9a9563a3cd35fb7fa9b6"
+ }
+ Frame {
+ msec: 3104
+ hash: "adc670a9aa0326744cb23e4f5912e6c7"
+ }
+ Frame {
+ msec: 3120
+ hash: "9cd29b4b023a8b92573575fb3c3dda83"
+ }
+ Frame {
+ msec: 3136
+ hash: "177666cb3bb784c83196886b2c6cf6b6"
+ }
+ Frame {
+ msec: 3152
+ hash: "ddd8a006ef048c8d929144aa9fcd7c5a"
+ }
+ Frame {
+ msec: 3168
+ hash: "b699285764f5e8866a9996f4a0dccc69"
+ }
+ Frame {
+ msec: 3184
+ hash: "84ef6dda8318b623832f58c46d762e89"
+ }
+ Frame {
+ msec: 3200
+ hash: "d2ed2cf3a12e41bac299399cc35abe6a"
+ }
+ Frame {
+ msec: 3216
+ hash: "ae12f1f37a746e16b06e6b869c89fac1"
+ }
+ Frame {
+ msec: 3232
+ hash: "5d3e85acabe5e5ff802eb7731676274f"
+ }
+ Frame {
+ msec: 3248
+ hash: "fd85d1dd931033973283a408b5e328a8"
+ }
+ Frame {
+ msec: 3264
+ hash: "3a77785cfd7755f567619d8e04583f6a"
+ }
+ Frame {
+ msec: 3280
+ hash: "efc119983701908a904deb24108c59cb"
+ }
+ Frame {
+ msec: 3296
+ hash: "74af3457583fbaf73f14556aeccc8403"
+ }
+ Frame {
+ msec: 3312
+ hash: "3e81338d38723d56f2d6c428271f81c1"
+ }
+ Frame {
+ msec: 3328
+ hash: "41987e6b4248d7944c0dbc6eb3862023"
+ }
+ Frame {
+ msec: 3344
+ hash: "3d518cd0348d6202243364af1dd6ce89"
+ }
+ Frame {
+ msec: 3360
+ hash: "4310a4c3037d845f088f21ad608f366a"
+ }
+ Frame {
+ msec: 3376
+ hash: "0e0c40f8e11a7bd499c80562ac6f8a82"
+ }
+ Frame {
+ msec: 3392
+ hash: "f4d0d3bca25e67908b38910f47b4757e"
+ }
+ Frame {
+ msec: 3408
+ hash: "89c159ef00d273ecfe61332e1bf7244d"
+ }
+ Frame {
+ msec: 3424
+ hash: "e1474c2cdd8768ca1ef45bf3bc5234ca"
+ }
+ Frame {
+ msec: 3440
+ hash: "61c16009b65a55bffb63e27727e1615e"
+ }
+ Frame {
+ msec: 3456
+ hash: "16c16c77c65b36d1e0954d5ead2642be"
+ }
+ Frame {
+ msec: 3472
+ hash: "31d65134f340d82dd40f2401bda3fb7e"
+ }
+ Frame {
+ msec: 3488
+ hash: "061406edcbd2d4930ab89c3fcab63c7f"
+ }
+ Frame {
+ msec: 3504
+ hash: "0af81ee0d76ff8335a0e347dc086ca37"
+ }
+ Frame {
+ msec: 3520
+ hash: "0f347763f25350ebb62dda1536372b45"
+ }
+ Frame {
+ msec: 3536
+ hash: "f3a7e74a1839f9366f9eeec4d2b80d1e"
+ }
+ Frame {
+ msec: 3552
+ hash: "64ecb03aa538e74d0b99c6dec7751401"
+ }
+ Frame {
+ msec: 3568
+ hash: "170a1d5fe3422cf5223a78015a6a45fd"
+ }
+ Frame {
+ msec: 3584
+ hash: "10307beea6d99ab0ff5863f8e35555ed"
+ }
+ Frame {
+ msec: 3600
+ hash: "456be9c208d690c479ba12bf6325dde0"
+ }
+ Frame {
+ msec: 3616
+ hash: "0a8da7a3f57c3e06e4be5ea1d8a83ae9"
+ }
+ Frame {
+ msec: 3632
+ hash: "277ef98ea859fb7685fe6cd44a538a7d"
+ }
+ Frame {
+ msec: 3648
+ hash: "74c837b29f7f05b615123f0e608b523f"
+ }
+ Frame {
+ msec: 3664
+ hash: "d671a3b971468e1d8aa30ab655e020a9"
+ }
+ Frame {
+ msec: 3680
+ hash: "df624d70cae1bcefda8d69c0ff055d83"
+ }
+ Frame {
+ msec: 3696
+ hash: "3f9a09ae19be34348bb2552915360cf7"
+ }
+ Frame {
+ msec: 3712
+ hash: "83c029e328e80af83158c37089cf0ece"
+ }
+ Frame {
+ msec: 3728
+ hash: "323af110731b7af0c30f8862ff59b833"
+ }
+ Frame {
+ msec: 3744
+ hash: "63d3c47f7dec1236440a05e0a8380900"
+ }
+ Frame {
+ msec: 3760
+ hash: "48e62dd171f5da82b5aa26c765e4042c"
+ }
+ Frame {
+ msec: 3776
+ hash: "5a8932d13d624932a65694fd19ec05cd"
+ }
+ Frame {
+ msec: 3792
+ hash: "f22a47b846cfee96ebdf39bbce2e6d51"
+ }
+ Frame {
+ msec: 3808
+ hash: "a716c8d2c94433dee719f92f0822c8ec"
+ }
+ Frame {
+ msec: 3824
+ hash: "7b66e21652a7d0982226e281a48411a9"
+ }
+ Frame {
+ msec: 3840
+ image: "animated-smooth.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "59470d71fa4426d0283e86371f2bfc2a"
+ }
+ Frame {
+ msec: 3872
+ hash: "ed9f2ca797894612600bc4b7fbaecb84"
+ }
+ Frame {
+ msec: 3888
+ hash: "de471829f8ad3b43bf1b4df9d1d65a4d"
+ }
+ Frame {
+ msec: 3904
+ hash: "cd2180be80101c2aa4350b51b7a6f502"
+ }
+ Frame {
+ msec: 3920
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 3936
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 3952
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 3968
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 3984
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 4000
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 4016
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 4032
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 4048
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 4064
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 4080
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 4096
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 4112
+ hash: "aec13bcab337e55832b0a02fb5c6b526"
+ }
+ Frame {
+ msec: 4128
+ hash: "cd2180be80101c2aa4350b51b7a6f502"
+ }
+ Frame {
+ msec: 4144
+ hash: "de471829f8ad3b43bf1b4df9d1d65a4d"
+ }
+ Frame {
+ msec: 4160
+ hash: "ed9f2ca797894612600bc4b7fbaecb84"
+ }
+ Frame {
+ msec: 4176
+ hash: "59470d71fa4426d0283e86371f2bfc2a"
+ }
+ Frame {
+ msec: 4192
+ hash: "9a2f92efb51bcc6293d6a8e82d5314ea"
+ }
+ Frame {
+ msec: 4208
+ hash: "7b66e21652a7d0982226e281a48411a9"
+ }
+ Frame {
+ msec: 4224
+ hash: "a716c8d2c94433dee719f92f0822c8ec"
+ }
+ Frame {
+ msec: 4240
+ hash: "f22a47b846cfee96ebdf39bbce2e6d51"
+ }
+ Frame {
+ msec: 4256
+ hash: "5a8932d13d624932a65694fd19ec05cd"
+ }
+ Frame {
+ msec: 4272
+ hash: "48e62dd171f5da82b5aa26c765e4042c"
+ }
+ Frame {
+ msec: 4288
+ hash: "63d3c47f7dec1236440a05e0a8380900"
+ }
+ Frame {
+ msec: 4304
+ hash: "323af110731b7af0c30f8862ff59b833"
+ }
+ Frame {
+ msec: 4320
+ hash: "83c029e328e80af83158c37089cf0ece"
+ }
+ Frame {
+ msec: 4336
+ hash: "3f9a09ae19be34348bb2552915360cf7"
+ }
+ Frame {
+ msec: 4352
+ hash: "df624d70cae1bcefda8d69c0ff055d83"
+ }
+ Frame {
+ msec: 4368
+ hash: "d671a3b971468e1d8aa30ab655e020a9"
+ }
+ Frame {
+ msec: 4384
+ hash: "74c837b29f7f05b615123f0e608b523f"
+ }
+ Frame {
+ msec: 4400
+ hash: "277ef98ea859fb7685fe6cd44a538a7d"
+ }
+ Frame {
+ msec: 4416
+ hash: "0a8da7a3f57c3e06e4be5ea1d8a83ae9"
+ }
+ Frame {
+ msec: 4432
+ hash: "456be9c208d690c479ba12bf6325dde0"
+ }
+ Frame {
+ msec: 4448
+ hash: "10307beea6d99ab0ff5863f8e35555ed"
+ }
+ Frame {
+ msec: 4464
+ hash: "170a1d5fe3422cf5223a78015a6a45fd"
+ }
+ Frame {
+ msec: 4480
+ hash: "64ecb03aa538e74d0b99c6dec7751401"
+ }
+ Frame {
+ msec: 4496
+ hash: "f3a7e74a1839f9366f9eeec4d2b80d1e"
+ }
+ Frame {
+ msec: 4512
+ hash: "0f347763f25350ebb62dda1536372b45"
+ }
+ Frame {
+ msec: 4528
+ hash: "0af81ee0d76ff8335a0e347dc086ca37"
+ }
+ Frame {
+ msec: 4544
+ hash: "061406edcbd2d4930ab89c3fcab63c7f"
+ }
+ Frame {
+ msec: 4560
+ hash: "31d65134f340d82dd40f2401bda3fb7e"
+ }
+ Frame {
+ msec: 4576
+ hash: "16c16c77c65b36d1e0954d5ead2642be"
+ }
+ Frame {
+ msec: 4592
+ hash: "61c16009b65a55bffb63e27727e1615e"
+ }
+ Frame {
+ msec: 4608
+ hash: "e1474c2cdd8768ca1ef45bf3bc5234ca"
+ }
+ Frame {
+ msec: 4624
+ hash: "89c159ef00d273ecfe61332e1bf7244d"
+ }
+ Frame {
+ msec: 4640
+ hash: "f4d0d3bca25e67908b38910f47b4757e"
+ }
+ Frame {
+ msec: 4656
+ hash: "0e0c40f8e11a7bd499c80562ac6f8a82"
+ }
+ Frame {
+ msec: 4672
+ hash: "4310a4c3037d845f088f21ad608f366a"
+ }
+ Frame {
+ msec: 4688
+ hash: "3d518cd0348d6202243364af1dd6ce89"
+ }
+ Frame {
+ msec: 4704
+ hash: "41987e6b4248d7944c0dbc6eb3862023"
+ }
+ Frame {
+ msec: 4720
+ hash: "3e81338d38723d56f2d6c428271f81c1"
+ }
+ Frame {
+ msec: 4736
+ hash: "74af3457583fbaf73f14556aeccc8403"
+ }
+ Frame {
+ msec: 4752
+ hash: "efc119983701908a904deb24108c59cb"
+ }
+ Frame {
+ msec: 4768
+ hash: "3a77785cfd7755f567619d8e04583f6a"
+ }
+ Frame {
+ msec: 4784
+ hash: "fd85d1dd931033973283a408b5e328a8"
+ }
+ Frame {
+ msec: 4800
+ image: "animated-smooth.4.png"
+ }
+ Frame {
+ msec: 4816
+ hash: "ae12f1f37a746e16b06e6b869c89fac1"
+ }
+ Frame {
+ msec: 4832
+ hash: "d2ed2cf3a12e41bac299399cc35abe6a"
+ }
+ Frame {
+ msec: 4848
+ hash: "84ef6dda8318b623832f58c46d762e89"
+ }
+ Frame {
+ msec: 4864
+ hash: "b699285764f5e8866a9996f4a0dccc69"
+ }
+ Frame {
+ msec: 4880
+ hash: "ddd8a006ef048c8d929144aa9fcd7c5a"
+ }
+ Frame {
+ msec: 4896
+ hash: "177666cb3bb784c83196886b2c6cf6b6"
+ }
+ Frame {
+ msec: 4912
+ hash: "9cd29b4b023a8b92573575fb3c3dda83"
+ }
+ Frame {
+ msec: 4928
+ hash: "adc670a9aa0326744cb23e4f5912e6c7"
+ }
+ Frame {
+ msec: 4944
+ hash: "48db9a5e6aad9a9563a3cd35fb7fa9b6"
+ }
+ Frame {
+ msec: 4960
+ hash: "d7e96278583f83ab636ed68fa130e4d2"
+ }
+ Frame {
+ msec: 4976
+ hash: "64b21b89576fdd0083f60a26f57b9c11"
+ }
+ Frame {
+ msec: 4992
+ hash: "0d407ee07692d0e5a480a60952807b3c"
+ }
+ Frame {
+ msec: 5008
+ hash: "845170815a87565dc4229792032b3357"
+ }
+ Frame {
+ msec: 5024
+ hash: "8b8120cfc14de03e048632fdea61be21"
+ }
+ Frame {
+ msec: 5040
+ hash: "b0070117f1c24a4da87434725d4bb989"
+ }
+ Frame {
+ msec: 5056
+ hash: "0239d697642ca1d1b1d1daa3ea048e1e"
+ }
+ Frame {
+ msec: 5072
+ hash: "3df54504f8891306fa8f1e9e2075a5e2"
+ }
+ Frame {
+ msec: 5088
+ hash: "853429387cc639496c7338244de7e1b7"
+ }
+ Frame {
+ msec: 5104
+ hash: "bd70500fbdfe5aa2fe4362a97a1dee2d"
+ }
+ Frame {
+ msec: 5120
+ hash: "b375e723b2396b13b8f55cfc0c81c3c3"
+ }
+ Frame {
+ msec: 5136
+ hash: "53f05993ba3b426949badd2e4cd66d84"
+ }
+ Frame {
+ msec: 5152
+ hash: "23291a0239c69ea07db959e709b1ff5f"
+ }
+ Frame {
+ msec: 5168
+ hash: "85ef33fcb3f91e4fc20391bf94455984"
+ }
+ Frame {
+ msec: 5184
+ hash: "d6615fc345831a3cc5b9a7196284b632"
+ }
+ Frame {
+ msec: 5200
+ hash: "07acba64dc608439a8a54fcb080379e8"
+ }
+ Frame {
+ msec: 5216
+ hash: "2a1fcfb753ca237b518da26e67c928e5"
+ }
+ Frame {
+ msec: 5232
+ hash: "1f964c6c9bebdc9945dc69a6095400f7"
+ }
+ Frame {
+ msec: 5248
+ hash: "bd045f4532d78bba0ef1b64118fd9f24"
+ }
+ Frame {
+ msec: 5264
+ hash: "2084ccc60ddd493399c128717816d33b"
+ }
+ Frame {
+ msec: 5280
+ hash: "0640fcb0b24d3ba4ab8695f78271a438"
+ }
+ Frame {
+ msec: 5296
+ hash: "7c9a98e2101c33e17c1bd7e6c2d921ff"
+ }
+ Frame {
+ msec: 5312
+ hash: "fce2648975106bc5c0ca9a4530f7f748"
+ }
+ Frame {
+ msec: 5328
+ hash: "39cc17ee2e889f17dd07179fda99e431"
+ }
+ Frame {
+ msec: 5344
+ hash: "39c46d85d20f7ef3eca1d09c7eb6a068"
+ }
+ Frame {
+ msec: 5360
+ hash: "d65d50fbb920e683b041a1c72238225b"
+ }
+ Frame {
+ msec: 5376
+ hash: "45d891d804609ebbe1d5ac3f826d0c17"
+ }
+ Frame {
+ msec: 5392
+ hash: "05cbce0eaa80b4610a9067af8c40f819"
+ }
+ Frame {
+ msec: 5408
+ hash: "00ab7798bcd77a99886dff0414f35382"
+ }
+ Frame {
+ msec: 5424
+ hash: "5cc90d798786c270ddd2616512f4459f"
+ }
+ Frame {
+ msec: 5440
+ hash: "e5df07ea21e8e415c3ec82560f2d0f34"
+ }
+ Frame {
+ msec: 5456
+ hash: "ddf1f5c0b97fe4821719ec5bf4bd091b"
+ }
+ Frame {
+ msec: 5472
+ hash: "c61d2aa7f934fb5a9f9f7883e063b51c"
+ }
+ Frame {
+ msec: 5488
+ hash: "29ddde3300d0520a4c01b5536d8b9e7a"
+ }
+ Frame {
+ msec: 5504
+ hash: "2fede2f5d871654f3f8a6e9d890adeac"
+ }
+ Frame {
+ msec: 5520
+ hash: "deed4c06c9b713834490832b88e7acaf"
+ }
+ Frame {
+ msec: 5536
+ hash: "c2edb016cfdd47c192d1c48281ee76ed"
+ }
+ Frame {
+ msec: 5552
+ hash: "a261be47ae89e6b53e6bc1c1197154ae"
+ }
+ Frame {
+ msec: 5568
+ hash: "e860e97ebd73b7d1d5d5d90458b34bfe"
+ }
+ Frame {
+ msec: 5584
+ hash: "a087b532ecb2f28e4ee60819228c2522"
+ }
+ Frame {
+ msec: 5600
+ hash: "64df51b4c1bf744b2aae1c6d908c2cc3"
+ }
+ Frame {
+ msec: 5616
+ hash: "880640372bf584955627f6835f24be13"
+ }
+ Frame {
+ msec: 5632
+ hash: "d1110817827c318ceb0c112e8c2bfc1d"
+ }
+ Frame {
+ msec: 5648
+ hash: "705d9c8de05c859a42769f73761c6a63"
+ }
+ Frame {
+ msec: 5664
+ hash: "3bae40654ec551d69e7c8c72f631c7a5"
+ }
+ Frame {
+ msec: 5680
+ hash: "774740a393f3e9b8f12b81cce8da8280"
+ }
+ Frame {
+ msec: 5696
+ hash: "64cd225202ed6c91b02c368a9160a656"
+ }
+ Frame {
+ msec: 5712
+ hash: "2b7eb8a9fe26b032be8b4b9c00995912"
+ }
+ Frame {
+ msec: 5728
+ hash: "47e920e3884ccf2f0f49e78070af6929"
+ }
+ Frame {
+ msec: 5744
+ hash: "fe899138116774df4c4441687e3019c5"
+ }
+ Frame {
+ msec: 5760
+ image: "animated-smooth.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "5736362b42bc2d801e02edabb983663a"
+ }
+ Frame {
+ msec: 5792
+ hash: "c3ea530de646612f9203c5800cad884b"
+ }
+ Frame {
+ msec: 5808
+ hash: "48952ffa5e300778eafa768b9fe7df0c"
+ }
+ Frame {
+ msec: 5824
+ hash: "fe04cae65aeec18697eca4f3f83a40e9"
+ }
+ Frame {
+ msec: 5840
+ hash: "382d454f2366c1fb4ca472faa3bfa5e9"
+ }
+ Frame {
+ msec: 5856
+ hash: "89022a8e2feb3dcb845de69aafc333ad"
+ }
+ Frame {
+ msec: 5872
+ hash: "25506557c853a0020e98cf3992956989"
+ }
+ Frame {
+ msec: 5888
+ hash: "9a64706c52c9e962816953e32950b8ba"
+ }
+ Frame {
+ msec: 5904
+ hash: "3cbfded47413172ada64095e65c55e8a"
+ }
+ Frame {
+ msec: 5920
+ hash: "3b7b83e97d17440b42e6ef4b962076d8"
+ }
+ Frame {
+ msec: 5936
+ hash: "c5e399e29b988148913e62ee208b3326"
+ }
+ Frame {
+ msec: 5952
+ hash: "b980703c1d0018937e83a8ba8862469e"
+ }
+ Frame {
+ msec: 5968
+ hash: "05312f9529c94d3331ace7d73c544284"
+ }
+ Frame {
+ msec: 5984
+ hash: "a94de4e90a8f8eb4ec33fe902afd226c"
+ }
+ Frame {
+ msec: 6000
+ hash: "ee297a2d68c9e58157d9bf189d353713"
+ }
+ Frame {
+ msec: 6016
+ hash: "00f3c9b8b37cb104cf2a7701639bc61f"
+ }
+ Frame {
+ msec: 6032
+ hash: "ee297a2d68c9e58157d9bf189d353713"
+ }
+ Frame {
+ msec: 6048
+ hash: "a94de4e90a8f8eb4ec33fe902afd226c"
+ }
+ Frame {
+ msec: 6064
+ hash: "05312f9529c94d3331ace7d73c544284"
+ }
+ Frame {
+ msec: 6080
+ hash: "b980703c1d0018937e83a8ba8862469e"
+ }
+ Frame {
+ msec: 6096
+ hash: "c5e399e29b988148913e62ee208b3326"
+ }
+ Frame {
+ msec: 6112
+ hash: "3b7b83e97d17440b42e6ef4b962076d8"
+ }
+ Frame {
+ msec: 6128
+ hash: "3cbfded47413172ada64095e65c55e8a"
+ }
+ Frame {
+ msec: 6144
+ hash: "9a64706c52c9e962816953e32950b8ba"
+ }
+ Frame {
+ msec: 6160
+ hash: "25506557c853a0020e98cf3992956989"
+ }
+ Frame {
+ msec: 6176
+ hash: "89022a8e2feb3dcb845de69aafc333ad"
+ }
+ Frame {
+ msec: 6192
+ hash: "382d454f2366c1fb4ca472faa3bfa5e9"
+ }
+ Frame {
+ msec: 6208
+ hash: "fe04cae65aeec18697eca4f3f83a40e9"
+ }
+ Frame {
+ msec: 6224
+ hash: "48952ffa5e300778eafa768b9fe7df0c"
+ }
+ Frame {
+ msec: 6240
+ hash: "c3ea530de646612f9203c5800cad884b"
+ }
+ Frame {
+ msec: 6256
+ hash: "5736362b42bc2d801e02edabb983663a"
+ }
+ Frame {
+ msec: 6272
+ hash: "5d9ee853f083d514fbe51d6953d8e000"
+ }
+ Frame {
+ msec: 6288
+ hash: "fe899138116774df4c4441687e3019c5"
+ }
+ Frame {
+ msec: 6304
+ hash: "47e920e3884ccf2f0f49e78070af6929"
+ }
+ Frame {
+ msec: 6320
+ hash: "2b7eb8a9fe26b032be8b4b9c00995912"
+ }
+ Frame {
+ msec: 6336
+ hash: "64cd225202ed6c91b02c368a9160a656"
+ }
+ Frame {
+ msec: 6352
+ hash: "774740a393f3e9b8f12b81cce8da8280"
+ }
+ Frame {
+ msec: 6368
+ hash: "3bae40654ec551d69e7c8c72f631c7a5"
+ }
+ Frame {
+ msec: 6384
+ hash: "705d9c8de05c859a42769f73761c6a63"
+ }
+ Frame {
+ msec: 6400
+ hash: "d1110817827c318ceb0c112e8c2bfc1d"
+ }
+ Frame {
+ msec: 6416
+ hash: "880640372bf584955627f6835f24be13"
+ }
+ Frame {
+ msec: 6432
+ hash: "64df51b4c1bf744b2aae1c6d908c2cc3"
+ }
+ Frame {
+ msec: 6448
+ hash: "a087b532ecb2f28e4ee60819228c2522"
+ }
+ Frame {
+ msec: 6464
+ hash: "e860e97ebd73b7d1d5d5d90458b34bfe"
+ }
+ Frame {
+ msec: 6480
+ hash: "a261be47ae89e6b53e6bc1c1197154ae"
+ }
+ Frame {
+ msec: 6496
+ hash: "c2edb016cfdd47c192d1c48281ee76ed"
+ }
+ Frame {
+ msec: 6512
+ hash: "deed4c06c9b713834490832b88e7acaf"
+ }
+ Frame {
+ msec: 6528
+ hash: "2fede2f5d871654f3f8a6e9d890adeac"
+ }
+ Frame {
+ msec: 6544
+ hash: "29ddde3300d0520a4c01b5536d8b9e7a"
+ }
+ Frame {
+ msec: 6560
+ hash: "c61d2aa7f934fb5a9f9f7883e063b51c"
+ }
+ Frame {
+ msec: 6576
+ hash: "ddf1f5c0b97fe4821719ec5bf4bd091b"
+ }
+ Frame {
+ msec: 6592
+ hash: "e5df07ea21e8e415c3ec82560f2d0f34"
+ }
+ Frame {
+ msec: 6608
+ hash: "5cc90d798786c270ddd2616512f4459f"
+ }
+ Frame {
+ msec: 6624
+ hash: "00ab7798bcd77a99886dff0414f35382"
+ }
+ Frame {
+ msec: 6640
+ hash: "05cbce0eaa80b4610a9067af8c40f819"
+ }
+ Frame {
+ msec: 6656
+ hash: "45d891d804609ebbe1d5ac3f826d0c17"
+ }
+ Frame {
+ msec: 6672
+ hash: "d65d50fbb920e683b041a1c72238225b"
+ }
+ Frame {
+ msec: 6688
+ hash: "39c46d85d20f7ef3eca1d09c7eb6a068"
+ }
+ Frame {
+ msec: 6704
+ hash: "39cc17ee2e889f17dd07179fda99e431"
+ }
+ Frame {
+ msec: 6720
+ image: "animated-smooth.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "7c9a98e2101c33e17c1bd7e6c2d921ff"
+ }
+ Frame {
+ msec: 6752
+ hash: "0640fcb0b24d3ba4ab8695f78271a438"
+ }
+ Frame {
+ msec: 6768
+ hash: "2084ccc60ddd493399c128717816d33b"
+ }
+ Frame {
+ msec: 6784
+ hash: "bd045f4532d78bba0ef1b64118fd9f24"
+ }
+ Frame {
+ msec: 6800
+ hash: "1f964c6c9bebdc9945dc69a6095400f7"
+ }
+ Frame {
+ msec: 6816
+ hash: "2a1fcfb753ca237b518da26e67c928e5"
+ }
+ Frame {
+ msec: 6832
+ hash: "07acba64dc608439a8a54fcb080379e8"
+ }
+ Frame {
+ msec: 6848
+ hash: "d6615fc345831a3cc5b9a7196284b632"
+ }
+ Frame {
+ msec: 6864
+ hash: "85ef33fcb3f91e4fc20391bf94455984"
+ }
+ Frame {
+ msec: 6880
+ hash: "23291a0239c69ea07db959e709b1ff5f"
+ }
+ Frame {
+ msec: 6896
+ hash: "53f05993ba3b426949badd2e4cd66d84"
+ }
+ Frame {
+ msec: 6912
+ hash: "b375e723b2396b13b8f55cfc0c81c3c3"
+ }
+ Frame {
+ msec: 6928
+ hash: "bd70500fbdfe5aa2fe4362a97a1dee2d"
+ }
+ Frame {
+ msec: 6944
+ hash: "853429387cc639496c7338244de7e1b7"
+ }
+ Frame {
+ msec: 6960
+ hash: "3df54504f8891306fa8f1e9e2075a5e2"
+ }
+ Frame {
+ msec: 6976
+ hash: "0239d697642ca1d1b1d1daa3ea048e1e"
+ }
+ Frame {
+ msec: 6992
+ hash: "b0070117f1c24a4da87434725d4bb989"
+ }
+ Frame {
+ msec: 7008
+ hash: "8b8120cfc14de03e048632fdea61be21"
+ }
+ Frame {
+ msec: 7024
+ hash: "845170815a87565dc4229792032b3357"
+ }
+ Frame {
+ msec: 7040
+ hash: "0d407ee07692d0e5a480a60952807b3c"
+ }
+ Frame {
+ msec: 7056
+ hash: "64b21b89576fdd0083f60a26f57b9c11"
+ }
+ Frame {
+ msec: 7072
+ hash: "d7e96278583f83ab636ed68fa130e4d2"
+ }
+ Frame {
+ msec: 7088
+ hash: "48db9a5e6aad9a9563a3cd35fb7fa9b6"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7104
+ hash: "adc670a9aa0326744cb23e4f5912e6c7"
+ }
+ Frame {
+ msec: 7120
+ hash: "9cd29b4b023a8b92573575fb3c3dda83"
+ }
+ Frame {
+ msec: 7136
+ hash: "177666cb3bb784c83196886b2c6cf6b6"
+ }
+ Frame {
+ msec: 7152
+ hash: "ddd8a006ef048c8d929144aa9fcd7c5a"
+ }
+ Frame {
+ msec: 7168
+ hash: "b699285764f5e8866a9996f4a0dccc69"
+ }
+ Frame {
+ msec: 7184
+ hash: "84ef6dda8318b623832f58c46d762e89"
+ }
+ Frame {
+ msec: 7200
+ hash: "d2ed2cf3a12e41bac299399cc35abe6a"
+ }
+ Frame {
+ msec: 7216
+ hash: "ae12f1f37a746e16b06e6b869c89fac1"
+ }
+ Frame {
+ msec: 7232
+ hash: "5d3e85acabe5e5ff802eb7731676274f"
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png
index 99228f9..99228f9 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.1.png
index a2dcd00..a2dcd00 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.2.png
index 8a80020..8a80020 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.3.png
index 02b57ef..02b57ef 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.4.png
index df0f6cc..df0f6cc 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.5.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.5.png
index 0add64d..0add64d 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.6.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.6.png
index 0886207..0886207 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.7.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.7.png
index bc1a7b0..bc1a7b0 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml
index 29e591a..29e591a 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/animated.qml
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.0.png
index 80cbd26..80cbd26 100644
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.qml b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.qml
new file mode 100644
index 0000000..1403d35
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeborderimage/data/borders.qml
@@ -0,0 +1,11 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "258a7e75b491e4f51a91739c776803b3"
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png
index 016902b..016902b 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png
index a654936..a654936 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png
index cfd5517..cfd5517 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png
index 016902b..016902b 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml
index 46086f9..46086f9 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-horizontal.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.qml
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png
index 18fef53..18fef53 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png
index 18fef53..18fef53 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.10.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.10.png
index b352c68..b352c68 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.10.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.10.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.11.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.11.png
index ce7ee68..ce7ee68 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.11.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.11.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.12.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.12.png
index d8cdacf..d8cdacf 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.12.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.12.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.13.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.13.png
index 0c2fa7b..0c2fa7b 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.13.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.13.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.14.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.14.png
index e9b3028..e9b3028 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.14.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.14.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.15.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.15.png
index 2186a8b..2186a8b 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.15.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.15.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.16.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.16.png
index b4590af..b4590af 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.16.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.16.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.17.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.17.png
index fe29f19..fe29f19 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.17.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.17.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.18.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.18.png
index fe29f19..fe29f19 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.18.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.18.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.19.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.19.png
index 4f8587f..4f8587f 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.19.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.19.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png
index 0a7cc03..0a7cc03 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.20.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.20.png
index 4f8587f..4f8587f 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.20.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.20.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.21.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.21.png
index c0b0bdf..c0b0bdf 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.21.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.21.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.22.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.22.png
index 4168c3b..4168c3b 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.22.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.22.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.23.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.23.png
index 18fef53..18fef53 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.23.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.23.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.24.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.24.png
index e69de29..e69de29 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.24.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.24.png
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png
index fc6669d..fc6669d 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png
index c0b0bdf..c0b0bdf 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.5.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png
index 2ffa96e..2ffa96e 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.6.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png
index f550b89..f550b89 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.7.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png
index f550b89..f550b89 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.8.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png
index f550b89..f550b89 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.9.png b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.9.png
index f550b89..f550b89 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.9.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml
index db70298..db70298 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/data/flickable-vertical.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-vertical.qml
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/flickable-horizontal.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-horizontal.qml
index 50ba9ad..50ba9ad 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/flickable-horizontal.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-horizontal.qml
diff --git a/tests/auto/declarative/visual/qdeclarativeflickable/flickable-vertical.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml
index ebb963d..ebb963d 100644
--- a/tests/auto/declarative/visual/qdeclarativeflickable/flickable-vertical.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflickable/flickable-vertical.qml
diff --git a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.0.png
index 53a8b42..53a8b42 100644
--- a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.1.png
index b7efe8c..b7efe8c 100644
--- a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.2.png
index aa6d147..aa6d147 100644
--- a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.3.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.3.png
index 9d39713..9d39713 100644
--- a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.4.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.4.png
index 98e8817..98e8817 100644
--- a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.5.png b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.5.png
index a3f9d8f..a3f9d8f 100644
--- a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml
index 520d9a2..520d9a2 100644
--- a/tests/auto/declarative/visual/qdeclarativeflipable/data/test-flipable.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/data/test-flipable.qml
diff --git a/tests/auto/declarative/visual/qdeclarativeflipable/test-flipable.qml b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test-flipable.qml
index a27aa6e..a27aa6e 100644
--- a/tests/auto/declarative/visual/qdeclarativeflipable/test-flipable.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeflipable/test-flipable.qml
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.0.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png
index 6c82777..6c82777 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.1.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png
index 07b1f7c..07b1f7c 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.2.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png
index f2f08c0..f2f08c0 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.3.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png
index 08649f9..08649f9 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.4.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png
index f9c2f17..f9c2f17 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.5.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png
index 52ec0bd..52ec0bd 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.6.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png
index 3fe25be..3fe25be 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.7.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png
index 4cc12a6..4cc12a6 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.8.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png
index 2267f23..2267f23 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.9.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png
index 6c82777..6c82777 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.9.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml
index c7ac52d..c7ac52d 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview.qml
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png
index 3021d58..3021d58 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.1.png
index baeb1a6..baeb1a6 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.10.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.10.png
index b0486e5..b0486e5 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.10.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.10.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png
index 2d0c731..2d0c731 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png
index af9ed05..af9ed05 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png
index 0b0945d..0b0945d 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.5.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png
index 618ae0c..618ae0c 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.6.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png
index fc31262..fc31262 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.7.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png
index 22291ac..22291ac 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.8.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png
index 3021d58..3021d58 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.9.png b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png
index 2f2f5b9..2f2f5b9 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.9.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml
index fb5f1fb..fb5f1fb 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/data/gridview2.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/data/gridview2.qml
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/gridview.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml
index f8782a5..f8782a5 100644
--- a/tests/auto/declarative/visual/qdeclarativegridview/gridview.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml
new file mode 100644
index 0000000..d8512eb
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativegridview/gridview2.qml
@@ -0,0 +1,61 @@
+import Qt 4.6
+
+Rectangle {
+ width: 300; height: 400; color: "black"
+
+ ListModel {
+ id: appModel
+ ListElement { lColor: "red" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "green" }
+ ListElement { lColor: "blue" }
+ ListElement { lColor: "purple" }
+ ListElement { lColor: "orange" }
+ ListElement { lColor: "pink" }
+ ListElement { lColor: "brown" }
+ ListElement { lColor: "gray" }
+ ListElement { lColor: "red" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "green" }
+ ListElement { lColor: "blue" }
+ ListElement { lColor: "purple" }
+ ListElement { lColor: "orange" }
+ ListElement { lColor: "pink" }
+ ListElement { lColor: "brown" }
+ ListElement { lColor: "gray" }
+ ListElement { lColor: "red" }
+ ListElement { lColor: "yellow" }
+ ListElement { lColor: "green" }
+ }
+
+ Component {
+ id: appDelegate
+ Item {
+ width: 100; height: 100
+ Rectangle {
+ color: lColor; x: 4; y: 4
+ width: 92; height: 92
+ }
+ }
+ }
+
+ GridView {
+ id: gridView; anchors.fill: parent
+ cellWidth: 100; cellHeight: 100; cacheBuffer: 200
+ model: appModel; delegate: appDelegate; focus: true
+ keyNavigationWraps: true
+
+ flickableData: [
+ Rectangle {
+ color: "transparent"; border.color: "white"; border.width: 8; z: 3000
+ height: 100; width: 100
+ x: gridView.currentItem.x
+ y: gridView.currentItem.y
+
+ Behavior on x { SmoothedAnimation { velocity: 500 } }
+ Behavior on y { SmoothedAnimation { velocity: 500 } }
+ }
+ ]
+ }
+
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png
new file mode 100644
index 0000000..5b7b426
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.png
new file mode 100644
index 0000000..7c27310
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.png
new file mode 100644
index 0000000..cbfdb23
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.png
new file mode 100644
index 0000000..5b7b426
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.png
new file mode 100644
index 0000000..5af705e
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.png
new file mode 100644
index 0000000..af4395e
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.png
new file mode 100644
index 0000000..cd12bc9
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.png
new file mode 100644
index 0000000..471c86b
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.8.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.8.png
index 653905e..653905e 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.8.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml
new file mode 100644
index 0000000..f3071e4
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml
@@ -0,0 +1,5207 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 32
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 48
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 64
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 80
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 96
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 112
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 128
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 144
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 160
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 176
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 192
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 208
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 224
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 240
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 256
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 272
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 288
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 304
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 320
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 336
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 352
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 368
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 384
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 400
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 416
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 432
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 448
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 464
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 480
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 496
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 512
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 528
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 544
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 560
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 576
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 592
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 608
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 624
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 640
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 656
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 672
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 688
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 704
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 720
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 736
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 752
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 768
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 784
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 800
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 816
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 832
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 848
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 864
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 880
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 896
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 912
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 928
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 944
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 960
+ image: "drag.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 992
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1008
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1024
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1040
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1056
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1072
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1088
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1104
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1120
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1136
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1152
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1168
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1184
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1200
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1216
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1232
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1248
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1264
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1280
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1296
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1312
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1328
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1344
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1360
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1376
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1392
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1408
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1424
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1440
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1456
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1472
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1488
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1504
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1520
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1536
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1552
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1568
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1584
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1600
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1616
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1632
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1648
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1664
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1680
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1696
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1712
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1728
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1744
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1760
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1776
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1792
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 16; y: 54
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1808
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 1824
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 16; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 17; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1840
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 17; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1856
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 18; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1872
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 19; y: 54
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1888
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 22; y: 49
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 29; y: 42
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1904
+ hash: "a6c6df34bb552249393ba208ad327691"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 37; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1920
+ image: "drag.1.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 47; y: 27
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1936
+ hash: "978543d8f9688605625f40b960d79c28"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 59; y: 21
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 73; y: 15
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1952
+ hash: "6170ab3a7e51278ac4462b89fe7781b4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 87; y: 9
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1968
+ hash: "32866f0aa5b13b3ab68661f49336439e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 5
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1984
+ hash: "26dc17c16eed46d37932cfe48d182b62"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 1
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 121; y: -3
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2000
+ hash: "ba70936fb44396fac184cc7ba0e94a90"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 130; y: -6
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2016
+ hash: "bae13291d4f031c34d80428d83367ede"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 140; y: -8
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2032
+ hash: "0a2fbfdc27bb6662553f637f1c325475"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 151; y: -9
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 160; y: -9
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2048
+ hash: "cdab85736dfcc4424d42e0e96094eded"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 170; y: -9
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2064
+ hash: "76d51ce9ad69560d983d8d86d50f7bd0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 174; y: -9
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2080
+ hash: "b5ada9e80f7f894aa141d5e3cfa5d69e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 176; y: -9
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2096
+ hash: "446d35fc7b9c0fe4bf0bfe0182f994f6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 183; y: -5
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2112
+ hash: "cced849d314835d43ebd93bcfe396c12"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 188; y: -3
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2128
+ hash: "09696d700944c373f82d7c6f75d51c51"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 193; y: 0
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2144
+ hash: "af56586db93c49637c9bfbb17cac9001"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 199; y: 2
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 203; y: 5
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2160
+ hash: "66fc1b30b4037aad3975036faccbb7a7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 209; y: 8
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2176
+ hash: "3f443d9c89d6ba1b36ca9635bc32de1a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 217; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2192
+ hash: "df47db8cc7bb466b298749a6449d3d70"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 227; y: 15
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 234; y: 18
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 241; y: 20
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2208
+ hash: "c1146fdc0e628d050442606096e52b10"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 252; y: 23
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2224
+ hash: "22f44c43f300fd7ff2b4d87d93756178"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 272; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2240
+ hash: "bf11dc9a9679692abde5d116a169eecf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 299; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 329; y: 48
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2256
+ hash: "e63f1960f342639ac412010ffcefb049"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 360; y: 57
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2272
+ hash: "ae0228419ec9358025c3026a39abd671"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 392; y: 65
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2288
+ hash: "6d2272e2bea21c280100ed8de5b95d4e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 422; y: 72
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 451; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2304
+ hash: "1628c6fa5feabd90924452bc9f55054d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 476; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2320
+ hash: "f696791eb0a317b0efb69407616bec9f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 497; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2336
+ hash: "f696791eb0a317b0efb69407616bec9f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 513; y: 77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 527; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2352
+ hash: "1628c6fa5feabd90924452bc9f55054d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 538; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2368
+ hash: "a5d3d247e22a2852a60fe07ab40345a5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 548; y: 74
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2384
+ hash: "a453fb6bcdd87f819782d8d8c46b56ee"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 556; y: 74
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 563; y: 75
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2400
+ hash: "a5d3d247e22a2852a60fe07ab40345a5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 570; y: 76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2416
+ hash: "1628c6fa5feabd90924452bc9f55054d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 576; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2432
+ hash: "f696791eb0a317b0efb69407616bec9f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 582; y: 78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 585; y: 80
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2448
+ hash: "8f061986df633c21dcad767ee857988c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 589; y: 81
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2464
+ hash: "2cc110a6fb800171d7d752693ede1e4e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 592; y: 82
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2480
+ hash: "319fc3053e02a8b161f33a79d9839bb1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 595; y: 85
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 597; y: 89
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2496
+ hash: "42915c8866746316cf1083a2d55410fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 601; y: 95
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2512
+ hash: "5df34b3ae292de9a9cd8ff09347e7bd4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 606; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2528
+ hash: "1f9bc3c955983ea85f568797cb4f7365"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 609; y: 113
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 613; y: 124
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2544
+ hash: "3f156dc64a12c672874acf5456ef4a31"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 618; y: 136
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2560
+ hash: "d4d9fe5b5f138e06a87039ebf8695d03"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 619; y: 142
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2576
+ hash: "383fe813021ee2791930200b2f88a802"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 620; y: 148
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 622; y: 155
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2592
+ hash: "a235544bd5e791dfa329bd0b87358bfa"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 625; y: 163
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2608
+ hash: "a87497cf47db3209610b532efe7eb380"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 629; y: 174
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2624
+ hash: "abe69b4e4b7508028226f9b73c38058a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 634; y: 194
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 642; y: 225
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2640
+ hash: "51c72fa2fa4c8765d882fe65dc0d697d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 649; y: 260
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2656
+ hash: "79da7ed21bd6fc16b7264d4403e763cc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 655; y: 291
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2672
+ hash: "b2828b6340a57fa45416469b23b7cef0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 658; y: 316
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 659; y: 340
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2688
+ hash: "64a5351f2d746b338c34c7ea9ba6e1fe"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 660; y: 370
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2704
+ hash: "9eedb7a6875210084fd2ec95d3505512"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 661; y: 408
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2720
+ hash: "b88eb8fa8a0cfc263dc7b655ddc29db0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 661; y: 448
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2736
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 660; y: 487
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 659; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2752
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 658; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2768
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 658; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2784
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 658; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 658; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2800
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 657; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2816
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 656; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2832
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 654; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 652; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2848
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 651; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2864
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 650; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2880
+ image: "drag.2.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 650; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 648; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2896
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 647; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2912
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 646; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2928
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 645; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 644; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2944
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 643; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2960
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 642; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2976
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 641; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 640; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 2992
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 640; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3008
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 639; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3024
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 639; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 638; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3040
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 636; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3056
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 625; y: 505
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3072
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 611; y: 505
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3088
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 582; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 546; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3104
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 505; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3120
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 460; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3136
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 408; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 354; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3152
+ hash: "c2997fdde10812f02791bfed5f158ac3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 300; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3168
+ hash: "23a6dfbd09e5b44d04f252cedaeb68af"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 250; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3184
+ hash: "f74422989711f86a0840ffc98e8a29e9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 206; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 163; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3200
+ hash: "fa922246d254a7c46d2d1d6ec91a2b02"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 140; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 122; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3216
+ hash: "ef216cb8c2bf58db7d58bd8a2e4eb38d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 101; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3232
+ hash: "a383228d22e64b8a7758c959288eaca8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 64; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3248
+ hash: "636ca2a8e91c49ef6c8b1c93b830f345"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 36; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 16; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3264
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -1; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3280
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3296
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3312
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3328
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3344
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3360
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3376
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 505
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3392
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 504
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 504
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3408
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 505
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3424
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3440
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3456
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3472
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3488
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3504
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3520
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3536
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3552
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Frame {
+ msec: 3568
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3584
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3600
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3616
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Frame {
+ msec: 3632
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 491
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3648
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 428
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3664
+ hash: "9fa1e3686467f28cb013fe093dab388c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 342
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3680
+ hash: "7ef97d10862f80d53e0b3b4446661deb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 264
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 203
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3696
+ hash: "c679866b3965b7b5f48b843d6efccf42"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 160
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3712
+ hash: "de4bd9ad3cbb9bb19bf75f871b044072"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 144
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3728
+ hash: "c5349bbddc03edd5ee3537e2a738f1ad"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 136
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 132
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3744
+ hash: "bcbe9ec2687a6030385f08d3dc17becf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 130
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3760
+ hash: "3ad767f63eaccb9e64a9f704900f2530"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 129
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3776
+ hash: "421a1ffde15fda0e7846bc095ed2ea37"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 128
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 128
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3792
+ hash: "55c260da304a6b1119af83f6a4efcff0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 123
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3808
+ hash: "f231cc521db801b4ec71248812e12db8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 104
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3824
+ hash: "b489b6b604e7f7699cac9e42d0725323"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 68
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3840
+ image: "drag.3.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 13
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3856
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 2
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3872
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -6
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -12
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3888
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -25
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3904
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -46
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3920
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -65
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -70
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3936
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -74
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3952
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3968
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 3984
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -76
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4000
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4016
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4032
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4048
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4064
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4080
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4096
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -77
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4112
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4128
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4144
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: -78
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4160
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -3; y: -84
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4176
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -2; y: -105
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 1; y: -151
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4192
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4208
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4224
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4240
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4256
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4272
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4288
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4304
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4320
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4336
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4352
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4368
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Frame {
+ msec: 4384
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 3; y: -151
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4400
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 4; y: -149
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4416
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 5; y: -147
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4432
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 5; y: -143
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 6; y: -138
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4448
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 7; y: -130
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4464
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 9; y: -117
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4480
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 13; y: -94
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 20; y: -63
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4496
+ hash: "b1b54f7bf8ab9cf98d96f9b34192434b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 29; y: -24
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4512
+ hash: "a6c6df34bb552249393ba208ad327691"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 39; y: 15
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4528
+ hash: "a05eb803b1f1f3574a2f2e08fe37bd35"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 49; y: 50
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 58; y: 74
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4544
+ hash: "3c2f3db46673c2640a26832900b609cb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 65; y: 91
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4560
+ hash: "d0539a9791874f48634bb3cb9f78d9db"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 71; y: 103
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4576
+ hash: "f2d862a0b81e2578799d64aef2e6bddc"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 77; y: 112
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 81; y: 121
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4592
+ hash: "295ef097845e30064c4d810a7718896c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 86; y: 128
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4608
+ hash: "22a4a17d82ac402c0e8372861609ff1c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 92; y: 136
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4624
+ hash: "a70e81b1435afd77b9079c58685ef9d0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 98; y: 143
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 104; y: 151
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4640
+ hash: "d66fefd68fcd96834548c18797eee4bd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 159
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4656
+ hash: "fcc435dc6f2643cd21a7cfac078880af"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 118; y: 166
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4672
+ hash: "736edfcf33245d46aaea199634896c17"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 123; y: 173
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 129; y: 183
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4688
+ hash: "7b7ab312d0c6f4bfc87a2ae467324f4e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 137; y: 197
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4704
+ hash: "d78ce756fc27055eeee15001419b7fb5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 146; y: 215
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4720
+ hash: "4f15a726939d7f489d1fe58ebb5bcd0a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 157; y: 235
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 168; y: 255
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4736
+ hash: "72184d71fd2fdc6786a43045db0be68f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 180; y: 274
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4752
+ hash: "3b3f3f34218bf238f310412cb8c4968d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 192; y: 293
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4768
+ hash: "24c00a7154471431d43b1db957ad6424"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 205; y: 316
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 221; y: 343
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4784
+ hash: "30081a33ab007ff2c7ba6cc293a5aec3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 237; y: 371
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4800
+ image: "drag.4.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 253; y: 396
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4816
+ hash: "c0cadb7730838d553b146804c37506b0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 268; y: 419
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 276; y: 429
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 284; y: 438
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4832
+ hash: "101c007d0e2cf82331ba1cab4880e8a2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 291; y: 448
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4848
+ hash: "72e46df7427420c5e942a97831723d3f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 307; y: 468
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4864
+ hash: "4b7a009b46982a1e9e31250d7ebf0a20"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 323; y: 492
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 341; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4880
+ hash: "a3ba70933b6452fad0cdc4192e04be23"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 359; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4896
+ hash: "c2ee16182222b403f914eb5550ac6f91"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 378; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4912
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 397; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 416; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4928
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 432; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4944
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 445; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4960
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 456; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 466; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4976
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 475; y: 506
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4992
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 482; y: 505
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5008
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 488; y: 504
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 492; y: 503
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5024
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 496; y: 503
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5040
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 500; y: 502
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5056
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 507; y: 501
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5072
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 512; y: 500
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 516; y: 498
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5088
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 521; y: 494
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5104
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 525; y: 486
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5120
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 532; y: 472
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 542; y: 445
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5136
+ hash: "9356ce797d12ae076af947cd0e658551"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 553; y: 414
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5152
+ hash: "76a8d3b8465f08fdc4586c7766667eff"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 563; y: 389
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5168
+ hash: "569e56ba99776d03dd3140e53bc77f56"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 569; y: 373
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 573; y: 363
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5184
+ hash: "7139c72a2458685006da79d9cf11bc44"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 577; y: 354
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5200
+ hash: "a83d5ef213edec4c8f938ab04afb5c4f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 580; y: 344
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5216
+ hash: "5533602bc8a473c162966142d4bddebd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 584; y: 321
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 586; y: 301
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5232
+ hash: "7a79d6e31874428233e9c141d70522fd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 588; y: 264
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5248
+ hash: "b14f4daeb25cd71baae36f4cec111813"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 591; y: 238
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5264
+ hash: "e2b2513d2918ffb85bab5fff5a8be644"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 592; y: 225
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 593; y: 216
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5280
+ hash: "af0cbb3423491917db1fdaa8350d48b0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 594; y: 209
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5296
+ hash: "b9c107f0a13ad37ae05b4d5f9e5f5442"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 594; y: 200
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5312
+ hash: "0bbc0c7a4a40ee6b19565c04c23b565d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 594; y: 182
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 593; y: 146
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5328
+ hash: "49494e8526a1417c151c7cac7099b9e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 590; y: 107
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5344
+ hash: "5e0839c4414cc8ddc5241c658fd3bf88"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 585; y: 80
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5360
+ hash: "8f061986df633c21dcad767ee857988c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 582; y: 67
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5376
+ hash: "d78c0a4fa0ccad407a565fab3a5c95b9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 579; y: 61
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 576; y: 57
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5392
+ hash: "cee6816f84911bc2262afe28d8996719"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 573; y: 55
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5408
+ hash: "2cc6cd514ef7299dd60bf1a735b81d36"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 569; y: 51
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5424
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 564; y: 44
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 557; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5440
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 548; y: 25
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5456
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 540; y: 14
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 532; y: 5
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5472
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 524; y: -1
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5488
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 517; y: -5
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5504
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 510; y: -9
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5520
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 501; y: -14
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 492; y: -18
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5536
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 483; y: -21
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5552
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 476; y: -21
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5568
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 470; y: -19
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 464; y: -15
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5584
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 458; y: -9
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5600
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 452; y: -3
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5616
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 446; y: 4
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 439; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5632
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 432; y: 20
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5648
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 424; y: 29
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5664
+ hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 413; y: 42
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 400; y: 59
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5680
+ hash: "9bc8a652f43c0e3cae9492f5dff624e7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 392; y: 70
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 385; y: 79
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5696
+ hash: "5465128afe72d9618cd9abc47f4ce72f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 378; y: 88
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5712
+ hash: "ad739c2028caf8f89d8ae04d509c7854"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 366; y: 102
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 353; y: 114
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5728
+ hash: "97cd37f639a7bea76a2f68774c0753db"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 339; y: 126
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5744
+ hash: "d24fc8a57dd34e6ddb726426247ec219"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 324; y: 140
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5760
+ image: "drag.5.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 308; y: 158
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 288; y: 181
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5776
+ hash: "7af87eb80fa9d87fe8d8b5e4a2fff5e1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 266; y: 208
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5792
+ hash: "73623f4a857fd4d5150c2eeef1341540"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 243; y: 237
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5808
+ hash: "076c4b60d9ec197950ade51e3f1be791"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 217; y: 265
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 191; y: 291
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5824
+ hash: "22b7d7765c634763fa86912ea262efca"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 167; y: 314
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5840
+ hash: "1267c017931bda0b88b4672f46d499e0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 147; y: 331
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5856
+ hash: "b6a545e4c14b809f4ebcffbcb59a8e4f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 132; y: 344
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 121; y: 354
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5872
+ hash: "b1085cb508d4613c76e99bc879c62cbf"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 363
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5888
+ hash: "365fd1260c2109e6d5bd0a97ce3a7e4e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 370
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5904
+ hash: "3a7d001313b23cbbb7f3d842ab40f41b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 86; y: 377
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 66; y: 385
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5920
+ hash: "c5bda48bb2eaee54d6d8416592830327"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 45; y: 394
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5936
+ hash: "5d0fd6d8a6ced4f197fe3b09e7e9155b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 29; y: 402
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5952
+ hash: "79e2825f98644c061ae5216ae1823e4b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 16; y: 410
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 6; y: 417
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5968
+ hash: "22a3978f2f3a0cde67f459527af3b3f2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 0; y: 422
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 427
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 5984
+ hash: "1511bec94911dd272f78a726e15bf76e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 432
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6000
+ hash: "0f892f7e570cdc703e492248c9f54b6c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 439
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6016
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 447
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 452
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6032
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 457
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6048
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 459
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6064
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 464
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 465
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6080
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 467
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6096
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 468
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6112
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 468
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 468
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6128
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 468
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6144
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 468
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6160
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 469
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 470
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6176
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 470
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6192
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Frame {
+ msec: 6208
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 470
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6224
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -3; y: 470
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -3; y: 470
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6240
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -2; y: 470
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6256
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -1; y: 470
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6272
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -1; y: 468
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 0; y: 467
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6288
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 0; y: 464
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6304
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 0; y: 458
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6320
+ hash: "ec34aa6937d2c081bdf11660a5eb461a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -3; y: 441
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 408
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6336
+ hash: "58413f9b01f1e0b49519d8b6a3011607"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 366
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6352
+ hash: "b3992d2f9c1383c710ee325a94117a8b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 327
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6368
+ hash: "bd415044fcf6218d8184cb0206105e65"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 300
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 288
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6384
+ hash: "e7296140fe8b28bed77e95e588c0e463"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 280
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6400
+ hash: "9ff532223ccccd663809187465e478c2"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 276
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6416
+ hash: "4de9ca75503db05df5d8274d75c202e5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 271
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 259
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6432
+ hash: "a83b5bc409207e986055081b4ed3faa6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 227
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6448
+ hash: "7fdbd00dd3553241f30fd6568a8ab646"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 190
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6464
+ hash: "5ebaa67eaadc1ede8c46964fa1dffff1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -4; y: 169
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -2; y: 160
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6480
+ hash: "de4bd9ad3cbb9bb19bf75f871b044072"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 1; y: 156
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6496
+ hash: "9d762cd4dd6508cf8b54c47b76f4ef37"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 5; y: 155
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6512
+ hash: "bdf17c384f4f824a89a06b88ba17c15f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 10; y: 154
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 25; y: 152
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6528
+ hash: "f279f28995785afd143726aef7673b50"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 52; y: 149
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6544
+ hash: "53b6b82a61d017e12afb01a728d8d856"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 80; y: 148
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6560
+ hash: "9a48039175cab1360a0cf5cc195e2082"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 98; y: 148
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 112; y: 150
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6576
+ hash: "cfc3991e30eef6c2edb66cb6060b2bde"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 123; y: 153
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6592
+ hash: "737d8907f62768e623ba76866a509d1e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 134; y: 155
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6608
+ hash: "dea2a596f7d85f29728b33d126d997e5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 145; y: 158
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 157; y: 161
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6624
+ hash: "3969a0bbb284ab1d5efd20cf93b0422d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 168; y: 164
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6640
+ hash: "071ff25e49f7f16a727ff58c42ff766e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 176; y: 169
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6656
+ hash: "454abec991a4675763f379c256919fa7"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 184; y: 173
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 189; y: 177
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6672
+ hash: "6de741c4e6057dc8580106155c4ac627"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 194; y: 184
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6688
+ hash: "e35853e99cd205b7ccabdf632b238584"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 199; y: 192
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6704
+ hash: "15a70a0196227c6bce50ed70cd6383c8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 204; y: 201
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 211; y: 210
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6720
+ image: "drag.6.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 217; y: 217
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6736
+ hash: "5e951eb6017a060287e398fcaf4aeba9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 224; y: 223
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6752
+ hash: "ddd0f27027e23a45aef131296c781865"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 235; y: 228
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 246; y: 232
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6768
+ hash: "715102a252756e5a8c4f459d808aec6a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 257; y: 235
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6784
+ hash: "42b9c1b894247ddbd85f4a4aca5695f1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 267; y: 239
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6800
+ hash: "b67b4bdd412ed5160901803c60c6f19e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 275; y: 239
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 280; y: 239
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6816
+ hash: "3490cc41c2b1f9301c209bdb8f052add"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 281; y: 239
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6832
+ hash: "df32868d564ebbc41c359409b5a69e7d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 282; y: 239
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6848
+ hash: "b9cb430a6f677e67c87322e0aff53fb1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 282; y: 239
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6864
+ hash: "b9cb430a6f677e67c87322e0aff53fb1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 281; y: 239
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6880
+ hash: "df32868d564ebbc41c359409b5a69e7d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 280; y: 239
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6896
+ hash: "3490cc41c2b1f9301c209bdb8f052add"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 279; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6912
+ hash: "e23a88f49a73cd2a9326095dd380ab55"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 277; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6928
+ hash: "ffffc1aed27fe77c2fe5c035eab706a9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 277; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6944
+ hash: "ffffc1aed27fe77c2fe5c035eab706a9"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 276; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6960
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 276; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 6976
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 6992
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 276; y: 240
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 7008
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7024
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7040
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7056
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7072
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7088
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7104
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7120
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7136
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7152
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7168
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7184
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7200
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7216
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7232
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7248
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7264
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7280
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7296
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7312
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7328
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7344
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7360
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7376
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7392
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7408
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7424
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7440
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7456
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7472
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7488
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7504
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7520
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7536
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7552
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7568
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7584
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7600
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7616
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7632
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7648
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7664
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7680
+ image: "drag.7.png"
+ }
+ Frame {
+ msec: 7696
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7712
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7728
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7744
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7760
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7776
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7792
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7808
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7824
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7840
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7856
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7872
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7888
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7904
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7920
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7936
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7952
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7968
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 7984
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+ Frame {
+ msec: 8000
+ hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.qml
index cc374fd..cc374fd 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mousearea-visual.qml
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.0.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.0.png
index c249c21..c249c21 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.1.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.1.png
index a96bf1b..a96bf1b 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.10.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.10.png
index 7420ca7..7420ca7 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.10.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.10.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.11.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.11.png
index 7420ca7..7420ca7 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.11.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.11.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.12.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.12.png
index 7420ca7..7420ca7 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.12.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.12.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.13.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.13.png
index 7420ca7..7420ca7 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.13.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.13.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.14.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.14.png
index 7420ca7..7420ca7 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.14.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.14.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.15.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.15.png
index e797cc9..e797cc9 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.15.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.15.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.16.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.16.png
index 7951309..7951309 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.16.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.16.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.17.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.17.png
index 7951309..7951309 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.17.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.17.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.18.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.18.png
index 7951309..7951309 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.18.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.18.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.19.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.19.png
index 7951309..7951309 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.19.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.19.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.2.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.2.png
index a96bf1b..a96bf1b 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.20.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.20.png
index 7951309..7951309 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.20.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.20.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.21.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.21.png
index 7951309..7951309 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.21.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.21.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.22.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.22.png
index 7951309..7951309 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.22.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.22.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.3.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.3.png
index a96bf1b..a96bf1b 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.4.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.4.png
index 1fe365a..1fe365a 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.5.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.5.png
index 1fe365a..1fe365a 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.6.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.6.png
index 1fe365a..1fe365a 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.7.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.7.png
index 1fe365a..1fe365a 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.8.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.8.png
index 7420ca7..7420ca7 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.9.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.9.png
index 7420ca7..7420ca7 100644
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/mouseregion.9.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/mouseregion.9.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/drag.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/drag.qml
new file mode 100644
index 0000000..21c46d8
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/drag.qml
@@ -0,0 +1,26 @@
+import Qt 4.6
+
+/*
+this test shows a blue box being dragged around -- first roughly tracing the
+borders of the window, then doing a rough 'x'-shape, then moving to around the middle.
+*/
+
+Rectangle{
+ width:400
+ height:440
+ color: "white"
+ Rectangle{
+ id: draggable
+ width:40; height:40; color: "lightsteelblue"
+ y:20
+ MouseArea{
+ anchors.fill: parent
+ drag.target: draggable
+ drag.axis: "XandYAxis"
+ drag.minimumX: 0
+ drag.maximumX: 360
+ drag.minimumY: 20
+ drag.maximumY: 400
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-visual.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-visual.qml
new file mode 100644
index 0000000..3019006
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/mousearea-visual.qml
@@ -0,0 +1,135 @@
+import Qt 4.6
+
+/*
+This test displays 6 red rects -- 4 in the top row, 2 in the bottom.
+
+Sequence:
+1. the bottom-left rect turns blue, then green
+2. the second rect in the top row turns blue
+3. the third rect in the top row turns blue
+4. the last rect in the top row quickly turns blue then back to red
+5. the bottom-left rect turns blue, then green
+*/
+
+Rectangle {
+ id: root
+ width: 400
+ height: 100
+
+ // Left click on me
+ Rectangle {
+ width: 98; height: 48
+ color: "red"
+ MouseArea {
+ id: mr1
+ anchors.fill: parent
+ enabled: false
+ onClicked: { parent.color = "blue"; root.error = "mr1 should ignore presses"; }
+ }
+ }
+
+ // Left click, then right click
+ Rectangle {
+ x: 100
+ width: 98; height: 48
+ color: "red"
+ MouseArea {
+ id: mr2
+ anchors.fill: parent
+ acceptedButtons: Qt.RightButton
+ onClicked: {
+ if (mouse.button == Qt.RightButton) {
+ parent.color = "blue";
+ } else {
+ parent.color = "green";
+ root.error = "mr1 should ignore presses";
+ }
+ }
+ }
+ }
+
+ // press and hold me
+ Rectangle {
+ x: 200
+ width: 98; height: 48
+ color: "red"
+ MouseArea {
+ id: mr3
+ anchors.fill: parent
+ onPressAndHold: {
+ parent.color = "blue";
+ }
+ }
+ }
+
+ // click me
+ Rectangle {
+ x: 300
+ width: 98; height: 48
+ color: "red"
+ MouseArea {
+ id: mr4
+ anchors.fill: parent
+ onPressed: {
+ parent.color = "blue";
+ }
+ onReleased: {
+ parent.color = "red";
+ }
+ }
+ }
+
+ // move into and out of me
+ Rectangle {
+ x: 0
+ y: 50
+ width: 98; height: 48
+ color: "red"
+ MouseArea {
+ id: mr5
+ anchors.fill: parent
+ hoverEnabled: true
+ onEntered: {
+ parent.color = "blue";
+ }
+ onExited: {
+ parent.color = "green";
+ }
+ }
+ }
+
+ // click, then double click me
+ Rectangle {
+ x: 100
+ y: 50
+ width: 98; height: 48
+ color: "red"
+ MouseArea {
+ id: mr6
+ anchors.fill: parent
+ onClicked: {
+ parent.color = "blue";
+ }
+ onDoubleClicked: {
+ parent.color = "green";
+ }
+ }
+ }
+
+ // click, then double click me - nothing should happen
+ Rectangle {
+ x: 100
+ y: 50
+ width: 98; height: 48
+ color: "red"
+ MouseArea {
+ id: mr7
+ anchors.fill: parent
+ enabled: false
+ onClicked: { parent.color = "blue" }
+ onPressed: { parent.color = "yellow" }
+ onReleased: { parent.color = "cyan" }
+ onDoubleClicked: { parent.color = "green" }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativeparticles/data/particles.0.png b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.0.png
index 7321d95..7321d95 100644
--- a/tests/auto/declarative/visual/qdeclarativeparticles/data/particles.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeparticles/data/particles.1.png b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.1.png
index 49d2a5a..49d2a5a 100644
--- a/tests/auto/declarative/visual/qdeclarativeparticles/data/particles.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeparticles/data/particles.2.png b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.2.png
index 6fe14b7..6fe14b7 100644
--- a/tests/auto/declarative/visual/qdeclarativeparticles/data/particles.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeparticles/data/particles.qml b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml
index d766dc6..d766dc6 100644
--- a/tests/auto/declarative/visual/qdeclarativeparticles/data/particles.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/data/particles.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml
new file mode 100644
index 0000000..fc8261f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/particles.qml
@@ -0,0 +1,55 @@
+import Qt 4.6
+import Qt.labs.particles 1.0
+
+Rectangle {
+ width: 640; height: 480; color: "black"
+
+ Particles { id:particlesAnotEmitting
+ y:60; width: 260; height:30; source: "star.png";
+ lifeSpan:1000; count: 50; angle:70; angleDeviation:36;
+ velocity:30; velocityDeviation:10; emissionRate: 0
+ ParticleMotionWander { yvariance:5; xvariance:30; pace:100 }
+ }
+ Particles { id:particlesA
+ y:0; width: 260; height:30; source: "star.png";
+ lifeSpan:1000; count: 50; angle:70; angleDeviation:36;
+ velocity:30; velocityDeviation:10; emissionRate: 10
+ ParticleMotionWander { yvariance:5; xvariance:30; pace:100 }
+ }
+
+ Particles { id:particlesB
+ y:280; x:180; width:1; height:1; lifeSpan:1000; source: "star.png"
+ count: 100; angle:270; angleDeviation:45; velocity:50; velocityDeviation:30;
+ emissionRate: 0
+ ParticleMotionGravity { yattractor: 1000; xattractor:0; acceleration:25 }
+ }
+
+ Timer { running: true; interval: 1000; repeat: true; onTriggered: particlesB.burst(200, 2000); }
+
+ Column{
+ x: 340;
+ Repeater{
+ model: 5
+ delegate: Component{
+ Item{
+ width: 100; height: 100
+ Rectangle{
+ color: "blue"
+ width: 2; height: 2;
+ x: 49; y:49;
+ }
+ Particles{
+ x: 50; y:50; width: 0; height: 0;
+ fadeInDuration: 0; fadeOutDuration: 0
+ lifeSpan: 1000; lifeSpanDeviation:0;
+ source: "star.png"
+ count: -1; emissionRate: 120;
+ emissionVariance: index/2;
+ velocity: 250; velocityDeviation: 0;
+ angle: 0; angleDeviation: 0;
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativeparticles/star.png b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/star.png
index defbde5..defbde5 100644
--- a/tests/auto/declarative/visual/qdeclarativeparticles/star.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativeparticles/star.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png
index 18c8a9e..18c8a9e 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png
index e86acb4..e86acb4 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png
index 17990b7..17990b7 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png
index 18c8a9e..18c8a9e 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png
index 18c8a9e..18c8a9e 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png
index 8636f8f..8636f8f 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.6.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.6.png
index fa7c4b6..fa7c4b6 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml
index b8ff925..b8ff925 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview-2.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview-2.qml
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png
index 442ba9f..442ba9f 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png
index a9ff20f..a9ff20f 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png
index 157bb99..157bb99 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png
index 8c49acb..8c49acb 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png
index eb2bf54..eb2bf54 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml
index 8cff5c6..8cff5c6 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/data/test-pathview.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.qml
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/test-pathview-2.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml
index c6d71d5..c6d71d5 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/test-pathview-2.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview-2.qml
diff --git a/tests/auto/declarative/visual/qdeclarativepathview/test-pathview.qml b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml
index 0adfa02..0adfa02 100644
--- a/tests/auto/declarative/visual/qdeclarativepathview/test-pathview.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepathview/test-pathview.qml
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png
index f474afe..f474afe 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.1.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png
index 8b7ae74..8b7ae74 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.2.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png
index 9088bb4..9088bb4 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.3.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png
index 18cd429..18cd429 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.4.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png
index 739afc1..739afc1 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.5.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png
index 93f0682..93f0682 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml
index 7091bb3..7091bb3 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/data/dynamic.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/dynamic.qml
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/data/repeater.0.png b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/repeater.0.png
index f7018fd..f7018fd 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/data/repeater.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/repeater.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/data/repeater.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml
index 1eb115d..1eb115d 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/data/repeater.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.qml
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/dynamic.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml
index f45e9a4..f45e9a4 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/dynamic.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/dynamic.qml
diff --git a/tests/auto/declarative/visual/qdeclarativepositioners/repeater.qml b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/usingRepeater.qml
index ff60365..ff60365 100644
--- a/tests/auto/declarative/visual/qdeclarativepositioners/repeater.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativepositioners/usingRepeater.qml
diff --git a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.0.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.0.png
index 21b6afb..21b6afb 100644
--- a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.1.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.1.png
index bb8a02b..bb8a02b 100644
--- a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.2.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.2.png
index da60237..da60237 100644
--- a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.3.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.3.png
index 3e943e8..3e943e8 100644
--- a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.4.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.4.png
index 4fbaf26..4fbaf26 100644
--- a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.5.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.5.png
index c10d196..c10d196 100644
--- a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.6.png b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.6.png
index a672c06..a672c06 100644
--- a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.qml
index 029a2fc..029a2fc 100644
--- a/tests/auto/declarative/visual/qdeclarativeeasefollow/data/easefollow.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/data/easefollow.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedanimation.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedanimation.qml
new file mode 100644
index 0000000..ee94857
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedanimation.qml
@@ -0,0 +1,45 @@
+import Qt 4.6
+
+Rectangle {
+ width: 800; height: 240; color: "gray"
+
+ Rectangle {
+ id: rect
+ width: 50; height: 20; y: 30; color: "black"
+ SequentialAnimation on x {
+ loops: Animation.Infinite
+ NumberAnimation { from: 50; to: 700; duration: 2000 }
+ NumberAnimation { from: 700; to: 50; duration: 2000 }
+ }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 60; color: "red"
+ x: rect.x
+ Behavior on x { SmoothedAnimation { velocity: 400 } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 90; color: "yellow"
+ x: rect.x
+ Behavior on x { SmoothedAnimation { velocity: 300; reversingMode: SmoothedAnimation.Immediate } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 120; color: "green"
+ x: rect.x
+ Behavior on x { SmoothedAnimation { reversingMode: SmoothedAnimation.Sync } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 150; color: "purple"
+ x: rect.x
+ Behavior on x { SmoothedAnimation { maximumEasingTime: 200 } }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 180; color: "blue"
+ x: rect.x
+ Behavior on x { SmoothedAnimation { duration: 300 } }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml
new file mode 100644
index 0000000..5dee0c6
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml
@@ -0,0 +1,40 @@
+import Qt 4.6
+
+Rectangle {
+ width: 800; height: 240; color: "gray"
+
+ Rectangle {
+ id: rect
+ width: 50; height: 20; y: 30; color: "black"
+ SequentialAnimation on x {
+ loops: Animation.Infinite
+ NumberAnimation { from: 50; to: 700; duration: 2000 }
+ NumberAnimation { from: 700; to: 50; duration: 2000 }
+ }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 60; color: "red"
+ SmoothedFollow on x { to: rect.x; velocity: 400; enabled: true }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 90; color: "yellow"
+ SmoothedFollow on x { to: rect.x; velocity: 300; reversingMode: SmoothedAnimation.Immediate; enabled: true }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 120; color: "green"
+ SmoothedFollow on x { to: rect.x; reversingMode: SmoothedAnimation.Sync; enabled: true }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 150; color: "purple"
+ SmoothedFollow on x { to: rect.x; maximumEasingTime: 200; enabled: true }
+ }
+
+ Rectangle {
+ width: 50; height: 20; y: 180; color: "blue"
+ SmoothedFollow on x { to: rect.x; duration: 300; enabled: true }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml
new file mode 100644
index 0000000..0ddcca4
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml
@@ -0,0 +1,64 @@
+import Qt 4.6
+
+Rectangle {
+ id: clock
+ color: "gray"
+ width: 200; height: 200
+
+ property variant hours: 10
+ property variant minutes: 28
+ property variant seconds: 0
+
+ Timer {
+ interval: 1000; running: true; repeat: true; triggeredOnStart: true
+ onTriggered: seconds++
+ }
+
+ Image { id: background; source: "content/clock.png" }
+
+ Image {
+ x: 92.5; y: 27
+ source: "content/hour.png"
+ smooth: true
+ transform: Rotation {
+ id: hourRotation
+ origin.x: 7.5; origin.y: 73; angle: 0
+ SpringFollow on angle {
+ spring: 2; damping: 0.2; modulus: 360
+ to: (clock.hours * 30) + (clock.minutes * 0.5)
+ }
+ }
+ }
+
+ Image {
+ x: 93.5; y: 17
+ source: "content/minute.png"
+ smooth: true
+ transform: Rotation {
+ id: minuteRotation
+ origin.x: 6.5; origin.y: 83; angle: 0
+ SpringFollow on angle {
+ spring: 2; damping: 0.2; modulus: 360
+ to: clock.minutes * 6
+ }
+ }
+ }
+
+ Image {
+ x: 97.5; y: 20
+ source: "content/second.png"
+ smooth: true
+ transform: Rotation {
+ id: secondRotation
+ origin.x: 2.5; origin.y: 80; angle: 0
+ SpringFollow on angle {
+ spring: 5; damping: 0.25; modulus: 360
+ to: clock.seconds * 6
+ }
+ }
+ }
+
+ Image {
+ anchors.centerIn: background; source: "content/center.png"
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/content/background.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/background.png
index a885950..a885950 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/content/background.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/background.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/content/center.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/center.png
index 7fbd802..7fbd802 100755
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/content/center.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/center.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/content/clock.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/clock.png
index 462edac..462edac 100755
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/content/clock.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/clock.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/content/hour.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/hour.png
index f8061a1..f8061a1 100755
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/content/hour.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/hour.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/content/minute.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/minute.png
index 1297ec7..1297ec7 100755
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/content/minute.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/minute.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/content/second.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/second.png
index 4aa9fb5..4aa9fb5 100755
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/content/second.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/content/second.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.0.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.0.png
index baf1d45..baf1d45 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.1.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.1.png
index 932f63f..932f63f 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.2.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.2.png
index a5cb437..a5cb437 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.3.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.3.png
index 62e895c..62e895c 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.qml
index ffc6a5e..ffc6a5e 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/clock.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/clock.qml
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.0.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.0.png
index 3f42e75..3f42e75 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.1.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.1.png
index d661df6..d661df6 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.10.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.10.png
index e8c96e1..e8c96e1 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.10.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.10.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.2.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.2.png
index 35bfa43..35bfa43 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.3.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.3.png
index 74141cf..74141cf 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.4.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.4.png
index 9544054..9544054 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.5.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.5.png
index 4b02c79..4b02c79 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.6.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.6.png
index 8ea8345..8ea8345 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.7.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.7.png
index 76a73e8..76a73e8 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.8.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.8.png
index 8824940..8824940 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.9.png b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.9.png
index f954cc5..f954cc5 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.9.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.9.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.qml
index fec5428..fec5428 100644
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/data/follow.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/data/follow.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml
new file mode 100644
index 0000000..5368349
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml
@@ -0,0 +1,71 @@
+import Qt 4.6
+
+Rectangle {
+ color: "#ffffff"
+ width: 320; height: 240
+ Rectangle {
+ id: rect
+ color: "#00ff00"
+ y: 200; width: 60; height: 20
+ SequentialAnimation on y {
+ loops: Animation.Infinite
+ NumberAnimation {
+ to: 20; duration: 500
+ easing.type: "InOutQuad"
+ }
+ NumberAnimation {
+ to: 200; duration: 2000
+ easing.type: "OutBounce"
+ }
+ PauseAnimation { duration: 1000 }
+ }
+ }
+
+ // Velocity
+ Rectangle {
+ color: "#ff0000"
+ x: rect.width; width: rect.width; height: 20
+ y: 200
+ SpringFollow on y { to: rect.y; velocity: 200 }
+ }
+
+ // Spring
+ Rectangle {
+ color: "#ff0000"
+ x: rect.width * 2; width: rect.width/2; height: 20
+ y: 200
+ SpringFollow on y { to: rect.y; spring: 1.0; damping: 0.2 }
+ }
+ Rectangle {
+ color: "#880000"
+ x: rect.width * 2.5; width: rect.width/2; height: 20
+ y: 200
+ SpringFollow on y { to: rect.y; spring: 1.0; damping: 0.2; mass: 3.0 } // "heavier" object
+ }
+
+ // Follow mouse
+ MouseArea {
+ id: mouseRegion
+ anchors.fill: parent
+ Rectangle {
+ id: ball
+ width: 20; height: 20
+ radius: 10
+ color: "#0000ff"
+ SpringFollow on x { id: f1; to: mouseRegion.mouseX-10; spring: 1.0; damping: 0.05; epsilon: 0.25 }
+ SpringFollow on y { id: f2; to: mouseRegion.mouseY-10; spring: 1.0; damping: 0.05; epsilon: 0.25 }
+ states: [
+ State {
+ name: "following"
+ when: !f1.inSync || !f2.inSync
+ PropertyChanges { target: ball; color: "#ff0000" }
+ }
+ ]
+ transitions: [
+ Transition {
+ ColorAnimation { duration: 200 }
+ }
+ ]
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativetext/baseline/data/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml
index 56d616e..56d616e 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/baseline/data/parentanchor.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/baseline/data-X11/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data/parentanchor.qml
index 56d616e..56d616e 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/baseline/data-X11/parentanchor.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data/parentanchor.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/baseline/parentanchor.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml
index 80f0f03..80f0f03 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/baseline/parentanchor.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/parentanchor.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png
index eea3362..eea3362 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml
index 1ccede4..1ccede4 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png
index 3dfade5..3dfade5 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png
index 1ee2076..1ee2076 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png
index ae680be..ae680be 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png
index c2859be..c2859be 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml
index 07ad236..07ad236 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/elide2.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/multilength.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png
index 80549b4..80549b4 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/multilength.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml
index c2fd0d8..c2fd0d8 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/multilength.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-MAC/multilength.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-X11/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.0.png
index 5631a46..5631a46 100644
--- a/tests/auto/declarative/visual/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/visual/qdeclarativetext/elide/data-X11/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml
index cfd832e..cfd832e 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-X11/elide.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-X11/multilength.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.0.png
index 6e2b625..6e2b625 100644
--- a/tests/auto/declarative/visual/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/visual/qdeclarativetext/elide/data-X11/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml
index 0c06196..0c06196 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-X11/multilength.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide.0.png
index 1a8c89b..1a8c89b 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide.qml
index 59f17f7..59f17f7 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.0.png
index 3dfade5..3dfade5 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.1.png
index 1ee2076..1ee2076 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.2.png
index ae680be..ae680be 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.3.png
index c2859be..c2859be 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data-MAC/elide2.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.qml
index c592f18..c592f18 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/data/elide2.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data/elide2.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/elide.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml
index fa6b5da..fa6b5da 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/elide.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml
new file mode 100644
index 0000000..ecd9470
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/elide2.qml
@@ -0,0 +1,12 @@
+import Qt 4.6
+
+Rectangle {
+ width: 500
+ height: 100
+
+ Text {
+ width: NumberAnimation { from: 500; to: 0; loops: Animation.Infinite; duration: 5000 }
+ elide: Text.ElideRight
+ text: 'Here is some very long text that we should truncate when sizing window'
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml
new file mode 100644
index 0000000..ab6e1533
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/elide/multilength.qml
@@ -0,0 +1,19 @@
+import Qt 4.6
+
+Rectangle {
+ width: 500
+ height: 50
+ color: "lightBlue"
+ Rectangle {
+ width: myText.width
+ height: myText.height
+ color: "white"
+ anchors.centerIn: parent
+ Text {
+ id: myText
+ width: NumberAnimation { from: 500; to: 0; loops: Animation.Infinite; duration: 1000 }
+ elide: "ElideRight"
+ text: "Brevity is the soul of wit, and tediousness the limbs and outward flourishes.\x9CBrevity is a great charm of eloquence.\x9CBe concise!\x9CSHHHHHHHHHHHHHHHHHHHHHHHHHHHH"
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png
index 67b497f..67b497f 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/plaintext.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/plaintext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.qml
index ab17eb1..ab17eb1 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/plaintext.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png
index 6379942..6379942 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/richtext.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/richtext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.qml
index 72499b9..72499b9 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/font/data-MAC/richtext.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/richtext.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/font/data/plaintext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext.0.png
index 50d56dc..50d56dc 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/font/data/plaintext.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/font/data/plaintext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext.qml
index f4cbcbd..f4cbcbd 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/font/data/plaintext.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/plaintext.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetext/font/data/richtext.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext.0.png
index 2910670..2910670 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/font/data/richtext.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetext/font/data/richtext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext.qml
index 9f396c2..9f396c2 100644
--- a/tests/auto/declarative/visual/qdeclarativetext/font/data/richtext.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/data/richtext.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml
new file mode 100644
index 0000000..90b5411
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml
@@ -0,0 +1,91 @@
+import Qt 4.6
+
+Rectangle {
+ id: s; width: 800; height: 1000; color: "lightsteelblue"
+ property string text: "The quick brown fox jumps over the lazy dog."
+
+ Column {
+ spacing: 10
+ Text {
+ text: s.text
+ }
+ Text {
+ text: s.text; font.pixelSize: 18
+ }
+ Text {
+ text: s.text; font.pointSize: 25
+ }
+ Text {
+ text: s.text; color: "red"; smooth: true
+ }
+ Text {
+ text: s.text; font.capitalization: "AllUppercase"
+ }
+ Text {
+ text: s.text; font.underline: true
+ }
+ Text {
+ text: s.text; font.overline: true; smooth: true
+ }
+ Text {
+ text: s.text; font.strikeout: true
+ }
+ Text {
+ text: s.text; font.underline: true; font.overline: true; font.strikeout: true
+ }
+ Text {
+ text: s.text; font.letterSpacing: 200
+ }
+ Text {
+ text: s.text; font.underline: true; font.letterSpacing: 200; font.capitalization: "AllUppercase"; color: "blue"
+ }
+ Text {
+ text: s.text; font.overline: true; font.wordSpacing: 25; font.capitalization: "Capitalize"; color: "green"
+ }
+ Text {
+ text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"
+ }
+ Text {
+ text: s.text; font.pixelSize: 18; style: Text.Sunken; styleColor: "gray"
+ }
+ Text {
+ text: s.text; font.pixelSize: 18; style: Text.Raised; styleColor: "yellow"
+ }
+ Text {
+ text: s.text; horizontalAlignment: Text.AlignLeft; width: 800
+ }
+ Text {
+ text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: 800; height: 20
+ }
+ Text {
+ text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: 800; height: 20
+ }
+ Text {
+ text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"; wrapMode: Text.WordWrap; width: 200
+ }
+ Text {
+ text: s.text; elide: Text.ElideLeft; width: 200
+ }
+ Text {
+ text: s.text; elide: Text.ElideMiddle; width: 200
+ }
+ Text {
+ text: s.text; elide: Text.ElideRight; width: 200
+ }
+ Text {
+ text: s.text; elide: Text.ElideLeft; width: 200; wrapMode: Text.WordWrap
+ }
+ Text {
+ text: s.text; elide: Text.ElideMiddle; width: 200; wrapMode: Text.WordWrap
+ }
+ Text {
+ text: s.text; elide: Text.ElideRight; width: 200; wrapMode: Text.WordWrap
+ }
+ Text {
+ text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.WrapAnywhere
+ }
+ Text {
+ text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.WrapAtWordBoundaryOrAnywhere
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml
new file mode 100644
index 0000000..0dba47c
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml
@@ -0,0 +1,91 @@
+import Qt 4.6
+
+Rectangle {
+ id: s; width: 800; height: 1000; color: "lightsteelblue"
+ property string text: "<b>The</b> <i>quick</i> <u>brown</u> <o>fox</o> <big>jumps</big> <small>over</small> <tt>the</tt> <s>lazy</s> <em>dog</em>."
+
+ Column {
+ spacing: 10
+ Text {
+ text: s.text
+ }
+ Text {
+ text: s.text; font.pixelSize: 18
+ }
+ Text {
+ text: s.text; font.pointSize: 25
+ }
+ Text {
+ text: s.text; color: "red"; smooth: true
+ }
+ Text {
+ text: s.text; font.capitalization: "AllUppercase"
+ }
+ Text {
+ text: s.text; font.underline: true
+ }
+ Text {
+ text: s.text; font.overline: true; smooth: true
+ }
+ Text {
+ text: s.text; font.strikeout: true
+ }
+ Text {
+ text: s.text; font.underline: true; font.overline: true; font.strikeout: true
+ }
+ Text {
+ text: s.text; font.letterSpacing: 200
+ }
+ Text {
+ text: s.text; font.underline: true; font.letterSpacing: 200; font.capitalization: "AllUppercase"; color: "blue"
+ }
+ Text {
+ text: s.text; font.overline: true; font.wordSpacing: 25; font.capitalization: "Capitalize"; color: "green"
+ }
+ Text {
+ text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"
+ }
+ Text {
+ text: s.text; font.pixelSize: 18; style: Text.Sunken; styleColor: "gray"
+ }
+ Text {
+ text: s.text; font.pixelSize: 18; style: Text.Raised; styleColor: "yellow"
+ }
+ Text {
+ text: s.text; horizontalAlignment: Text.AlignLeft; width: 800
+ }
+ Text {
+ text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: 800; height: 20
+ }
+ Text {
+ text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: 800; height: 20
+ }
+ Text {
+ text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"; wrapMode: Text.WordWrap; width: 200
+ }
+ Text {
+ text: s.text; elide: Text.ElideLeft; width: 200
+ }
+ Text {
+ text: s.text; elide: Text.ElideMiddle; width: 200
+ }
+ Text {
+ text: s.text; elide: Text.ElideRight; width: 200
+ }
+ Text {
+ text: s.text; elide: Text.ElideLeft; width: 200; wrapMode: Text.WordWrap
+ }
+ Text {
+ text: s.text; elide: Text.ElideMiddle; width: 200; wrapMode: Text.WordWrap
+ }
+ Text {
+ text: s.text; elide: Text.ElideRight; width: 200; wrapMode: Text.WordWrap
+ }
+ Text {
+ text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.WrapAnywhere
+ }
+ Text {
+ text: s.text + " thisisaverylongstringwithnospaces"; width: 150; wrapMode: Text.WrapAtWordBoundaryOrAnywhere
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml
new file mode 100644
index 0000000..5516fc9
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/cursorDelegate.qml
@@ -0,0 +1,35 @@
+import Qt 4.6
+ Rectangle {
+ resources: [
+ Component { id: cursorA
+ Item { id: cPage;
+ x: Behavior { NumberAnimation { } }
+ y: Behavior { NumberAnimation { } }
+ height: Behavior { NumberAnimation { duration: 200 } }
+ Rectangle { id: cRectangle; color: "black"; y: 1; width: 1; height: parent.height-2;
+ Rectangle { id:top; color: "black"; width: 3; height: 1; x: -1; y:0}
+ Rectangle { id:bottom; color: "black"; width: 3; height: 1; x: -1; anchors.bottom: parent.bottom;}
+ opacity: 1
+ opacity: SequentialAnimation { running: cPage.parent.focus == true; loops: Animation.Infinite;
+ NumberAnimation { properties: "opacity"; to: 1; duration: 500; easing.type: "InQuad"}
+ NumberAnimation { properties: "opacity"; to: 0; duration: 500; easing.type: "OutQuad"}
+ }
+ }
+ width: 1;
+ }
+ }
+ ]
+ width: 400
+ height: 200
+ color: "white"
+ TextEdit { id: mainText
+ text: "Hello World"
+ cursorDelegate: cursorA
+ focus: true
+ font.pixelSize: 28
+ selectionColor: "lightsteelblue"
+ selectedTextColor: "deeppink"
+ color: "forestgreen"
+ anchors.centerIn: parent
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png
index 464a578..464a578 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png
index 9beb1ca..9beb1ca 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png
index 001be30..001be30 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png
index fc3e4b3..fc3e4b3 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png
index 24f43e6..24f43e6 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png
index 001223b..001223b 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.6.png
index 7126e07..7126e07 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.7.png
index f0bea88..f0bea88 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.8.png
index 4381b8d..4381b8d 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml
index 8ee92d7..8ee92d7 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/cursorDelegate.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/cursorDelegate.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png
index cc1774f..cc1774f 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png
index 60eba16..60eba16 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png
index d4663f7..d4663f7 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png
index dc1bb52..dc1bb52 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml
index 84c16e1..84c16e1 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-MAC/qt-669.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/qt-669.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml
index 4ff00f4..4ff00f4 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.0.png
index 555996a..555996a 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.1.png
index b705bad..b705bad 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.2.png
index 094cd2a..094cd2a 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.3.png
index 9c519c7..9c519c7 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.4.png
index 3ec77b5..3ec77b5 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.5.png
index 579a66e..579a66e 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.6.png
index 9e5ac90..9e5ac90 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.7.png
index 9f3acfc..9f3acfc 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.8.png
index f27518a..f27518a 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.qml
index 8578d48..8578d48 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/cursorDelegate.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/cursorDelegate.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.0.png
index 95a835a..95a835a 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.1.png
index 409192c..409192c 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.2.png
index cd2f112..cd2f112 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.3.png
index 7191c1e..7191c1e 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.qml
index 352c890..352c890 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/qt-669.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/qt-669.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.0.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.1.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.2.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.3.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.4.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.5.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.6.png
index ec65f49..ec65f49 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data-X11/wrap.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.qml
index f96daa9..f96daa9 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/data/wrap.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/data/wrap.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/qt-669.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml
index b01ddf8..b01ddf8 100644
--- a/tests/auto/declarative/visual/qdeclarativetextedit/qt-669.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/qt-669.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml
new file mode 100644
index 0000000..b2a0754
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml
@@ -0,0 +1,34 @@
+import Qt 4.6
+
+Item {
+ height:400
+ width: 200
+ TextEdit {
+ width: 200
+ height: 100
+ wrapMode: TextEdit.WordWrap
+ focus: true
+ }
+ //With QTBUG-6273 only the bottom one would be wrapped
+ TextEdit {
+ width: 200
+ height: 100
+ wrapMode: TextEdit.WordWrap
+ text: "This is a test that text edit wraps correctly."
+ y:100
+ }
+ TextEdit {
+ width: 150
+ height: 100
+ wrapMode: TextEdit.WrapAnywhere
+ text: "This is a test that text edit wraps correctly. thisisaverylongstringwithnospaces"
+ y:200
+ }
+ TextEdit {
+ width: 150
+ height: 100
+ wrapMode: TextEdit.WrapAtWordBoundaryOrAnywhere
+ text: "This is a test that text edit wraps correctly. thisisaverylongstringwithnospaces"
+ y:300
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml
new file mode 100644
index 0000000..31f24ec
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml
@@ -0,0 +1,67 @@
+import Qt 4.7
+
+Item {
+ id:lineedit
+ property alias text: textInp.text
+
+ width: textInp.width + 11
+ height: 13 + 11
+
+ Rectangle{
+ color: 'lightsteelblue'
+ anchors.fill: parent
+ }
+ clip: true
+ Component.onCompleted: textInp.cursorPosition = 0;
+ TextInput{
+ id:textInp
+ cursorDelegate: Item{
+ Rectangle{
+ visible: parent.parent.focus
+ color: "#009BCE"
+ height: 13
+ width: 2
+ y: 1
+ }
+ }
+ property int leftMargin: 6
+ property int rightMargin: 6
+ x: leftMargin
+ y: 5
+ //Below function implements all scrolling logic
+ onCursorPositionChanged: {
+ if(cursorRect.x < leftMargin - textInp.x){//Cursor went off the front
+ textInp.x = leftMargin - Math.max(0, cursorRect.x);
+ }else if(cursorRect.x > parent.width - leftMargin - rightMargin - textInp.x){//Cusor went off the end
+ textInp.x = leftMargin - Math.max(0, cursorRect.x - (parent.width - leftMargin - rightMargin));
+ }
+ }
+
+ text:""
+ horizontalAlignment: TextInput.AlignLeft
+ font.pixelSize:15
+ }
+ MouseArea{
+ //Implements all line edit mouse handling
+ id: mainMouseArea
+ anchors.fill: parent;
+ function translateX(x){
+ return x - textInp.x
+ }
+ onPressed: {
+ textInp.focus = true;
+ textInp.cursorPosition = textInp.xToPosition(translateX(mouse.x));
+ }
+ onPositionChanged: {
+ textInp.moveCursorSelection(textInp.xToPosition(translateX(mouse.x)));
+ }
+ onReleased: {
+ }
+ onDoubleClicked: {
+ textInp.selectionStart=0;
+ textInp.selectionEnd=textInp.text.length;
+ }
+ z: textInp.z + 1
+ }
+
+}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml
new file mode 100644
index 0000000..09f16ab
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/cursorDelegate.qml
@@ -0,0 +1,35 @@
+import Qt 4.6
+ Rectangle {
+ resources: [
+ Component { id: cursorA
+ Item { id: cPage;
+ Behavior on x { NumberAnimation { } }
+ Behavior on y { NumberAnimation { } }
+ Behavior on height { NumberAnimation { duration: 200 } }
+ Rectangle { id: cRectangle; color: "black"; y: 1; width: 1; height: parent.height-2;
+ Rectangle { id:top; color: "black"; width: 3; height: 1; x: -1; y:0}
+ Rectangle { id:bottom; color: "black"; width: 3; height: 1; x: -1; anchors.bottom: parent.bottom;}
+ opacity: 1
+ SequentialAnimation on opacity { running: cPage.parent.focus == true; loops: Animation.Infinite;
+ NumberAnimation { properties: "opacity"; to: 1; duration: 500; easing.type: "InQuad"}
+ NumberAnimation { properties: "opacity"; to: 0; duration: 500; easing.type: "OutQuad"}
+ }
+ }
+ width: 1;
+ }
+ }
+ ]
+ width: 400
+ height: 200
+ color: "white"
+ TextInput { id: mainText
+ text: "Hello World"
+ cursorDelegate: cursorA
+ focus: true
+ font.pixelSize: 28
+ selectionColor: "lightsteelblue"
+ selectedTextColor: "deeppink"
+ color: "forestgreen"
+ anchors.centerIn: parent
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png
index 9d0bab2..9d0bab2 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png
index db66ff7..db66ff7 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png
index cbcca68..cbcca68 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png
index c22196b..c22196b 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png
index a1d051e..a1d051e 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png
index 9289dc0..9289dc0 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.6.png
index 7331f89..7331f89 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.7.png
index 968bdd2..968bdd2 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.8.png
index 9a3436a..9a3436a 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml
index 3b664b6..3b664b6 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-MAC/cursorDelegate.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/cursorDelegate.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png
new file mode 100644
index 0000000..f30ee4f
--- /dev/null
+++ 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
new file mode 100644
index 0000000..7ae3b94
--- /dev/null
+++ 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
new file mode 100644
index 0000000..636afe8
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png
index aa24805..aa24805 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.4.png
index aa24805..aa24805 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.4.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
new file mode 100644
index 0000000..b779c21
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml
@@ -0,0 +1,1043 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 32
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Key {
+ type: 6
+ key: 16777248
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 48
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 64
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 80
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 96
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 112
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 128
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 144
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 160
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 176
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 192
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 208
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 224
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 240
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 256
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 272
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 288
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 304
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 320
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 336
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Frame {
+ msec: 352
+ hash: "48400809c3862dae64b0cd00d51057a4"
+ }
+ Key {
+ type: 6
+ key: 74
+ modifiers: 33554432
+ text: "4a"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 368
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Frame {
+ msec: 384
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Frame {
+ msec: 400
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Frame {
+ msec: 416
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Frame {
+ msec: 432
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Key {
+ type: 7
+ key: 74
+ modifiers: 33554432
+ text: "4a"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 448
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Frame {
+ msec: 464
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Frame {
+ msec: 480
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Frame {
+ msec: 496
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Frame {
+ msec: 512
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Frame {
+ msec: 528
+ hash: "4acf112eda369b7eb351e0e522cefa05"
+ }
+ Key {
+ type: 7
+ key: 16777248
+ modifiers: 33554432
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 544
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
+ }
+ Frame {
+ msec: 560
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
+ }
+ Frame {
+ msec: 576
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
+ }
+ Frame {
+ msec: 592
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
+ }
+ Frame {
+ msec: 608
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
+ }
+ Frame {
+ msec: 624
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
+ }
+ Frame {
+ msec: 640
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
+ }
+ Frame {
+ msec: 656
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
+ }
+ Frame {
+ msec: 672
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
+ }
+ Frame {
+ msec: 688
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
+ }
+ Key {
+ type: 6
+ key: 65
+ modifiers: 0
+ text: "61"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 704
+ hash: "2da540e72d88932b61a261d791fc34b0"
+ }
+ Frame {
+ msec: 720
+ hash: "2da540e72d88932b61a261d791fc34b0"
+ }
+ Frame {
+ msec: 736
+ hash: "2da540e72d88932b61a261d791fc34b0"
+ }
+ Frame {
+ msec: 752
+ hash: "2da540e72d88932b61a261d791fc34b0"
+ }
+ Frame {
+ msec: 768
+ hash: "2da540e72d88932b61a261d791fc34b0"
+ }
+ Key {
+ type: 7
+ key: 65
+ modifiers: 0
+ text: "61"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 784
+ hash: "2da540e72d88932b61a261d791fc34b0"
+ }
+ Frame {
+ msec: 800
+ hash: "2da540e72d88932b61a261d791fc34b0"
+ }
+ Frame {
+ msec: 816
+ hash: "2da540e72d88932b61a261d791fc34b0"
+ }
+ Frame {
+ msec: 832
+ hash: "2da540e72d88932b61a261d791fc34b0"
+ }
+ Frame {
+ msec: 848
+ hash: "2da540e72d88932b61a261d791fc34b0"
+ }
+ Key {
+ type: 6
+ key: 67
+ modifiers: 0
+ text: "63"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 864
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
+ }
+ Frame {
+ msec: 880
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
+ }
+ Frame {
+ msec: 896
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
+ }
+ Key {
+ type: 7
+ key: 67
+ modifiers: 0
+ text: "63"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 912
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
+ }
+ Frame {
+ msec: 928
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
+ }
+ Frame {
+ msec: 944
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
+ }
+ Frame {
+ msec: 960
+ image: "echoMode.0.png"
+ }
+ Frame {
+ msec: 976
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
+ }
+ Key {
+ type: 6
+ key: 75
+ modifiers: 0
+ text: "6b"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 992
+ hash: "0a60e76e96846f9f4e909f7a01ede377"
+ }
+ Frame {
+ msec: 1008
+ hash: "0a60e76e96846f9f4e909f7a01ede377"
+ }
+ Frame {
+ msec: 1024
+ hash: "0a60e76e96846f9f4e909f7a01ede377"
+ }
+ Frame {
+ msec: 1040
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Key {
+ type: 7
+ key: 75
+ modifiers: 0
+ text: "6b"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1056
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1072
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1088
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1104
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1120
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1136
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1152
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1168
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1184
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1200
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1216
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Frame {
+ msec: 1232
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
+ }
+ Key {
+ type: 6
+ key: 68
+ modifiers: 0
+ text: "64"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1248
+ hash: "16a353e711a8fb654b5fe3097ba29296"
+ }
+ Frame {
+ msec: 1264
+ hash: "16a353e711a8fb654b5fe3097ba29296"
+ }
+ Frame {
+ msec: 1280
+ hash: "16a353e711a8fb654b5fe3097ba29296"
+ }
+ Key {
+ type: 7
+ key: 68
+ modifiers: 0
+ text: "64"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1296
+ hash: "16a353e711a8fb654b5fe3097ba29296"
+ }
+ Frame {
+ msec: 1312
+ hash: "16a353e711a8fb654b5fe3097ba29296"
+ }
+ Frame {
+ msec: 1328
+ hash: "16a353e711a8fb654b5fe3097ba29296"
+ }
+ Key {
+ type: 6
+ key: 65
+ modifiers: 0
+ text: "61"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1344
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
+ }
+ Frame {
+ msec: 1360
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
+ }
+ Frame {
+ msec: 1376
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
+ }
+ Frame {
+ msec: 1392
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
+ }
+ Frame {
+ msec: 1408
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
+ }
+ Frame {
+ msec: 1424
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
+ }
+ Frame {
+ msec: 1440
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
+ }
+ Frame {
+ msec: 1456
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
+ }
+ Frame {
+ msec: 1472
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
+ }
+ Key {
+ type: 7
+ key: 65
+ modifiers: 0
+ text: "61"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1488
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
+ }
+ Key {
+ type: 6
+ key: 87
+ modifiers: 0
+ text: "77"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1504
+ hash: "fe0e4e097f655e0b330ed6fcfce669c2"
+ }
+ Frame {
+ msec: 1520
+ hash: "fe0e4e097f655e0b330ed6fcfce669c2"
+ }
+ Frame {
+ msec: 1536
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
+ }
+ Frame {
+ msec: 1552
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
+ }
+ Key {
+ type: 7
+ key: 87
+ modifiers: 0
+ text: "77"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1568
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
+ }
+ Frame {
+ msec: 1584
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
+ }
+ Frame {
+ msec: 1600
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
+ }
+ Frame {
+ msec: 1616
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
+ }
+ Frame {
+ msec: 1632
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
+ }
+ Frame {
+ msec: 1648
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
+ }
+ Key {
+ type: 6
+ key: 83
+ modifiers: 0
+ text: "73"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1664
+ hash: "f459ca172e643d6e22c38067f8ced305"
+ }
+ Frame {
+ msec: 1680
+ hash: "f459ca172e643d6e22c38067f8ced305"
+ }
+ Frame {
+ msec: 1696
+ hash: "f459ca172e643d6e22c38067f8ced305"
+ }
+ Frame {
+ msec: 1712
+ hash: "f459ca172e643d6e22c38067f8ced305"
+ }
+ Frame {
+ msec: 1728
+ hash: "f459ca172e643d6e22c38067f8ced305"
+ }
+ Key {
+ type: 6
+ key: 32
+ modifiers: 0
+ text: "20"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1744
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
+ }
+ Key {
+ type: 7
+ key: 83
+ modifiers: 0
+ text: "73"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1760
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
+ }
+ Frame {
+ msec: 1776
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
+ }
+ Frame {
+ msec: 1792
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
+ }
+ Key {
+ type: 7
+ key: 32
+ modifiers: 0
+ text: "20"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1808
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
+ }
+ Frame {
+ msec: 1824
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
+ }
+ Frame {
+ msec: 1840
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
+ }
+ Frame {
+ msec: 1856
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
+ }
+ Key {
+ type: 6
+ key: 76
+ modifiers: 0
+ text: "6c"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1872
+ hash: "05c631afb9df51c23b1f714a7de92788"
+ }
+ Frame {
+ msec: 1888
+ hash: "05c631afb9df51c23b1f714a7de92788"
+ }
+ Frame {
+ msec: 1904
+ hash: "05c631afb9df51c23b1f714a7de92788"
+ }
+ Frame {
+ msec: 1920
+ image: "echoMode.1.png"
+ }
+ Key {
+ type: 7
+ key: 76
+ modifiers: 0
+ text: "6c"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1936
+ hash: "05c631afb9df51c23b1f714a7de92788"
+ }
+ Frame {
+ msec: 1952
+ hash: "05c631afb9df51c23b1f714a7de92788"
+ }
+ Frame {
+ msec: 1968
+ hash: "05c631afb9df51c23b1f714a7de92788"
+ }
+ Frame {
+ msec: 1984
+ hash: "05c631afb9df51c23b1f714a7de92788"
+ }
+ Frame {
+ msec: 2000
+ hash: "05c631afb9df51c23b1f714a7de92788"
+ }
+ Frame {
+ msec: 2016
+ hash: "05c631afb9df51c23b1f714a7de92788"
+ }
+ Key {
+ type: 6
+ key: 79
+ modifiers: 0
+ text: "6f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2032
+ hash: "95ad72a49b991225e2ed5ae9c2a7b4e5"
+ }
+ Frame {
+ msec: 2048
+ hash: "95ad72a49b991225e2ed5ae9c2a7b4e5"
+ }
+ Key {
+ type: 7
+ key: 79
+ modifiers: 0
+ text: "6f"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2064
+ hash: "95ad72a49b991225e2ed5ae9c2a7b4e5"
+ }
+ Frame {
+ msec: 2080
+ hash: "95ad72a49b991225e2ed5ae9c2a7b4e5"
+ }
+ Key {
+ type: 6
+ key: 86
+ modifiers: 0
+ text: "76"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2096
+ hash: "7f2366b163c110a50259936c150d8287"
+ }
+ Frame {
+ msec: 2112
+ hash: "7f2366b163c110a50259936c150d8287"
+ }
+ Frame {
+ msec: 2128
+ hash: "7f2366b163c110a50259936c150d8287"
+ }
+ Frame {
+ msec: 2144
+ hash: "7f2366b163c110a50259936c150d8287"
+ }
+ Key {
+ type: 6
+ key: 69
+ modifiers: 0
+ text: "65"
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 7
+ key: 86
+ modifiers: 0
+ text: "76"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2160
+ hash: "b5110b1a7aa74f7b4ed72f573f10b1fe"
+ }
+ Frame {
+ msec: 2176
+ hash: "b5110b1a7aa74f7b4ed72f573f10b1fe"
+ }
+ Frame {
+ msec: 2192
+ hash: "b5110b1a7aa74f7b4ed72f573f10b1fe"
+ }
+ Frame {
+ msec: 2208
+ hash: "b5110b1a7aa74f7b4ed72f573f10b1fe"
+ }
+ Key {
+ type: 6
+ key: 32
+ modifiers: 0
+ text: "20"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2224
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
+ }
+ Key {
+ type: 7
+ key: 69
+ modifiers: 0
+ text: "65"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2240
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
+ }
+ Frame {
+ msec: 2256
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
+ }
+ Frame {
+ msec: 2272
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
+ }
+ Frame {
+ msec: 2288
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
+ }
+ Frame {
+ msec: 2304
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
+ }
+ Key {
+ type: 7
+ key: 32
+ modifiers: 0
+ text: "20"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2320
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
+ }
+ Frame {
+ msec: 2336
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
+ }
+ Key {
+ type: 6
+ key: 77
+ modifiers: 0
+ text: "6d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2352
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
+ }
+ Frame {
+ msec: 2368
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
+ }
+ Frame {
+ msec: 2384
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
+ }
+ Frame {
+ msec: 2400
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
+ }
+ Frame {
+ msec: 2416
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
+ }
+ Frame {
+ msec: 2432
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
+ }
+ Key {
+ type: 7
+ key: 77
+ modifiers: 0
+ text: "6d"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2448
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
+ }
+ Frame {
+ msec: 2464
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
+ }
+ Frame {
+ msec: 2480
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
+ }
+ Frame {
+ msec: 2496
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
+ }
+ Key {
+ type: 6
+ key: 89
+ modifiers: 0
+ text: "79"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2512
+ hash: "870d7866b8e289b4843b62c856d769d4"
+ }
+ Frame {
+ msec: 2528
+ hash: "870d7866b8e289b4843b62c856d769d4"
+ }
+ Frame {
+ msec: 2544
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Key {
+ type: 7
+ key: 89
+ modifiers: 0
+ text: "79"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2560
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2576
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2592
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2608
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2624
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2640
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2656
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2672
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2688
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2704
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2720
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2736
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2752
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2768
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2784
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2800
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2816
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2832
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2848
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2864
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2880
+ image: "echoMode.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2912
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2928
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2944
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2960
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2976
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 2992
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 3008
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 3024
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
+ }
+ Frame {
+ msec: 3040
+ hash: "870d7866b8e289b4843b62c856d769d4"
+ }
+ Frame {
+ msec: 3056
+ hash: "870d7866b8e289b4843b62c856d769d4"
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/hAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png
index 87c2e07..87c2e07 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/hAlign.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml
index e29ac56..e29ac56 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/hAlign.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/hAlign.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.0.png
new file mode 100644
index 0000000..b064e79
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png
new file mode 100644
index 0000000..7dd1bd8
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png
new file mode 100644
index 0000000..d8e55e2
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.10.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png
new file mode 100644
index 0000000..f9f1744
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.3.png
new file mode 100644
index 0000000..70ae713
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.3.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.4.png
new file mode 100644
index 0000000..9ce28db
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.4.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.5.png
new file mode 100644
index 0000000..2ef2ac0
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.5.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.6.png
new file mode 100644
index 0000000..2a614f8
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.6.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.7.png
new file mode 100644
index 0000000..f916c97
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.8.png
new file mode 100644
index 0000000..56bf00b
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.8.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.png
new file mode 100644
index 0000000..97847d9
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.9.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml
new file mode 100644
index 0000000..645b447
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.qml
@@ -0,0 +1,4335 @@
+import Qt.VisualTest 4.6
+
+VisualTest {
+ Frame {
+ msec: 0
+ }
+ Frame {
+ msec: 16
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 32
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 48
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 64
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 80
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 96
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 112
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 128
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 144
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 160
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 176
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 192
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 208
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 224
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 240
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 256
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 272
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 288
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 304
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 320
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 336
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 352
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 368
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 384
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 400
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 416
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 432
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 448
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 464
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 480
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 496
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 512
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 528
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 544
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 560
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 576
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 592
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 608
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 624
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 640
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 656
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 672
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 688
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 704
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 720
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 736
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 752
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 768
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 784
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 800
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 816
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 832
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 848
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 864
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 880
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 896
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 912
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Frame {
+ msec: 928
+ hash: "a6d33b1212bb4d1241734bfff167d1a5"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 85; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 944
+ hash: "c83faf1ed7b59715046e1abef04fa546"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 85; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 960
+ image: "usingLineEdit.0.png"
+ }
+ Mouse {
+ type: 4
+ button: 1
+ buttons: 1
+ x: 85; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 976
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 992
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1008
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1024
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1040
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1056
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 85; y: 11
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 1072
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1088
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1104
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1120
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1136
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1152
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1168
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1184
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1200
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1216
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1232
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1248
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1264
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1280
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1296
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1312
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1328
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1344
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1360
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 1376
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1392
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1408
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1424
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1440
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1456
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1472
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1488
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1504
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1520
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1536
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1552
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1568
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1584
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1600
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1616
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1632
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1648
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1664
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1680
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1696
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1712
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1728
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1744
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1760
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1776
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1792
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1808
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1824
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1840
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1856
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1872
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1888
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1904
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1920
+ image: "usingLineEdit.1.png"
+ }
+ Frame {
+ msec: 1936
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1952
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1968
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 1984
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Key {
+ type: 6
+ key: 67
+ modifiers: 67108864
+ text: "03"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2000
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2016
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2032
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2048
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2064
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2080
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2096
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2112
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Key {
+ type: 7
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 7
+ key: 67
+ modifiers: 0
+ text: "63"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2128
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2144
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2160
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2176
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2192
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2208
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2224
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2240
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2256
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2272
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2288
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2304
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2320
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2336
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2352
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2368
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2384
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2400
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2416
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2432
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2448
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2464
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Frame {
+ msec: 2480
+ hash: "3b899cd28b58c3f94946286a0ddcab89"
+ }
+ Key {
+ type: 6
+ key: 16777233
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2496
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2512
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2528
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2544
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2560
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2576
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Key {
+ type: 7
+ key: 16777233
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2592
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2608
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2624
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2640
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2656
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2672
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2688
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2704
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2720
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2736
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2752
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2768
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2784
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 2800
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2816
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2832
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2848
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2864
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2880
+ image: "usingLineEdit.2.png"
+ }
+ Frame {
+ msec: 2896
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2912
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2928
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2944
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2960
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2976
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 2992
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3008
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3024
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3040
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3056
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3072
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3088
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3104
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3120
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3136
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3152
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3168
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3184
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3200
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Frame {
+ msec: 3216
+ hash: "f2a573f227a3eb84f60418d0f3e81fb3"
+ }
+ Key {
+ type: 6
+ key: 86
+ modifiers: 67108864
+ text: "16"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3232
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3248
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3264
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3280
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3296
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3312
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3328
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Key {
+ type: 7
+ key: 86
+ modifiers: 67108864
+ text: "16"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3344
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3360
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3376
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3392
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3408
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3424
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3440
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3456
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3472
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3488
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3504
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3520
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3536
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Frame {
+ msec: 3552
+ hash: "202ad01bacfb48341efdd85197df6964"
+ }
+ Key {
+ type: 6
+ key: 86
+ modifiers: 67108864
+ text: "16"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3568
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3584
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3600
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3616
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3632
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3648
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3664
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3680
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Key {
+ type: 7
+ key: 86
+ modifiers: 67108864
+ text: "16"
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 3696
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3712
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3728
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3744
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3760
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3776
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3792
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3808
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3824
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3840
+ image: "usingLineEdit.3.png"
+ }
+ Frame {
+ msec: 3856
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3872
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3888
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3904
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3920
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3936
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3952
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3968
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 3984
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4000
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4016
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4032
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4048
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4064
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4080
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4096
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4112
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4128
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4144
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4160
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4176
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4192
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Key {
+ type: 7
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 4208
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4224
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4240
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4256
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4272
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4288
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4304
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4320
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4336
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4352
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4368
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4384
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4400
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4416
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4432
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4448
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4464
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4480
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4496
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4512
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4528
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4544
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4560
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4576
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4592
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4608
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4624
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4640
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4656
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4672
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4688
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Frame {
+ msec: 4704
+ hash: "eac37a53473ad7f378a2a1bb37fa6b58"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 69; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4720
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4736
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4752
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4768
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4784
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4800
+ image: "usingLineEdit.4.png"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 69; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 4816
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4832
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4848
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4864
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4880
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4896
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4912
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4928
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4944
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4960
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4976
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 4992
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5008
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5024
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5040
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5056
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5072
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5088
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5104
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5120
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5136
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5152
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5168
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5184
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5200
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5216
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5232
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5248
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5264
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5280
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5296
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5312
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5328
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5344
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Frame {
+ msec: 5360
+ hash: "c65ff28e032b18223c65f8810b39d603"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5376
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5392
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5408
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5424
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5440
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5456
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5472
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5488
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5504
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5520
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5536
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5552
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5568
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5584
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5600
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Frame {
+ msec: 5616
+ hash: "8c755780c2d281aba23c507bcebfd5db"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5632
+ hash: "baa42bc9d5e16c3e7af81e126d37655a"
+ }
+ Frame {
+ msec: 5648
+ hash: "baa42bc9d5e16c3e7af81e126d37655a"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5664
+ hash: "aa876e6d6ff0f169bcc3cf25be5e7a81"
+ }
+ Frame {
+ msec: 5680
+ hash: "aa876e6d6ff0f169bcc3cf25be5e7a81"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5696
+ hash: "8ec4c1a8ae28af44dcabf338fc056717"
+ }
+ Frame {
+ msec: 5712
+ hash: "8ec4c1a8ae28af44dcabf338fc056717"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5728
+ hash: "ec0da333c0bc090eec0ded5e4d18bd6e"
+ }
+ Frame {
+ msec: 5744
+ hash: "ec0da333c0bc090eec0ded5e4d18bd6e"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5760
+ image: "usingLineEdit.5.png"
+ }
+ Frame {
+ msec: 5776
+ hash: "325ba5789a6150ec0fef81fa5b005c09"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5792
+ hash: "023dd8fe428b1ed0f4c994f7e67ac3cd"
+ }
+ Frame {
+ msec: 5808
+ hash: "023dd8fe428b1ed0f4c994f7e67ac3cd"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5824
+ hash: "f661f599f576ae883f25422b20408138"
+ }
+ Frame {
+ msec: 5840
+ hash: "f661f599f576ae883f25422b20408138"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5856
+ hash: "f661f599f576ae883f25422b20408138"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5872
+ hash: "8e7ad34802a0ced493e88b779c73cc47"
+ }
+ Frame {
+ msec: 5888
+ hash: "8e7ad34802a0ced493e88b779c73cc47"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5904
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 5920
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 5936
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 5952
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 5968
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 5984
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 6000
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 6016
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 6032
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 6048
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Key {
+ type: 6
+ key: 16777249
+ modifiers: 0
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6064
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 6080
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 6096
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 6112
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 6128
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Frame {
+ msec: 6144
+ hash: "943c7ec51fbe8db38fcd3086990fa4e0"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6160
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6176
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6192
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6208
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6224
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6240
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6256
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6272
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6288
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6304
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6320
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6336
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6352
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6368
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6384
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Frame {
+ msec: 6400
+ hash: "bd2e37c4ac90a6389f7f4e1e1360b31b"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6416
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6432
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6448
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6464
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6480
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6496
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6512
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6528
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6544
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6560
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6576
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6592
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6608
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6624
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6640
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6656
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6672
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6688
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6704
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6720
+ image: "usingLineEdit.6.png"
+ }
+ Frame {
+ msec: 6736
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6752
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6768
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6784
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Key {
+ type: 6
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6800
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Key {
+ type: 7
+ key: 16777234
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6816
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6832
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6848
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6864
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6880
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6896
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6912
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6928
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Frame {
+ msec: 6944
+ hash: "608bba00320e20da05aa2a6bbcba6e19"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 6960
+ hash: "40456a6d22e09e1817b07f3898676524"
+ }
+ Frame {
+ msec: 6976
+ hash: "40456a6d22e09e1817b07f3898676524"
+ }
+ Frame {
+ msec: 6992
+ hash: "40456a6d22e09e1817b07f3898676524"
+ }
+ Frame {
+ msec: 7008
+ hash: "40456a6d22e09e1817b07f3898676524"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7024
+ hash: "40456a6d22e09e1817b07f3898676524"
+ }
+ Frame {
+ msec: 7040
+ hash: "40456a6d22e09e1817b07f3898676524"
+ }
+ Frame {
+ msec: 7056
+ hash: "40456a6d22e09e1817b07f3898676524"
+ }
+ Frame {
+ msec: 7072
+ hash: "40456a6d22e09e1817b07f3898676524"
+ }
+ Frame {
+ msec: 7088
+ hash: "40456a6d22e09e1817b07f3898676524"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7104
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Frame {
+ msec: 7120
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Frame {
+ msec: 7136
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Frame {
+ msec: 7152
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7168
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Frame {
+ msec: 7184
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Frame {
+ msec: 7200
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Frame {
+ msec: 7216
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Frame {
+ msec: 7232
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Frame {
+ msec: 7248
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Frame {
+ msec: 7264
+ hash: "dada78341b65c1efb2816e16a8cbe8b5"
+ }
+ Key {
+ type: 6
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7280
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7296
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7312
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7328
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7344
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Key {
+ type: 7
+ key: 16777236
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7360
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7376
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7392
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7408
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7424
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7440
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7456
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7472
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7488
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7504
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7520
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Key {
+ type: 7
+ key: 16777249
+ modifiers: 67108864
+ text: ""
+ autorep: false
+ count: 1
+ }
+ Frame {
+ msec: 7536
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7552
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7568
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7584
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7600
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7616
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7632
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7648
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7664
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7680
+ image: "usingLineEdit.7.png"
+ }
+ Frame {
+ msec: 7696
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7712
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7728
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7744
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7760
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7776
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7792
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7808
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7824
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7840
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7856
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7872
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7888
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7904
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7920
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7936
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7952
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7968
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 7984
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8000
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8016
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8032
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8048
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8064
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8080
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8096
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8112
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8128
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8144
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8160
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8176
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8192
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8208
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8224
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8240
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8256
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8272
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8288
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8304
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8320
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8336
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8352
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8368
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8384
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8400
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8416
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8432
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8448
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8464
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8480
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Frame {
+ msec: 8496
+ hash: "f249bfae1934844abfd5fc158a9c89cf"
+ }
+ Mouse {
+ type: 2
+ button: 1
+ buttons: 1
+ x: 61; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8512
+ hash: "e594125fb367adee5b6acdb1268c86cd"
+ }
+ Frame {
+ msec: 8528
+ hash: "e594125fb367adee5b6acdb1268c86cd"
+ }
+ Frame {
+ msec: 8544
+ hash: "e594125fb367adee5b6acdb1268c86cd"
+ }
+ Frame {
+ msec: 8560
+ hash: "e594125fb367adee5b6acdb1268c86cd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 60; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 58; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8576
+ hash: "e594125fb367adee5b6acdb1268c86cd"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 46; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8592
+ hash: "7d4116a8689b6995702a042d974ef74b"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 41; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 40; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8608
+ hash: "cb9221f27ac24e4b6b103ca53acad3b3"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 32; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8624
+ hash: "074bc6abd9a67db829ae5d6c5f187fb6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 31; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 30; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8640
+ image: "usingLineEdit.8.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 29; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8656
+ hash: "074bc6abd9a67db829ae5d6c5f187fb6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 28; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 27; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8672
+ hash: "074bc6abd9a67db829ae5d6c5f187fb6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 26; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8688
+ hash: "7e403c56d5652321a7701529fc6b8098"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 25; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 24; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8704
+ hash: "7e403c56d5652321a7701529fc6b8098"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 23; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 22; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8720
+ hash: "7e403c56d5652321a7701529fc6b8098"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 20; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 19; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8736
+ hash: "7e403c56d5652321a7701529fc6b8098"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 18; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 17; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8752
+ hash: "2435f2526b3ccc12b7b573872b40e5f1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 16; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 15; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8768
+ hash: "2435f2526b3ccc12b7b573872b40e5f1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 14; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 13; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8784
+ hash: "2435f2526b3ccc12b7b573872b40e5f1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 12; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 11; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8800
+ hash: "2435f2526b3ccc12b7b573872b40e5f1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 10; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 8; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8816
+ hash: "f5a185b954e8b181222cc50075d8ebb6"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 6; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 5; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8832
+ hash: "93a00b37c5027650791d1ff589408d0d"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 3; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 2; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8848
+ hash: "0b29f6006be3604ef862db7d31f9a434"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 0; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -1; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8864
+ hash: "8390b63b71e1452cb93c576a3f2395e1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -2; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -3; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8880
+ hash: "72298910946a4e1a9ccc4520d99e9420"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -5; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -6; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8896
+ hash: "17d349b0ed29d6aa57bf8fda9a55abf8"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -7; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -9; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8912
+ hash: "01e8a877d51f5564aaf2f11e7aadbc4a"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -10; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -11; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8928
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -12; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -13; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8944
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -14; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -15; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8960
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 8976
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -16; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -17; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 8992
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -18; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9008
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9024
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9040
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9056
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9072
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9088
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9104
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9120
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9136
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9152
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9168
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9184
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Frame {
+ msec: 9200
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -17; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9216
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -16; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9232
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -14; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -13; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9248
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -11; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -10; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9264
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -8; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -7; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9280
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -6; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -5; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9296
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -3; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: -1; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9312
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 1; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 3; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9328
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 4; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 6; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9344
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 7; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 8; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9360
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 10; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 11; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9376
+ hash: "bc8f49abd277f5f15d422341de212183"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 12; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 14; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9392
+ hash: "12e705f08ff90fd8ddb1937e5a7e23a0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 15; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 17; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9408
+ hash: "12e705f08ff90fd8ddb1937e5a7e23a0"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 21; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 24; y: 30
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9424
+ hash: "4daae0f05ff1b7ef68ed1d839b113dc4"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 27; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 30; y: 31
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9440
+ hash: "a1186544d7f5576e6ccbbd7938c1c374"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 33; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 35; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9456
+ hash: "6ce09c9a06135d2280e4f7bc1c81b70e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 38; y: 32
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 39; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9472
+ hash: "6ce09c9a06135d2280e4f7bc1c81b70e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 43; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 45; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9488
+ hash: "035b177c3cacd8cdef807d5673de4607"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 48; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 50; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9504
+ hash: "7b7e3c4600f3af7bd0f45799661db993"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 51; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 53; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9520
+ hash: "7b7e3c4600f3af7bd0f45799661db993"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 55; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9536
+ hash: "7b7e3c4600f3af7bd0f45799661db993"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 56; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 58; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9552
+ hash: "859950e1cf496ef830a30b3a0ec801ac"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 61; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 64; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9568
+ hash: "859950e1cf496ef830a30b3a0ec801ac"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 67; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 70; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9584
+ hash: "be7343825b6adcb16f49e20ee2bdf19f"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 73; y: 33
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 74; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9600
+ image: "usingLineEdit.9.png"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 76; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9616
+ hash: "597923ce1046fbf4b728545c54c97fa5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 77; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 78; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9632
+ hash: "597923ce1046fbf4b728545c54c97fa5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 79; y: 34
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 80; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9648
+ hash: "597923ce1046fbf4b728545c54c97fa5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 81; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 84; y: 35
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9664
+ hash: "2fc5c42f94350f28ae0117bc7f6daff1"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 85; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 88; y: 36
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9680
+ hash: "4b4ec69d583151f1a64052d696966f9c"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 89; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 91; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9696
+ hash: "0882a25ac1c2b534367736d825a73630"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 92; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 94; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9712
+ hash: "d5b6acc155f827c05b0c4c289a2e3eec"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 95; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 96; y: 37
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9728
+ hash: "a05b3f2f9f22249ab694ac45e1de7b85"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 98; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 100; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9744
+ hash: "5b0e034813f8543627f370efdcf3591e"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 102; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 104; y: 38
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9760
+ hash: "5b8d80b9d7e2a8c1a24c28e127d0f7e5"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 105; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 108; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9776
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 109; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 110; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9792
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 111; y: 39
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9808
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 112; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9824
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 113; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9840
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 114; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9856
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 9872
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 115; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9888
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 116; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9904
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 117; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9920
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 118; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9936
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 9952
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 119; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9968
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 120; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 9984
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 121; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10000
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10016
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 5
+ button: 0
+ buttons: 1
+ x: 122; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10032
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10048
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10064
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10080
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10096
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10112
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10128
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10144
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10160
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10176
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10192
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10208
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10224
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10240
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Mouse {
+ type: 3
+ button: 1
+ buttons: 0
+ x: 122; y: 40
+ modifiers: 0
+ sendToViewport: true
+ }
+ Frame {
+ msec: 10256
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10272
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10288
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10304
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10320
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10336
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10352
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10368
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10384
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10400
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10416
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10432
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10448
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10464
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10480
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10496
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10512
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10528
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10544
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10560
+ image: "usingLineEdit.10.png"
+ }
+ Frame {
+ msec: 10576
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10592
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10608
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10624
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10640
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10656
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10672
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10688
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10704
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10720
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10736
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10752
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10768
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10784
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10800
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10816
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10832
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10848
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10864
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10880
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10896
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10912
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10928
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10944
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10960
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10976
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 10992
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11008
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11024
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11040
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11056
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11072
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11088
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11104
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11120
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11136
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11152
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11168
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11184
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11200
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11216
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11232
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11248
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+ Frame {
+ msec: 11264
+ hash: "66715d4a4f83d0e5905adbc4c459b0fb"
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.0.png
index f04f65e..f04f65e 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.1.png
index 46a703a..46a703a 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.2.png
index e4a3877..e4a3877 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.3.png
index 9ef842a..9ef842a 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.4.png
index 706e2b3..706e2b3 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.5.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.5.png
index bcc86cc..bcc86cc 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.5.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.6.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.6.png
index 51ddd44..51ddd44 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.6.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.7.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.7.png
index 0a2fdda..0a2fdda 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.8.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.8.png
index 9c88bff..9c88bff 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.8.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.qml
index df2dd38..df2dd38 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/cursorDelegate.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/cursorDelegate.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.0.png
index 2b45a06..2b45a06 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.1.png
index 1f5bae0..1f5bae0 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.2.png
index cb2b5a4..cb2b5a4 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.3.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.3.png
index aa24805..aa24805 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.3.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.4.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.4.png
index aa24805..aa24805 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.4.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.qml
index 873a86d..873a86d 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data/echoMode.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/echoMode.qml
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/hAlign.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/hAlign.0.png
index 87c2e07..87c2e07 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/hAlign.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/hAlign.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/hAlign.qml
index e29ac56..e29ac56 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/hAlign.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data/hAlign.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml
new file mode 100644
index 0000000..ed8bc2c
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+
+Item{
+ height: 50; width: 200
+ Column{
+ //Not an exhaustive echo mode test, that's in QLineEdit (since the functionality is in QLineControl)
+ TextInput{ id: main; focus: true; echoMode: TextInput.Password; passwordCharacter: '.' }
+ Text{ text: main.text }
+ }
+}
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/hAlign.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml
index 2d65adf..2d65adf 100644
--- a/tests/auto/declarative/visual/qdeclarativetextinput/hAlign.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/hAlign.qml
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml
new file mode 100644
index 0000000..2465866
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml
@@ -0,0 +1,10 @@
+import Qt 4.7
+
+Rectangle{
+ width: 600
+ height: 200
+ Column{
+ LineEdit{text: 'Hello world'}
+ LineEdit{text: 'Hello underwhelmingly verbose world'; width: 80; height: 24;}
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/qfxwebview/autosize/autosize.qml b/tests/auto/declarative/qmlvisual/qfxwebview/autosize/autosize.qml
new file mode 100644
index 0000000..3c00ee6
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qfxwebview/autosize/autosize.qml
@@ -0,0 +1,61 @@
+import Qt 4.6
+import org.webkit 1.0
+
+// The WebView size is determined by the width, height,
+// preferredWidth, and preferredHeight properties.
+Rectangle {
+ id: rect
+ color: "white"
+ width: 200
+ height: layout.height
+ Column {
+ id: layout
+ spacing: 2
+ WebView {
+ html: "No width defined."
+ Rectangle { color: "#10000000"
+ anchors.fill: parent
+ }
+ }
+ WebView {
+ width: rect.width
+ html: "The width is full."
+ Rectangle {
+ color: "#10000000"
+ anchors.fill: parent
+ }
+ }
+ WebView {
+ width: rect.width/2
+ html: "The width is half."
+ Rectangle {
+ color: "#10000000"
+ anchors.fill: parent
+ }
+ }
+ WebView {
+ preferredWidth: rect.width/2
+ html: "The preferredWidth is half."
+ Rectangle {
+ color: "#10000000"
+ anchors.fill: parent
+ }
+ }
+ WebView {
+ preferredWidth: rect.width/2
+ html: "The_preferredWidth_is_half."
+ Rectangle {
+ color: "#10000000"
+ anchors.fill: parent
+ }
+ }
+ WebView {
+ width: rect.width/2
+ html: "The_width_is_half."
+ Rectangle {
+ color: "#10000000"
+ anchors.fill: parent
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/qfxwebview/autosize/data/autosize.0.png b/tests/auto/declarative/qmlvisual/qfxwebview/autosize/data-X11/autosize.0.png
index 1f28b9a..1f28b9a 100644
--- a/tests/auto/declarative/visual/qfxwebview/autosize/data/autosize.0.png
+++ b/tests/auto/declarative/qmlvisual/qfxwebview/autosize/data-X11/autosize.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.qml b/tests/auto/declarative/qmlvisual/qfxwebview/autosize/data-X11/autosize.qml
index d920a4c..d920a4c 100644
--- a/tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.qml
+++ b/tests/auto/declarative/qmlvisual/qfxwebview/autosize/data-X11/autosize.qml
diff --git a/tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.0.png b/tests/auto/declarative/qmlvisual/qfxwebview/autosize/data/autosize.0.png
index 1f28b9a..1f28b9a 100644
--- a/tests/auto/declarative/visual/qfxwebview/autosize/data-X11/autosize.0.png
+++ b/tests/auto/declarative/qmlvisual/qfxwebview/autosize/data/autosize.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/qfxwebview/autosize/data/autosize.qml b/tests/auto/declarative/qmlvisual/qfxwebview/autosize/data/autosize.qml
index 47999be..47999be 100644
--- a/tests/auto/declarative/visual/qfxwebview/autosize/data/autosize.qml
+++ b/tests/auto/declarative/qmlvisual/qfxwebview/autosize/data/autosize.qml
diff --git a/tests/auto/declarative/qmlvisual/qmlvisual.pro b/tests/auto/declarative/qmlvisual/qmlvisual.pro
new file mode 100644
index 0000000..a3abbe3
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/qmlvisual.pro
@@ -0,0 +1,10 @@
+load(qttest_p4)
+contains(QT_CONFIG,declarative): QT += declarative
+macx:CONFIG -= app_bundle
+
+SOURCES += tst_qmlvisual.cpp
+
+DEFINES += QT_TEST_SOURCE_DIR=\"\\\"$$PWD\\\"\"
+
+CONFIG += parallel_test
+
diff --git a/tests/auto/declarative/visual/rect/GradientRect.qml b/tests/auto/declarative/qmlvisual/rect/GradientRect.qml
index 1d3ec98..1d3ec98 100644
--- a/tests/auto/declarative/visual/rect/GradientRect.qml
+++ b/tests/auto/declarative/qmlvisual/rect/GradientRect.qml
diff --git a/tests/auto/declarative/visual/rect/MyRect.qml b/tests/auto/declarative/qmlvisual/rect/MyRect.qml
index 22e0948..22e0948 100644
--- a/tests/auto/declarative/visual/rect/MyRect.qml
+++ b/tests/auto/declarative/qmlvisual/rect/MyRect.qml
diff --git a/tests/auto/declarative/visual/rect/data/rect-painting.0.png b/tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png
index 3b7970d..3b7970d 100644
--- a/tests/auto/declarative/visual/rect/data/rect-painting.0.png
+++ b/tests/auto/declarative/qmlvisual/rect/data/rect-painting.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/rect/data/rect-painting.qml b/tests/auto/declarative/qmlvisual/rect/data/rect-painting.qml
index 52acadf..52acadf 100644
--- a/tests/auto/declarative/visual/rect/data/rect-painting.qml
+++ b/tests/auto/declarative/qmlvisual/rect/data/rect-painting.qml
diff --git a/tests/auto/declarative/visual/rect/rect-painting.qml b/tests/auto/declarative/qmlvisual/rect/rect-painting.qml
index 93beeec..93beeec 100644
--- a/tests/auto/declarative/visual/rect/rect-painting.qml
+++ b/tests/auto/declarative/qmlvisual/rect/rect-painting.qml
diff --git a/tests/auto/declarative/visual/repeater/basic1.qml b/tests/auto/declarative/qmlvisual/repeater/basic1.qml
index acb669c..acb669c 100644
--- a/tests/auto/declarative/visual/repeater/basic1.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/basic1.qml
diff --git a/tests/auto/declarative/visual/repeater/basic2.qml b/tests/auto/declarative/qmlvisual/repeater/basic2.qml
index 3323da5..3323da5 100644
--- a/tests/auto/declarative/visual/repeater/basic2.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/basic2.qml
diff --git a/tests/auto/declarative/visual/repeater/basic3.qml b/tests/auto/declarative/qmlvisual/repeater/basic3.qml
index cb57d49..cb57d49 100644
--- a/tests/auto/declarative/visual/repeater/basic3.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/basic3.qml
diff --git a/tests/auto/declarative/visual/repeater/basic4.qml b/tests/auto/declarative/qmlvisual/repeater/basic4.qml
index f31de2c..f31de2c 100644
--- a/tests/auto/declarative/visual/repeater/basic4.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/basic4.qml
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic1.0.png b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic1.0.png
index 2658b6b..2658b6b 100644
--- a/tests/auto/declarative/visual/repeater/data-MAC/basic1.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic1.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic1.qml b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic1.qml
index 5bc0d6b..5bc0d6b 100644
--- a/tests/auto/declarative/visual/repeater/data-MAC/basic1.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic1.qml
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic2.0.png b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic2.0.png
index 2658b6b..2658b6b 100644
--- a/tests/auto/declarative/visual/repeater/data-MAC/basic2.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic2.qml b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic2.qml
index 64cf2ea..64cf2ea 100644
--- a/tests/auto/declarative/visual/repeater/data-MAC/basic2.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic2.qml
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic3.0.png b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic3.0.png
index 2658b6b..2658b6b 100644
--- a/tests/auto/declarative/visual/repeater/data-MAC/basic3.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic3.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic3.qml b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic3.qml
index 41e174a..41e174a 100644
--- a/tests/auto/declarative/visual/repeater/data-MAC/basic3.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic3.qml
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic4.0.png b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic4.0.png
index 2658b6b..2658b6b 100644
--- a/tests/auto/declarative/visual/repeater/data-MAC/basic4.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic4.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-MAC/basic4.qml b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic4.qml
index fcf2504..fcf2504 100644
--- a/tests/auto/declarative/visual/repeater/data-MAC/basic4.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data-MAC/basic4.qml
diff --git a/tests/auto/declarative/visual/repeater/data-X11/basic1.0.png b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic1.0.png
index 18ab543..18ab543 100644
--- a/tests/auto/declarative/visual/repeater/data-X11/basic1.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic1.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-X11/basic1.qml b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic1.qml
index bf215ca..bf215ca 100644
--- a/tests/auto/declarative/visual/repeater/data-X11/basic1.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic1.qml
diff --git a/tests/auto/declarative/visual/repeater/data-X11/basic2.0.png b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic2.0.png
index 18ab543..18ab543 100644
--- a/tests/auto/declarative/visual/repeater/data-X11/basic2.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-X11/basic2.qml b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic2.qml
index cb6b46c..cb6b46c 100644
--- a/tests/auto/declarative/visual/repeater/data-X11/basic2.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic2.qml
diff --git a/tests/auto/declarative/visual/repeater/data-X11/basic3.0.png b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic3.0.png
index 18ab543..18ab543 100644
--- a/tests/auto/declarative/visual/repeater/data-X11/basic3.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic3.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-X11/basic3.qml b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic3.qml
index 9545fa9..9545fa9 100644
--- a/tests/auto/declarative/visual/repeater/data-X11/basic3.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic3.qml
diff --git a/tests/auto/declarative/visual/repeater/data-X11/basic4.0.png b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic4.0.png
index 18ab543..18ab543 100644
--- a/tests/auto/declarative/visual/repeater/data-X11/basic4.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic4.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data-X11/basic4.qml b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic4.qml
index 4839206..4839206 100644
--- a/tests/auto/declarative/visual/repeater/data-X11/basic4.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data-X11/basic4.qml
diff --git a/tests/auto/declarative/visual/repeater/data/basic1.0.png b/tests/auto/declarative/qmlvisual/repeater/data/basic1.0.png
index aea0e98..aea0e98 100644
--- a/tests/auto/declarative/visual/repeater/data/basic1.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data/basic1.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data/basic1.qml b/tests/auto/declarative/qmlvisual/repeater/data/basic1.qml
index 9535a2c..9535a2c 100644
--- a/tests/auto/declarative/visual/repeater/data/basic1.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data/basic1.qml
diff --git a/tests/auto/declarative/visual/repeater/data/basic2.0.png b/tests/auto/declarative/qmlvisual/repeater/data/basic2.0.png
index aea0e98..aea0e98 100644
--- a/tests/auto/declarative/visual/repeater/data/basic2.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data/basic2.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data/basic2.qml b/tests/auto/declarative/qmlvisual/repeater/data/basic2.qml
index 81bc1f7..81bc1f7 100644
--- a/tests/auto/declarative/visual/repeater/data/basic2.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data/basic2.qml
diff --git a/tests/auto/declarative/visual/repeater/data/basic3.0.png b/tests/auto/declarative/qmlvisual/repeater/data/basic3.0.png
index aea0e98..aea0e98 100644
--- a/tests/auto/declarative/visual/repeater/data/basic3.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data/basic3.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data/basic3.qml b/tests/auto/declarative/qmlvisual/repeater/data/basic3.qml
index 417eaab..417eaab 100644
--- a/tests/auto/declarative/visual/repeater/data/basic3.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data/basic3.qml
diff --git a/tests/auto/declarative/visual/repeater/data/basic4.0.png b/tests/auto/declarative/qmlvisual/repeater/data/basic4.0.png
index aea0e98..aea0e98 100644
--- a/tests/auto/declarative/visual/repeater/data/basic4.0.png
+++ b/tests/auto/declarative/qmlvisual/repeater/data/basic4.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/repeater/data/basic4.qml b/tests/auto/declarative/qmlvisual/repeater/data/basic4.qml
index 264d825..264d825 100644
--- a/tests/auto/declarative/visual/repeater/data/basic4.qml
+++ b/tests/auto/declarative/qmlvisual/repeater/data/basic4.qml
diff --git a/tests/auto/declarative/visual/selftest_noimages/data/selftest_noimages.qml b/tests/auto/declarative/qmlvisual/selftest_noimages/data/selftest_noimages.qml
index 3104906..3104906 100644
--- a/tests/auto/declarative/visual/selftest_noimages/data/selftest_noimages.qml
+++ b/tests/auto/declarative/qmlvisual/selftest_noimages/data/selftest_noimages.qml
diff --git a/tests/auto/declarative/visual/selftest_noimages/selftest_noimages.qml b/tests/auto/declarative/qmlvisual/selftest_noimages/selftest_noimages.qml
index da7f9b6..da7f9b6 100644
--- a/tests/auto/declarative/visual/selftest_noimages/selftest_noimages.qml
+++ b/tests/auto/declarative/qmlvisual/selftest_noimages/selftest_noimages.qml
diff --git a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
new file mode 100644
index 0000000..681b530
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
@@ -0,0 +1,417 @@
+/****************************************************************************
+**
+** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
+** All rights reserved.
+** Contact: Nokia Corporation (qt-info@nokia.com)
+**
+** This file is part of the test suite of the Qt Toolkit.
+**
+** $QT_BEGIN_LICENSE:LGPL$
+** No Commercial Usage
+** This file contains pre-release code and may not be distributed.
+** You may use this file in accordance with the terms and conditions
+** contained in the Technology Preview License Agreement accompanying
+** this package.
+**
+** GNU Lesser General Public License Usage
+** Alternatively, this file may be used under the terms of the GNU Lesser
+** General Public License version 2.1 as published by the Free Software
+** Foundation and appearing in the file LICENSE.LGPL included in the
+** packaging of this file. Please review the following information to
+** ensure the GNU Lesser General Public License version 2.1 requirements
+** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+**
+** In addition, as a special exception, Nokia gives you certain additional
+** rights. These rights are described in the Nokia Qt LGPL Exception
+** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
+**
+** If you have questions regarding the use of this file, please contact
+** Nokia at qt-info@nokia.com.
+**
+**
+**
+**
+**
+**
+**
+**
+** $QT_END_LICENSE$
+**
+****************************************************************************/
+#include <qtest.h>
+#include <QDeclarativeView>
+#include <QApplication>
+#include <QLibraryInfo>
+#include <QDir>
+#include <QDebug>
+#include <QProcess>
+#include <QFile>
+
+enum Mode { Record, RecordNoVisuals, RecordSnapshot, Play, TestVisuals, RemoveVisuals, UpdateVisuals, UpdatePlatformVisuals, Test };
+
+static QString testdir;
+class tst_qmlvisual : public QObject
+{
+ Q_OBJECT
+public:
+ tst_qmlvisual();
+
+ static QString toTestScript(const QString &, Mode=Test);
+ static QString viewer();
+
+ static QStringList findQmlFiles(const QDir &d);
+private slots:
+ void visual_data();
+ void visual();
+
+private:
+ QString qmlruntime;
+};
+
+
+tst_qmlvisual::tst_qmlvisual()
+{
+ qmlruntime = viewer();
+}
+
+QString tst_qmlvisual::viewer()
+{
+ QString binaries = QLibraryInfo::location(QLibraryInfo::BinariesPath);
+
+ QString qmlruntime;
+
+#if defined(Q_WS_MAC)
+ qmlruntime = QDir(binaries).absoluteFilePath("qml.app/Contents/MacOS/qml");
+#elif defined(Q_WS_WIN)
+ qmlruntime = QDir(binaries).absoluteFilePath("qml.exe");
+#else
+ qmlruntime = QDir(binaries).absoluteFilePath("qml");
+#endif
+
+ return qmlruntime;
+}
+
+void tst_qmlvisual::visual_data()
+{
+ QTest::addColumn<QString>("file");
+ QTest::addColumn<QString>("testdata");
+
+ QStringList files;
+ if (qgetenv("QMLVISUAL_ALL") != "")
+ files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR));
+ else {
+ //these are newly added tests we want to try out in CI (then move to the stable list)
+ files << QT_TEST_SOURCE_DIR "/qdeclarativeborderimage/borders.qml";
+ files << QT_TEST_SOURCE_DIR "/qdeclarativeborderimage/animated.qml";
+ files << QT_TEST_SOURCE_DIR "/qdeclarativeborderimage/animated-smooth.qml";
+ files << QT_TEST_SOURCE_DIR "/qdeclarativeflipable/test-flipable.qml";
+ files << QT_TEST_SOURCE_DIR "/qdeclarativepositioners/usingRepeater.qml";
+
+ //these are tests we think are stable and useful enough to be run by the CI system
+ files << QT_TEST_SOURCE_DIR "/animation/bindinganimation/bindinganimation.qml";
+ files << QT_TEST_SOURCE_DIR "/animation/loop/loop.qml";
+ files << QT_TEST_SOURCE_DIR "/animation/parallelAnimation/parallelAnimation-visual.qml";
+ files << QT_TEST_SOURCE_DIR "/animation/parentAnimation/parentAnimation-visual.qml";
+ files << QT_TEST_SOURCE_DIR "/animation/reanchor/reanchor.qml";
+ files << QT_TEST_SOURCE_DIR "/animation/scriptAction/scriptAction-visual.qml";
+ files << QT_TEST_SOURCE_DIR "/qdeclarativemousearea/drag.qml";
+ files << QT_TEST_SOURCE_DIR "/fillmode/fillmode.qml";
+
+ //these reliably fail in CI, for unknown reasons
+ //files << QT_TEST_SOURCE_DIR "/animation/easing/easing.qml";
+ //files << QT_TEST_SOURCE_DIR "/animation/pauseAnimation/pauseAnimation-visual.qml";
+
+ //these reliably fail on Linux because of color interpolation (different float rounding)
+#if !defined(Q_WS_X11) && !defined(Q_WS_QWS)
+ files << QT_TEST_SOURCE_DIR "/animation/colorAnimation/colorAnimation-visual.qml";
+ files << QT_TEST_SOURCE_DIR "/animation/propertyAction/propertyAction-visual.qml";
+#endif
+
+ //this is unstable because the MouseArea press-and-hold timer is not synchronized to the animation framework.
+ //files << QT_TEST_SOURCE_DIR "/qdeclarativemousearea/mousearea-visual.qml";
+ }
+
+ foreach (const QString &file, files) {
+ QString testdata = toTestScript(file);
+ if (testdata.isEmpty())
+ continue;
+
+ QTest::newRow(file.toLatin1().constData()) << file << testdata;
+ }
+}
+
+void tst_qmlvisual::visual()
+{
+ QFETCH(QString, file);
+ QFETCH(QString, testdata);
+
+ QStringList arguments;
+ arguments << "-script" << testdata
+ << "-scriptopts" << "play,testimages,testerror,exitoncomplete,exitonfailure"
+ << file;
+#ifdef Q_WS_QWS
+ arguments << "-qws";
+#endif
+
+ QProcess p;
+ p.start(qmlruntime, arguments);
+ QVERIFY(p.waitForFinished());
+ if (p.exitCode() != 0)
+ qDebug() << p.readAllStandardError();
+ QCOMPARE(p.exitStatus(), QProcess::NormalExit);
+ QCOMPARE(p.exitCode(), 0);
+}
+
+QString tst_qmlvisual::toTestScript(const QString &file, Mode mode)
+{
+ if (!file.endsWith(".qml"))
+ return QString();
+
+ int index = file.lastIndexOf(QDir::separator());
+ if (index == -1)
+ index = file.lastIndexOf('/');
+ if (index == -1)
+ return QString();
+
+ const char* platformsuffix=0; // platforms with different fonts
+#if defined(Q_WS_MACX)
+ platformsuffix = "-MAC";
+#elif defined(Q_WS_X11)
+ platformsuffix = "-X11";
+#elif defined(Q_WS_WIN32)
+ platformsuffix = "-WIN";
+#elif defined(Q_WS_QWS)
+ platformsuffix = "-QWS";
+#elif defined(Q_WS_S60)
+ platformsuffix = "-S60";
+#endif
+
+ QString testdata = file.left(index + 1) +
+ QString("data");
+ QString testname = file.mid(index + 1, file.length() - index - 5);
+
+ if (platformsuffix && (mode == UpdatePlatformVisuals || QFile::exists(testdata+QLatin1String(platformsuffix)+QDir::separator()+testname+".qml"))) {
+ QString platformdir = testdata + QLatin1String(platformsuffix);
+ if (mode == UpdatePlatformVisuals) {
+ Q_ASSERT(QDir().mkpath(platformdir));
+ // Copy from base
+ QDir dir(testdata,testname+".*");
+ dir.setFilter(QDir::Files);
+ QFileInfoList list = dir.entryInfoList();
+ for (int i = 0; i < list.size(); ++i) {
+ QFile in(list.at(i).filePath());
+ Q_ASSERT(in.open(QIODevice::ReadOnly));
+ QFile out(platformdir + QDir::separator() + list.at(i).fileName());
+ Q_ASSERT(out.open(QIODevice::WriteOnly));
+ out.write(in.readAll());
+ }
+ }
+ testdata = platformdir;
+ }
+
+ testdata += QDir::separator() + testname;
+
+ return testdata;
+}
+
+QStringList tst_qmlvisual::findQmlFiles(const QDir &d)
+{
+ QStringList rv;
+
+ QStringList files = d.entryList(QStringList() << QLatin1String("*.qml"),
+ QDir::Files);
+ foreach (const QString &file, files) {
+ if (file.at(0).isLower()) {
+ rv << d.absoluteFilePath(file);
+ }
+ }
+
+ QStringList dirs = d.entryList(QDir::Dirs | QDir::NoDotAndDotDot |
+ QDir::NoSymLinks);
+ foreach (const QString &dir, dirs) {
+ if (dir.left(4) == "data")
+ continue;
+
+ QDir sub = d;
+ sub.cd(dir);
+ rv << findQmlFiles(sub);
+ }
+
+ return rv;
+}
+
+void action(Mode mode, const QString &file)
+{
+ Q_ASSERT(mode != Test);
+
+ QString testdata = tst_qmlvisual::toTestScript(file,mode);
+
+ QStringList arguments;
+ switch (mode) {
+ case Test:
+ // Don't run qml
+ break;
+ case Record:
+ arguments << "-script" << testdata
+ << "-scriptopts" << "record,testimages,saveonexit"
+ << file;
+ break;
+ case RecordNoVisuals:
+ arguments << "-script" << testdata
+ << "-scriptopts" << "record,saveonexit"
+ << file;
+ break;
+ case RecordSnapshot:
+ arguments << "-script" << testdata
+ << "-scriptopts" << "record,testimages,snapshot,saveonexit"
+ << file;
+ break;
+ case Play:
+ arguments << "-script" << testdata
+ << "-scriptopts" << "play,testimages,testerror,exitoncomplete"
+ << file;
+ break;
+ case TestVisuals:
+ arguments << "-script" << testdata
+ << "-scriptopts" << "play"
+ << file;
+ break;
+ case UpdateVisuals:
+ case UpdatePlatformVisuals:
+ arguments << "-script" << testdata
+ << "-scriptopts" << "play,record,testimages,exitoncomplete,saveonexit"
+ << file;
+ break;
+ case RemoveVisuals:
+ arguments << "-script" << testdata
+ << "-scriptopts" << "play,record,exitoncomplete,saveonexit"
+ << file;
+ break;
+ }
+ if (!arguments.isEmpty()) {
+ QProcess p;
+ p.setProcessChannelMode(QProcess::ForwardedChannels);
+ p.start(tst_qmlvisual::viewer(), arguments);
+ p.waitForFinished();
+ }
+}
+
+void usage()
+{
+ fprintf(stderr, "\n");
+ fprintf(stderr, "QML related options\n");
+ fprintf(stderr, " -listtests : list all the tests seen by tst_qmlvisual, and then exit immediately\n");
+ fprintf(stderr, " -record file : record new test data for file\n");
+ fprintf(stderr, " -recordnovisuals file : record new test data for file, but ignore visuals\n");
+ fprintf(stderr, " -recordsnapshot file : record new snapshot for file (like record but only records a single frame and then exits)\n");
+ fprintf(stderr, " -play file : playback test data for file, printing errors\n");
+ fprintf(stderr, " -testvisuals file : playback test data for file, without errors\n");
+ fprintf(stderr, " -updatevisuals file : playback test data for file, accept new visuals for file\n");
+ fprintf(stderr, " -updateplatformvisuals file : playback test data for file, accept new visuals for file only on current platform (MacOSX/Win32/X11/QWS/S60)\n");
+ fprintf(stderr, "\n"
+ "Visual tests are recordings of manual interactions with a QML test,\n"
+ "that can then be run automatically. To record a new test, run:\n"
+ "\n"
+ " tst_qmlvisual -record yourtestdir/yourtest.qml\n"
+ "\n"
+ "This records everything you do (try to keep it short).\n"
+ "To play back a test, run:\n"
+ "\n"
+ " tst_qmlvisual -play yourtestdir/yourtest.qml\n"
+ "\n"
+ "Your test may include QML code to test itself, reporting any error to an\n"
+ "'error' property on the root object - the test will fail if this property\n"
+ "gets set to anything non-empty.\n"
+ "\n"
+ "If your test changes slightly but is still correct (check with -play), you\n"
+ "can update the visuals by running:\n"
+ "\n"
+ " tst_qmlvisual -updatevisuals yourtestdir/yourtest.qml\n"
+ "\n"
+ "If your test includes platform-sensitive visuals (eg. text in system fonts),\n"
+ "you should create platform-specific visuals, using -updateplatformvisuals\n"
+ "instead.\n"
+ "\n"
+ "If you ONLY wish to use the 'error' property, you can record your test with\n"
+ "-recordnovisuals, or discard existing visuals with -removevisuals; the test\n"
+ "will then only fail on a syntax error, crash, or non-empty 'error' property.\n"
+ );
+}
+
+int main(int argc, char **argv)
+{
+ QApplication app(argc, argv);
+
+ Mode mode = Test;
+ QString file;
+ bool showHelp = false;
+
+ int newArgc = 1;
+ char **newArgv = new char*[argc];
+ newArgv[0] = argv[0];
+
+ for (int ii = 1; ii < argc; ++ii) {
+ QString arg(argv[ii]);
+ if (arg == "-play" && (ii + 1) < argc) {
+ mode = Play;
+ file = argv[++ii];
+ } else if (arg == "-record" && (ii + 1) < argc) {
+ mode = Record;
+ file = argv[++ii];
+ } else if (arg == "-recordnovisuals" && (ii + 1) < argc) {
+ mode = RecordNoVisuals;
+ file = argv[++ii];
+ } else if (arg == "-recordsnapshot" && (ii + 1) < argc) {
+ mode = RecordSnapshot;
+ file = argv[++ii];
+ } else if (arg == "-testvisuals" && (ii + 1) < argc) {
+ mode = TestVisuals;
+ file = argv[++ii];
+ } else if (arg == "-removevisuals" && (ii + 1) < argc) {
+ mode = RemoveVisuals;
+ file = argv[++ii];
+ } else if (arg == "-updatevisuals" && (ii + 1) < argc) {
+ mode = UpdateVisuals;
+ file = argv[++ii];
+ } else if (arg == "-updateplatformvisuals" && (ii + 1) < argc) {
+ mode = UpdatePlatformVisuals;
+ file = argv[++ii];
+ } else {
+ newArgv[newArgc++] = argv[ii];
+ }
+
+ if (arg == "-help" || arg == "-?" || arg == "--help") {
+ atexit(usage);
+ showHelp = true;
+ }
+
+ if (arg == "-listtests") {
+ QStringList list = tst_qmlvisual::findQmlFiles(QDir(QT_TEST_SOURCE_DIR));
+ foreach (QString test, list) {
+ qWarning() << qPrintable(test);
+ }
+ return 0;
+ }
+ }
+
+ if (mode == Test || showHelp) {
+ tst_qmlvisual tc;
+ return QTest::qExec(&tc, newArgc, newArgv);
+ } else {
+ if (!file.endsWith(QLatin1String(".qml"))) {
+ qWarning() << "Error: Invalid file name (must end in .qml)";
+ return -1;
+ }
+ QDir d = QDir::current();
+ QString absFile = d.absoluteFilePath(file);
+ if (!QFile::exists(absFile)) {
+ qWarning() << "Error: File does not exist";
+ return -1;
+ }
+
+ action(mode, absFile);
+ return 0;
+ }
+}
+
+#include "tst_qmlvisual.moc"
diff --git a/tests/auto/declarative/visual/webview/embedding/data/nesting.0.png b/tests/auto/declarative/qmlvisual/webview/embedding/data/nesting.0.png
index 57de710..57de710 100644
--- a/tests/auto/declarative/visual/webview/embedding/data/nesting.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/embedding/data/nesting.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/embedding/data/nesting.qml b/tests/auto/declarative/qmlvisual/webview/embedding/data/nesting.qml
index 8d38ebe..8d38ebe 100644
--- a/tests/auto/declarative/visual/webview/embedding/data/nesting.qml
+++ b/tests/auto/declarative/qmlvisual/webview/embedding/data/nesting.qml
diff --git a/tests/auto/declarative/qmlvisual/webview/embedding/egg.qml b/tests/auto/declarative/qmlvisual/webview/embedding/egg.qml
new file mode 100644
index 0000000..711a747
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/embedding/egg.qml
@@ -0,0 +1,26 @@
+import Qt 4.6
+
+Item {
+ property variant period : 250
+ property variant color : "black"
+ id: root
+
+ Item {
+ x: root.width/2
+ y: root.height/2
+ Rectangle {
+ radius: width/2
+ color: root.color
+ x: -width/2
+ y: -height/2
+ width: root.width*1.5
+ height: root.height*1.5
+ }
+ rotation: NumberAnimation {
+ from: 0
+ to: 360
+ repeat: true
+ duration: root.period
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/webview/embedding/nesting.html b/tests/auto/declarative/qmlvisual/webview/embedding/nesting.html
index 6e81689..6e81689 100644
--- a/tests/auto/declarative/visual/webview/embedding/nesting.html
+++ b/tests/auto/declarative/qmlvisual/webview/embedding/nesting.html
diff --git a/tests/auto/declarative/qmlvisual/webview/embedding/nesting.qml b/tests/auto/declarative/qmlvisual/webview/embedding/nesting.qml
new file mode 100644
index 0000000..5e35306
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/embedding/nesting.qml
@@ -0,0 +1,9 @@
+import Qt 4.6
+import org.webkit 1.0
+
+WebView {
+ width: 300
+ height: 200
+ url: "nesting.html"
+ settings.pluginsEnabled: true
+}
diff --git a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.0.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.0.png
index 139aa9d..139aa9d 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.1.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.1.png
index e2e1644..e2e1644 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.1.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.2.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.2.png
index aa2fb82..aa2fb82 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.2.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.3.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.3.png
index 1976430..1976430 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.3.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.4.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.4.png
index c895a0a..c895a0a 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.4.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.5.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.5.png
index c895a0a..c895a0a 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.5.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.5.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.6.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.6.png
index c895a0a..c895a0a 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.6.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.6.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.7.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.7.png
index c895a0a..c895a0a 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.7.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.7.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.8.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.8.png
index c895a0a..c895a0a 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.8.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.8.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.qml b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.qml
index 957f9d5..957f9d5 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/evaluateJavaScript.qml
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/evaluateJavaScript.qml
diff --git a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.0.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.0.png
index b5c35d2..b5c35d2 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.1.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.1.png
index b5c35d2..b5c35d2 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.1.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.2.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.2.png
index 28403c8..28403c8 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.2.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.3.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.3.png
index 241b9f8..241b9f8 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.3.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.4.png b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.4.png
index 1877cb2..1877cb2 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.4.png
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.qml b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.qml
index 7fce295..7fce295 100644
--- a/tests/auto/declarative/visual/webview/javascript/data/windowObjects.qml
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/data/windowObjects.qml
diff --git a/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml b/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml
new file mode 100644
index 0000000..6c01382
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/evaluateJavaScript.qml
@@ -0,0 +1,32 @@
+import Qt 4.6
+import org.webkit 1.0
+
+Column {
+ WebView {
+ id: webview
+ width: 200
+ height: 200
+ url: "test-objects.html"
+ javaScriptWindowObjects:
+ QtObject {
+ property string text: btntext.text
+ WebView.windowObjectName: "qmltext"
+ onTextChanged: {
+ webview.evaluateJavaScript("{document.getElementById('button').value=window.qmltext.text}")
+ }
+ }
+ }
+ Row {
+ Text { text: "Input:" }
+ Rectangle {
+ width: btntext.width+10
+ height: btntext.height+10
+ border.color: "black"
+ TextInput {
+ id: btntext
+ text: "Blah"
+ cursorDelegate: Rectangle { width: 1; color: "red" }
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/webview/javascript/test-objects.html b/tests/auto/declarative/qmlvisual/webview/javascript/test-objects.html
index ed7d2ea..ed7d2ea 100644
--- a/tests/auto/declarative/visual/webview/javascript/test-objects.html
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/test-objects.html
diff --git a/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml b/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml
new file mode 100644
index 0000000..8c52aff
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/javascript/windowObjects.qml
@@ -0,0 +1,27 @@
+import Qt 4.6
+import org.webkit 1.0
+
+Column {
+ WebView {
+ width: 200
+ height: 200
+ url: "test-objects.html"
+ javaScriptWindowObjects:
+ QtObject {
+ property string text: btntext.text
+ WebView.windowObjectName: "qmltext"
+ }
+ }
+ Row {
+ Text { text: "Input:" }
+ Rectangle {
+ width: btntext.width+10
+ height: btntext.height+10
+ border.color: "black"
+ TextInput {
+ id: btntext
+ text: "Blah"
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/webview/settings/data/fontFamily.0.png b/tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.0.png
index 7721e75..7721e75 100644
--- a/tests/auto/declarative/visual/webview/settings/data/fontFamily.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/settings/data/fontFamily.qml b/tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.qml
index 195c3ba..195c3ba 100644
--- a/tests/auto/declarative/visual/webview/settings/data/fontFamily.qml
+++ b/tests/auto/declarative/qmlvisual/webview/settings/data/fontFamily.qml
diff --git a/tests/auto/declarative/visual/webview/settings/data/fontSize.0.png b/tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.0.png
index 95196a1..95196a1 100644
--- a/tests/auto/declarative/visual/webview/settings/data/fontSize.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/settings/data/fontSize.qml b/tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.qml
index 438ffa5..438ffa5 100644
--- a/tests/auto/declarative/visual/webview/settings/data/fontSize.qml
+++ b/tests/auto/declarative/qmlvisual/webview/settings/data/fontSize.qml
diff --git a/tests/auto/declarative/visual/webview/settings/data/noAutoLoadImages.0.png b/tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.0.png
index 48920a2..48920a2 100644
--- a/tests/auto/declarative/visual/webview/settings/data/noAutoLoadImages.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/settings/data/noAutoLoadImages.1.png b/tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.1.png
index 48920a2..48920a2 100644
--- a/tests/auto/declarative/visual/webview/settings/data/noAutoLoadImages.1.png
+++ b/tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/settings/data/noAutoLoadImages.qml b/tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.qml
index ead5c3b..ead5c3b 100644
--- a/tests/auto/declarative/visual/webview/settings/data/noAutoLoadImages.qml
+++ b/tests/auto/declarative/qmlvisual/webview/settings/data/noAutoLoadImages.qml
diff --git a/tests/auto/declarative/visual/webview/settings/data/setFontFamily.0.png b/tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.0.png
index f3c621a..f3c621a 100644
--- a/tests/auto/declarative/visual/webview/settings/data/setFontFamily.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/settings/data/setFontFamily.qml b/tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.qml
index cf74d42..cf74d42 100644
--- a/tests/auto/declarative/visual/webview/settings/data/setFontFamily.qml
+++ b/tests/auto/declarative/qmlvisual/webview/settings/data/setFontFamily.qml
diff --git a/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml b/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml
new file mode 100644
index 0000000..f547b0e
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/settings/fontFamily.qml
@@ -0,0 +1,17 @@
+import Qt 4.6
+import org.webkit 1.0
+
+WebView {
+ id: web
+ width: 200
+ height: 200
+ Column {
+ anchors.fill: parent
+ Text { text: "standard: " + web.settings.standardFontFamily }
+ Text { text: "fixed: " + web.settings.fixedFontFamily }
+ Text { text: "serif: " + web.settings.serifFontFamily }
+ Text { text: "sansserif: " + web.settings.sansSerifFontFamily }
+ Text { text: "cursive: " + web.settings.cursiveFontFamily }
+ Text { text: "fantasy: " + web.settings.fantasyFontFamily }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml b/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml
new file mode 100644
index 0000000..7eaa96b
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/settings/fontSize.qml
@@ -0,0 +1,71 @@
+import Qt 4.6
+import org.webkit 1.0
+
+Grid {
+ columns: 3
+ Rectangle {
+ Text { color: "green"; text: "Normal" }
+ border.color: "black"
+ width: 200
+ height: 200
+ WebView {
+ anchors.fill: parent
+ url: "test.html"
+ }
+ }
+ Rectangle {
+ Text { color: "green"; text: "Big" }
+ border.color: "black"
+ width: 200
+ height: 200
+ WebView {
+ anchors.fill: parent
+ url: "test.html"
+ settings.minimumFontSize: 20
+ }
+ }
+ Rectangle {
+ Text { color: "green"; text: "Big (logical)" }
+ border.color: "black"
+ width: 200
+ height: 200
+ WebView {
+ anchors.fill: parent
+ url: "test.html"
+ settings.minimumLogicalFontSize: 20
+ }
+ }
+ Rectangle {
+ Text { color: "green"; text: "Bigger" }
+ border.color: "black"
+ width: 200
+ height: 200
+ WebView {
+ anchors.fill: parent
+ url: "test.html"
+ settings.minimumFontSize: 30
+ }
+ }
+ Rectangle {
+ Text { color: "green"; text: "Small (except fixed)" }
+ border.color: "black"
+ width: 200
+ height: 200
+ WebView {
+ anchors.fill: parent
+ url: "test.html"
+ settings.defaultFontSize: 8
+ }
+ }
+ Rectangle {
+ Text { color: "green"; text: "Small fixed" }
+ border.color: "black"
+ width: 200
+ height: 200
+ WebView {
+ anchors.fill: parent
+ url: "test.html"
+ settings.defaultFixedFontSize: 8
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml b/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml
new file mode 100644
index 0000000..67f1633
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/settings/noAutoLoadImages.qml
@@ -0,0 +1,21 @@
+import Qt 4.6
+import org.webkit 1.0
+
+Grid {
+ columns: 2
+ Rectangle {
+ Text { id: label; x:10; y:170; color: "green"; text: "No image" }
+ border.color: "black"
+ width: 200
+ height: 200
+ WebView {
+ anchors.fill: parent
+ settings.autoLoadImages: false
+ url: "test-img.html"
+ MouseArea {
+ anchors.fill: parent
+ onClicked: { parent.settings.autoLoadImages=true; label.text=""; parent.reload.trigger() }
+ }
+ }
+ }
+}
diff --git a/tests/auto/declarative/qmlvisual/webview/settings/qtlogo.png b/tests/auto/declarative/qmlvisual/webview/settings/qtlogo.png
new file mode 100644
index 0000000..399bd0b
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/settings/qtlogo.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml b/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml
new file mode 100644
index 0000000..823469f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/settings/setFontFamily.qml
@@ -0,0 +1,11 @@
+import Qt 4.6
+import org.webkit 1.0
+
+WebView {
+ url: "test.html"
+ width: 300
+ height: 300
+ settings.standardFontFamily: font.name
+ // WebKit doesn't seem to honour any other FontFamily settings
+ FontLoader { id: font; source: "tarzeau_ocr_a.ttf" }
+}
diff --git a/tests/auto/declarative/visual/webview/settings/tarzeau_ocr_a.ttf b/tests/auto/declarative/qmlvisual/webview/settings/tarzeau_ocr_a.ttf
index cf93f96..cf93f96 100644
--- a/tests/auto/declarative/visual/webview/settings/tarzeau_ocr_a.ttf
+++ b/tests/auto/declarative/qmlvisual/webview/settings/tarzeau_ocr_a.ttf
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/settings/test-img.html b/tests/auto/declarative/qmlvisual/webview/settings/test-img.html
index cdd63ac..cdd63ac 100644
--- a/tests/auto/declarative/visual/webview/settings/test-img.html
+++ b/tests/auto/declarative/qmlvisual/webview/settings/test-img.html
diff --git a/tests/auto/declarative/visual/webview/settings/test.html b/tests/auto/declarative/qmlvisual/webview/settings/test.html
index 3265e20..3265e20 100644
--- a/tests/auto/declarative/visual/webview/settings/test.html
+++ b/tests/auto/declarative/qmlvisual/webview/settings/test.html
diff --git a/tests/auto/declarative/visual/webview/zooming/data/pageWidth.qml b/tests/auto/declarative/qmlvisual/webview/zooming/data/pageWidth.qml
index 1a993e1..1a993e1 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/pageWidth.qml
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/pageWidth.qml
diff --git a/tests/auto/declarative/visual/webview/zooming/data/renderControl.0.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.0.png
index 38df70e..38df70e 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/renderControl.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/renderControl.qml b/tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.qml
index d3c5890..d3c5890 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/renderControl.qml
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/renderControl.qml
diff --git a/tests/auto/declarative/visual/webview/zooming/data/resolution.0.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.0.png
index 7e989c6..7e989c6 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/resolution.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/resolution.1.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.1.png
index 60ccc0b..60ccc0b 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/resolution.1.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/resolution.2.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.2.png
index 6c22494..6c22494 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/resolution.2.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/resolution.3.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.3.png
index 71dd56f..71dd56f 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/resolution.3.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/resolution.4.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.4.png
index ce03cb6..ce03cb6 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/resolution.4.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.4.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/resolution.qml b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.qml
index 0a2b8db..0a2b8db 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/resolution.qml
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/resolution.qml
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zoomTextOnly.0.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.0.png
index 4b9abb4..4b9abb4 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/zoomTextOnly.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zoomTextOnly.1.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.1.png
index 5ce9787..5ce9787 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/zoomTextOnly.1.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zoomTextOnly.qml b/tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.qml
index aaa7583..aaa7583 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/zoomTextOnly.qml
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/zoomTextOnly.qml
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.0.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.0.png
index aaab35d..aaab35d 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/zooming.0.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.0.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.1.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.1.png
index aaab35d..aaab35d 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/zooming.1.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.1.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.2.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.2.png
index aaab35d..aaab35d 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/zooming.2.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.2.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.3.png b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.3.png
index aaab35d..aaab35d 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/zooming.3.png
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.3.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/data/zooming.qml b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.qml
index ad83800..ad83800 100644
--- a/tests/auto/declarative/visual/webview/zooming/data/zooming.qml
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/data/zooming.qml
diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml b/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml
new file mode 100644
index 0000000..4a876dd
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/pageWidth.qml
@@ -0,0 +1,10 @@
+import Qt 4.6
+import org.webkit 1.0
+
+WebView {
+ width: 200
+ height: 250
+ url: "resolution.html"
+ webPageWidth: 400
+ preferredWidth: 200
+}
diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/qtlogo.png b/tests/auto/declarative/qmlvisual/webview/zooming/qtlogo.png
new file mode 100644
index 0000000..399bd0b
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/qtlogo.png
Binary files differ
diff --git a/tests/auto/declarative/visual/webview/zooming/renderControl.html b/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.html
index 1a01a33..1a01a33 100644
--- a/tests/auto/declarative/visual/webview/zooming/renderControl.html
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.html
diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml b/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml
new file mode 100644
index 0000000..52a569e
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/renderControl.qml
@@ -0,0 +1,21 @@
+import Qt 4.6
+import org.webkit 1.0
+
+Rectangle {
+ width: 200
+ height: 250
+ clip: true
+ WebView {
+ id: webview
+ width: 400
+ url: "renderControl.html"
+ SequentialAnimation on x {
+ loops: Animation.Infinite
+ NumberAnimation { from: 100; to: 0; duration: 200 }
+ PropertyAction { target: webview; property: "renderingEnabled"; value: false }
+ NumberAnimation { from: 0; to: -100; duration: 200 }
+ PropertyAction { target: webview; property: "renderingEnabled"; value: true }
+ NumberAnimation { from: -100; to: 100; duration: 400 }
+ }
+ }
+}
diff --git a/tests/auto/declarative/visual/webview/zooming/resolution.html b/tests/auto/declarative/qmlvisual/webview/zooming/resolution.html
index 75b1e3f..75b1e3f 100644
--- a/tests/auto/declarative/visual/webview/zooming/resolution.html
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/resolution.html
diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml b/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml
new file mode 100644
index 0000000..d6c35d4
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/resolution.qml
@@ -0,0 +1,16 @@
+import Qt 4.6
+import org.webkit 1.0
+
+WebView {
+ width: 200 * zoomFactor
+ height: 250 * zoomFactor
+ scale: 1/zoomFactor
+ url: "resolution.html"
+ SequentialAnimation on zoomFactor {
+ loops: Animation.Infinite
+ NumberAnimation { from: 1; to: 0.25; duration: 2000 }
+ NumberAnimation { from: 0.25; to: 1; duration: 2000 }
+ NumberAnimation { from: 1; to: 5; duration: 2000 }
+ NumberAnimation { from: 5; to: 1; duration: 2000 }
+ }
+}
diff --git a/tests/auto/declarative/visual/webview/zooming/zoomTextOnly.html b/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.html
index 4997712..4997712 100644
--- a/tests/auto/declarative/visual/webview/zooming/zoomTextOnly.html
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.html
diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml b/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml
new file mode 100644
index 0000000..741450f
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/zoomTextOnly.qml
@@ -0,0 +1,14 @@
+import Qt 4.6
+import org.webkit 1.0
+
+WebView {
+ width: 200
+ height: 250
+ url: "zoomTextOnly.html"
+ settings.zoomTextOnly: true
+ SequentialAnimation on zoomFactor {
+ loops: Animation.Infinite
+ NumberAnimation { from: 2; to: 0.25; duration: 1000 }
+ NumberAnimation { from: 0.25; to: 2; duration: 1000 }
+ }
+}
diff --git a/tests/auto/declarative/visual/webview/zooming/zooming.html b/tests/auto/declarative/qmlvisual/webview/zooming/zooming.html
index 4e91035..4e91035 100644
--- a/tests/auto/declarative/visual/webview/zooming/zooming.html
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/zooming.html
diff --git a/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml b/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml
new file mode 100644
index 0000000..adbd7a5
--- /dev/null
+++ b/tests/auto/declarative/qmlvisual/webview/zooming/zooming.qml
@@ -0,0 +1,18 @@
+import Qt 4.6
+import org.webkit 1.0
+
+// Note that zooming is better done using zoomFactor and careful
+// control of rendering to avoid excessive re-rendering during
+// zoom animations. This test is written for simplicity.
+WebView {
+ width: 200
+ height: 250
+ Behavior on x { NumberAnimation { } }
+ Behavior on y { NumberAnimation { } }
+ Behavior on scale { NumberAnimation { } }
+ url: "zooming.html"
+ preferredWidth: width
+ preferredHeight: height
+ onDoubleClick: {console.log(clickX,clickY);heuristicZoom(clickX,clickY,2)}
+ onZoomTo: {console.log(zoom);scale=zoom;x=width/2-centerX;y=height/2-centerY}
+}
diff --git a/tests/auto/declarative/qpacketprotocol/qpacketprotocol.pro b/tests/auto/declarative/qpacketprotocol/qpacketprotocol.pro
index f42cecc..7ffda93 100644
--- a/tests/auto/declarative/qpacketprotocol/qpacketprotocol.pro
+++ b/tests/auto/declarative/qpacketprotocol/qpacketprotocol.pro
@@ -5,3 +5,5 @@ macx:CONFIG -= app_bundle
HEADERS += ../shared/debugutil_p.h
SOURCES += tst_qpacketprotocol.cpp \
../shared/debugutil.cpp
+
+CONFIG += parallel_test
diff --git a/tests/auto/declarative/runall.sh b/tests/auto/declarative/runall.sh
index 39485d3..62e03e3 100755
--- a/tests/auto/declarative/runall.sh
+++ b/tests/auto/declarative/runall.sh
@@ -41,37 +41,60 @@
##
############################################################################/
-Xnest :7 2>/dev/null &
-sleep 1
-trap "kill $!" EXIT
-export DISPLAY=:7
+if [ "$(uname)" = Linux ]
+then
+ Xnest :7 2>/dev/null &
+ sleep 1
+ trap "kill $!" EXIT
+ export DISPLAY=:7
+ export LANG=en_US
+ kwin 2>/dev/null &
+ sleep 1
+fi
-( make -k -j1 install 2>&1;
- for exe in $(make install | sed -n 's/^install .* "\([^"]*qt4\/tst_[^"]*\)".*/\1/p')
- do
- $exe
- done
-) |
+function filter
+{
+ exe=$1
+ skip=0
while read line
do
- case "$line" in
- make*Error) echo "$line";;
- make*Stop) echo "$line";;
- make*) ;;
- install*) ;;
- */qmake*) ;;
- */bin/moc*) ;;
- *targ.debug*) ;;
- g++*) ;;
- cd*) ;;
- PASS*) ;;
- QDEBUG*) ;;
- Makefile*) ;;
- Config*) ;;
- Totals*) ;;
- \**) ;;
- ./*) ;;
- *) echo "$line"
- esac
+ if [ $skip != 0 ]
+ then
+ let skip=skip-1
+ else
+ case "$line" in
+ make*Error) echo "$line";;
+ make*Stop) echo "$line";;
+ /*/bin/make*) ;;
+ make*) ;;
+ install*) ;;
+ QDeclarativeDebugServer:*Waiting*) ;;
+ QDeclarativeDebugServer:*Connection*) ;;
+ */qmake*) ;;
+ */bin/moc*) ;;
+ *targ.debug*) ;;
+ g++*) ;;
+ cd*) ;;
+ XFAIL*) skip=1;;
+ SKIP*) skip=1;;
+ PASS*) ;;
+ QDEBUG*) ;;
+ Makefile*) ;;
+ Config*) ;;
+ Totals*) ;;
+ \**) ;;
+ ./*) ;;
+ *tst_*) echo "$line" ;;
+ *) echo "$exe: $line"
+ esac
+ fi
done
+}
+
+make -k -j1 install 2>&1 | filter build
+for exe in $(make install | sed -n 's/^install .* "\([^"]*qt4\/tst_[^"]*\)".*/\1/p')
+do
+ echo $exe
+ $exe 2>&1 | filter $exe
+done
diff --git a/tests/auto/declarative/sql/data/error-creation.js b/tests/auto/declarative/sql/data/error-creation.js
deleted file mode 100644
index 92245fd..0000000
--- a/tests/auto/declarative/sql/data/error-creation.js
+++ /dev/null
@@ -1,12 +0,0 @@
-function test() {
- var r="transaction_not_finished";
- try {
- var db = openDatabaseSync("QmlTestDB-creation", "2.0", "Test database from Qt autotests", 1000000);
- } catch (err) {
- if (err.message == "SQL: database version mismatch")
- r = "passed";
- else
- r = "WRONG ERROR="+err.message;
- }
- return r;
-}
diff --git a/tests/auto/declarative/sql/sql.pro b/tests/auto/declarative/sql/sql.pro
deleted file mode 100644
index 4217eac..0000000
--- a/tests/auto/declarative/sql/sql.pro
+++ /dev/null
@@ -1,9 +0,0 @@
-load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative
-QT += sql script
-macx:CONFIG -= app_bundle
-
-SOURCES += tst_sql.cpp
-
-# Define SRCDIR equal to test's source directory
-DEFINES += SRCDIR=\\\"$$PWD\\\"
diff --git a/tests/auto/declarative/sql/tst_sql.cpp b/tests/auto/declarative/sql/tst_sql.cpp
deleted file mode 100644
index e8a5e0c..0000000
--- a/tests/auto/declarative/sql/tst_sql.cpp
+++ /dev/null
@@ -1,237 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <qtest.h>
-#include "../../../shared/util.h"
-#include <QtDeclarative/qdeclarativeengine.h>
-#include <QtDeclarative/qdeclarativecomponent.h>
-#include <private/qdeclarativetext_p.h>
-#include <private/qdeclarativeengine_p.h>
-#include <QtCore/qcryptographichash.h>
-#include <QtWebKit/qwebpage.h>
-#include <QtWebKit/qwebframe.h>
-#include <QtWebKit/qwebdatabase.h>
-#include <QtWebKit/qwebsecurityorigin.h>
-#include <QtSql/qsqldatabase.h>
-#include <QtCore/qdir.h>
-#include <QtCore/qfile.h>
-
-class tst_sql : public QObject
-{
- Q_OBJECT
-public:
- tst_sql()
- {
- qApp->setApplicationName("tst_sql");
- qApp->setOrganizationName("Nokia");
- qApp->setOrganizationDomain("nokia.com");
- engine = new QDeclarativeEngine;
- }
-
- ~tst_sql()
- {
- delete engine;
- }
-
-private slots:
- void initTestCase();
-
- void checkDatabasePath();
-
- void testQml_data();
- void testQml();
- void testQml_cleanopen_data();
- void testQml_cleanopen();
- void totalDatabases();
-
- void cleanupTestCase();
-
-private:
- QString dbDir() const;
- QDeclarativeEngine *engine;
-};
-
-class QWebPageWithJavaScriptConsoleMessages : public QWebPage {
-public:
- void javaScriptConsoleMessage(const QString& message, int lineNumber, const QString& sourceID)
- {
- qWarning() << sourceID << ":" << lineNumber << ":" << message;
- }
-};
-
-void removeRecursive(const QString& dirname)
-{
- QDir dir(dirname);
- QFileInfoList entries(dir.entryInfoList(QDir::Dirs|QDir::Files|QDir::NoDotAndDotDot));
- for (int i = 0; i < entries.count(); ++i)
- if (entries[i].isDir())
- removeRecursive(entries[i].filePath());
- else
- dir.remove(entries[i].fileName());
- QDir().rmdir(dirname);
-}
-
-void tst_sql::initTestCase()
-{
- removeRecursive(dbDir());
- QDir().mkpath(dbDir());
-}
-
-void tst_sql::cleanupTestCase()
-{
- removeRecursive(dbDir());
-}
-
-QString tst_sql::dbDir() const
-{
- static QString tmpd = QDir::tempPath()+"/tst_sql_output-"
- + QDateTime::currentDateTime().toString(QLatin1String("yyyyMMddhhmmss"));
- return tmpd;
-}
-
-void tst_sql::checkDatabasePath()
-{
- // Check default storage path (we can't use it since we don't want to mess with user's data)
- QVERIFY(engine->offlineStoragePath().contains("tst_sql"));
- QVERIFY(engine->offlineStoragePath().contains("OfflineStorage"));
-}
-
-static const int total_databases_created_by_tests = 12;
-void tst_sql::testQml_data()
-{
- QTest::addColumn<QString>("jsfile"); // The input file
-
- // Each test should use a newly named DB to avoid inter-test dependencies
- QTest::newRow("creation") << "data/creation.js";
- QTest::newRow("creation-a") << "data/creation-a.js";
- QTest::newRow("creation") << "data/creation.js";
- QTest::newRow("error-creation") << "data/error-creation.js"; // re-uses above DB
- QTest::newRow("changeversion") << "data/changeversion.js";
- QTest::newRow("readonly") << "data/readonly.js";
- QTest::newRow("readonly-error") << "data/readonly-error.js";
- QTest::newRow("selection") << "data/selection.js";
- QTest::newRow("selection-bindnames") << "data/selection-bindnames.js";
- QTest::newRow("iteration") << "data/iteration.js";
- QTest::newRow("iteration-forwardonly") << "data/iteration-forwardonly.js";
- QTest::newRow("error-a") << "data/error-a.js";
- QTest::newRow("error-notransaction") << "data/error-notransaction.js";
- QTest::newRow("error-outsidetransaction") << "data/error-outsidetransaction.js"; // reuse above
- QTest::newRow("reopen1") << "data/reopen1.js";
- QTest::newRow("reopen2") << "data/reopen2.js"; // re-uses above DB
-
- // If you add a test, you should usually use a new database in the
- // test - in which case increment total_databases_created_by_tests above.
-}
-
-/*
-void tst_sql::validateAgainstWebkit()
-{
- // Validates tests against WebKit (HTML5) support.
- //
- QFETCH(QString, jsfile);
- QFETCH(QString, result);
- QFETCH(int, databases);
-
- QFile f(jsfile);
- QVERIFY(f.open(QIODevice::ReadOnly));
- QString js=f.readAll();
-
- QWebPageWithJavaScriptConsoleMessages webpage;
- webpage.settings()->setOfflineStoragePath(dbDir());
- webpage.settings()->setAttribute(QWebSettings::OfflineStorageDatabaseEnabled, true);
-
- QEXPECT_FAIL("","WebKit doesn't support openDatabaseSync yet", Continue);
- QCOMPARE(webpage.mainFrame()->evaluateJavaScript(js).toString(),result);
-
- QTest::qWait(100); // WebKit crashes if you quit it too fast
-
- QWebSecurityOrigin origin = webpage.mainFrame()->securityOrigin();
- QList<QWebDatabase> dbs = origin.databases();
- QCOMPARE(dbs.count(), databases);
-}
-*/
-
-void tst_sql::testQml()
-{
- // Tests QML SQL Database support with tests
- // that have been validated against Webkit.
- //
- QFETCH(QString, jsfile);
-
- QString qml=
- "import Qt 4.6\n"
- "Text { Script { source: \""+jsfile+"\" } text: test() }";
-
- engine->setOfflineStoragePath(dbDir());
- QDeclarativeComponent component(engine);
- component.setData(qml.toUtf8(), QUrl::fromLocalFile(SRCDIR "/empty.qml")); // just a file for relative local imports
- QDeclarativeText *text = qobject_cast<QDeclarativeText*>(component.create());
- QVERIFY(text != 0);
- QCOMPARE(text->text(),QString("passed"));
-}
-
-void tst_sql::testQml_cleanopen_data()
-{
- QTest::addColumn<QString>("jsfile"); // The input file
- QTest::newRow("reopen1") << "data/reopen1.js";
- QTest::newRow("reopen2") << "data/reopen2.js";
- QTest::newRow("error-creation") << "data/error-creation.js"; // re-uses creation DB
-}
-
-void tst_sql::testQml_cleanopen()
-{
- // Same as testQml, but clean connections between tests,
- // making it more like the tests are running in new processes.
- testQml();
-
- QDeclarativeEnginePrivate::getScriptEngine(engine)->collectGarbage(); // close databases
- foreach (QString dbname, QSqlDatabase::connectionNames()) {
- QSqlDatabase::removeDatabase(dbname);
- }
-}
-
-void tst_sql::totalDatabases()
-{
- QCOMPARE(QDir(dbDir()+"/Databases").entryInfoList(QDir::Files|QDir::NoDotAndDotDot).count(), total_databases_created_by_tests*2);
-}
-
-QTEST_MAIN(tst_sql)
-
-#include "tst_sql.moc"
diff --git a/tests/auto/declarative/visual/ListView/basic3.qml b/tests/auto/declarative/visual/ListView/basic3.qml
deleted file mode 100644
index 05ac358..0000000
--- a/tests/auto/declarative/visual/ListView/basic3.qml
+++ /dev/null
@@ -1,29 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- color: "blue"
- width: 200
- height: 300
- id: page
- Listmodel {
- id: model
- ListElement {
- name: "January"
- }
- ListElement {
- name: "February"
- }
- }
- ListView {
- anchors.fill: parent
- model: model
- delegate: Rectangle {
- color: "red"
- width: 100
- height: 100
- Text {
- text: name
- }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/ListView/basic4.qml b/tests/auto/declarative/visual/ListView/basic4.qml
deleted file mode 100644
index 3628bd3..0000000
--- a/tests/auto/declarative/visual/ListView/basic4.qml
+++ /dev/null
@@ -1,33 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- color: "blue"
- width: 200
- height: 300
- id: page
- Listmodel {
- id: model
- ListElement {
- name: "January"
- }
- ListElement {
- name: "February"
- }
- }
- Component {
- id: delegate
- Rectangle {
- color: "red"
- width: 100
- height: 100
- Text {
- text: name
- }
- }
- }
- ListView {
- anchors.fill: parent
- model: model
- delegate: delegate
- }
-}
diff --git a/tests/auto/declarative/visual/Package_Views/packageviews.qml b/tests/auto/declarative/visual/Package_Views/packageviews.qml
deleted file mode 100644
index cf3f9f7..0000000
--- a/tests/auto/declarative/visual/Package_Views/packageviews.qml
+++ /dev/null
@@ -1,89 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- id: root
- width: 200
- height: 200
- color: "black"
-
- VisualDatamodel {
- id: model
- model: Listmodel {
- ListElement { itemColor: "red" }
- ListElement { itemColor: "green" }
- ListElement { itemColor: "blue" }
- ListElement { itemColor: "orange" }
- ListElement { itemColor: "purple" }
- ListElement { itemColor: "yellow" }
- ListElement { itemColor: "slategrey" }
- ListElement { itemColor: "cyan" }
- ListElement { itemColor: "red" }
- ListElement { itemColor: "green" }
- ListElement { itemColor: "blue" }
- ListElement { itemColor: "orange" }
- ListElement { itemColor: "purple" }
- ListElement { itemColor: "yellow" }
- ListElement { itemColor: "slategrey" }
- ListElement { itemColor: "cyan" }
- }
- delegate: Package {
- Rectangle {
- id: listItem; Package.name: "list"; width:root.width/2; height: 50; color: "transparent"; border.color: "white"
- MouseArea {
- anchors.fill: parent
- onClicked: myState.state = myState.state == "list" ? "grid" : "list"
- }
- }
- Rectangle {
- id: gridItem; Package.name: "grid"; width:50; height: 50; color: "transparent"; border.color: "white"
- MouseArea {
- anchors.fill: parent
- onClicked: myState.state = myState.state == "list" ? "grid" : "list"
- }
- }
- Rectangle { id: myContent; width:50; height: 50; color: itemColor }
-
- StateGroup {
- id: myState
- state: "list"
- states: [
- State {
- name: "list"
- ParentChange { target: myContent; parent: listItem }
- PropertyChanges { target: myContent; x: 0; y: 0; width: listItem.width }
- },
- State {
- name: "grid"
- ParentChange { target: myContent; parent: gridItem }
- PropertyChanges { target: myContent; x: 0; y: 0; width: gridItem.width }
- }
- ]
-
- transitions: [
- Transition {
- from: "*"; to: "*"
- SequentialAnimation {
- ParentAction{}
- NumberAnimation { properties: "x,y,width"; easing.type: "InOutQuad" }
- }
- }
- ]
- }
- }
- }
-
- ListView {
- width: parent.width/2
- height: parent.height
- model: model.parts.list
- }
-
- GridView {
- x: parent.width/2
- width: parent.width/2
- cellWidth: 50
- cellHeight: 50
- height: parent.height
- model: model.parts.grid
- }
-}
diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png
deleted file mode 100644
index f4a6cfd..0000000
--- a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.0.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png
deleted file mode 100644
index f4a6cfd..0000000
--- a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png
deleted file mode 100644
index f4a6cfd..0000000
--- a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml b/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml
deleted file mode 100644
index 900bf5c..0000000
--- a/tests/auto/declarative/visual/animation/colorAnimation/data/colorAnimation.qml
+++ /dev/null
@@ -1,951 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "acc736435c9f84aa82941ba561bc5dbc"
- }
- 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: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 624
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 640
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 656
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 672
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 688
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 704
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 720
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 736
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 752
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 768
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 784
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 800
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 816
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 832
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 848
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 864
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 880
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 896
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 912
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 928
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 944
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 960
- image: "colorAnimation.0.png"
- }
- Frame {
- msec: 976
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 992
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1008
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1024
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1040
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1056
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1072
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1088
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1104
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1120
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1136
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1152
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1168
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1184
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1200
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1216
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1232
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1248
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1264
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1280
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1296
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1312
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1328
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1344
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1360
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1376
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1392
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1408
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1424
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1440
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1456
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1472
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1488
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1504
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1520
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1536
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1552
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1568
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1584
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1600
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1616
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1632
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1648
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1664
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1680
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1696
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1712
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1728
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1744
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1760
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1776
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1792
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1808
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1824
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1840
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1856
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1872
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1888
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1904
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1920
- image: "colorAnimation.1.png"
- }
- Frame {
- msec: 1936
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1952
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1968
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 1984
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2000
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2016
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2032
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2048
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2064
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2080
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2096
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2112
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2128
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2144
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2160
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2176
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2192
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2208
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2224
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2240
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2256
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2272
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2288
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2304
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2320
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2336
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2352
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2368
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2384
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2400
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2416
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2432
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2448
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2464
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2480
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2496
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2512
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2528
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2544
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2560
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2576
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2592
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- 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
- image: "colorAnimation.2.png"
- }
- Frame {
- msec: 2896
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2912
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2928
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2944
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2960
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2976
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 2992
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3008
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3024
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3040
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3056
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3072
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3088
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3104
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3120
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3136
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3152
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3168
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3184
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3200
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3216
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3232
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3248
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3264
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3280
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3296
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3312
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3328
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3344
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3360
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3376
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3392
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3408
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3424
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3440
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3456
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3472
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3488
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3504
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3520
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3536
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3552
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3568
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3584
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3600
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3616
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3632
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3648
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3664
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
- Frame {
- msec: 3680
- hash: "8c0fcda4f8956394c53fc4ba18caa850"
- }
-}
diff --git a/tests/auto/declarative/visual/animation/loop/loop.qml b/tests/auto/declarative/visual/animation/loop/loop.qml
deleted file mode 100644
index f6049ae..0000000
--- a/tests/auto/declarative/visual/animation/loop/loop.qml
+++ /dev/null
@@ -1,24 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- id: wrapper
- width: 600
- height: 100
-
- Rectangle {
- id: redRect
- width: 100; height: 100
- color: Qt.rgba(1,0,0)
- /* This should produce an animation that starts at 0, animates smoothly
- to 100, jumps to 200, animates smoothly to 400, animates smoothly
- back to 100, jumps to 200, and so on.
- */
- x: SequentialAnimation {
- repeat: true
- NumberAnimation { to: 100; duration: 1000 }
- NumberAnimation { from: 200; to: 400; duration: 1000 }
- }
-
- }
-
-}
diff --git a/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml b/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml
deleted file mode 100644
index 1980b91..0000000
--- a/tests/auto/declarative/visual/animation/parallelAnimation/parallelAnimation.qml
+++ /dev/null
@@ -1,43 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 400; height: 200
- Rectangle {
- id: redRect
- width: 100; height: 100
- color: "red"
- }
- Rectangle {
- id: redRect2
- width: 100; height: 100
- y: 100
- color: "red"
- }
-
- MouseArea {
- anchors.fill: parent
- onClicked: parent.state = "state1"
- }
-
- states: State {
- name: "state1"
- PropertyChanges {
- target: redRect
- x: 300
- color: "purple"
- }
- PropertyChanges {
- target: redRect2
- x: 300
- color: "purple"
- }
- }
-
- transitions: Transition {
- PropertyAnimation { targets: redRect; properties: "x,color"; duration: 300 }
- ParallelAnimation {
- NumberAnimation { targets: redRect2; properties: "x"; duration: 300 }
- ColorAnimation { targets: redRect2; properties: "color"; duration: 300 }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png
deleted file mode 100644
index a0032f8..0000000
--- a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.0.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png
deleted file mode 100644
index 958b6af..0000000
--- a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png
deleted file mode 100644
index 3a1811f..0000000
--- a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png
deleted file mode 100644
index 36064c2..0000000
--- a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.3.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png
deleted file mode 100644
index c493a1d..0000000
--- a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.4.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png
deleted file mode 100644
index c493a1d..0000000
--- a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.5.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml b/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml
deleted file mode 100644
index de27af7..0000000
--- a/tests/auto/declarative/visual/animation/parentAction/data/parentAction.qml
+++ /dev/null
@@ -1,1207 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 32
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 48
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 64
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 80
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 96
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 112
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 128
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 144
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 160
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 176
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 192
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 208
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 224
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 240
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 256
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 272
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 288
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 304
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 320
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 336
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 352
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 368
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 384
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 400
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 416
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 432
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 448
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 464
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 480
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 496
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 512
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 528
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 544
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 560
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 576
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 150; y: 274
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 592
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 608
- hash: "a7bb3d44c8bcf403906afa86f5bc3062"
- }
- Frame {
- msec: 624
- hash: "2b366e6009e70fa0227a1fee662fe1bf"
- }
- Frame {
- msec: 640
- hash: "c12869fb8002aa36c3bfad7fd0979240"
- }
- Frame {
- msec: 656
- hash: "56c583e77b5e0a8707e977dc937c2acf"
- }
- Frame {
- msec: 672
- hash: "6b191d57a45a3f2d010a7f44064e409a"
- }
- Frame {
- msec: 688
- hash: "9457ee33c999a63fa4bd4db5c3ceac8b"
- }
- Frame {
- msec: 704
- hash: "446b23b662640ad6ad8c456f956fe73a"
- }
- Frame {
- msec: 720
- hash: "23c59708069406486e4979c7d59f3f4a"
- }
- Frame {
- msec: 736
- hash: "c9ce43ddca79b5b6f26af2c2259dc071"
- }
- Frame {
- msec: 752
- hash: "e838229ba70c30112918f19bb471fa34"
- }
- Frame {
- msec: 768
- hash: "0cbaeddb2ff6408a37a68fc685e2bca0"
- }
- Frame {
- msec: 784
- hash: "616b4ec719586b151ba3d709e51038bf"
- }
- Frame {
- msec: 800
- hash: "89b2c709f5c3083c204a9450e605c1d4"
- }
- Frame {
- msec: 816
- hash: "427a5c2d13631d899ff2d673e762f114"
- }
- Frame {
- msec: 832
- hash: "958aa9ca5a6b91aa6dfbc2a1ae3e2deb"
- }
- Frame {
- msec: 848
- hash: "09a3ac0010ed8f3df2cfa7ed9d0a92e4"
- }
- Frame {
- msec: 864
- hash: "5607ea54f9990f3232d6f56080e1ef15"
- }
- Frame {
- msec: 880
- hash: "600682467c55288b9d5e65299637dd72"
- }
- Frame {
- msec: 896
- hash: "bc7a238611574a13650f854ceac35032"
- }
- Frame {
- msec: 912
- hash: "e5f6b19b3685a96d4d0c3b8384513643"
- }
- Frame {
- msec: 928
- hash: "d5d23b0fc09136fd1ae121e311866cc3"
- }
- Frame {
- msec: 944
- hash: "5099e5edd1a6bd37f5f6c836a6ca7644"
- }
- Frame {
- msec: 960
- image: "parentAction.0.png"
- }
- Frame {
- msec: 976
- hash: "97dd20f7774cfd8379e1d1b44f8ddc7b"
- }
- Frame {
- msec: 992
- hash: "ab2deea9e4f8c43ed58b5a355800ecda"
- }
- Frame {
- msec: 1008
- hash: "88ec383ce368259d3cc18612b6f5b941"
- }
- Frame {
- msec: 1024
- hash: "f84b20b849a77e50717f99b9d844240e"
- }
- Frame {
- msec: 1040
- hash: "6c042360c2d24ad56cec32d01ce82d6b"
- }
- Frame {
- msec: 1056
- hash: "c86b464720192f3e039fa5d8ab5f09bb"
- }
- Frame {
- msec: 1072
- hash: "35ec432fdf91fcd1dfcd945cfe785b09"
- }
- Frame {
- msec: 1088
- hash: "27a2ec28e4fef006622e8211fd709853"
- }
- Frame {
- msec: 1104
- hash: "8454d1f5ed89551e2a403c869885116a"
- }
- Frame {
- msec: 1120
- hash: "7e33aed53dc4338c168274d972c8e711"
- }
- Frame {
- msec: 1136
- hash: "e0192ea2049d6bae6012f00406630a92"
- }
- Frame {
- msec: 1152
- hash: "a2ea5489a373084169024035a0f69e71"
- }
- Frame {
- msec: 1168
- hash: "6947a72c4d959b90dafdaddcac815b3e"
- }
- Frame {
- msec: 1184
- hash: "0e22cc3c96d0934095b7254f0f28b18b"
- }
- Frame {
- msec: 1200
- hash: "72529ddc6f2678a783aedf445d7038a4"
- }
- Frame {
- msec: 1216
- hash: "38f03c0ee50488ffd23a2fb3d3445461"
- }
- Frame {
- msec: 1232
- hash: "b441721ed30c787874a2a71a94e1ba44"
- }
- Frame {
- msec: 1248
- hash: "1e37f26d78590414b2ef01c72ad136a9"
- }
- Frame {
- msec: 1264
- hash: "88e4af80d068485ebd8c3d51f9bbfe8d"
- }
- Frame {
- msec: 1280
- hash: "107707216c16c629d8409cf006f9f2dc"
- }
- Frame {
- msec: 1296
- hash: "f56f3f4f140ac072f7df47eddfc76844"
- }
- Frame {
- msec: 1312
- hash: "41239a9d8ed793c24967875aabeae8a5"
- }
- Frame {
- msec: 1328
- hash: "30035e37320dae4f9ead01a30895eb38"
- }
- Frame {
- msec: 1344
- hash: "fb2f535b42b862b65f8adb3ad1a46779"
- }
- Frame {
- msec: 1360
- hash: "e10ba7f74d52fc963e20a4647ff0d620"
- }
- Frame {
- msec: 1376
- hash: "5abf5388566bed2fdb71afc8cd7cfe9b"
- }
- Frame {
- msec: 1392
- hash: "91990471563e3c8292e8e8325a1d17a2"
- }
- Frame {
- msec: 1408
- hash: "59a6293a48f83a9197adcffed3f32f15"
- }
- Frame {
- msec: 1424
- hash: "db3e75df318e9f0d239ce9b76e92eff3"
- }
- Frame {
- msec: 1440
- hash: "3b5c64bc64a701edb5c2e40b23443bc3"
- }
- Frame {
- msec: 1456
- hash: "9db08c0375148b2317427591b5f43608"
- }
- Frame {
- msec: 1472
- hash: "2d761f1530846eff87a7625a120e0afd"
- }
- Frame {
- msec: 1488
- hash: "c5460f8c58b83c2ac15842ddb023ad4f"
- }
- Frame {
- msec: 1504
- hash: "0efb51810a2dc359c7964268c98ea8eb"
- }
- Frame {
- msec: 1520
- hash: "b92a42012df57eb261badf1f518b8e67"
- }
- Frame {
- msec: 1536
- hash: "8d348bae62af2d35bdfee806a1c39910"
- }
- Frame {
- msec: 1552
- hash: "762d9bb4ed11d249bfd902a541129d60"
- }
- Frame {
- msec: 1568
- hash: "bddbd9f64a9f7156984feccd5fa94093"
- }
- Frame {
- msec: 1584
- hash: "353a98e1573b0518941ff22bf2776244"
- }
- Frame {
- msec: 1600
- hash: "1765aed97e29f25dee93a77a06557b82"
- }
- Frame {
- msec: 1616
- hash: "73b5c2bdb7f268f7a33e129c8ba44013"
- }
- Frame {
- msec: 1632
- hash: "46ac1976fb9932d0ef6e0b5927386ad9"
- }
- Frame {
- msec: 1648
- hash: "90b5b5b46c9c352e8be41cc74f96133a"
- }
- Frame {
- msec: 1664
- hash: "0efe0036577c890fd45cd7dd53014616"
- }
- Frame {
- msec: 1680
- hash: "7f32df17481abf40ccb33afe6d17085d"
- }
- Frame {
- msec: 1696
- hash: "1fa8544c48a476764f4f8278c14b651d"
- }
- Frame {
- msec: 1712
- hash: "f8f06ece30f690deeba5999ce63bf40b"
- }
- Frame {
- msec: 1728
- hash: "885b230f4b2fe380c7cf68955940d206"
- }
- Frame {
- msec: 1744
- hash: "d0fc5aa4df46099bb46a1d7db30baa09"
- }
- Frame {
- msec: 1760
- hash: "8fa7fe5197cbe1ff67f8a2c47f1f0740"
- }
- Frame {
- msec: 1776
- hash: "aa3b3b03460daf54f085551e1a46c08b"
- }
- Frame {
- msec: 1792
- hash: "35a1728a2430027a9474fb7d61090643"
- }
- Frame {
- msec: 1808
- hash: "2b1cff3986b8b03f1061176a4722b0f9"
- }
- Frame {
- msec: 1824
- hash: "8047be1b35ee3d5078a68c6cdc35eeb7"
- }
- Frame {
- msec: 1840
- hash: "7f7afa48bb7d612b354c8488e72c8339"
- }
- Frame {
- msec: 1856
- hash: "691a876caefce9aa0f5140c17059b8f4"
- }
- Frame {
- msec: 1872
- hash: "903bec66e47db766dc431f060726988c"
- }
- Frame {
- msec: 1888
- hash: "f13593fc891f0b050c01b61963019da1"
- }
- Frame {
- msec: 1904
- hash: "aa00de965bdb370a5974b195c3fb38af"
- }
- Frame {
- msec: 1920
- image: "parentAction.1.png"
- }
- Frame {
- msec: 1936
- hash: "168d3e27261c0943e6262b6be27adfb0"
- }
- Frame {
- msec: 1952
- hash: "6fafebd0b396e7c0a78c767c6af936ba"
- }
- Frame {
- msec: 1968
- hash: "827e3a3fcd6fd8588e9fcc043769b3a8"
- }
- Frame {
- msec: 1984
- hash: "155329bf1c1a6f6c37bf7e6e8a92c59b"
- }
- Frame {
- msec: 2000
- hash: "d3008d1e7cee5170171699ef6fb9aa81"
- }
- Frame {
- msec: 2016
- hash: "5c1244e7806e131a6063f22a66e4eb12"
- }
- Frame {
- msec: 2032
- hash: "fcd6b372229a6cf14face81e9d614456"
- }
- Frame {
- msec: 2048
- hash: "bf1a375a81bf43c5671cccc62e9a0462"
- }
- Frame {
- msec: 2064
- hash: "0e22404508470baaa6621f37361951fa"
- }
- Frame {
- msec: 2080
- hash: "45046f28c103caa161e41861f71731c4"
- }
- Frame {
- msec: 2096
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2112
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2128
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2144
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2160
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2176
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2192
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2208
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2224
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2240
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2256
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2272
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2288
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2304
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2320
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2336
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2352
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2368
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2384
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2400
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2416
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2432
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2448
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2464
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2480
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2496
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2512
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2528
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2544
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2560
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2576
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2592
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2608
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2624
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2640
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2656
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2672
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2688
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2704
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2720
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2736
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2752
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 150; y: 274
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2768
- hash: "7a92731c713470a2b2c91fd6b83447de"
- }
- Frame {
- msec: 2784
- hash: "44a0b46c21bd4c76d44883ba146e3614"
- }
- Frame {
- msec: 2800
- hash: "2224abc3333a2bc5fa1cf3c4e8d6a6f9"
- }
- Frame {
- msec: 2816
- hash: "ea9c05c0295a300e21aacbdfd5b4968e"
- }
- Frame {
- msec: 2832
- hash: "e630e2893f89a6ae536bcbd1a084af07"
- }
- Frame {
- msec: 2848
- hash: "af56f1e79eb3746efb9e4bcbc3fbced8"
- }
- Frame {
- msec: 2864
- hash: "96be8c3ba0d7a85c6f6df877b869b563"
- }
- Frame {
- msec: 2880
- image: "parentAction.2.png"
- }
- Frame {
- msec: 2896
- hash: "603d8684cb6f097e3ab2a2e5ef053112"
- }
- Frame {
- msec: 2912
- hash: "0433d242d1dd40a3792f55f807ebbff4"
- }
- Frame {
- msec: 2928
- hash: "1190067cacc7361f6cfe09f153c7a07e"
- }
- Frame {
- msec: 2944
- hash: "98e917880471511122847ad8a406e3a3"
- }
- Frame {
- msec: 2960
- hash: "fff06869074a3a6c5823ed3fb6fa7a43"
- }
- Frame {
- msec: 2976
- hash: "602d95daee8f160a0fd784931d0a06bd"
- }
- Frame {
- msec: 2992
- hash: "f7e466bbd52f40e88ff567758f4db835"
- }
- Frame {
- msec: 3008
- hash: "54417a4c4fb71d458439ad2e2126f8e1"
- }
- Frame {
- msec: 3024
- hash: "fe150dd5056b9dbf1cd0b196e9a7a47b"
- }
- Frame {
- msec: 3040
- hash: "1384c871bead85916f7bfcdebc370697"
- }
- Frame {
- msec: 3056
- hash: "5f13339cc0e604b75a9d1d85342fa717"
- }
- Frame {
- msec: 3072
- hash: "655069d61b7a44e729a2cbb33d683c3e"
- }
- Frame {
- msec: 3088
- hash: "2324e9e4a02e41855b066983dbf0e61d"
- }
- Frame {
- msec: 3104
- hash: "0217baf091325b95c033ba073bd68ce5"
- }
- Frame {
- msec: 3120
- hash: "c27854c3af5b58db85846a1762ab18ba"
- }
- Frame {
- msec: 3136
- hash: "45246ee6383ceb6260f84571a885ba90"
- }
- Frame {
- msec: 3152
- hash: "d82ded86f093d1a376994cacf43d0343"
- }
- Frame {
- msec: 3168
- hash: "c9179d30f80c6101bca2bed40d6a859f"
- }
- Frame {
- msec: 3184
- hash: "a63e032d20a9d985c6c345434d98a364"
- }
- Frame {
- msec: 3200
- hash: "fc7d6797ce15edf7fadb9dae691ecd5c"
- }
- Frame {
- msec: 3216
- hash: "76cf37ad8c50fed8b1900784b647819c"
- }
- Frame {
- msec: 3232
- hash: "256aab3690c9ba928bb4d4dd3bbfc756"
- }
- Frame {
- msec: 3248
- hash: "90cab52fdefbae4e7d0f0f93b46ebeb0"
- }
- Frame {
- msec: 3264
- hash: "badb5103bf826dc467f6e620cc2b47be"
- }
- Frame {
- msec: 3280
- hash: "e7d0e437de5ebc0fa07b2a4ef11159cb"
- }
- Frame {
- msec: 3296
- hash: "5931b1c3932ab91446324165d7e2603a"
- }
- Frame {
- msec: 3312
- hash: "ce1808db90ba955ab3cb845500f4c013"
- }
- Frame {
- msec: 3328
- hash: "142f8a440d1fe2d868f47ba3006de9d7"
- }
- Frame {
- msec: 3344
- hash: "10d32a6cc90319ea66d7f2c1241590ce"
- }
- Frame {
- msec: 3360
- hash: "7f633559d715396e6de451b3dd2fadbd"
- }
- Frame {
- msec: 3376
- hash: "d44590ae51ceef5e082747c44bc41be9"
- }
- Frame {
- msec: 3392
- hash: "2b498181668fb1fbf65294d575654929"
- }
- Frame {
- msec: 3408
- hash: "7efeeffd08e4de440da83511313de729"
- }
- Frame {
- msec: 3424
- hash: "8de2331393d1e712192d11ed096836d3"
- }
- Frame {
- msec: 3440
- hash: "fa9381ef2e295865a9b8cb9b36a0eacf"
- }
- Frame {
- msec: 3456
- hash: "97debc4432c5ecb7f606a81e5411b02c"
- }
- Frame {
- msec: 3472
- hash: "eb4c1bb1f4398e3c18182c28a015be76"
- }
- Frame {
- msec: 3488
- hash: "a976aa509f4c6f309d9a6011eeae02aa"
- }
- Frame {
- msec: 3504
- hash: "457de7ee05e0ef0ef120a3d4e371c02e"
- }
- Frame {
- msec: 3520
- hash: "0c01f9f150fe33155fa20703735a6d27"
- }
- Frame {
- msec: 3536
- hash: "5af4f80624082a264010247ea8630a1a"
- }
- Frame {
- msec: 3552
- hash: "b23a1191d149549fa29a61b6dc70f037"
- }
- Frame {
- msec: 3568
- hash: "e00fb32cb13b1347e4b7b9fdbcca68e5"
- }
- Frame {
- msec: 3584
- hash: "fef0503c82f253f8bc3fb3e705a98aa7"
- }
- Frame {
- msec: 3600
- hash: "7a9beca28340d2aa89da5e05f5ac2a55"
- }
- Frame {
- msec: 3616
- hash: "f3c57ea07ab486ffa1f46da60de0b8f1"
- }
- Frame {
- msec: 3632
- hash: "ef0a4ad9ac339fd6ea50dbe6baa9387f"
- }
- Frame {
- msec: 3648
- hash: "1b317a9eb4ce022f005d551546c688a4"
- }
- Frame {
- msec: 3664
- hash: "628e912a4a26800b9b7b5e60e60e3a7d"
- }
- Frame {
- msec: 3680
- hash: "3587b75e4d834a88729754d2c2a4b193"
- }
- Frame {
- msec: 3696
- hash: "084bc1360a38123589baec5aae15b4ff"
- }
- Frame {
- msec: 3712
- hash: "47f0f6c3cdf456826a6fd6846e58dcc8"
- }
- Frame {
- msec: 3728
- hash: "ed982c4c3ebd132baaaf43efad40a3f7"
- }
- Frame {
- msec: 3744
- hash: "d7ddce47c23fada4c69d53d934582d71"
- }
- Frame {
- msec: 3760
- hash: "74f2f911bee26c4c551f4c70596753ae"
- }
- Frame {
- msec: 3776
- hash: "3ed7cbf10dfce3a485d7878766cf9da6"
- }
- Frame {
- msec: 3792
- hash: "87a74257551ab6c7fcfe05e815482ae9"
- }
- Frame {
- msec: 3808
- hash: "4f63e4904e97d4ce832b20b7317a9958"
- }
- Frame {
- msec: 3824
- hash: "f912da8781e547c6e28890655c1b8884"
- }
- Frame {
- msec: 3840
- image: "parentAction.3.png"
- }
- Frame {
- msec: 3856
- hash: "faa640ccf993324400254ffb862ac279"
- }
- Frame {
- msec: 3872
- hash: "b67f342424d1b9a364b09da8994fcd6b"
- }
- Frame {
- msec: 3888
- hash: "b2407732194c1e0c2a9bfb379b94b562"
- }
- Frame {
- msec: 3904
- hash: "55733608d0302ef90c124322ac6d8dc6"
- }
- Frame {
- msec: 3920
- hash: "734f5b628a26d3d7c91ee84fb26d5b5f"
- }
- Frame {
- msec: 3936
- hash: "27839fefa4a218cd77843358392bb874"
- }
- Frame {
- msec: 3952
- hash: "8cac19559d37bd2b581cef0a4c707753"
- }
- Frame {
- msec: 3968
- hash: "91422870aa1471571e7dd8ff5103f76c"
- }
- Frame {
- msec: 3984
- hash: "7156166d5f8d13483467ef515627c95d"
- }
- Frame {
- msec: 4000
- hash: "6028e8374c2ce42a9a9e85b4a8b53027"
- }
- Frame {
- msec: 4016
- hash: "17c99592be58d2e03f9f173c47c0649b"
- }
- Frame {
- msec: 4032
- hash: "6084b53186c6a7eda38ac7fa34bf45ce"
- }
- Frame {
- msec: 4048
- hash: "e82131a8a5a06519f49308bbc25738cf"
- }
- Frame {
- msec: 4064
- hash: "77bdb69cbe55d9c503c6aa1c0f974d87"
- }
- Frame {
- msec: 4080
- hash: "b2346ec5d376651347281d5fb00fc4d7"
- }
- Frame {
- msec: 4096
- hash: "36a3b72c9d7f09795c546855a269801d"
- }
- Frame {
- msec: 4112
- hash: "4e5478b33baca797f3f8f72c2c6c51ad"
- }
- Frame {
- msec: 4128
- hash: "e59d12be3ed1f58de010d385ddfe78e5"
- }
- Frame {
- msec: 4144
- hash: "9674106a146effd47c2724a2dd82ae84"
- }
- Frame {
- msec: 4160
- hash: "862cec781f169f713032e6d52d3616ce"
- }
- Frame {
- msec: 4176
- hash: "c8d47bdfb6518ef4827677023313d559"
- }
- Frame {
- msec: 4192
- hash: "19413931b3e788067dfaef39b47d30ff"
- }
- Frame {
- msec: 4208
- hash: "600e426532c0348cd622257b0773efd5"
- }
- Frame {
- msec: 4224
- hash: "6d975e259d4efa108375d271451531c1"
- }
- Frame {
- msec: 4240
- hash: "50b0da4848564c063694202ce16ea808"
- }
- Frame {
- msec: 4256
- hash: "0a9450739031f680735b5210e6a30c3f"
- }
- Frame {
- msec: 4272
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4288
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4304
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4320
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4336
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4352
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4368
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4384
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4400
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4416
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4432
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4448
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4464
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4480
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4496
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4512
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4528
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4544
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 67108864
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 4560
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4576
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4592
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4608
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4624
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4640
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4656
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4672
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4688
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
- Frame {
- msec: 4704
- hash: "23ce049cd7e715c28f5845fd1a1fc195"
- }
-}
diff --git a/tests/auto/declarative/visual/animation/parentAction/parentAction.qml b/tests/auto/declarative/visual/animation/parentAction/parentAction.qml
deleted file mode 100644
index eb3103e..0000000
--- a/tests/auto/declarative/visual/animation/parentAction/parentAction.qml
+++ /dev/null
@@ -1,55 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 400; height: 400
- Item {
- scale: .5
- rotation: 15
- transformOrigin: "Center"
- x: 10; y: 10
- Rectangle {
- id: myRect
- x: 5
- width: 100; height: 100
- transformOrigin: "BottomLeft"
- color: "red"
- }
- }
- MouseArea {
- id: clickable
- anchors.fill: parent
- }
-
- Item {
- x: 200; y: 200
- rotation: 52;
- scale: 2
- Item {
- id: newParent
- x: 100; y: 100
- }
- }
-
- states: State {
- name: "moved"
- when: clickable.pressed
- ParentChange {
- target: myRect
- parent: newParent
- }
- PropertyChanges {
- target: myRect
- rotation: -52
- scale: 1
- color: "blue"
- }
- }
-
- transitions: Transition {
- SequentialAnimation {
- ColorAnimation { duration: 500}
- ParentAction {}
- NumberAnimation { properties: "rotation, scale"; duration: 1000 }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml b/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml
deleted file mode 100644
index 24ca76b..0000000
--- a/tests/auto/declarative/visual/animation/pauseAnimation/pauseAnimation.qml
+++ /dev/null
@@ -1,29 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- id: rect
- width: 120
- height: 200
- color: "white"
- Image {
- id: img
- source: "pics/qtlogo.png"
- x: 60-width/2
- y: 200-height
- y: SequentialAnimation {
- repeat: true
- NumberAnimation {
- to: 0; duration: 500
- easing.type: "InOutQuad"
- }
- NumberAnimation {
- to: 200-img.height
- easing.type: "OutBounce"
- duration: 2000
- }
- PauseAnimation {
- duration: 1000
- }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml b/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml
deleted file mode 100644
index 7c8c233..0000000
--- a/tests/auto/declarative/visual/animation/propertyAction/data/propertyAction.qml
+++ /dev/null
@@ -1,939 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 32
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 48
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 64
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 80
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 96
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 112
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 128
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 144
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 160
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 176
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 192
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 208
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 224
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 240
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 256
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 272
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 288
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 304
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 320
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 336
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 352
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 368
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 384
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 400
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 416
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 432
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 448
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 464
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 480
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 496
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 512
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 528
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 544
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 560
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 576
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 592
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 608
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 624
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 640
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 656
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 672
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 688
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 704
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 720
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 736
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 752
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 768
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 784
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 800
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 816
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 832
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 848
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 864
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 880
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 896
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 912
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 928
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 944
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 960
- image: "propertyAction.0.png"
- }
- Frame {
- msec: 976
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 992
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1008
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1024
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1040
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1056
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1072
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1088
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1104
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1120
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1136
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1152
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1168
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1184
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1200
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1216
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1232
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1248
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1264
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1280
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1296
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1312
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1328
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1344
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1360
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1376
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1392
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1408
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1424
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1440
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1456
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1472
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1488
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1504
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1520
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1536
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1552
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1568
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1584
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1600
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 109; y: 247
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1616
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 1632
- hash: "c91921dba899d7a86de3cd013773889f"
- }
- Frame {
- msec: 1648
- hash: "888c0fc86155e10b5fc577ef6ec5755a"
- }
- Frame {
- msec: 1664
- hash: "7fd61a8910bf7b0d2bf57653a268c5d8"
- }
- Frame {
- msec: 1680
- hash: "f42f5073f90a423adf011d0e168c8a9b"
- }
- Frame {
- msec: 1696
- hash: "a3d89deb6cfa2bbbaa1d7d5b5e5b48d5"
- }
- Frame {
- msec: 1712
- hash: "f10e997d7a17c18251a32d58b018105a"
- }
- Frame {
- msec: 1728
- hash: "09ffb57d5f67edfa34d6aad36a002554"
- }
- Frame {
- msec: 1744
- hash: "01f3a2f5b9815f1397a907b099339360"
- }
- Frame {
- msec: 1760
- hash: "58c0910c49748edd2ef8472960179472"
- }
- Frame {
- msec: 1776
- hash: "cc82c5f7f93c5bc1af1c6c509268566a"
- }
- Frame {
- msec: 1792
- hash: "3ef272c6439b85fbc166375d1b98403c"
- }
- Frame {
- msec: 1808
- hash: "98c576f0900e4b8752d1f951bb6bf391"
- }
- Frame {
- msec: 1824
- hash: "4d66dd64d8736ef50163e08723873478"
- }
- Frame {
- msec: 1840
- hash: "9a5d8455b6763456185625811253e0b1"
- }
- Frame {
- msec: 1856
- hash: "77e85731efa786a2492aae19a87523c6"
- }
- Frame {
- msec: 1872
- hash: "f3199d0c860f1236e0b9472bef8785bc"
- }
- Frame {
- msec: 1888
- hash: "f3199d0c860f1236e0b9472bef8785bc"
- }
- Frame {
- msec: 1904
- hash: "32ccdab249268b01d9f1658a736052f1"
- }
- Frame {
- msec: 1920
- image: "propertyAction.1.png"
- }
- Frame {
- msec: 1936
- hash: "db3010ef552146df938c237f6c92bff5"
- }
- Frame {
- msec: 1952
- hash: "101e8595d0301e88376ec52ba9361f84"
- }
- Frame {
- msec: 1968
- hash: "119d548c59baa7e47266d2ceca663288"
- }
- Frame {
- msec: 1984
- hash: "f141fafe102a0b9a2bf33e8c3fc800ff"
- }
- Frame {
- msec: 2000
- hash: "b01f9ca8d4fbff17b3d48c70898a044d"
- }
- Frame {
- msec: 2016
- hash: "cf67954a2d1b22e8d2cfdc26419bafb8"
- }
- Frame {
- msec: 2032
- hash: "7680b2b5a63dea13d733947297e01355"
- }
- Frame {
- msec: 2048
- hash: "af1c017acf6b3c8cff86c9ceb60db3cb"
- }
- Frame {
- msec: 2064
- hash: "0b23ec51f71fddae5e2238ab5754f1db"
- }
- Frame {
- msec: 2080
- hash: "976643961ecbdc86335180ba812b874e"
- }
- Frame {
- msec: 2096
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2112
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2128
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2144
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2160
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2176
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2192
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2208
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2224
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2240
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2256
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2272
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2288
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2304
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2320
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2336
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2352
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2368
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2384
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2400
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2416
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2432
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2448
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2464
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2480
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2496
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2512
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2528
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2544
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2560
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2576
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2592
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2608
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2624
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2640
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2656
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2672
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2688
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2704
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2720
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2736
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2752
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 109; y: 247
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2768
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2784
- hash: "aeed60899abb6c486a5b1df81f9a0224"
- }
- Frame {
- msec: 2800
- hash: "ab924ae435262e76381c2e4af5d64342"
- }
- Frame {
- msec: 2816
- hash: "d60758fc12471a19d31c85f058f2ded7"
- }
- Frame {
- msec: 2832
- hash: "c62e2956f8eb5d2c8cd76ba05c5929d5"
- }
- Frame {
- msec: 2848
- hash: "f2967ee7e035a9ff258116a2706529f8"
- }
- Frame {
- msec: 2864
- hash: "885c4705c6c29f69c56c44abc1251d75"
- }
- Frame {
- msec: 2880
- image: "propertyAction.2.png"
- }
- Frame {
- msec: 2896
- hash: "f4af6871e522511f95bc4c5abfc2a562"
- }
- Frame {
- msec: 2912
- hash: "b27e1e7e0d90468525309528ccfe2823"
- }
- Frame {
- msec: 2928
- hash: "78e7d84a4466258b40315fe61b7ca15c"
- }
- Frame {
- msec: 2944
- hash: "471013d921d8d6e7468fd6aba0b75c71"
- }
- Frame {
- msec: 2960
- hash: "856048da893c9136ac5740bc89b64128"
- }
- Frame {
- msec: 2976
- hash: "32ccdab249268b01d9f1658a736052f1"
- }
- Frame {
- msec: 2992
- hash: "2264fa3acd979f104633c1301a0efd8f"
- }
- Frame {
- msec: 3008
- hash: "f3199d0c860f1236e0b9472bef8785bc"
- }
- Frame {
- msec: 3024
- hash: "ad899d1ecaa43a5541be7b70413caee5"
- }
- Frame {
- msec: 3040
- hash: "4e652524c992f5ee1b987275ca509728"
- }
- Frame {
- msec: 3056
- hash: "a44b3dec2a016694bc8553a51b29d46c"
- }
- Frame {
- msec: 3072
- hash: "7fbe20346bc3c28c345e0797b55599f3"
- }
- Frame {
- msec: 3088
- hash: "bcff18ad433bb4f08126ee66efb037d1"
- }
- Frame {
- msec: 3104
- hash: "836666c64f73c38e87de95944ff2fe72"
- }
- Frame {
- msec: 3120
- hash: "4379982d23db239b1741b5d72c53e160"
- }
- Frame {
- msec: 3136
- hash: "0ed9476337214e1493c1510b8a4c90f8"
- }
- Frame {
- msec: 3152
- hash: "dab637406577a1924c7dbb30680e1af3"
- }
- Frame {
- msec: 3168
- hash: "dcc79277fdb8966e5a3f2ed1b2fc4292"
- }
- Frame {
- msec: 3184
- hash: "5f207d1dfad4907f200d76104881bf56"
- }
- Frame {
- msec: 3200
- hash: "3434fc7f81e859722585dae97c557864"
- }
- Frame {
- msec: 3216
- hash: "7c775b9be8c5293d4962324574267c22"
- }
- Frame {
- msec: 3232
- hash: "da0ff6955c2e4cd86421bdb9053f56e6"
- }
- Frame {
- msec: 3248
- hash: "a1297d525a3ad41abbbb7c2f15efd4fb"
- }
- Frame {
- msec: 3264
- hash: "5326b220995b2a1eaa308ad10fd353fa"
- }
- Frame {
- msec: 3280
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3296
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3312
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3328
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3344
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 67108864
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 3360
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3376
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3392
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3408
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3424
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3440
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3456
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3472
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3488
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3504
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3520
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3536
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3552
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3568
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3584
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3600
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3616
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
- Frame {
- msec: 3632
- hash: "55b713dcb7c810bf126e06cc97d26d24"
- }
-}
diff --git a/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml b/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml
deleted file mode 100644
index e18e770..0000000
--- a/tests/auto/declarative/visual/animation/propertyAction/propertyAction.qml
+++ /dev/null
@@ -1,34 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 400; height: 400
- Rectangle {
- id: myRect
- width: 100; height: 100
- color: "red"
- }
- MouseArea {
- id: clickable
- anchors.fill: parent
- }
-
- states: State {
- name: "state1"
- when: clickable.pressed
- PropertyChanges {
- target: myRect
- x: 50; y: 50
- color: "blue"
- }
- }
-
- transitions: Transition {
- to: "state1"
- reversible: true
- SequentialAnimation {
- ColorAnimation {}
- PropertyAction { properties: "x" }
- NumberAnimation { properties: "y"; easing.type: "InOutQuad" }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.0.png b/tests/auto/declarative/visual/animation/reanchor/data/reanchor.0.png
deleted file mode 100644
index c7bbf38..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.0.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.1.png b/tests/auto/declarative/visual/animation/reanchor/data/reanchor.1.png
deleted file mode 100644
index 612500b..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.2.png b/tests/auto/declarative/visual/animation/reanchor/data/reanchor.2.png
deleted file mode 100644
index c7bbf38..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.3.png b/tests/auto/declarative/visual/animation/reanchor/data/reanchor.3.png
deleted file mode 100644
index c7bbf38..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.3.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.4.png b/tests/auto/declarative/visual/animation/reanchor/data/reanchor.4.png
deleted file mode 100644
index 1910eb4..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.4.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.5.png b/tests/auto/declarative/visual/animation/reanchor/data/reanchor.5.png
deleted file mode 100644
index 3b8eebd..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.5.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.6.png b/tests/auto/declarative/visual/animation/reanchor/data/reanchor.6.png
deleted file mode 100644
index c7bbf38..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.6.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.7.png b/tests/auto/declarative/visual/animation/reanchor/data/reanchor.7.png
deleted file mode 100644
index c7bbf38..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.7.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.8.png b/tests/auto/declarative/visual/animation/reanchor/data/reanchor.8.png
deleted file mode 100644
index 960be31..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.8.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.qml b/tests/auto/declarative/visual/animation/reanchor/data/reanchor.qml
deleted file mode 100644
index 0f58de5..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/data/reanchor.qml
+++ /dev/null
@@ -1,2471 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 32
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 48
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 64
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 80
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 96
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 112
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 128
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 144
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 160
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 176
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 192
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 208
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 224
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 240
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 256
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 272
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 288
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 304
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 320
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 336
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 352
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 368
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 384
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 400
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 416
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 432
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 448
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 464
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 480
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 496
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 512
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 528
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 544
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 560
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 576
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 592
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 608
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 624
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 640
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 656
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 672
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 688
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 704
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 720
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 736
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 752
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 768
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 784
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 800
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 816
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 832
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 848
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 864
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 880
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 896
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 912
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 928
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 944
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 960
- image: "reanchor.0.png"
- }
- Frame {
- msec: 976
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 992
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1008
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1024
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1040
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1056
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1072
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1088
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1104
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1120
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1136
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1152
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1168
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1184
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1200
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1216
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1232
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1248
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1264
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1280
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1296
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1312
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1328
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1344
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1360
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 88; y: 115
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1376
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1392
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1408
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1424
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1440
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 88; y: 115
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1456
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 1472
- hash: "c2d6dd91f3e9cdcacbadcb449c8a9896"
- }
- Frame {
- msec: 1488
- hash: "1098ea19aecebd71208e101d522c1981"
- }
- Frame {
- msec: 1504
- hash: "8cc59c20d796c073038518d2855fb6f0"
- }
- Frame {
- msec: 1520
- hash: "914a89d0cfdc68145024ce2305a5e76e"
- }
- Frame {
- msec: 1536
- hash: "7a2e3ca2660df24d9a6ec49a7422ebe1"
- }
- Frame {
- msec: 1552
- hash: "b71496d986d5f0aa76b4f1663627f1f7"
- }
- Frame {
- msec: 1568
- hash: "41b29a523db919bc0a4e0a9a88bfc873"
- }
- Frame {
- msec: 1584
- hash: "97632a0de766b9ffbf71f21eeb0ff9a2"
- }
- Frame {
- msec: 1600
- hash: "94cc196e62c150008461ff9996b4cae8"
- }
- Frame {
- msec: 1616
- hash: "32e96ad2d15fa2386d365ab249ddf4f4"
- }
- Frame {
- msec: 1632
- hash: "209394314f971b12fbc61ca45010cc62"
- }
- Frame {
- msec: 1648
- hash: "b917c2684dda8af00278b34ababdcf5c"
- }
- Frame {
- msec: 1664
- hash: "92b506860c1c5dc52f87c24c89921b05"
- }
- Frame {
- msec: 1680
- hash: "7b7e96113fa9359954be9b3ac87943c3"
- }
- Frame {
- msec: 1696
- hash: "42bc69db42c5df902038cec414246ec5"
- }
- Frame {
- msec: 1712
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1728
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1744
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1760
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1776
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1792
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1808
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1824
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1840
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1856
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1872
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1888
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1904
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1920
- image: "reanchor.1.png"
- }
- Frame {
- msec: 1936
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1952
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1968
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 1984
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2000
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2016
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2032
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2048
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2064
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2080
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2096
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 87; y: 114
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2112
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2128
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2144
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2160
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2176
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2192
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2208
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 87; y: 114
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2224
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 2240
- hash: "2d1aa011f2008a6147ba593e3cf272d7"
- }
- Frame {
- msec: 2256
- hash: "206699ea84ce9fd60c1603b7a48a5134"
- }
- Frame {
- msec: 2272
- hash: "68eb6df93a2b6db7023f7c3cc71d5b5f"
- }
- Frame {
- msec: 2288
- hash: "5a4cd0620959dde92eeeaaa4dcd13091"
- }
- Frame {
- msec: 2304
- hash: "17b763187a777253b25b22f5dd7253ae"
- }
- Frame {
- msec: 2320
- hash: "1de9dcf4d385266f4482e2d0967d9119"
- }
- Frame {
- msec: 2336
- hash: "833496add6dbc3103a28a47e453a738b"
- }
- Frame {
- msec: 2352
- hash: "b3bab2e9c56db60cd54e68369e6b790d"
- }
- Frame {
- msec: 2368
- hash: "ee91c6cd909bec401a1a7eebd10b8b02"
- }
- Frame {
- msec: 2384
- hash: "0ed679ad0ab7bd3544947bccda88647b"
- }
- Frame {
- msec: 2400
- hash: "d7dfcdc8a4233821919f1732d8c39712"
- }
- Frame {
- msec: 2416
- hash: "c52829ee689e4c312a9dff8dbd4a79f9"
- }
- Frame {
- msec: 2432
- hash: "7962badda0e80a61b67943d3b31f892d"
- }
- Frame {
- msec: 2448
- hash: "fc5f2c24e3d8743ab5b20aaa122bacc2"
- }
- Frame {
- msec: 2464
- hash: "201b9ee6c9ac6208ef812fe2e95020ef"
- }
- Frame {
- msec: 2480
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2496
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2512
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2528
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2544
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2560
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2576
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2592
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2608
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2624
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2640
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2656
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2672
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2688
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2704
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2720
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2736
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2752
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 87; y: 114
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2768
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2784
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2800
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2816
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2832
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2848
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 2864
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 87; y: 114
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2880
- image: "reanchor.2.png"
- }
- Frame {
- msec: 2896
- hash: "c2d6dd91f3e9cdcacbadcb449c8a9896"
- }
- Frame {
- msec: 2912
- hash: "1098ea19aecebd71208e101d522c1981"
- }
- Frame {
- msec: 2928
- hash: "8cc59c20d796c073038518d2855fb6f0"
- }
- Frame {
- msec: 2944
- hash: "914a89d0cfdc68145024ce2305a5e76e"
- }
- Frame {
- msec: 2960
- hash: "7a2e3ca2660df24d9a6ec49a7422ebe1"
- }
- Frame {
- msec: 2976
- hash: "b71496d986d5f0aa76b4f1663627f1f7"
- }
- Frame {
- msec: 2992
- hash: "41b29a523db919bc0a4e0a9a88bfc873"
- }
- Frame {
- msec: 3008
- hash: "97632a0de766b9ffbf71f21eeb0ff9a2"
- }
- Frame {
- msec: 3024
- hash: "94cc196e62c150008461ff9996b4cae8"
- }
- Frame {
- msec: 3040
- hash: "32e96ad2d15fa2386d365ab249ddf4f4"
- }
- Frame {
- msec: 3056
- hash: "209394314f971b12fbc61ca45010cc62"
- }
- Frame {
- msec: 3072
- hash: "b917c2684dda8af00278b34ababdcf5c"
- }
- Frame {
- msec: 3088
- hash: "92b506860c1c5dc52f87c24c89921b05"
- }
- Frame {
- msec: 3104
- hash: "7b7e96113fa9359954be9b3ac87943c3"
- }
- Frame {
- msec: 3120
- hash: "42bc69db42c5df902038cec414246ec5"
- }
- Frame {
- msec: 3136
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3152
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3168
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3184
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3200
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3216
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3232
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3248
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3264
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3280
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3296
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3312
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3328
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3344
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3360
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 87; y: 114
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3376
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3392
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3408
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3424
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3440
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3456
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3472
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 87; y: 114
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3488
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 3504
- hash: "2d1aa011f2008a6147ba593e3cf272d7"
- }
- Frame {
- msec: 3520
- hash: "206699ea84ce9fd60c1603b7a48a5134"
- }
- Frame {
- msec: 3536
- hash: "68eb6df93a2b6db7023f7c3cc71d5b5f"
- }
- Frame {
- msec: 3552
- hash: "5a4cd0620959dde92eeeaaa4dcd13091"
- }
- Frame {
- msec: 3568
- hash: "17b763187a777253b25b22f5dd7253ae"
- }
- Frame {
- msec: 3584
- hash: "1de9dcf4d385266f4482e2d0967d9119"
- }
- Frame {
- msec: 3600
- hash: "833496add6dbc3103a28a47e453a738b"
- }
- Frame {
- msec: 3616
- hash: "b3bab2e9c56db60cd54e68369e6b790d"
- }
- Frame {
- msec: 3632
- hash: "ee91c6cd909bec401a1a7eebd10b8b02"
- }
- Frame {
- msec: 3648
- hash: "0ed679ad0ab7bd3544947bccda88647b"
- }
- Frame {
- msec: 3664
- hash: "d7dfcdc8a4233821919f1732d8c39712"
- }
- Frame {
- msec: 3680
- hash: "c52829ee689e4c312a9dff8dbd4a79f9"
- }
- Frame {
- msec: 3696
- hash: "7962badda0e80a61b67943d3b31f892d"
- }
- Frame {
- msec: 3712
- hash: "fc5f2c24e3d8743ab5b20aaa122bacc2"
- }
- Frame {
- msec: 3728
- hash: "201b9ee6c9ac6208ef812fe2e95020ef"
- }
- Frame {
- msec: 3744
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3760
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3776
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3792
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3808
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3824
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3840
- image: "reanchor.3.png"
- }
- Frame {
- msec: 3856
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3872
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3888
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3904
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3920
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3936
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3952
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3968
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 3984
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4000
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4016
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4032
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4048
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4064
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4080
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4096
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4112
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4128
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4144
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4160
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4176
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4192
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4208
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4224
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4240
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4256
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4272
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4288
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4304
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4320
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4336
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4352
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4368
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4384
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4400
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4416
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4432
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4448
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4464
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4480
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4496
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4512
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4528
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 174; y: 174
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4544
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4560
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4576
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4592
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4608
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4624
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4640
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4656
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 174; y: 174
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4672
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 4688
- hash: "5d38bf4a033de31985ae9989107908af"
- }
- Frame {
- msec: 4704
- hash: "ed1bd2abd42848ecd07f0f0654c2b80f"
- }
- Frame {
- msec: 4720
- hash: "588de6662123733303d93f62c6481f6a"
- }
- Frame {
- msec: 4736
- hash: "aae79c2fbb2fd1ac7efa9802bff40f95"
- }
- Frame {
- msec: 4752
- hash: "f17512798136f67f25aaa0aeb60678e1"
- }
- Frame {
- msec: 4768
- hash: "79578a1e0e3e9cd45c210d0c5d3e75d6"
- }
- Frame {
- msec: 4784
- hash: "5dad4ff201744cda6ff41f89414c8d11"
- }
- Frame {
- msec: 4800
- image: "reanchor.4.png"
- }
- Frame {
- msec: 4816
- hash: "c4559982aa3f3d291364deed4bd96d65"
- }
- Frame {
- msec: 4832
- hash: "0dff03ea9154bdb2a813358b04cfbde9"
- }
- Frame {
- msec: 4848
- hash: "09bdf2869dee1c0cbe3c8c2e9254580b"
- }
- Frame {
- msec: 4864
- hash: "ba7762978bbd63d624029910fe16fb6d"
- }
- Frame {
- msec: 4880
- hash: "f00d198ab8f4f625b60e9e2071d8adfd"
- }
- Frame {
- msec: 4896
- hash: "adcec9c9a5b0d60cf45b2915365ea09c"
- }
- Frame {
- msec: 4912
- hash: "a65cd6fbb26d618692ef23148015a4f2"
- }
- Frame {
- msec: 4928
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 4944
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 4960
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 4976
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 4992
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5008
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5024
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5040
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5056
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5072
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5088
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5104
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5120
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5136
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5152
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5168
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5184
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5200
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5216
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5232
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5248
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5264
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5280
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5296
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5312
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5328
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5344
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5360
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5376
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5392
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5408
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5424
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5440
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5456
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5472
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5488
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5504
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5520
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5536
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5552
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5568
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5584
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5600
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5616
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5632
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5648
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5664
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5680
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5696
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5712
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5728
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5744
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5760
- image: "reanchor.5.png"
- }
- Frame {
- msec: 5776
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5792
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5808
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 95; y: 78
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5824
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5840
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5856
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5872
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5888
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5904
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5920
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5936
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 95; y: 78
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5952
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 5968
- hash: "103bbc9ce594851f5243b103f8fef1c1"
- }
- Frame {
- msec: 5984
- hash: "c381148b052be2e6244f24c2292b89cf"
- }
- Frame {
- msec: 6000
- hash: "2fda1d635fa47bff7de867df3dadfb4f"
- }
- Frame {
- msec: 6016
- hash: "4d35e00af33ad5dc84998cda2d066b4e"
- }
- Frame {
- msec: 6032
- hash: "14005d52d372acf6d3495f69bbf00b7d"
- }
- Frame {
- msec: 6048
- hash: "29728f64d12e858d960c4e197824ef43"
- }
- Frame {
- msec: 6064
- hash: "798822f0c20ef87cb01fe1dcd76c7585"
- }
- Frame {
- msec: 6080
- hash: "4cdeea0f91587ef32a2c2e282f6d00e6"
- }
- Frame {
- msec: 6096
- hash: "08ca5d16771e58da6cdd20b86dc65f03"
- }
- Frame {
- msec: 6112
- hash: "e9aeb432709d275048ad9d84fb21db1a"
- }
- Frame {
- msec: 6128
- hash: "3b642f27d356fd1815dc50f8e750623d"
- }
- Frame {
- msec: 6144
- hash: "7c1db0ec278849ec044ea0aa3383075b"
- }
- Frame {
- msec: 6160
- hash: "da902850879c95d4ddffbb1ba0060f25"
- }
- Frame {
- msec: 6176
- hash: "e4053bd0db7752e7a47e096da645b69b"
- }
- Frame {
- msec: 6192
- hash: "aabbb6d34399818347db265151a547b7"
- }
- Frame {
- msec: 6208
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6224
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6240
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6256
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6272
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6288
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6304
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6320
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6336
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6352
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6368
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6384
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6400
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6416
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6432
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6448
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6464
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6480
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6496
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6512
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6528
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6544
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6560
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6576
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6592
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6608
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6624
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6640
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6656
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6672
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6688
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6704
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6720
- image: "reanchor.6.png"
- }
- Frame {
- msec: 6736
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6752
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6768
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6784
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6800
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6816
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6832
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6848
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6864
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6880
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6896
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6912
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6928
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6944
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6960
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6976
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 6992
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7008
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7024
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7040
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7056
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7072
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7088
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7104
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7120
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7136
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7152
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7168
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7184
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7200
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7216
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7232
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7248
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7264
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7280
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7296
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7312
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7328
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7344
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7360
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7376
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7392
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7408
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7424
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7440
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7456
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7472
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7488
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7504
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7520
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7536
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7552
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7568
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7584
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7600
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 86; y: 136
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 7616
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7632
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7648
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Frame {
- msec: 7664
- hash: "213811853dbefdc418099721e3bf8651"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 86; y: 136
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 7680
- image: "reanchor.7.png"
- }
- Frame {
- msec: 7696
- hash: "c2d6dd91f3e9cdcacbadcb449c8a9896"
- }
- Frame {
- msec: 7712
- hash: "1098ea19aecebd71208e101d522c1981"
- }
- Frame {
- msec: 7728
- hash: "8cc59c20d796c073038518d2855fb6f0"
- }
- Frame {
- msec: 7744
- hash: "914a89d0cfdc68145024ce2305a5e76e"
- }
- Frame {
- msec: 7760
- hash: "7a2e3ca2660df24d9a6ec49a7422ebe1"
- }
- Frame {
- msec: 7776
- hash: "b71496d986d5f0aa76b4f1663627f1f7"
- }
- Frame {
- msec: 7792
- hash: "41b29a523db919bc0a4e0a9a88bfc873"
- }
- Frame {
- msec: 7808
- hash: "97632a0de766b9ffbf71f21eeb0ff9a2"
- }
- Frame {
- msec: 7824
- hash: "94cc196e62c150008461ff9996b4cae8"
- }
- Frame {
- msec: 7840
- hash: "32e96ad2d15fa2386d365ab249ddf4f4"
- }
- Frame {
- msec: 7856
- hash: "209394314f971b12fbc61ca45010cc62"
- }
- Frame {
- msec: 7872
- hash: "b917c2684dda8af00278b34ababdcf5c"
- }
- Frame {
- msec: 7888
- hash: "92b506860c1c5dc52f87c24c89921b05"
- }
- Frame {
- msec: 7904
- hash: "7b7e96113fa9359954be9b3ac87943c3"
- }
- Frame {
- msec: 7920
- hash: "42bc69db42c5df902038cec414246ec5"
- }
- Frame {
- msec: 7936
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 7952
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 7968
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 7984
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8000
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8016
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8032
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8048
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8064
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8080
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8096
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8112
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8128
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8144
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8160
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8176
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8192
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8208
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8224
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8240
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8256
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8272
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8288
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8304
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8320
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8336
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8352
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8368
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8384
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8400
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 177; y: 173
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 8416
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8432
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8448
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8464
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8480
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8496
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8512
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 177; y: 173
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 8528
- hash: "7eb4027421fd6aa7d668a704e40a6e61"
- }
- Frame {
- msec: 8544
- hash: "b4f30663a9b21e42375645e970f57d0b"
- }
- Frame {
- msec: 8560
- hash: "6c12dbf4af8801573515b61123d4b1d7"
- }
- Frame {
- msec: 8576
- hash: "facc61397c734bb4409d5664dc059a14"
- }
- Frame {
- msec: 8592
- hash: "897e15e37276454d11fac6a528e967a6"
- }
- Frame {
- msec: 8608
- hash: "cf8173519f1e042c227ff61c62308640"
- }
- Frame {
- msec: 8624
- hash: "d0fcda14ea4bcfebf04ccf99e292ac6a"
- }
- Frame {
- msec: 8640
- image: "reanchor.8.png"
- }
- Frame {
- msec: 8656
- hash: "74b4ababa97def538f5340e88a4419a4"
- }
- Frame {
- msec: 8672
- hash: "b96b5b64505b1814ddd42a52569d7fd9"
- }
- Frame {
- msec: 8688
- hash: "0e3e07aad030b2075c4bc61b02ebe49e"
- }
- Frame {
- msec: 8704
- hash: "c5eebc652c58e3a44d5ed481100ef242"
- }
- Frame {
- msec: 8720
- hash: "d4a74185304c126739af728ddda40e0c"
- }
- Frame {
- msec: 8736
- hash: "448572d3c1060b8311952429a7f9430d"
- }
- Frame {
- msec: 8752
- hash: "00f64c09657a8afd6caa186efb6ad860"
- }
- Frame {
- msec: 8768
- hash: "2a360e6feaaf303e9ee63145085796e6"
- }
- Frame {
- msec: 8784
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8800
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8816
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8832
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8848
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8864
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8880
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8896
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8912
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8928
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8944
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8960
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8976
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 8992
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9008
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9024
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9040
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9056
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9072
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9088
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9104
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9120
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9136
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 67108864
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 9152
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9168
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9184
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9200
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9216
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9232
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9248
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9264
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9280
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9296
- hash: "1137e22c68e043950811dee295e19b04"
- }
- Frame {
- msec: 9312
- hash: "1137e22c68e043950811dee295e19b04"
- }
-}
diff --git a/tests/auto/declarative/visual/animation/reanchor/reanchor.qml b/tests/auto/declarative/visual/animation/reanchor/reanchor.qml
deleted file mode 100644
index d80631f..0000000
--- a/tests/auto/declarative/visual/animation/reanchor/reanchor.qml
+++ /dev/null
@@ -1,68 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- id: container
- width: 200; height: 200
- Rectangle {
- id: myRect
- objectName: "MyRect"
- color: "green";
- anchors.left: parent.left
- anchors.right: rightGuideline.left
- anchors.top: topGuideline.top
- anchors.bottom: container.bottom
- }
- Item { id: leftGuideline; x: 10 }
- Item { id: rightGuideline; x: 150 }
- Item { id: topGuideline; y: 10 }
- Item { id: bottomGuideline; y: 150 }
- Item { id: topGuideline2; y: 50 }
- Item { id: bottomGuideline2; y: 175 }
-
- MouseArea {
- id: wholeArea
- anchors.fill: parent
- onClicked: {
- if (container.state == "") {
- container.state = "reanchored";
- } else if (container.state == "reanchored") {
- container.state = "reanchored2";
- } else if (container.state == "reanchored2")
- container.state = "reanchored";
- }
- }
-
- states: [ State {
- name: "reanchored"
- AnchorChanges {
- target: myRect;
- left: leftGuideline.left
- right: container.right
- top: container.top
- bottom: bottomGuideline.bottom
- }
- }, State {
- name: "reanchored2"
- AnchorChanges {
- target: myRect;
- reset: "left, right"
- top: topGuideline2.top
- bottom: bottomGuideline2.bottom
- }
- }]
-
- transitions: Transition {
- NumberAnimation { properties: "x,y,width,height" }
- }
-
- MouseArea {
- width: 50; height: 50
- anchors.right: parent.right
- anchors.bottom: parent.bottom
- onClicked: {
- container.state = "";
- }
- }
-
- state: "reanchored"
-}
diff --git a/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml b/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml
deleted file mode 100644
index ef4ed76..0000000
--- a/tests/auto/declarative/visual/animation/scriptAction/scriptAction.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 400; height: 400
- Rectangle {
- id: myRect
- width: 100; height: 100
- color: "red"
- }
- MouseArea {
- id: clickable
- anchors.fill: parent
- }
-
- states: State {
- name: "state1"
- when: clickable.pressed
- PropertyChanges {
- target: myRect
- x: 50; y: 50
- }
- StateChangeScript {
- name: "setColor"
- script: myRect.color = "blue"
- }
- }
-
- transitions: Transition {
- SequentialAnimation {
- NumberAnimation { properties: "x"; easing.type: "InOutQuad" }
- ScriptAction { stateChangeScriptName: "setColor" }
- NumberAnimation { properties: "y"; easing.type: "InOutQuad" }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/fillmode/data/fillmode.qml b/tests/auto/declarative/visual/fillmode/data/fillmode.qml
deleted file mode 100644
index 7ac6f51..0000000
--- a/tests/auto/declarative/visual/fillmode/data/fillmode.qml
+++ /dev/null
@@ -1,279 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 32
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 48
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 64
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 80
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 96
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 112
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 128
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 144
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 160
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 176
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 192
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 208
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 224
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 240
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 256
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 272
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 288
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 304
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 320
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 336
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 352
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 368
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 384
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 400
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 416
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 432
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 448
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 464
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 480
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 496
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 512
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 528
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 544
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 560
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 576
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 592
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 608
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 624
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 640
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 656
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 672
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 688
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 704
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 720
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 736
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 752
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 768
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 784
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 800
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 816
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 832
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 848
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 864
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 880
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 896
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 912
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 928
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 944
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 960
- image: "fillmode.0.png"
- }
- Frame {
- msec: 976
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 992
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 1008
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 1024
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 1040
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
- Frame {
- msec: 1056
- hash: "c8cb8d51ca04231dc272133faaf2fb6d"
- }
-}
diff --git a/tests/auto/declarative/visual/fillmode/fillmode.qml b/tests/auto/declarative/visual/fillmode/fillmode.qml
deleted file mode 100644
index 8450bf2..0000000
--- a/tests/auto/declarative/visual/fillmode/fillmode.qml
+++ /dev/null
@@ -1,16 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- id: screen; width: 750; height: 600; color: "gray"
- property string source: "face.png"
-
- Grid {
- columns: 3
- Image { width: 250; height: 300; source: screen.source; fillMode: Image.Stretch }
- Image { width: 250; height: 300; source: screen.source; fillMode: Image.PreserveAspectFit; smooth: true }
- Image { width: 250; height: 300; source: screen.source; fillMode: Image.PreserveAspectCrop }
- Image { width: 250; height: 300; source: screen.source; fillMode: Image.Tile; smooth: true }
- Image { width: 250; height: 300; source: screen.source; fillMode: Image.TileHorizontally }
- Image { width: 250; height: 300; source: screen.source; fillMode: Image.TileVertically }
- }
-}
diff --git a/tests/auto/declarative/visual/focusscope/test3.qml b/tests/auto/declarative/visual/focusscope/test3.qml
deleted file mode 100644
index 855bdc5..0000000
--- a/tests/auto/declarative/visual/focusscope/test3.qml
+++ /dev/null
@@ -1,52 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- color: "white"
- width: 800
- height: 600
-
- Listmodel {
- id: model
- ListElement { name: "1" }
- ListElement { name: "2" }
- ListElement { name: "3" }
- ListElement { name: "4" }
- ListElement { name: "5" }
- ListElement { name: "6" }
- ListElement { name: "7" }
- ListElement { name: "8" }
- ListElement { name: "9" }
- }
-
- Component {
- id: verticalDelegate
- FocusScope {
- id: root
- width: 50; height: 50;
- Keys.onDigit9Pressed: console.log("Error - " + name)
- Rectangle {
- focus: true
- Keys.onDigit9Pressed: console.log(name)
- width: 50; height: 50;
- color: root.ListView.isCurrentItem?"red":"green"
- Text { text: name; anchors.centerIn: parent }
- }
- }
- }
-
- ListView {
- width: 800; height: 50; orientation: "Horizontal"
- focus: true
- model: model
- delegate: verticalDelegate
- preferredHighlightBegin: 100
- preferredHighlightEnd: 101
- highlightRangeMode: ListView.StrictlyEnforceRange
- }
-
-
- Text {
- y: 100; x: 50
- text: "Currently selected element should be red\nPressing \"9\" should print the number of the currently selected item\nBe sure to scroll all the way to the right, pause, and then all the way to the left."
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/content/MyBorderImage.qml b/tests/auto/declarative/visual/qdeclarativeborderimage/content/MyBorderImage.qml
deleted file mode 100644
index e268ce7..0000000
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/content/MyBorderImage.qml
+++ /dev/null
@@ -1,38 +0,0 @@
-import Qt 4.6
-
-Item {
- property alias horizontalMode: image.horizontalTileMode
- property alias verticalMode: image.verticalTileMode
- property alias source: image.source
- property alias antialiased: image.smooth
-
- property int minWidth
- property int minHeight
- property int maxWidth
- property int maxHeight
- property int margin
-
- id: container
- width: 240; height: 240
-
- BorderImage {
- id: image; x: container.width / 2 - width / 2; y: container.height / 2 - height / 2
-
- width: SequentialAnimation {
- repeat: true
- NumberAnimation { from: container.minWidth; to: container.maxWidth; duration: 2000; easing.type: "InOutQuad"}
- NumberAnimation { from: container.maxWidth; to: container.minWidth; duration: 2000; easing.type: "InOutQuad" }
- }
-
- height: SequentialAnimation {
- repeat: true
- NumberAnimation { from: container.minHeight; to: container.maxHeight; duration: 2000; easing.type: "InOutQuad"}
- NumberAnimation { from: container.maxHeight; to: container.minHeight; duration: 2000; easing.type: "InOutQuad" }
- }
-
- border.top: container.margin
- border.left: container.margin
- border.bottom: container.margin
- border.right: container.margin
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.1.png b/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.1.png
deleted file mode 100644
index 1f960e5..0000000
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.qml b/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.qml
deleted file mode 100644
index 043f5e2..0000000
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/animated-smooth.qml
+++ /dev/null
@@ -1,1823 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 32
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 48
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 64
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 80
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 96
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 112
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 128
- hash: "cd2180be80101c2aa4350b51b7a6f502"
- }
- Frame {
- msec: 144
- hash: "de471829f8ad3b43bf1b4df9d1d65a4d"
- }
- Frame {
- msec: 160
- hash: "ed9f2ca797894612600bc4b7fbaecb84"
- }
- Frame {
- msec: 176
- hash: "59470d71fa4426d0283e86371f2bfc2a"
- }
- Frame {
- msec: 192
- hash: "9a2f92efb51bcc6293d6a8e82d5314ea"
- }
- Frame {
- msec: 208
- hash: "7b66e21652a7d0982226e281a48411a9"
- }
- Frame {
- msec: 224
- hash: "a716c8d2c94433dee719f92f0822c8ec"
- }
- Frame {
- msec: 240
- hash: "f22a47b846cfee96ebdf39bbce2e6d51"
- }
- Frame {
- msec: 256
- hash: "5a8932d13d624932a65694fd19ec05cd"
- }
- Frame {
- msec: 272
- hash: "48e62dd171f5da82b5aa26c765e4042c"
- }
- Frame {
- msec: 288
- hash: "63d3c47f7dec1236440a05e0a8380900"
- }
- Frame {
- msec: 304
- hash: "323af110731b7af0c30f8862ff59b833"
- }
- Frame {
- msec: 320
- hash: "83c029e328e80af83158c37089cf0ece"
- }
- Frame {
- msec: 336
- hash: "3f9a09ae19be34348bb2552915360cf7"
- }
- Frame {
- msec: 352
- hash: "df624d70cae1bcefda8d69c0ff055d83"
- }
- Frame {
- msec: 368
- hash: "d671a3b971468e1d8aa30ab655e020a9"
- }
- Frame {
- msec: 384
- hash: "74c837b29f7f05b615123f0e608b523f"
- }
- Frame {
- msec: 400
- hash: "277ef98ea859fb7685fe6cd44a538a7d"
- }
- Frame {
- msec: 416
- hash: "0a8da7a3f57c3e06e4be5ea1d8a83ae9"
- }
- Frame {
- msec: 432
- hash: "456be9c208d690c479ba12bf6325dde0"
- }
- Frame {
- msec: 448
- hash: "10307beea6d99ab0ff5863f8e35555ed"
- }
- Frame {
- msec: 464
- hash: "170a1d5fe3422cf5223a78015a6a45fd"
- }
- Frame {
- msec: 480
- hash: "64ecb03aa538e74d0b99c6dec7751401"
- }
- Frame {
- msec: 496
- hash: "f3a7e74a1839f9366f9eeec4d2b80d1e"
- }
- Frame {
- msec: 512
- hash: "37c3f25e5cfdb48d7e3ab0cf8ffb9154"
- }
- Frame {
- msec: 528
- hash: "0af81ee0d76ff8335a0e347dc086ca37"
- }
- Frame {
- msec: 544
- hash: "061406edcbd2d4930ab89c3fcab63c7f"
- }
- Frame {
- msec: 560
- hash: "31d65134f340d82dd40f2401bda3fb7e"
- }
- Frame {
- msec: 576
- hash: "16c16c77c65b36d1e0954d5ead2642be"
- }
- Frame {
- msec: 592
- hash: "61c16009b65a55bffb63e27727e1615e"
- }
- Frame {
- msec: 608
- hash: "e1474c2cdd8768ca1ef45bf3bc5234ca"
- }
- Frame {
- msec: 624
- hash: "89c159ef00d273ecfe61332e1bf7244d"
- }
- Frame {
- msec: 640
- hash: "f4d0d3bca25e67908b38910f47b4757e"
- }
- Frame {
- msec: 656
- hash: "0e0c40f8e11a7bd499c80562ac6f8a82"
- }
- Frame {
- msec: 672
- hash: "4310a4c3037d845f088f21ad608f366a"
- }
- Frame {
- msec: 688
- hash: "3d518cd0348d6202243364af1dd6ce89"
- }
- Frame {
- msec: 704
- hash: "41987e6b4248d7944c0dbc6eb3862023"
- }
- Frame {
- msec: 720
- hash: "3e81338d38723d56f2d6c428271f81c1"
- }
- Frame {
- msec: 736
- hash: "902683d72f789399e9d99d1cea1bf177"
- }
- Frame {
- msec: 752
- hash: "efc119983701908a904deb24108c59cb"
- }
- Frame {
- msec: 768
- hash: "3a77785cfd7755f567619d8e04583f6a"
- }
- Frame {
- msec: 784
- hash: "fd85d1dd931033973283a408b5e328a8"
- }
- Frame {
- msec: 800
- hash: "5d3e85acabe5e5ff802eb7731676274f"
- }
- Frame {
- msec: 816
- hash: "ae12f1f37a746e16b06e6b869c89fac1"
- }
- Frame {
- msec: 832
- hash: "a15f19f374bbfb6a922b69d080a91eaa"
- }
- Frame {
- msec: 848
- hash: "84ef6dda8318b623832f58c46d762e89"
- }
- Frame {
- msec: 864
- hash: "b699285764f5e8866a9996f4a0dccc69"
- }
- Frame {
- msec: 880
- hash: "ddd8a006ef048c8d929144aa9fcd7c5a"
- }
- Frame {
- msec: 896
- hash: "177666cb3bb784c83196886b2c6cf6b6"
- }
- Frame {
- msec: 912
- hash: "9cd29b4b023a8b92573575fb3c3dda83"
- }
- Frame {
- msec: 928
- hash: "adc670a9aa0326744cb23e4f5912e6c7"
- }
- Frame {
- msec: 944
- hash: "48db9a5e6aad9a9563a3cd35fb7fa9b6"
- }
- Frame {
- msec: 960
- image: "animated-smooth.0.png"
- }
- Frame {
- msec: 976
- hash: "64b21b89576fdd0083f60a26f57b9c11"
- }
- Frame {
- msec: 992
- hash: "0d407ee07692d0e5a480a60952807b3c"
- }
- Frame {
- msec: 1008
- hash: "845170815a87565dc4229792032b3357"
- }
- Frame {
- msec: 1024
- hash: "8b8120cfc14de03e048632fdea61be21"
- }
- Frame {
- msec: 1040
- hash: "b0070117f1c24a4da87434725d4bb989"
- }
- Frame {
- msec: 1056
- hash: "0239d697642ca1d1b1d1daa3ea048e1e"
- }
- Frame {
- msec: 1072
- hash: "3df54504f8891306fa8f1e9e2075a5e2"
- }
- Frame {
- msec: 1088
- hash: "853429387cc639496c7338244de7e1b7"
- }
- Frame {
- msec: 1104
- hash: "bd70500fbdfe5aa2fe4362a97a1dee2d"
- }
- Frame {
- msec: 1120
- hash: "b375e723b2396b13b8f55cfc0c81c3c3"
- }
- Frame {
- msec: 1136
- hash: "53f05993ba3b426949badd2e4cd66d84"
- }
- Frame {
- msec: 1152
- hash: "23291a0239c69ea07db959e709b1ff5f"
- }
- Frame {
- msec: 1168
- hash: "2192094410e2d7c8d9d4aa5f8deacff5"
- }
- Frame {
- msec: 1184
- hash: "d6615fc345831a3cc5b9a7196284b632"
- }
- Frame {
- msec: 1200
- hash: "92176cce4836dcae4dfca94e49b041a8"
- }
- Frame {
- msec: 1216
- hash: "2a1fcfb753ca237b518da26e67c928e5"
- }
- Frame {
- msec: 1232
- hash: "42be5d26afb9f066dd27cc9fbaf6ce20"
- }
- Frame {
- msec: 1248
- hash: "bd045f4532d78bba0ef1b64118fd9f24"
- }
- Frame {
- msec: 1264
- hash: "7f9999a9c87af43b9703323efab31770"
- }
- Frame {
- msec: 1280
- hash: "0640fcb0b24d3ba4ab8695f78271a438"
- }
- Frame {
- msec: 1296
- hash: "7c9a98e2101c33e17c1bd7e6c2d921ff"
- }
- Frame {
- msec: 1312
- hash: "fce2648975106bc5c0ca9a4530f7f748"
- }
- Frame {
- msec: 1328
- hash: "39cc17ee2e889f17dd07179fda99e431"
- }
- Frame {
- msec: 1344
- hash: "39c46d85d20f7ef3eca1d09c7eb6a068"
- }
- Frame {
- msec: 1360
- hash: "d65d50fbb920e683b041a1c72238225b"
- }
- Frame {
- msec: 1376
- hash: "49a1df977b0494c7c72ca0b65c394e13"
- }
- Frame {
- msec: 1392
- hash: "05cbce0eaa80b4610a9067af8c40f819"
- }
- Frame {
- msec: 1408
- hash: "00ab7798bcd77a99886dff0414f35382"
- }
- Frame {
- msec: 1424
- hash: "5cc90d798786c270ddd2616512f4459f"
- }
- Frame {
- msec: 1440
- hash: "e5df07ea21e8e415c3ec82560f2d0f34"
- }
- Frame {
- msec: 1456
- hash: "ddf1f5c0b97fe4821719ec5bf4bd091b"
- }
- Frame {
- msec: 1472
- hash: "c61d2aa7f934fb5a9f9f7883e063b51c"
- }
- Frame {
- msec: 1488
- hash: "29ddde3300d0520a4c01b5536d8b9e7a"
- }
- Frame {
- msec: 1504
- hash: "2fede2f5d871654f3f8a6e9d890adeac"
- }
- Frame {
- msec: 1520
- hash: "deed4c06c9b713834490832b88e7acaf"
- }
- Frame {
- msec: 1536
- hash: "c2edb016cfdd47c192d1c48281ee76ed"
- }
- Frame {
- msec: 1552
- hash: "a261be47ae89e6b53e6bc1c1197154ae"
- }
- Frame {
- msec: 1568
- hash: "e860e97ebd73b7d1d5d5d90458b34bfe"
- }
- Frame {
- msec: 1584
- hash: "a087b532ecb2f28e4ee60819228c2522"
- }
- Frame {
- msec: 1600
- hash: "64df51b4c1bf744b2aae1c6d908c2cc3"
- }
- Frame {
- msec: 1616
- hash: "4520003d4b221a3de6834b2729b3026d"
- }
- Frame {
- msec: 1632
- hash: "d1110817827c318ceb0c112e8c2bfc1d"
- }
- Frame {
- msec: 1648
- hash: "83d49474db15d5779923972ff5f55917"
- }
- Frame {
- msec: 1664
- hash: "3bae40654ec551d69e7c8c72f631c7a5"
- }
- Frame {
- msec: 1680
- hash: "774740a393f3e9b8f12b81cce8da8280"
- }
- Frame {
- msec: 1696
- hash: "d8e398a1ce9ca45c19951e93bd5c932a"
- }
- Frame {
- msec: 1712
- hash: "2b7eb8a9fe26b032be8b4b9c00995912"
- }
- Frame {
- msec: 1728
- hash: "47e920e3884ccf2f0f49e78070af6929"
- }
- Frame {
- msec: 1744
- hash: "fc913807eb1069d611495fbd5d43ee3d"
- }
- Frame {
- msec: 1760
- hash: "5d9ee853f083d514fbe51d6953d8e000"
- }
- Frame {
- msec: 1776
- hash: "5736362b42bc2d801e02edabb983663a"
- }
- Frame {
- msec: 1792
- hash: "e3a2b5c7247acfc1b30825233fbfd56b"
- }
- Frame {
- msec: 1808
- hash: "48952ffa5e300778eafa768b9fe7df0c"
- }
- Frame {
- msec: 1824
- hash: "fe04cae65aeec18697eca4f3f83a40e9"
- }
- Frame {
- msec: 1840
- hash: "382d454f2366c1fb4ca472faa3bfa5e9"
- }
- Frame {
- msec: 1856
- hash: "89022a8e2feb3dcb845de69aafc333ad"
- }
- Frame {
- msec: 1872
- hash: "25506557c853a0020e98cf3992956989"
- }
- Frame {
- msec: 1888
- hash: "9a64706c52c9e962816953e32950b8ba"
- }
- Frame {
- msec: 1904
- hash: "3cbfded47413172ada64095e65c55e8a"
- }
- Frame {
- msec: 1920
- image: "animated-smooth.1.png"
- }
- Frame {
- msec: 1936
- hash: "c5e399e29b988148913e62ee208b3326"
- }
- Frame {
- msec: 1952
- hash: "3991bc7760b7981d80665e3a7654c9f4"
- }
- Frame {
- msec: 1968
- hash: "05312f9529c94d3331ace7d73c544284"
- }
- Frame {
- msec: 1984
- hash: "a94de4e90a8f8eb4ec33fe902afd226c"
- }
- Frame {
- msec: 2000
- hash: "723f87da7e5b002a2e9b0bcbc81f9458"
- }
- Frame {
- msec: 2016
- hash: "6b8ded0d9386a3fff0601a100c513080"
- }
- Frame {
- msec: 2032
- hash: "f976cd5046ef5391536859e63db905bd"
- }
- Frame {
- msec: 2048
- hash: "a94de4e90a8f8eb4ec33fe902afd226c"
- }
- Frame {
- msec: 2064
- hash: "05312f9529c94d3331ace7d73c544284"
- }
- Frame {
- msec: 2080
- hash: "b980703c1d0018937e83a8ba8862469e"
- }
- Frame {
- msec: 2096
- hash: "c5e399e29b988148913e62ee208b3326"
- }
- Frame {
- msec: 2112
- hash: "3b7b83e97d17440b42e6ef4b962076d8"
- }
- Frame {
- msec: 2128
- hash: "3cbfded47413172ada64095e65c55e8a"
- }
- Frame {
- msec: 2144
- hash: "9a64706c52c9e962816953e32950b8ba"
- }
- Frame {
- msec: 2160
- hash: "25506557c853a0020e98cf3992956989"
- }
- Frame {
- msec: 2176
- hash: "89022a8e2feb3dcb845de69aafc333ad"
- }
- Frame {
- msec: 2192
- hash: "382d454f2366c1fb4ca472faa3bfa5e9"
- }
- Frame {
- msec: 2208
- hash: "fe04cae65aeec18697eca4f3f83a40e9"
- }
- Frame {
- msec: 2224
- hash: "48952ffa5e300778eafa768b9fe7df0c"
- }
- Frame {
- msec: 2240
- hash: "e3a2b5c7247acfc1b30825233fbfd56b"
- }
- Frame {
- msec: 2256
- hash: "5736362b42bc2d801e02edabb983663a"
- }
- Frame {
- msec: 2272
- hash: "5d9ee853f083d514fbe51d6953d8e000"
- }
- Frame {
- msec: 2288
- hash: "fe899138116774df4c4441687e3019c5"
- }
- Frame {
- msec: 2304
- hash: "47e920e3884ccf2f0f49e78070af6929"
- }
- Frame {
- msec: 2320
- hash: "2b7eb8a9fe26b032be8b4b9c00995912"
- }
- Frame {
- msec: 2336
- hash: "64cd225202ed6c91b02c368a9160a656"
- }
- Frame {
- msec: 2352
- hash: "774740a393f3e9b8f12b81cce8da8280"
- }
- Frame {
- msec: 2368
- hash: "3bae40654ec551d69e7c8c72f631c7a5"
- }
- Frame {
- msec: 2384
- hash: "83d49474db15d5779923972ff5f55917"
- }
- Frame {
- msec: 2400
- hash: "d1110817827c318ceb0c112e8c2bfc1d"
- }
- Frame {
- msec: 2416
- hash: "4520003d4b221a3de6834b2729b3026d"
- }
- Frame {
- msec: 2432
- hash: "64df51b4c1bf744b2aae1c6d908c2cc3"
- }
- Frame {
- msec: 2448
- hash: "a087b532ecb2f28e4ee60819228c2522"
- }
- Frame {
- msec: 2464
- hash: "e860e97ebd73b7d1d5d5d90458b34bfe"
- }
- Frame {
- msec: 2480
- hash: "a261be47ae89e6b53e6bc1c1197154ae"
- }
- Frame {
- msec: 2496
- hash: "c2edb016cfdd47c192d1c48281ee76ed"
- }
- Frame {
- msec: 2512
- hash: "deed4c06c9b713834490832b88e7acaf"
- }
- Frame {
- msec: 2528
- hash: "2fede2f5d871654f3f8a6e9d890adeac"
- }
- Frame {
- msec: 2544
- hash: "29ddde3300d0520a4c01b5536d8b9e7a"
- }
- Frame {
- msec: 2560
- hash: "c61d2aa7f934fb5a9f9f7883e063b51c"
- }
- Frame {
- msec: 2576
- hash: "ddf1f5c0b97fe4821719ec5bf4bd091b"
- }
- Frame {
- msec: 2592
- hash: "e5df07ea21e8e415c3ec82560f2d0f34"
- }
- Frame {
- msec: 2608
- hash: "5cc90d798786c270ddd2616512f4459f"
- }
- Frame {
- msec: 2624
- hash: "00ab7798bcd77a99886dff0414f35382"
- }
- Frame {
- msec: 2640
- hash: "05cbce0eaa80b4610a9067af8c40f819"
- }
- Frame {
- msec: 2656
- hash: "a676f45d946aeb9fa577c0e862735b01"
- }
- Frame {
- msec: 2672
- hash: "d65d50fbb920e683b041a1c72238225b"
- }
- Frame {
- msec: 2688
- hash: "39c46d85d20f7ef3eca1d09c7eb6a068"
- }
- Frame {
- msec: 2704
- hash: "39cc17ee2e889f17dd07179fda99e431"
- }
- Frame {
- msec: 2720
- hash: "fce2648975106bc5c0ca9a4530f7f748"
- }
- Frame {
- msec: 2736
- hash: "7c9a98e2101c33e17c1bd7e6c2d921ff"
- }
- Frame {
- msec: 2752
- hash: "0640fcb0b24d3ba4ab8695f78271a438"
- }
- Frame {
- msec: 2768
- hash: "2084ccc60ddd493399c128717816d33b"
- }
- Frame {
- msec: 2784
- hash: "bd045f4532d78bba0ef1b64118fd9f24"
- }
- Frame {
- msec: 2800
- hash: "42be5d26afb9f066dd27cc9fbaf6ce20"
- }
- Frame {
- msec: 2816
- hash: "2a1fcfb753ca237b518da26e67c928e5"
- }
- Frame {
- msec: 2832
- hash: "92176cce4836dcae4dfca94e49b041a8"
- }
- Frame {
- msec: 2848
- hash: "d6615fc345831a3cc5b9a7196284b632"
- }
- Frame {
- msec: 2864
- hash: "85ef33fcb3f91e4fc20391bf94455984"
- }
- Frame {
- msec: 2880
- image: "animated-smooth.2.png"
- }
- Frame {
- msec: 2896
- hash: "53f05993ba3b426949badd2e4cd66d84"
- }
- Frame {
- msec: 2912
- hash: "b375e723b2396b13b8f55cfc0c81c3c3"
- }
- Frame {
- msec: 2928
- hash: "bd70500fbdfe5aa2fe4362a97a1dee2d"
- }
- Frame {
- msec: 2944
- hash: "853429387cc639496c7338244de7e1b7"
- }
- Frame {
- msec: 2960
- hash: "3df54504f8891306fa8f1e9e2075a5e2"
- }
- Frame {
- msec: 2976
- hash: "0239d697642ca1d1b1d1daa3ea048e1e"
- }
- Frame {
- msec: 2992
- hash: "b0070117f1c24a4da87434725d4bb989"
- }
- Frame {
- msec: 3008
- hash: "8b8120cfc14de03e048632fdea61be21"
- }
- Frame {
- msec: 3024
- hash: "845170815a87565dc4229792032b3357"
- }
- Frame {
- msec: 3040
- hash: "0d407ee07692d0e5a480a60952807b3c"
- }
- Frame {
- msec: 3056
- hash: "64b21b89576fdd0083f60a26f57b9c11"
- }
- Frame {
- msec: 3072
- hash: "d7e96278583f83ab636ed68fa130e4d2"
- }
- Frame {
- msec: 3088
- hash: "48db9a5e6aad9a9563a3cd35fb7fa9b6"
- }
- Frame {
- msec: 3104
- hash: "adc670a9aa0326744cb23e4f5912e6c7"
- }
- Frame {
- msec: 3120
- hash: "9cd29b4b023a8b92573575fb3c3dda83"
- }
- Frame {
- msec: 3136
- hash: "177666cb3bb784c83196886b2c6cf6b6"
- }
- Frame {
- msec: 3152
- hash: "ddd8a006ef048c8d929144aa9fcd7c5a"
- }
- Frame {
- msec: 3168
- hash: "b699285764f5e8866a9996f4a0dccc69"
- }
- Frame {
- msec: 3184
- hash: "84ef6dda8318b623832f58c46d762e89"
- }
- Frame {
- msec: 3200
- hash: "a15f19f374bbfb6a922b69d080a91eaa"
- }
- Frame {
- msec: 3216
- hash: "ae12f1f37a746e16b06e6b869c89fac1"
- }
- Frame {
- msec: 3232
- hash: "5d3e85acabe5e5ff802eb7731676274f"
- }
- Frame {
- msec: 3248
- hash: "fd85d1dd931033973283a408b5e328a8"
- }
- Frame {
- msec: 3264
- hash: "3a77785cfd7755f567619d8e04583f6a"
- }
- Frame {
- msec: 3280
- hash: "efc119983701908a904deb24108c59cb"
- }
- Frame {
- msec: 3296
- hash: "902683d72f789399e9d99d1cea1bf177"
- }
- Frame {
- msec: 3312
- hash: "3e81338d38723d56f2d6c428271f81c1"
- }
- Frame {
- msec: 3328
- hash: "41987e6b4248d7944c0dbc6eb3862023"
- }
- Frame {
- msec: 3344
- hash: "3d518cd0348d6202243364af1dd6ce89"
- }
- Frame {
- msec: 3360
- hash: "4310a4c3037d845f088f21ad608f366a"
- }
- Frame {
- msec: 3376
- hash: "0e0c40f8e11a7bd499c80562ac6f8a82"
- }
- Frame {
- msec: 3392
- hash: "f4d0d3bca25e67908b38910f47b4757e"
- }
- Frame {
- msec: 3408
- hash: "f602e3eda1889d1a7e49560f0dfb5d4c"
- }
- Frame {
- msec: 3424
- hash: "e1474c2cdd8768ca1ef45bf3bc5234ca"
- }
- Frame {
- msec: 3440
- hash: "c8312ede0998636a6bd6451d13636577"
- }
- Frame {
- msec: 3456
- hash: "16c16c77c65b36d1e0954d5ead2642be"
- }
- Frame {
- msec: 3472
- hash: "31d65134f340d82dd40f2401bda3fb7e"
- }
- Frame {
- msec: 3488
- hash: "061406edcbd2d4930ab89c3fcab63c7f"
- }
- Frame {
- msec: 3504
- hash: "0af81ee0d76ff8335a0e347dc086ca37"
- }
- Frame {
- msec: 3520
- hash: "0f347763f25350ebb62dda1536372b45"
- }
- Frame {
- msec: 3536
- hash: "f3a7e74a1839f9366f9eeec4d2b80d1e"
- }
- Frame {
- msec: 3552
- hash: "64ecb03aa538e74d0b99c6dec7751401"
- }
- Frame {
- msec: 3568
- hash: "170a1d5fe3422cf5223a78015a6a45fd"
- }
- Frame {
- msec: 3584
- hash: "10307beea6d99ab0ff5863f8e35555ed"
- }
- Frame {
- msec: 3600
- hash: "456be9c208d690c479ba12bf6325dde0"
- }
- Frame {
- msec: 3616
- hash: "0a8da7a3f57c3e06e4be5ea1d8a83ae9"
- }
- Frame {
- msec: 3632
- hash: "277ef98ea859fb7685fe6cd44a538a7d"
- }
- Frame {
- msec: 3648
- hash: "74c837b29f7f05b615123f0e608b523f"
- }
- Frame {
- msec: 3664
- hash: "d671a3b971468e1d8aa30ab655e020a9"
- }
- Frame {
- msec: 3680
- hash: "df624d70cae1bcefda8d69c0ff055d83"
- }
- Frame {
- msec: 3696
- hash: "3f9a09ae19be34348bb2552915360cf7"
- }
- Frame {
- msec: 3712
- hash: "83c029e328e80af83158c37089cf0ece"
- }
- Frame {
- msec: 3728
- hash: "323af110731b7af0c30f8862ff59b833"
- }
- Frame {
- msec: 3744
- hash: "63d3c47f7dec1236440a05e0a8380900"
- }
- Frame {
- msec: 3760
- hash: "48e62dd171f5da82b5aa26c765e4042c"
- }
- Frame {
- msec: 3776
- hash: "5a8932d13d624932a65694fd19ec05cd"
- }
- Frame {
- msec: 3792
- hash: "8419b295f67cae133760da79dfc26505"
- }
- Frame {
- msec: 3808
- hash: "a716c8d2c94433dee719f92f0822c8ec"
- }
- Frame {
- msec: 3824
- hash: "7b66e21652a7d0982226e281a48411a9"
- }
- Frame {
- msec: 3840
- image: "animated-smooth.3.png"
- }
- Frame {
- msec: 3856
- hash: "59470d71fa4426d0283e86371f2bfc2a"
- }
- Frame {
- msec: 3872
- hash: "d56ba74d38c1889a278929d1c1b7f17a"
- }
- Frame {
- msec: 3888
- hash: "de471829f8ad3b43bf1b4df9d1d65a4d"
- }
- Frame {
- msec: 3904
- hash: "cd2180be80101c2aa4350b51b7a6f502"
- }
- Frame {
- msec: 3920
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 3936
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 3952
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 3968
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 3984
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 4000
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 4016
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 4032
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 4048
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 4064
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 4080
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 4096
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 4112
- hash: "aec13bcab337e55832b0a02fb5c6b526"
- }
- Frame {
- msec: 4128
- hash: "cd2180be80101c2aa4350b51b7a6f502"
- }
- Frame {
- msec: 4144
- hash: "de471829f8ad3b43bf1b4df9d1d65a4d"
- }
- Frame {
- msec: 4160
- hash: "ed9f2ca797894612600bc4b7fbaecb84"
- }
- Frame {
- msec: 4176
- hash: "59470d71fa4426d0283e86371f2bfc2a"
- }
- Frame {
- msec: 4192
- hash: "9a2f92efb51bcc6293d6a8e82d5314ea"
- }
- Frame {
- msec: 4208
- hash: "7b66e21652a7d0982226e281a48411a9"
- }
- Frame {
- msec: 4224
- hash: "a716c8d2c94433dee719f92f0822c8ec"
- }
- Frame {
- msec: 4240
- hash: "f22a47b846cfee96ebdf39bbce2e6d51"
- }
- Frame {
- msec: 4256
- hash: "5a8932d13d624932a65694fd19ec05cd"
- }
- Frame {
- msec: 4272
- hash: "48e62dd171f5da82b5aa26c765e4042c"
- }
- Frame {
- msec: 4288
- hash: "63d3c47f7dec1236440a05e0a8380900"
- }
- Frame {
- msec: 4304
- hash: "323af110731b7af0c30f8862ff59b833"
- }
- Frame {
- msec: 4320
- hash: "83c029e328e80af83158c37089cf0ece"
- }
- Frame {
- msec: 4336
- hash: "3f9a09ae19be34348bb2552915360cf7"
- }
- Frame {
- msec: 4352
- hash: "df624d70cae1bcefda8d69c0ff055d83"
- }
- Frame {
- msec: 4368
- hash: "d671a3b971468e1d8aa30ab655e020a9"
- }
- Frame {
- msec: 4384
- hash: "74c837b29f7f05b615123f0e608b523f"
- }
- Frame {
- msec: 4400
- hash: "277ef98ea859fb7685fe6cd44a538a7d"
- }
- Frame {
- msec: 4416
- hash: "0a8da7a3f57c3e06e4be5ea1d8a83ae9"
- }
- Frame {
- msec: 4432
- hash: "456be9c208d690c479ba12bf6325dde0"
- }
- Frame {
- msec: 4448
- hash: "10307beea6d99ab0ff5863f8e35555ed"
- }
- Frame {
- msec: 4464
- hash: "170a1d5fe3422cf5223a78015a6a45fd"
- }
- Frame {
- msec: 4480
- hash: "64ecb03aa538e74d0b99c6dec7751401"
- }
- Frame {
- msec: 4496
- hash: "f3a7e74a1839f9366f9eeec4d2b80d1e"
- }
- Frame {
- msec: 4512
- hash: "37c3f25e5cfdb48d7e3ab0cf8ffb9154"
- }
- Frame {
- msec: 4528
- hash: "0af81ee0d76ff8335a0e347dc086ca37"
- }
- Frame {
- msec: 4544
- hash: "061406edcbd2d4930ab89c3fcab63c7f"
- }
- Frame {
- msec: 4560
- hash: "31d65134f340d82dd40f2401bda3fb7e"
- }
- Frame {
- msec: 4576
- hash: "16c16c77c65b36d1e0954d5ead2642be"
- }
- Frame {
- msec: 4592
- hash: "61c16009b65a55bffb63e27727e1615e"
- }
- Frame {
- msec: 4608
- hash: "e1474c2cdd8768ca1ef45bf3bc5234ca"
- }
- Frame {
- msec: 4624
- hash: "89c159ef00d273ecfe61332e1bf7244d"
- }
- Frame {
- msec: 4640
- hash: "f4d0d3bca25e67908b38910f47b4757e"
- }
- Frame {
- msec: 4656
- hash: "0e0c40f8e11a7bd499c80562ac6f8a82"
- }
- Frame {
- msec: 4672
- hash: "4310a4c3037d845f088f21ad608f366a"
- }
- Frame {
- msec: 4688
- hash: "3d518cd0348d6202243364af1dd6ce89"
- }
- Frame {
- msec: 4704
- hash: "41987e6b4248d7944c0dbc6eb3862023"
- }
- Frame {
- msec: 4720
- hash: "3e81338d38723d56f2d6c428271f81c1"
- }
- Frame {
- msec: 4736
- hash: "902683d72f789399e9d99d1cea1bf177"
- }
- Frame {
- msec: 4752
- hash: "efc119983701908a904deb24108c59cb"
- }
- Frame {
- msec: 4768
- hash: "3a77785cfd7755f567619d8e04583f6a"
- }
- Frame {
- msec: 4784
- hash: "fd85d1dd931033973283a408b5e328a8"
- }
- Frame {
- msec: 4800
- image: "animated-smooth.4.png"
- }
- Frame {
- msec: 4816
- hash: "ae12f1f37a746e16b06e6b869c89fac1"
- }
- Frame {
- msec: 4832
- hash: "a15f19f374bbfb6a922b69d080a91eaa"
- }
- Frame {
- msec: 4848
- hash: "84ef6dda8318b623832f58c46d762e89"
- }
- Frame {
- msec: 4864
- hash: "b699285764f5e8866a9996f4a0dccc69"
- }
- Frame {
- msec: 4880
- hash: "ddd8a006ef048c8d929144aa9fcd7c5a"
- }
- Frame {
- msec: 4896
- hash: "177666cb3bb784c83196886b2c6cf6b6"
- }
- Frame {
- msec: 4912
- hash: "9cd29b4b023a8b92573575fb3c3dda83"
- }
- Frame {
- msec: 4928
- hash: "adc670a9aa0326744cb23e4f5912e6c7"
- }
- Frame {
- msec: 4944
- hash: "48db9a5e6aad9a9563a3cd35fb7fa9b6"
- }
- Frame {
- msec: 4960
- hash: "d7e96278583f83ab636ed68fa130e4d2"
- }
- Frame {
- msec: 4976
- hash: "64b21b89576fdd0083f60a26f57b9c11"
- }
- Frame {
- msec: 4992
- hash: "0d407ee07692d0e5a480a60952807b3c"
- }
- Frame {
- msec: 5008
- hash: "845170815a87565dc4229792032b3357"
- }
- Frame {
- msec: 5024
- hash: "8b8120cfc14de03e048632fdea61be21"
- }
- Frame {
- msec: 5040
- hash: "b0070117f1c24a4da87434725d4bb989"
- }
- Frame {
- msec: 5056
- hash: "0239d697642ca1d1b1d1daa3ea048e1e"
- }
- Frame {
- msec: 5072
- hash: "3df54504f8891306fa8f1e9e2075a5e2"
- }
- Frame {
- msec: 5088
- hash: "853429387cc639496c7338244de7e1b7"
- }
- Frame {
- msec: 5104
- hash: "bd70500fbdfe5aa2fe4362a97a1dee2d"
- }
- Frame {
- msec: 5120
- hash: "b375e723b2396b13b8f55cfc0c81c3c3"
- }
- Frame {
- msec: 5136
- hash: "53f05993ba3b426949badd2e4cd66d84"
- }
- Frame {
- msec: 5152
- hash: "23291a0239c69ea07db959e709b1ff5f"
- }
- Frame {
- msec: 5168
- hash: "2192094410e2d7c8d9d4aa5f8deacff5"
- }
- Frame {
- msec: 5184
- hash: "d6615fc345831a3cc5b9a7196284b632"
- }
- Frame {
- msec: 5200
- hash: "92176cce4836dcae4dfca94e49b041a8"
- }
- Frame {
- msec: 5216
- hash: "2a1fcfb753ca237b518da26e67c928e5"
- }
- Frame {
- msec: 5232
- hash: "42be5d26afb9f066dd27cc9fbaf6ce20"
- }
- Frame {
- msec: 5248
- hash: "bd045f4532d78bba0ef1b64118fd9f24"
- }
- Frame {
- msec: 5264
- hash: "7f9999a9c87af43b9703323efab31770"
- }
- Frame {
- msec: 5280
- hash: "0640fcb0b24d3ba4ab8695f78271a438"
- }
- Frame {
- msec: 5296
- hash: "7c9a98e2101c33e17c1bd7e6c2d921ff"
- }
- Frame {
- msec: 5312
- hash: "fce2648975106bc5c0ca9a4530f7f748"
- }
- Frame {
- msec: 5328
- hash: "39cc17ee2e889f17dd07179fda99e431"
- }
- Frame {
- msec: 5344
- hash: "39c46d85d20f7ef3eca1d09c7eb6a068"
- }
- Frame {
- msec: 5360
- hash: "d65d50fbb920e683b041a1c72238225b"
- }
- Frame {
- msec: 5376
- hash: "49a1df977b0494c7c72ca0b65c394e13"
- }
- Frame {
- msec: 5392
- hash: "05cbce0eaa80b4610a9067af8c40f819"
- }
- Frame {
- msec: 5408
- hash: "00ab7798bcd77a99886dff0414f35382"
- }
- Frame {
- msec: 5424
- hash: "5cc90d798786c270ddd2616512f4459f"
- }
- Frame {
- msec: 5440
- hash: "e5df07ea21e8e415c3ec82560f2d0f34"
- }
- Frame {
- msec: 5456
- hash: "ddf1f5c0b97fe4821719ec5bf4bd091b"
- }
- Frame {
- msec: 5472
- hash: "c61d2aa7f934fb5a9f9f7883e063b51c"
- }
- Frame {
- msec: 5488
- hash: "29ddde3300d0520a4c01b5536d8b9e7a"
- }
- Frame {
- msec: 5504
- hash: "2fede2f5d871654f3f8a6e9d890adeac"
- }
- Frame {
- msec: 5520
- hash: "deed4c06c9b713834490832b88e7acaf"
- }
- Frame {
- msec: 5536
- hash: "c2edb016cfdd47c192d1c48281ee76ed"
- }
- Frame {
- msec: 5552
- hash: "a261be47ae89e6b53e6bc1c1197154ae"
- }
- Frame {
- msec: 5568
- hash: "e860e97ebd73b7d1d5d5d90458b34bfe"
- }
- Frame {
- msec: 5584
- hash: "a087b532ecb2f28e4ee60819228c2522"
- }
- Frame {
- msec: 5600
- hash: "64df51b4c1bf744b2aae1c6d908c2cc3"
- }
- Frame {
- msec: 5616
- hash: "4520003d4b221a3de6834b2729b3026d"
- }
- Frame {
- msec: 5632
- hash: "d1110817827c318ceb0c112e8c2bfc1d"
- }
- Frame {
- msec: 5648
- hash: "83d49474db15d5779923972ff5f55917"
- }
- Frame {
- msec: 5664
- hash: "3bae40654ec551d69e7c8c72f631c7a5"
- }
- Frame {
- msec: 5680
- hash: "774740a393f3e9b8f12b81cce8da8280"
- }
- Frame {
- msec: 5696
- hash: "d8e398a1ce9ca45c19951e93bd5c932a"
- }
- Frame {
- msec: 5712
- hash: "2b7eb8a9fe26b032be8b4b9c00995912"
- }
- Frame {
- msec: 5728
- hash: "47e920e3884ccf2f0f49e78070af6929"
- }
- Frame {
- msec: 5744
- hash: "fc913807eb1069d611495fbd5d43ee3d"
- }
- Frame {
- msec: 5760
- image: "animated-smooth.5.png"
- }
- Frame {
- msec: 5776
- hash: "5736362b42bc2d801e02edabb983663a"
- }
- Frame {
- msec: 5792
- hash: "e3a2b5c7247acfc1b30825233fbfd56b"
- }
- Frame {
- msec: 5808
- hash: "48952ffa5e300778eafa768b9fe7df0c"
- }
- Frame {
- msec: 5824
- hash: "fe04cae65aeec18697eca4f3f83a40e9"
- }
- Frame {
- msec: 5840
- hash: "382d454f2366c1fb4ca472faa3bfa5e9"
- }
- Frame {
- msec: 5856
- hash: "89022a8e2feb3dcb845de69aafc333ad"
- }
- Frame {
- msec: 5872
- hash: "25506557c853a0020e98cf3992956989"
- }
- Frame {
- msec: 5888
- hash: "9a64706c52c9e962816953e32950b8ba"
- }
- Frame {
- msec: 5904
- hash: "3cbfded47413172ada64095e65c55e8a"
- }
- Frame {
- msec: 5920
- hash: "ec7e1190dd4fe122545e6ce6c8740500"
- }
- Frame {
- msec: 5936
- hash: "c5e399e29b988148913e62ee208b3326"
- }
- Frame {
- msec: 5952
- hash: "3991bc7760b7981d80665e3a7654c9f4"
- }
- Frame {
- msec: 5968
- hash: "05312f9529c94d3331ace7d73c544284"
- }
- Frame {
- msec: 5984
- hash: "a94de4e90a8f8eb4ec33fe902afd226c"
- }
- Frame {
- msec: 6000
- hash: "723f87da7e5b002a2e9b0bcbc81f9458"
- }
- Frame {
- msec: 6016
- hash: "6b8ded0d9386a3fff0601a100c513080"
- }
- Frame {
- msec: 6032
- hash: "f976cd5046ef5391536859e63db905bd"
- }
- Frame {
- msec: 6048
- hash: "a94de4e90a8f8eb4ec33fe902afd226c"
- }
- Frame {
- msec: 6064
- hash: "05312f9529c94d3331ace7d73c544284"
- }
- Frame {
- msec: 6080
- hash: "b980703c1d0018937e83a8ba8862469e"
- }
- Frame {
- msec: 6096
- hash: "c5e399e29b988148913e62ee208b3326"
- }
- Frame {
- msec: 6112
- hash: "3b7b83e97d17440b42e6ef4b962076d8"
- }
- Frame {
- msec: 6128
- hash: "3cbfded47413172ada64095e65c55e8a"
- }
- Frame {
- msec: 6144
- hash: "9a64706c52c9e962816953e32950b8ba"
- }
- Frame {
- msec: 6160
- hash: "25506557c853a0020e98cf3992956989"
- }
- Frame {
- msec: 6176
- hash: "89022a8e2feb3dcb845de69aafc333ad"
- }
- Frame {
- msec: 6192
- hash: "382d454f2366c1fb4ca472faa3bfa5e9"
- }
- Frame {
- msec: 6208
- hash: "fe04cae65aeec18697eca4f3f83a40e9"
- }
- Frame {
- msec: 6224
- hash: "48952ffa5e300778eafa768b9fe7df0c"
- }
- Frame {
- msec: 6240
- hash: "e3a2b5c7247acfc1b30825233fbfd56b"
- }
- Frame {
- msec: 6256
- hash: "5736362b42bc2d801e02edabb983663a"
- }
- Frame {
- msec: 6272
- hash: "5d9ee853f083d514fbe51d6953d8e000"
- }
- Frame {
- msec: 6288
- hash: "fe899138116774df4c4441687e3019c5"
- }
- Frame {
- msec: 6304
- hash: "47e920e3884ccf2f0f49e78070af6929"
- }
- Frame {
- msec: 6320
- hash: "2b7eb8a9fe26b032be8b4b9c00995912"
- }
- Frame {
- msec: 6336
- hash: "64cd225202ed6c91b02c368a9160a656"
- }
- Frame {
- msec: 6352
- hash: "774740a393f3e9b8f12b81cce8da8280"
- }
- Frame {
- msec: 6368
- hash: "3bae40654ec551d69e7c8c72f631c7a5"
- }
- Frame {
- msec: 6384
- hash: "83d49474db15d5779923972ff5f55917"
- }
- Frame {
- msec: 6400
- hash: "d1110817827c318ceb0c112e8c2bfc1d"
- }
- Frame {
- msec: 6416
- hash: "4520003d4b221a3de6834b2729b3026d"
- }
- Frame {
- msec: 6432
- hash: "64df51b4c1bf744b2aae1c6d908c2cc3"
- }
- Frame {
- msec: 6448
- hash: "a087b532ecb2f28e4ee60819228c2522"
- }
- Frame {
- msec: 6464
- hash: "e860e97ebd73b7d1d5d5d90458b34bfe"
- }
- Frame {
- msec: 6480
- hash: "a261be47ae89e6b53e6bc1c1197154ae"
- }
- Frame {
- msec: 6496
- hash: "c2edb016cfdd47c192d1c48281ee76ed"
- }
- Frame {
- msec: 6512
- hash: "deed4c06c9b713834490832b88e7acaf"
- }
- Frame {
- msec: 6528
- hash: "2fede2f5d871654f3f8a6e9d890adeac"
- }
- Frame {
- msec: 6544
- hash: "29ddde3300d0520a4c01b5536d8b9e7a"
- }
- Frame {
- msec: 6560
- hash: "c61d2aa7f934fb5a9f9f7883e063b51c"
- }
- Frame {
- msec: 6576
- hash: "ddf1f5c0b97fe4821719ec5bf4bd091b"
- }
- Frame {
- msec: 6592
- hash: "e5df07ea21e8e415c3ec82560f2d0f34"
- }
- Frame {
- msec: 6608
- hash: "5cc90d798786c270ddd2616512f4459f"
- }
- Frame {
- msec: 6624
- hash: "00ab7798bcd77a99886dff0414f35382"
- }
- Frame {
- msec: 6640
- hash: "05cbce0eaa80b4610a9067af8c40f819"
- }
- Frame {
- msec: 6656
- hash: "a676f45d946aeb9fa577c0e862735b01"
- }
- Frame {
- msec: 6672
- hash: "d65d50fbb920e683b041a1c72238225b"
- }
- Frame {
- msec: 6688
- hash: "39c46d85d20f7ef3eca1d09c7eb6a068"
- }
- Frame {
- msec: 6704
- hash: "39cc17ee2e889f17dd07179fda99e431"
- }
- Frame {
- msec: 6720
- image: "animated-smooth.6.png"
- }
- Frame {
- msec: 6736
- hash: "7c9a98e2101c33e17c1bd7e6c2d921ff"
- }
- Frame {
- msec: 6752
- hash: "0640fcb0b24d3ba4ab8695f78271a438"
- }
- Frame {
- msec: 6768
- hash: "2084ccc60ddd493399c128717816d33b"
- }
- Frame {
- msec: 6784
- hash: "bd045f4532d78bba0ef1b64118fd9f24"
- }
- Frame {
- msec: 6800
- hash: "42be5d26afb9f066dd27cc9fbaf6ce20"
- }
- Frame {
- msec: 6816
- hash: "2a1fcfb753ca237b518da26e67c928e5"
- }
- Frame {
- msec: 6832
- hash: "92176cce4836dcae4dfca94e49b041a8"
- }
- Frame {
- msec: 6848
- hash: "d6615fc345831a3cc5b9a7196284b632"
- }
- Frame {
- msec: 6864
- hash: "85ef33fcb3f91e4fc20391bf94455984"
- }
- Frame {
- msec: 6880
- hash: "23291a0239c69ea07db959e709b1ff5f"
- }
- Frame {
- msec: 6896
- hash: "53f05993ba3b426949badd2e4cd66d84"
- }
- Frame {
- msec: 6912
- hash: "b375e723b2396b13b8f55cfc0c81c3c3"
- }
- Frame {
- msec: 6928
- hash: "bd70500fbdfe5aa2fe4362a97a1dee2d"
- }
- Frame {
- msec: 6944
- hash: "853429387cc639496c7338244de7e1b7"
- }
- Frame {
- msec: 6960
- hash: "3df54504f8891306fa8f1e9e2075a5e2"
- }
- Frame {
- msec: 6976
- hash: "0239d697642ca1d1b1d1daa3ea048e1e"
- }
- Frame {
- msec: 6992
- hash: "b0070117f1c24a4da87434725d4bb989"
- }
- Frame {
- msec: 7008
- hash: "8b8120cfc14de03e048632fdea61be21"
- }
- Frame {
- msec: 7024
- hash: "845170815a87565dc4229792032b3357"
- }
- Frame {
- msec: 7040
- hash: "0d407ee07692d0e5a480a60952807b3c"
- }
- Frame {
- msec: 7056
- hash: "64b21b89576fdd0083f60a26f57b9c11"
- }
- Frame {
- msec: 7072
- hash: "d7e96278583f83ab636ed68fa130e4d2"
- }
- Frame {
- msec: 7088
- hash: "48db9a5e6aad9a9563a3cd35fb7fa9b6"
- }
- Key {
- type: 6
- key: 16777249
- modifiers: 67108864
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 7104
- hash: "adc670a9aa0326744cb23e4f5912e6c7"
- }
- Frame {
- msec: 7120
- hash: "9cd29b4b023a8b92573575fb3c3dda83"
- }
- Frame {
- msec: 7136
- hash: "177666cb3bb784c83196886b2c6cf6b6"
- }
- Frame {
- msec: 7152
- hash: "ddd8a006ef048c8d929144aa9fcd7c5a"
- }
- Frame {
- msec: 7168
- hash: "b699285764f5e8866a9996f4a0dccc69"
- }
- Frame {
- msec: 7184
- hash: "84ef6dda8318b623832f58c46d762e89"
- }
- Frame {
- msec: 7200
- hash: "a15f19f374bbfb6a922b69d080a91eaa"
- }
- Frame {
- msec: 7216
- hash: "ae12f1f37a746e16b06e6b869c89fac1"
- }
- Frame {
- msec: 7232
- hash: "5d3e85acabe5e5ff802eb7731676274f"
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.1.png b/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.1.png
deleted file mode 100644
index 80cbd26..0000000
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.2.png b/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.2.png
deleted file mode 100644
index 80cbd26..0000000
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.3.png b/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.3.png
deleted file mode 100644
index 80cbd26..0000000
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.3.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.4.png b/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.4.png
deleted file mode 100644
index 80cbd26..0000000
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.4.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.qml b/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.qml
deleted file mode 100644
index 16cd5e9..0000000
--- a/tests/auto/declarative/visual/qdeclarativeborderimage/data/borders.qml
+++ /dev/null
@@ -1,1359 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 32
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 48
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 64
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 80
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 96
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 112
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 128
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 144
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 160
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 176
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 192
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 208
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 224
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 240
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 256
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 272
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 288
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 304
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 320
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 336
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 352
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 368
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 384
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 400
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 416
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 432
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 448
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 464
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 480
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 496
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 512
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 528
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 544
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 560
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 576
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 592
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 608
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 624
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 640
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 656
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 672
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 688
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 704
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 720
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 736
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 752
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 768
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 784
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 800
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 816
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 832
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 848
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 864
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 880
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 896
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 912
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 928
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 944
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 960
- image: "borders.0.png"
- }
- Frame {
- msec: 976
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 992
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1008
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1024
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1040
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1056
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1072
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1088
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1104
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1120
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1136
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1152
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1168
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1184
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1200
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1216
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1232
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1248
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1264
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1280
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1296
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1312
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1328
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1344
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1360
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1376
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1392
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1408
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1424
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1440
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1456
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1472
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1488
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1504
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1520
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1536
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1552
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1568
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1584
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1600
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1616
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1632
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1648
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1664
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1680
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1696
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1712
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1728
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1744
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1760
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1776
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1792
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1808
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1824
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1840
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1856
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1872
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1888
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1904
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1920
- image: "borders.1.png"
- }
- Frame {
- msec: 1936
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1952
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1968
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 1984
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2000
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2016
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2032
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2048
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2064
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2080
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2096
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2112
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2128
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2144
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2160
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2176
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2192
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2208
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2224
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2240
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2256
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2272
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2288
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2304
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2320
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2336
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2352
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2368
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2384
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2400
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2416
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2432
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2448
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2464
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2480
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2496
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2512
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2528
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2544
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2560
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2576
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2592
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2608
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2624
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2640
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2656
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2672
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2688
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2704
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2720
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2736
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2752
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2768
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2784
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2800
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2816
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2832
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2848
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2864
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2880
- image: "borders.2.png"
- }
- Frame {
- msec: 2896
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2912
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2928
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2944
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2960
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2976
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 2992
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3008
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3024
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3040
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3056
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3072
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3088
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3104
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3120
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3136
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3152
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3168
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3184
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3200
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3216
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3232
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3248
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3264
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3280
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3296
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3312
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3328
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3344
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3360
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3376
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3392
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3408
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3424
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3440
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3456
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3472
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3488
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3504
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3520
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3536
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3552
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3568
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3584
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3600
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3616
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3632
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3648
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3664
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3680
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3696
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3712
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3728
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3744
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3760
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3776
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3792
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3808
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3824
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3840
- image: "borders.3.png"
- }
- Frame {
- msec: 3856
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3872
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3888
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3904
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3920
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3936
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3952
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3968
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 3984
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4000
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4016
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4032
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4048
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4064
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4080
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4096
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4112
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4128
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4144
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4160
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4176
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4192
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4208
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4224
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4240
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4256
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4272
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4288
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4304
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4320
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4336
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4352
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4368
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4384
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4400
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4416
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4432
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4448
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4464
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4480
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4496
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4512
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4528
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4544
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4560
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4576
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4592
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4608
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4624
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4640
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4656
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4672
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4688
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4704
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4720
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4736
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4752
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4768
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4784
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4800
- image: "borders.4.png"
- }
- Frame {
- msec: 4816
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4832
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4848
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4864
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4880
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4896
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4912
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4928
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4944
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4960
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4976
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 4992
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5008
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5024
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5040
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5056
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5072
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5088
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5104
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5120
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5136
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5152
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5168
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5184
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5200
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5216
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5232
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5248
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5264
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5280
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5296
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5312
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5328
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5344
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5360
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5376
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5392
- hash: "ab9753116e289c932064144bb0845857"
- }
- Frame {
- msec: 5408
- hash: "ab9753116e289c932064144bb0845857"
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativeeasefollow/easefollow.qml b/tests/auto/declarative/visual/qdeclarativeeasefollow/easefollow.qml
deleted file mode 100644
index bd3270f..0000000
--- a/tests/auto/declarative/visual/qdeclarativeeasefollow/easefollow.qml
+++ /dev/null
@@ -1,40 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 800; height: 240; color: "gray"
-
- Rectangle {
- id: rect
- width: 50; height: 20; y: 30; color: "black"
- x: SequentialAnimation {
- repeat: true
- NumberAnimation { from: 50; to: 700; duration: 2000 }
- NumberAnimation { from: 700; to: 50; duration: 2000 }
- }
- }
-
- Rectangle {
- width: 50; height: 20; y: 60; color: "red"
- x: EaseFollow { source: rect.x; velocity: 400 }
- }
-
- Rectangle {
- width: 50; height: 20; y: 90; color: "yellow"
- x: EaseFollow { source: rect.x; velocity: 300; reversingMode: EaseFollow.Immediate }
- }
-
- Rectangle {
- width: 50; height: 20; y: 120; color: "green"
- x: EaseFollow { source: rect.x; reversingMode: EaseFollow.Sync }
- }
-
- Rectangle {
- width: 50; height: 20; y: 150; color: "purple"
- x: EaseFollow { source: rect.x; maximumEasingTime: 200 }
- }
-
- Rectangle {
- width: 50; height: 20; y: 180; color: "blue"
- x: EaseFollow { source: rect.x; duration: 300 }
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativegridview/gridview2.qml b/tests/auto/declarative/visual/qdeclarativegridview/gridview2.qml
deleted file mode 100644
index 81d06cf..0000000
--- a/tests/auto/declarative/visual/qdeclarativegridview/gridview2.qml
+++ /dev/null
@@ -1,58 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 300; height: 400; color: "black"
-
- ListModel {
- id: appModel
- ListElement { lColor: "red" }
- ListElement { lColor: "yellow" }
- ListElement { lColor: "green" }
- ListElement { lColor: "blue" }
- ListElement { lColor: "purple" }
- ListElement { lColor: "orange" }
- ListElement { lColor: "pink" }
- ListElement { lColor: "brown" }
- ListElement { lColor: "gray" }
- ListElement { lColor: "red" }
- ListElement { lColor: "yellow" }
- ListElement { lColor: "green" }
- ListElement { lColor: "blue" }
- ListElement { lColor: "purple" }
- ListElement { lColor: "orange" }
- ListElement { lColor: "pink" }
- ListElement { lColor: "brown" }
- ListElement { lColor: "gray" }
- ListElement { lColor: "red" }
- ListElement { lColor: "yellow" }
- ListElement { lColor: "green" }
- }
-
- Component {
- id: appDelegate
- Item {
- width: 100; height: 100
- Rectangle {
- color: lColor; x: 4; y: 4
- width: 92; height: 92
- }
- }
- }
-
- GridView {
- id: gridView; anchors.fill: parent
- cellWidth: 100; cellHeight: 100; cacheBuffer: 200
- model: appModel; delegate: appDelegate; focus: true
- keyNavigationWraps: true
-
- flickableData: [
- Rectangle {
- color: "transparent"; border.color: "white"; border.width: 8; z: 3000
- height: 100; width: 100; x: 4; y: 4
- x: EaseFollow { source: gridView.currentItem.x; velocity: 500 }
- y: EaseFollow { source: gridView.currentItem.y; velocity: 500 }
- }
- ]
- }
-
-}
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.0.png b/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.0.png
deleted file mode 100644
index cf36d60..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.0.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.1.png b/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.1.png
deleted file mode 100644
index 6069df8..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.2.png b/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.2.png
deleted file mode 100644
index b8bd5f3..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.3.png b/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.3.png
deleted file mode 100644
index cf36d60..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.3.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.4.png b/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.4.png
deleted file mode 100644
index 831d6b4..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.4.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.5.png b/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.5.png
deleted file mode 100644
index f7079dc..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.5.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.6.png b/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.6.png
deleted file mode 100644
index a5f4451..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.6.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.7.png b/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.7.png
deleted file mode 100644
index e1261d0..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.7.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.qml b/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.qml
deleted file mode 100644
index 5a131e9..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/data/drag.qml
+++ /dev/null
@@ -1,5207 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 32
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 48
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 64
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 80
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 96
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 112
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 128
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 144
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 160
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 176
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 192
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 208
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 224
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 240
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 256
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 272
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 288
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 304
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 320
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 336
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 352
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 368
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 384
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 400
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 416
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 432
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 448
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 464
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 480
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 496
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 512
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 528
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 544
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 560
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 576
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 592
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 608
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 624
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 640
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 656
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 672
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 688
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 704
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 720
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 736
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 752
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 768
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 784
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 800
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 816
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 832
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 848
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 864
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 880
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 896
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 912
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 928
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 944
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 960
- image: "drag.0.png"
- }
- Frame {
- msec: 976
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 992
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1008
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1024
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1040
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1056
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1072
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1088
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1104
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1120
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1136
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1152
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1168
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1184
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1200
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1216
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1232
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1248
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1264
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1280
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1296
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1312
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1328
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1344
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1360
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1376
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1392
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1408
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1424
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1440
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1456
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1472
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1488
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1504
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1520
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1536
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1552
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1568
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1584
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1600
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1616
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1632
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1648
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1664
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1680
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1696
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1712
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1728
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1744
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1760
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1776
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1792
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 2
- button: 1
- buttons: 1
- x: 16; y: 54
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1808
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 1824
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 16; y: 55
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 17; y: 55
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1840
- hash: "b6b4b2c7acddd23609caa9727911b981"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 17; y: 55
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1856
- hash: "b6b4b2c7acddd23609caa9727911b981"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 18; y: 55
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1872
- hash: "022610222cfbcf9e9a8991cdb60c7bbb"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 19; y: 54
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1888
- hash: "9b5201a3201a102b20592d81218b5e74"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 22; y: 49
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 29; y: 42
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1904
- hash: "a6c6df34bb552249393ba208ad327691"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 37; y: 35
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1920
- image: "drag.1.png"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 47; y: 27
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1936
- hash: "978543d8f9688605625f40b960d79c28"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 59; y: 21
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 73; y: 15
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1952
- hash: "6170ab3a7e51278ac4462b89fe7781b4"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 87; y: 9
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1968
- hash: "32866f0aa5b13b3ab68661f49336439e"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 100; y: 5
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 1984
- hash: "26dc17c16eed46d37932cfe48d182b62"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 111; y: 1
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 121; y: -3
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2000
- hash: "ba70936fb44396fac184cc7ba0e94a90"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 130; y: -6
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2016
- hash: "bae13291d4f031c34d80428d83367ede"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 140; y: -8
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2032
- hash: "0a2fbfdc27bb6662553f637f1c325475"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 151; y: -9
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 160; y: -9
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2048
- hash: "cdab85736dfcc4424d42e0e96094eded"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 170; y: -9
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2064
- hash: "76d51ce9ad69560d983d8d86d50f7bd0"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 174; y: -9
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2080
- hash: "b5ada9e80f7f894aa141d5e3cfa5d69e"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 176; y: -9
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2096
- hash: "446d35fc7b9c0fe4bf0bfe0182f994f6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 183; y: -5
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2112
- hash: "cced849d314835d43ebd93bcfe396c12"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 188; y: -3
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2128
- hash: "09696d700944c373f82d7c6f75d51c51"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 193; y: 0
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2144
- hash: "af56586db93c49637c9bfbb17cac9001"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 199; y: 2
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 203; y: 5
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2160
- hash: "66fc1b30b4037aad3975036faccbb7a7"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 209; y: 8
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2176
- hash: "3f443d9c89d6ba1b36ca9635bc32de1a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 217; y: 11
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2192
- hash: "df47db8cc7bb466b298749a6449d3d70"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 227; y: 15
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 234; y: 18
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 241; y: 20
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2208
- hash: "c1146fdc0e628d050442606096e52b10"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 252; y: 23
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2224
- hash: "22f44c43f300fd7ff2b4d87d93756178"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 272; y: 30
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2240
- hash: "bf11dc9a9679692abde5d116a169eecf"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 299; y: 38
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 329; y: 48
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2256
- hash: "e63f1960f342639ac412010ffcefb049"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 360; y: 57
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2272
- hash: "ae0228419ec9358025c3026a39abd671"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 392; y: 65
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2288
- hash: "6d2272e2bea21c280100ed8de5b95d4e"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 422; y: 72
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 451; y: 76
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2304
- hash: "1628c6fa5feabd90924452bc9f55054d"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 476; y: 78
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2320
- hash: "f696791eb0a317b0efb69407616bec9f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 497; y: 78
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2336
- hash: "f696791eb0a317b0efb69407616bec9f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 513; y: 77
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 527; y: 76
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2352
- hash: "1628c6fa5feabd90924452bc9f55054d"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 538; y: 75
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2368
- hash: "a5d3d247e22a2852a60fe07ab40345a5"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 548; y: 74
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2384
- hash: "a453fb6bcdd87f819782d8d8c46b56ee"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 556; y: 74
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 563; y: 75
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2400
- hash: "a5d3d247e22a2852a60fe07ab40345a5"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 570; y: 76
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2416
- hash: "1628c6fa5feabd90924452bc9f55054d"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 576; y: 78
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2432
- hash: "f696791eb0a317b0efb69407616bec9f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 582; y: 78
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 585; y: 80
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2448
- hash: "8f061986df633c21dcad767ee857988c"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 589; y: 81
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2464
- hash: "2cc110a6fb800171d7d752693ede1e4e"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 592; y: 82
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2480
- hash: "319fc3053e02a8b161f33a79d9839bb1"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 595; y: 85
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 597; y: 89
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2496
- hash: "42915c8866746316cf1083a2d55410fb"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 601; y: 95
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2512
- hash: "5df34b3ae292de9a9cd8ff09347e7bd4"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 606; y: 103
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2528
- hash: "1f9bc3c955983ea85f568797cb4f7365"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 609; y: 113
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 613; y: 124
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2544
- hash: "3f156dc64a12c672874acf5456ef4a31"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 618; y: 136
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2560
- hash: "d4d9fe5b5f138e06a87039ebf8695d03"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 619; y: 142
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2576
- hash: "383fe813021ee2791930200b2f88a802"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 620; y: 148
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 622; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2592
- hash: "a235544bd5e791dfa329bd0b87358bfa"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 625; y: 163
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2608
- hash: "a87497cf47db3209610b532efe7eb380"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 629; y: 174
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2624
- hash: "abe69b4e4b7508028226f9b73c38058a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 634; y: 194
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 642; y: 225
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2640
- hash: "51c72fa2fa4c8765d882fe65dc0d697d"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 649; y: 260
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2656
- hash: "79da7ed21bd6fc16b7264d4403e763cc"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 655; y: 291
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2672
- hash: "b2828b6340a57fa45416469b23b7cef0"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 658; y: 316
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 659; y: 340
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2688
- hash: "64a5351f2d746b338c34c7ea9ba6e1fe"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 660; y: 370
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2704
- hash: "9eedb7a6875210084fd2ec95d3505512"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 661; y: 408
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2720
- hash: "b88eb8fa8a0cfc263dc7b655ddc29db0"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 661; y: 448
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2736
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 660; y: 487
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 659; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2752
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 658; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2768
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 658; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2784
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 658; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 658; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2800
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 657; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2816
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 656; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2832
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 654; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 652; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2848
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 651; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2864
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 650; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2880
- image: "drag.2.png"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 650; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 648; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2896
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 647; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2912
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 646; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2928
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 645; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 644; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2944
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 643; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2960
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 642; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2976
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 641; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 640; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 2992
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 640; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3008
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 639; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3024
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 639; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 638; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3040
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 636; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3056
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 625; y: 505
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3072
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 611; y: 505
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3088
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 582; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 546; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3104
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 505; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3120
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 460; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3136
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 408; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 354; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3152
- hash: "c2997fdde10812f02791bfed5f158ac3"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 300; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3168
- hash: "23a6dfbd09e5b44d04f252cedaeb68af"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 250; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3184
- hash: "f74422989711f86a0840ffc98e8a29e9"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 206; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 163; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3200
- hash: "fa922246d254a7c46d2d1d6ec91a2b02"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 140; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 122; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3216
- hash: "ef216cb8c2bf58db7d58bd8a2e4eb38d"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 101; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3232
- hash: "a383228d22e64b8a7758c959288eaca8"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 64; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3248
- hash: "636ca2a8e91c49ef6c8b1c93b830f345"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 36; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 16; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3264
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -1; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3280
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3296
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3312
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3328
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3344
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3360
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3376
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 505
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3392
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 504
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 504
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3408
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 505
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3424
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3440
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3456
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3472
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3488
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3504
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3520
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3536
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3552
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Frame {
- msec: 3568
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3584
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3600
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3616
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Frame {
- msec: 3632
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 491
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3648
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 428
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3664
- hash: "9fa1e3686467f28cb013fe093dab388c"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 342
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3680
- hash: "7ef97d10862f80d53e0b3b4446661deb"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 264
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 203
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3696
- hash: "c679866b3965b7b5f48b843d6efccf42"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 160
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3712
- hash: "de4bd9ad3cbb9bb19bf75f871b044072"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 144
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3728
- hash: "c5349bbddc03edd5ee3537e2a738f1ad"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 136
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 132
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3744
- hash: "bcbe9ec2687a6030385f08d3dc17becf"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 130
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3760
- hash: "3ad767f63eaccb9e64a9f704900f2530"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 129
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3776
- hash: "421a1ffde15fda0e7846bc095ed2ea37"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 128
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 128
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3792
- hash: "55c260da304a6b1119af83f6a4efcff0"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 123
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3808
- hash: "f231cc521db801b4ec71248812e12db8"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 104
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3824
- hash: "b489b6b604e7f7699cac9e42d0725323"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 68
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 35
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3840
- image: "drag.3.png"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 13
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3856
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 2
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3872
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -6
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -12
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3888
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -25
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3904
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -46
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3920
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -65
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -70
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3936
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -74
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3952
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -76
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3968
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -76
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 3984
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -76
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4000
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -77
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4016
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -78
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4032
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4048
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -78
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4064
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4080
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4096
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -77
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4112
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4128
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4144
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: -78
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4160
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -3; y: -84
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4176
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -2; y: -105
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 1; y: -151
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4192
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4208
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4224
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4240
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4256
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4272
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4288
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4304
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4320
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4336
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4352
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4368
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Frame {
- msec: 4384
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 3; y: -151
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4400
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 4; y: -149
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4416
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 5; y: -147
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4432
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 5; y: -143
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 6; y: -138
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4448
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 7; y: -130
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4464
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 9; y: -117
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4480
- hash: "668cc6d9d699b947a7c0f3ff4b26853f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 13; y: -94
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 20; y: -63
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4496
- hash: "b1b54f7bf8ab9cf98d96f9b34192434b"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 29; y: -24
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4512
- hash: "a6c6df34bb552249393ba208ad327691"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 39; y: 15
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4528
- hash: "a05eb803b1f1f3574a2f2e08fe37bd35"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 49; y: 50
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 58; y: 74
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4544
- hash: "3c2f3db46673c2640a26832900b609cb"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 65; y: 91
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4560
- hash: "d0539a9791874f48634bb3cb9f78d9db"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 71; y: 103
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4576
- hash: "f2d862a0b81e2578799d64aef2e6bddc"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 77; y: 112
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 81; y: 121
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4592
- hash: "295ef097845e30064c4d810a7718896c"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 86; y: 128
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4608
- hash: "22a4a17d82ac402c0e8372861609ff1c"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 92; y: 136
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4624
- hash: "a70e81b1435afd77b9079c58685ef9d0"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 98; y: 143
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 104; y: 151
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4640
- hash: "d66fefd68fcd96834548c18797eee4bd"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 111; y: 159
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4656
- hash: "fcc435dc6f2643cd21a7cfac078880af"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 118; y: 166
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4672
- hash: "736edfcf33245d46aaea199634896c17"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 123; y: 173
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 129; y: 183
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4688
- hash: "7b7ab312d0c6f4bfc87a2ae467324f4e"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 137; y: 197
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4704
- hash: "d78ce756fc27055eeee15001419b7fb5"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 146; y: 215
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4720
- hash: "4f15a726939d7f489d1fe58ebb5bcd0a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 157; y: 235
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 168; y: 255
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4736
- hash: "72184d71fd2fdc6786a43045db0be68f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 180; y: 274
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4752
- hash: "3b3f3f34218bf238f310412cb8c4968d"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 192; y: 293
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4768
- hash: "24c00a7154471431d43b1db957ad6424"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 205; y: 316
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 221; y: 343
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4784
- hash: "30081a33ab007ff2c7ba6cc293a5aec3"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 237; y: 371
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4800
- image: "drag.4.png"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 253; y: 396
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4816
- hash: "c0cadb7730838d553b146804c37506b0"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 268; y: 419
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 276; y: 429
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 284; y: 438
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4832
- hash: "101c007d0e2cf82331ba1cab4880e8a2"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 291; y: 448
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4848
- hash: "72e46df7427420c5e942a97831723d3f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 307; y: 468
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4864
- hash: "4b7a009b46982a1e9e31250d7ebf0a20"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 323; y: 492
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 341; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4880
- hash: "a3ba70933b6452fad0cdc4192e04be23"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 359; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4896
- hash: "c2ee16182222b403f914eb5550ac6f91"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 378; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4912
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 397; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 416; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4928
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 432; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4944
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 445; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4960
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 456; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 466; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4976
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 475; y: 506
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 4992
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 482; y: 505
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5008
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 488; y: 504
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 492; y: 503
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5024
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 496; y: 503
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5040
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 500; y: 502
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5056
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 507; y: 501
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5072
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 512; y: 500
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 516; y: 498
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5088
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 521; y: 494
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5104
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 525; y: 486
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5120
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 532; y: 472
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 542; y: 445
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5136
- hash: "9356ce797d12ae076af947cd0e658551"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 553; y: 414
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5152
- hash: "76a8d3b8465f08fdc4586c7766667eff"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 563; y: 389
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5168
- hash: "569e56ba99776d03dd3140e53bc77f56"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 569; y: 373
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 573; y: 363
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5184
- hash: "7139c72a2458685006da79d9cf11bc44"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 577; y: 354
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5200
- hash: "a83d5ef213edec4c8f938ab04afb5c4f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 580; y: 344
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5216
- hash: "5533602bc8a473c162966142d4bddebd"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 584; y: 321
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 586; y: 301
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5232
- hash: "7a79d6e31874428233e9c141d70522fd"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 588; y: 264
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5248
- hash: "b14f4daeb25cd71baae36f4cec111813"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 591; y: 238
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5264
- hash: "e2b2513d2918ffb85bab5fff5a8be644"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 592; y: 225
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 593; y: 216
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5280
- hash: "af0cbb3423491917db1fdaa8350d48b0"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 594; y: 209
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5296
- hash: "b9c107f0a13ad37ae05b4d5f9e5f5442"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 594; y: 200
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5312
- hash: "0bbc0c7a4a40ee6b19565c04c23b565d"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 594; y: 182
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 593; y: 146
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5328
- hash: "49494e8526a1417c151c7cac7099b9e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 590; y: 107
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5344
- hash: "5e0839c4414cc8ddc5241c658fd3bf88"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 585; y: 80
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5360
- hash: "8f061986df633c21dcad767ee857988c"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 582; y: 67
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5376
- hash: "d78c0a4fa0ccad407a565fab3a5c95b9"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 579; y: 61
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 576; y: 57
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5392
- hash: "cee6816f84911bc2262afe28d8996719"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 573; y: 55
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5408
- hash: "2cc6cd514ef7299dd60bf1a735b81d36"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 569; y: 51
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5424
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 564; y: 44
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 557; y: 35
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5440
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 548; y: 25
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5456
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 540; y: 14
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 532; y: 5
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5472
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 524; y: -1
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5488
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 517; y: -5
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5504
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 510; y: -9
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5520
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 501; y: -14
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 492; y: -18
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5536
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 483; y: -21
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5552
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 476; y: -21
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5568
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 470; y: -19
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 464; y: -15
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5584
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 458; y: -9
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5600
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 452; y: -3
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5616
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 446; y: 4
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 439; y: 11
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5632
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 432; y: 20
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5648
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 424; y: 29
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5664
- hash: "68c40f3551d7d10e61c5ffbb6948c7e6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 413; y: 42
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 400; y: 59
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5680
- hash: "9bc8a652f43c0e3cae9492f5dff624e7"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 392; y: 70
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 385; y: 79
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5696
- hash: "5465128afe72d9618cd9abc47f4ce72f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 378; y: 88
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5712
- hash: "ad739c2028caf8f89d8ae04d509c7854"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 366; y: 102
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 353; y: 114
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5728
- hash: "97cd37f639a7bea76a2f68774c0753db"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 339; y: 126
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5744
- hash: "d24fc8a57dd34e6ddb726426247ec219"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 324; y: 140
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5760
- image: "drag.5.png"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 308; y: 158
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 288; y: 181
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5776
- hash: "7af87eb80fa9d87fe8d8b5e4a2fff5e1"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 266; y: 208
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5792
- hash: "73623f4a857fd4d5150c2eeef1341540"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 243; y: 237
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5808
- hash: "076c4b60d9ec197950ade51e3f1be791"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 217; y: 265
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 191; y: 291
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5824
- hash: "22b7d7765c634763fa86912ea262efca"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 167; y: 314
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5840
- hash: "1267c017931bda0b88b4672f46d499e0"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 147; y: 331
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5856
- hash: "b6a545e4c14b809f4ebcffbcb59a8e4f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 132; y: 344
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 121; y: 354
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5872
- hash: "b1085cb508d4613c76e99bc879c62cbf"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 111; y: 363
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5888
- hash: "365fd1260c2109e6d5bd0a97ce3a7e4e"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 100; y: 370
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5904
- hash: "3a7d001313b23cbbb7f3d842ab40f41b"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 86; y: 377
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 66; y: 385
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5920
- hash: "c5bda48bb2eaee54d6d8416592830327"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 45; y: 394
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5936
- hash: "5d0fd6d8a6ced4f197fe3b09e7e9155b"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 29; y: 402
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5952
- hash: "79e2825f98644c061ae5216ae1823e4b"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 16; y: 410
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 6; y: 417
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5968
- hash: "22a3978f2f3a0cde67f459527af3b3f2"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 0; y: 422
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 427
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 5984
- hash: "1511bec94911dd272f78a726e15bf76e"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 432
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6000
- hash: "0f892f7e570cdc703e492248c9f54b6c"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 439
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6016
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 447
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 452
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6032
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 457
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6048
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 459
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6064
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 464
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 465
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6080
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 467
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6096
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 468
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6112
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 468
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 468
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6128
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 468
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6144
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 468
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6160
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 469
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 470
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6176
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 470
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6192
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Frame {
- msec: 6208
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 470
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6224
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -3; y: 470
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -3; y: 470
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6240
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -2; y: 470
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6256
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -1; y: 470
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6272
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -1; y: 468
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 0; y: 467
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6288
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 0; y: 464
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6304
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 0; y: 458
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6320
- hash: "ec34aa6937d2c081bdf11660a5eb461a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -3; y: 441
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 408
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6336
- hash: "58413f9b01f1e0b49519d8b6a3011607"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 366
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6352
- hash: "b3992d2f9c1383c710ee325a94117a8b"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 327
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6368
- hash: "bd415044fcf6218d8184cb0206105e65"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 300
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 288
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6384
- hash: "e7296140fe8b28bed77e95e588c0e463"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 280
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6400
- hash: "9ff532223ccccd663809187465e478c2"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 276
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6416
- hash: "4de9ca75503db05df5d8274d75c202e5"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 271
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 259
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6432
- hash: "a83b5bc409207e986055081b4ed3faa6"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 227
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6448
- hash: "7fdbd00dd3553241f30fd6568a8ab646"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 190
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6464
- hash: "5ebaa67eaadc1ede8c46964fa1dffff1"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -4; y: 169
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: -2; y: 160
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6480
- hash: "de4bd9ad3cbb9bb19bf75f871b044072"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 1; y: 156
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6496
- hash: "9d762cd4dd6508cf8b54c47b76f4ef37"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 5; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6512
- hash: "bdf17c384f4f824a89a06b88ba17c15f"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 10; y: 154
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 25; y: 152
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6528
- hash: "f279f28995785afd143726aef7673b50"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 52; y: 149
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6544
- hash: "53b6b82a61d017e12afb01a728d8d856"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 80; y: 148
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6560
- hash: "9a48039175cab1360a0cf5cc195e2082"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 98; y: 148
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 112; y: 150
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6576
- hash: "cfc3991e30eef6c2edb66cb6060b2bde"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 123; y: 153
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6592
- hash: "737d8907f62768e623ba76866a509d1e"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 134; y: 155
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6608
- hash: "dea2a596f7d85f29728b33d126d997e5"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 145; y: 158
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 157; y: 161
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6624
- hash: "3969a0bbb284ab1d5efd20cf93b0422d"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 168; y: 164
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6640
- hash: "071ff25e49f7f16a727ff58c42ff766e"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 176; y: 169
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6656
- hash: "454abec991a4675763f379c256919fa7"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 184; y: 173
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 189; y: 177
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6672
- hash: "6de741c4e6057dc8580106155c4ac627"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 194; y: 184
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6688
- hash: "e35853e99cd205b7ccabdf632b238584"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 199; y: 192
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6704
- hash: "15a70a0196227c6bce50ed70cd6383c8"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 204; y: 201
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 211; y: 210
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6720
- image: "drag.6.png"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 217; y: 217
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6736
- hash: "5e951eb6017a060287e398fcaf4aeba9"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 224; y: 223
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6752
- hash: "ddd0f27027e23a45aef131296c781865"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 235; y: 228
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 246; y: 232
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6768
- hash: "715102a252756e5a8c4f459d808aec6a"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 257; y: 235
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6784
- hash: "42b9c1b894247ddbd85f4a4aca5695f1"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 267; y: 239
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6800
- hash: "b67b4bdd412ed5160901803c60c6f19e"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 275; y: 239
- modifiers: 0
- sendToViewport: true
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 280; y: 239
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6816
- hash: "3490cc41c2b1f9301c209bdb8f052add"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 281; y: 239
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6832
- hash: "df32868d564ebbc41c359409b5a69e7d"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 282; y: 239
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6848
- hash: "b9cb430a6f677e67c87322e0aff53fb1"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 282; y: 239
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6864
- hash: "b9cb430a6f677e67c87322e0aff53fb1"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 281; y: 239
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6880
- hash: "df32868d564ebbc41c359409b5a69e7d"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 280; y: 239
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6896
- hash: "3490cc41c2b1f9301c209bdb8f052add"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 279; y: 240
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6912
- hash: "e23a88f49a73cd2a9326095dd380ab55"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 277; y: 240
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6928
- hash: "ffffc1aed27fe77c2fe5c035eab706a9"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 277; y: 240
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6944
- hash: "ffffc1aed27fe77c2fe5c035eab706a9"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 276; y: 240
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6960
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Mouse {
- type: 5
- button: 0
- buttons: 1
- x: 276; y: 240
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 6976
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 6992
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Mouse {
- type: 3
- button: 1
- buttons: 0
- x: 276; y: 240
- modifiers: 0
- sendToViewport: true
- }
- Frame {
- msec: 7008
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7024
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7040
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7056
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7072
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7088
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7104
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7120
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7136
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7152
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7168
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7184
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7200
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7216
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7232
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7248
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7264
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7280
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7296
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7312
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7328
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7344
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7360
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7376
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7392
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7408
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7424
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7440
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7456
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7472
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7488
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7504
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7520
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7536
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7552
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7568
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7584
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7600
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7616
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7632
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7648
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7664
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7680
- image: "drag.7.png"
- }
- Frame {
- msec: 7696
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7712
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7728
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7744
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7760
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7776
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7792
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7808
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7824
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7840
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7856
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7872
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7888
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7904
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7920
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7936
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7952
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7968
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 7984
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
- Frame {
- msec: 8000
- hash: "2c1ce07ab6ce0072f6cb205f1e5297e0"
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/drag.qml b/tests/auto/declarative/visual/qdeclarativemouseregion/drag.qml
deleted file mode 100644
index dbb2a24..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/drag.qml
+++ /dev/null
@@ -1,21 +0,0 @@
-import Qt 4.6
-
-Rectangle{
- width:400
- height:440
- color: "white"
- Rectangle{
- id: draggable
- width:40; height:40; color: "lightsteelblue"
- y:20
- MouseArea{
- anchors.fill: parent
- drag.target: draggable
- drag.axis: "XandYAxis"
- drag.minimumX: 0
- drag.maximumX: 360
- drag.minimumY: 20
- drag.maximumY: 400
- }
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativemouseregion/mouseregion.qml b/tests/auto/declarative/visual/qdeclarativemouseregion/mouseregion.qml
deleted file mode 100644
index 3c722d0..0000000
--- a/tests/auto/declarative/visual/qdeclarativemouseregion/mouseregion.qml
+++ /dev/null
@@ -1,124 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- id: root
- width: 400
- height: 100
-
- // Left click on me
- Rectangle {
- width: 98; height: 48
- color: "red"
- MouseArea {
- id: mr1
- anchors.fill: parent
- enabled: false
- onClicked: { parent.color = "blue"; root.error = "mr1 should ignore presses"; }
- }
- }
-
- // Left click, then right click
- Rectangle {
- x: 100
- width: 98; height: 48
- color: "red"
- MouseArea {
- id: mr2
- anchors.fill: parent
- acceptedButtons: Qt.RightButton
- onClicked: {
- if (mouse.button == Qt.RightButton) {
- parent.color = "blue";
- } else {
- parent.color = "green";
- root.error = "mr1 should ignore presses";
- }
- }
- }
- }
-
- // press and hold me
- Rectangle {
- x: 200
- width: 98; height: 48
- color: "red"
- MouseArea {
- id: mr3
- anchors.fill: parent
- onPressAndHold: {
- parent.color = "blue";
- }
- }
- }
-
- // click me
- Rectangle {
- x: 300
- width: 98; height: 48
- color: "red"
- MouseArea {
- id: mr4
- anchors.fill: parent
- onPressed: {
- parent.color = "blue";
- }
- onReleased: {
- parent.color = "red";
- }
- }
- }
-
- // move into and out of me
- Rectangle {
- x: 0
- y: 50
- width: 98; height: 48
- color: "red"
- MouseArea {
- id: mr5
- anchors.fill: parent
- hoverEnabled: true
- onEntered: {
- parent.color = "blue";
- }
- onExited: {
- parent.color = "green";
- }
- }
- }
-
- // click, then double click me
- Rectangle {
- x: 100
- y: 50
- width: 98; height: 48
- color: "red"
- MouseArea {
- id: mr6
- anchors.fill: parent
- onClicked: {
- parent.color = "blue";
- }
- onDoubleClicked: {
- parent.color = "green";
- }
- }
- }
-
- // click, then double click me - nothing should happen
- Rectangle {
- x: 100
- y: 50
- width: 98; height: 48
- color: "red"
- MouseArea {
- id: mr7
- anchors.fill: parent
- enabled: false
- onClicked: { parent.color = "blue" }
- onPressed: { parent.color = "yellow" }
- onReleased: { parent.color = "cyan" }
- onDoubleClicked: { parent.color = "green" }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativeparticles/particles.qml b/tests/auto/declarative/visual/qdeclarativeparticles/particles.qml
deleted file mode 100644
index 2d481c9..0000000
--- a/tests/auto/declarative/visual/qdeclarativeparticles/particles.qml
+++ /dev/null
@@ -1,54 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 640; height: 480; color: "black"
-
- Particles { id:particlesAnotEmitting
- y:60; width: 260; height:30; source: "star.png";
- lifeSpan:1000; count: 50; angle:70; angleDeviation:36;
- velocity:30; velocityDeviation:10; emissionRate: 0
- ParticleMotionWander { yvariance:5; xvariance:30; pace:100 }
- }
- Particles { id:particlesA
- y:0; width: 260; height:30; source: "star.png";
- lifeSpan:1000; count: 50; angle:70; angleDeviation:36;
- velocity:30; velocityDeviation:10; emissionRate: 10
- ParticleMotionWander { yvariance:5; xvariance:30; pace:100 }
- }
-
- Particles { id:particlesB
- y:280; x:180; width:1; height:1; lifeSpan:1000; source: "star.png"
- count: 100; angle:270; angleDeviation:45; velocity:50; velocityDeviation:30;
- emissionRate: 0
- ParticleMotionGravity { yattractor: 1000; xattractor:0; acceleration:25 }
- }
-
- Timer { running: true; interval: 1000; repeat: true; onTriggered: particlesB.burst(200, 2000); }
-
- Column{
- x: 340;
- Repeater{
- model: 5
- delegate: Component{
- Item{
- width: 100; height: 100
- Rectangle{
- color: "blue"
- width: 2; height: 2;
- x: 49; y:49;
- }
- Particles{
- x: 50; y:50; width: 0; height: 0;
- fadeInDuration: 0; fadeOutDuration: 0
- lifeSpan: 1000; lifeSpanDeviation:0;
- source: "star.png"
- count: -1; emissionRate: 120;
- emissionVariance: index/2;
- velocity: 250; velocityDeviation: 0;
- angle: 0; angleDeviation: 0;
- }
- }
- }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/clock.qml b/tests/auto/declarative/visual/qdeclarativespringfollow/clock.qml
deleted file mode 100644
index 04bbabc..0000000
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/clock.qml
+++ /dev/null
@@ -1,64 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- id: clock
- color: "gray"
- width: 200; height: 200
-
- property var hours: 10
- property var minutes: 28
- property var seconds: 0
-
- Timer {
- interval: 1000; running: true; repeat: true; triggeredOnStart: true
- onTriggered: seconds++
- }
-
- Image { id: background; source: "content/clock.png" }
-
- Image {
- x: 92.5; y: 27
- source: "content/hour.png"
- smooth: true
- transform: Rotation {
- id: hourRotation
- origin.x: 7.5; origin.y: 73; angle: 0
- angle: SpringFollow {
- spring: 2; damping: 0.2; modulus: 360
- source: (clock.hours * 30) + (clock.minutes * 0.5)
- }
- }
- }
-
- Image {
- x: 93.5; y: 17
- source: "content/minute.png"
- smooth: true
- transform: Rotation {
- id: minuteRotation
- origin.x: 6.5; origin.y: 83; angle: 0
- angle: SpringFollow {
- spring: 2; damping: 0.2; modulus: 360
- source: clock.minutes * 6
- }
- }
- }
-
- Image {
- x: 97.5; y: 20
- source: "content/second.png"
- smooth: true
- transform: Rotation {
- id: secondRotation
- origin.x: 2.5; origin.y: 80; angle: 0
- angle: SpringFollow {
- spring: 5; damping: 0.25; modulus: 360
- source: clock.seconds * 6
- }
- }
- }
-
- Image {
- anchors.centerIn: background; source: "content/center.png"
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativespringfollow/follow.qml b/tests/auto/declarative/visual/qdeclarativespringfollow/follow.qml
deleted file mode 100644
index 62503e4..0000000
--- a/tests/auto/declarative/visual/qdeclarativespringfollow/follow.qml
+++ /dev/null
@@ -1,71 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- color: "#ffffff"
- width: 320; height: 240
- Rectangle {
- id: rect
- color: "#00ff00"
- y: 200; width: 60; height: 20
- y: SequentialAnimation {
- repeat: true
- NumberAnimation {
- to: 20; duration: 500
- easing.type: "InOutQuad"
- }
- NumberAnimation {
- to: 200; duration: 2000
- easing.type: "OutBounce"
- }
- PauseAnimation { duration: 1000 }
- }
- }
-
- // Velocity
- Rectangle {
- color: "#ff0000"
- x: rect.width; width: rect.width; height: 20
- y: 200
- y: SpringFollow { source: rect.y; velocity: 200 }
- }
-
- // Spring
- Rectangle {
- color: "#ff0000"
- x: rect.width * 2; width: rect.width/2; height: 20
- y: 200
- y: SpringFollow { source: rect.y; spring: 1.0; damping: 0.2 }
- }
- Rectangle {
- color: "#880000"
- x: rect.width * 2.5; width: rect.width/2; height: 20
- y: 200
- y: SpringFollow { source: rect.y; spring: 1.0; damping: 0.2; mass: 3.0 } // "heavier" object
- }
-
- // Follow mouse
- MouseArea {
- id: mouseRegion
- anchors.fill: parent
- Rectangle {
- id: ball
- width: 20; height: 20
- radius: 10
- color: "#0000ff"
- x: SpringFollow { id: f1; source: mouseRegion.mouseX-10; spring: 1.0; damping: 0.05; epsilon: 0.25 }
- y: SpringFollow { id: f2; source: mouseRegion.mouseY-10; spring: 1.0; damping: 0.05; epsilon: 0.25 }
- states: [
- State {
- name: "following"
- when: !f1.inSync || !f2.inSync
- PropertyChanges { target: ball; color: "#ff0000" }
- }
- ]
- transitions: [
- Transition {
- ColorAnimation { duration: 200 }
- }
- ]
- }
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/elide2.qml b/tests/auto/declarative/visual/qdeclarativetext/elide/elide2.qml
deleted file mode 100644
index c163e05..0000000
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/elide2.qml
+++ /dev/null
@@ -1,12 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 500
- height: 100
-
- Text {
- width: NumberAnimation { from: 500; to: 0; repeat: true; duration: 5000 }
- elide: Text.ElideRight
- text: 'Here is some very long text that we should truncate when sizing window'
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativetext/elide/multilength.qml b/tests/auto/declarative/visual/qdeclarativetext/elide/multilength.qml
deleted file mode 100644
index ca41eab..0000000
--- a/tests/auto/declarative/visual/qdeclarativetext/elide/multilength.qml
+++ /dev/null
@@ -1,19 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 500
- height: 50
- color: "lightBlue"
- Rectangle {
- width: myText.width
- height: myText.height
- color: "white"
- anchors.centerIn: parent
- Text {
- id: myText
- width: NumberAnimation { from: 500; to: 0; repeat: true; duration: 1000 }
- elide: "ElideRight"
- text: "Brevity is the soul of wit, and tediousness the limbs and outward flourishes.\x9CBrevity is a great charm of eloquence.\x9CBe concise!\x9CSHHHHHHHHHHHHHHHHHHHHHHHHHHHH"
- }
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativetext/font/plaintext.qml b/tests/auto/declarative/visual/qdeclarativetext/font/plaintext.qml
deleted file mode 100644
index a3aa929..0000000
--- a/tests/auto/declarative/visual/qdeclarativetext/font/plaintext.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- id: s; width: 800; height: 1000; color: "lightsteelblue"
- property string text: "The quick brown fox jumps over the lazy dog."
-
- Column {
- spacing: 10
- Text {
- text: s.text
- }
- Text {
- text: s.text; font.pixelSize: 18
- }
- Text {
- text: s.text; font.pointSize: 25
- }
- Text {
- text: s.text; color: "red"; smooth: true
- }
- Text {
- text: s.text; font.capitalization: "AllUppercase"
- }
- Text {
- text: s.text; font.underline: true
- }
- Text {
- text: s.text; font.overline: true; smooth: true
- }
- Text {
- text: s.text; font.strikeout: true
- }
- Text {
- text: s.text; font.underline: true; font.overline: true; font.strikeout: true
- }
- Text {
- text: s.text; font.letterSpacing: 200
- }
- Text {
- text: s.text; font.underline: true; font.letterSpacing: 200; font.capitalization: "AllUppercase"; color: "blue"
- }
- Text {
- text: s.text; font.overline: true; font.wordSpacing: 25; font.capitalization: "Capitalize"; color: "green"
- }
- Text {
- text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"
- }
- Text {
- text: s.text; font.pixelSize: 18; style: Text.Sunken; styleColor: "gray"
- }
- Text {
- text: s.text; font.pixelSize: 18; style: Text.Raised; styleColor: "yellow"
- }
- Text {
- text: s.text; horizontalAlignment: Text.AlignLeft; width: 800
- }
- Text {
- text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: 800; height: 20
- }
- Text {
- text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: 800; height: 20
- }
- Text {
- text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"; wrap: true; width: 200
- }
- Text {
- text: s.text; elide: Text.ElideLeft; width: 200
- }
- Text {
- text: s.text; elide: Text.ElideMiddle; width: 200
- }
- Text {
- text: s.text; elide: Text.ElideRight; width: 200
- }
- Text {
- text: s.text; elide: Text.ElideLeft; width: 200; wrap: true
- }
- Text {
- text: s.text; elide: Text.ElideMiddle; width: 200; wrap: true
- }
- Text {
- text: s.text; elide: Text.ElideRight; width: 200; wrap: true
- }
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativetext/font/richtext.qml b/tests/auto/declarative/visual/qdeclarativetext/font/richtext.qml
deleted file mode 100644
index 35aa232..0000000
--- a/tests/auto/declarative/visual/qdeclarativetext/font/richtext.qml
+++ /dev/null
@@ -1,85 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- id: s; width: 800; height: 1000; color: "lightsteelblue"
- property string text: "<b>The</b> <i>quick</i> <u>brown</u> <o>fox</o> <big>jumps</big> <small>over</small> <tt>the</tt> <s>lazy</s> <em>dog</em>."
-
- Column {
- spacing: 10
- Text {
- text: s.text
- }
- Text {
- text: s.text; font.pixelSize: 18
- }
- Text {
- text: s.text; font.pointSize: 25
- }
- Text {
- text: s.text; color: "red"; smooth: true
- }
- Text {
- text: s.text; font.capitalization: "AllUppercase"
- }
- Text {
- text: s.text; font.underline: true
- }
- Text {
- text: s.text; font.overline: true; smooth: true
- }
- Text {
- text: s.text; font.strikeout: true
- }
- Text {
- text: s.text; font.underline: true; font.overline: true; font.strikeout: true
- }
- Text {
- text: s.text; font.letterSpacing: 200
- }
- Text {
- text: s.text; font.underline: true; font.letterSpacing: 200; font.capitalization: "AllUppercase"; color: "blue"
- }
- Text {
- text: s.text; font.overline: true; font.wordSpacing: 25; font.capitalization: "Capitalize"; color: "green"
- }
- Text {
- text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"
- }
- Text {
- text: s.text; font.pixelSize: 18; style: Text.Sunken; styleColor: "gray"
- }
- Text {
- text: s.text; font.pixelSize: 18; style: Text.Raised; styleColor: "yellow"
- }
- Text {
- text: s.text; horizontalAlignment: Text.AlignLeft; width: 800
- }
- Text {
- text: s.text; horizontalAlignment: Text.AlignHCenter; verticalAlignment: Text.AlignVCenter; width: 800; height: 20
- }
- Text {
- text: s.text; horizontalAlignment: Text.AlignRight; verticalAlignment: Text.AlignBottom; width: 800; height: 20
- }
- Text {
- text: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"; wrap: true; width: 200
- }
- Text {
- text: s.text; elide: Text.ElideLeft; width: 200
- }
- Text {
- text: s.text; elide: Text.ElideMiddle; width: 200
- }
- Text {
- text: s.text; elide: Text.ElideRight; width: 200
- }
- Text {
- text: s.text; elide: Text.ElideLeft; width: 200; wrap: true
- }
- Text {
- text: s.text; elide: Text.ElideMiddle; width: 200; wrap: true
- }
- Text {
- text: s.text; elide: Text.ElideRight; width: 200; wrap: true
- }
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/cursorDelegate.qml b/tests/auto/declarative/visual/qdeclarativetextedit/cursorDelegate.qml
deleted file mode 100644
index 176a5b8..0000000
--- a/tests/auto/declarative/visual/qdeclarativetextedit/cursorDelegate.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-import Qt 4.6
- Rectangle {
- resources: [
- Component { id: cursorA
- Item { id: cPage;
- x: Behavior { NumberAnimation { } }
- y: Behavior { NumberAnimation { } }
- height: Behavior { NumberAnimation { duration: 200 } }
- Rectangle { id: cRectangle; color: "black"; y: 1; width: 1; height: parent.height-2;
- Rectangle { id:top; color: "black"; width: 3; height: 1; x: -1; y:0}
- Rectangle { id:bottom; color: "black"; width: 3; height: 1; x: -1; anchors.bottom: parent.bottom;}
- opacity: 1
- opacity: SequentialAnimation { running: cPage.parent.focus == true; repeat: true;
- NumberAnimation { properties: "opacity"; to: 1; duration: 500; easing.type: "InQuad"}
- NumberAnimation { properties: "opacity"; to: 0; duration: 500; easing.type: "OutQuad"}
- }
- }
- width: 1;
- }
- }
- ]
- width: 400
- height: 200
- color: "white"
- TextEdit { id: mainText
- text: "Hello World"
- cursorDelegate: cursorA
- focus: true
- font.pixelSize: 28
- selectionColor: "lightsteelblue"
- selectedTextColor: "deeppink"
- color: "forestgreen"
- anchors.centerIn: parent
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativetextedit/wrap.qml b/tests/auto/declarative/visual/qdeclarativetextedit/wrap.qml
deleted file mode 100644
index f9fe025..0000000
--- a/tests/auto/declarative/visual/qdeclarativetextedit/wrap.qml
+++ /dev/null
@@ -1,21 +0,0 @@
-import Qt 4.6
-
-Item {
- height:400
- width: 200
- TextEdit {
- width: 200
- height: 200
- wrap: true
- focus: true
- }
- //With QTBUG-6273 only the bottom one would be wrapped
- TextEdit {
- width: 200
- height: 200
- wrap: true
- text: "This is a test that text edit wraps correctly."
- y:200
- }
-
-}
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/cursorDelegate.qml b/tests/auto/declarative/visual/qdeclarativetextinput/cursorDelegate.qml
deleted file mode 100644
index 6a4e7fa..0000000
--- a/tests/auto/declarative/visual/qdeclarativetextinput/cursorDelegate.qml
+++ /dev/null
@@ -1,35 +0,0 @@
-import Qt 4.6
- Rectangle {
- resources: [
- Component { id: cursorA
- Item { id: cPage;
- x: Behavior { NumberAnimation { } }
- y: Behavior { NumberAnimation { } }
- height: Behavior { NumberAnimation { duration: 200 } }
- Rectangle { id: cRectangle; color: "black"; y: 1; width: 1; height: parent.height-2;
- Rectangle { id:top; color: "black"; width: 3; height: 1; x: -1; y:0}
- Rectangle { id:bottom; color: "black"; width: 3; height: 1; x: -1; anchors.bottom: parent.bottom;}
- opacity: 1
- opacity: SequentialAnimation { running: cPage.parent.focus == true; repeat: true;
- NumberAnimation { properties: "opacity"; to: 1; duration: 500; easing.type: "InQuad"}
- NumberAnimation { properties: "opacity"; to: 0; duration: 500; easing.type: "OutQuad"}
- }
- }
- width: 1;
- }
- }
- ]
- width: 400
- height: 200
- color: "white"
- TextInput { id: mainText
- text: "Hello World"
- cursorDelegate: cursorA
- focus: true
- font.pixelSize: 28
- selectionColor: "lightsteelblue"
- selectedTextColor: "deeppink"
- color: "forestgreen"
- anchors.centerIn: parent
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.0.png b/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.0.png
deleted file mode 100644
index 2b45a06..0000000
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.0.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.1.png b/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.1.png
deleted file mode 100644
index 1f5bae0..0000000
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.1.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.2.png b/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.2.png
deleted file mode 100644
index cb2b5a4..0000000
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.2.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.qml b/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.qml
deleted file mode 100644
index dd7b291..0000000
--- a/tests/auto/declarative/visual/qdeclarativetextinput/data-X11/echoMode.qml
+++ /dev/null
@@ -1,1043 +0,0 @@
-import Qt.VisualTest 4.6
-
-VisualTest {
- Frame {
- msec: 0
- }
- Frame {
- msec: 16
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 32
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Key {
- type: 6
- key: 16777248
- modifiers: 0
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 48
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 64
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 80
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 96
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 112
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 128
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 144
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 160
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 176
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 192
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 208
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 224
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 240
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 256
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 272
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 288
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 304
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 320
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 336
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Frame {
- msec: 352
- hash: "b73bd9c2fef8812591fff9f43b73da13"
- }
- Key {
- type: 6
- key: 74
- modifiers: 33554432
- text: "4a"
- autorep: false
- count: 1
- }
- Frame {
- msec: 368
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 384
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 400
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 416
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 432
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Key {
- type: 7
- key: 74
- modifiers: 33554432
- text: "4a"
- autorep: false
- count: 1
- }
- Frame {
- msec: 448
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 464
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 480
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 496
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 512
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 528
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Key {
- type: 7
- key: 16777248
- modifiers: 33554432
- text: ""
- autorep: false
- count: 1
- }
- Frame {
- msec: 544
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 560
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 576
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 592
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 608
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 624
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 640
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 656
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 672
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Frame {
- msec: 688
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
- }
- Key {
- type: 6
- key: 65
- modifiers: 0
- text: "61"
- autorep: false
- count: 1
- }
- Frame {
- msec: 704
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
- }
- Frame {
- msec: 720
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
- }
- Frame {
- msec: 736
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
- }
- Frame {
- msec: 752
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
- }
- Frame {
- msec: 768
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
- }
- Key {
- type: 7
- key: 65
- modifiers: 0
- text: "61"
- autorep: false
- count: 1
- }
- Frame {
- msec: 784
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
- }
- Frame {
- msec: 800
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
- }
- Frame {
- msec: 816
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
- }
- Frame {
- msec: 832
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
- }
- Frame {
- msec: 848
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
- }
- Key {
- type: 6
- key: 67
- modifiers: 0
- text: "63"
- autorep: false
- count: 1
- }
- Frame {
- msec: 864
- hash: "a4b81c526a5bf8902fde9b8721980977"
- }
- Frame {
- msec: 880
- hash: "a4b81c526a5bf8902fde9b8721980977"
- }
- Frame {
- msec: 896
- hash: "a4b81c526a5bf8902fde9b8721980977"
- }
- Key {
- type: 7
- key: 67
- modifiers: 0
- text: "63"
- autorep: false
- count: 1
- }
- Frame {
- msec: 912
- hash: "a4b81c526a5bf8902fde9b8721980977"
- }
- Frame {
- msec: 928
- hash: "a4b81c526a5bf8902fde9b8721980977"
- }
- Frame {
- msec: 944
- hash: "a4b81c526a5bf8902fde9b8721980977"
- }
- Frame {
- msec: 960
- image: "echoMode.0.png"
- }
- Frame {
- msec: 976
- hash: "a4b81c526a5bf8902fde9b8721980977"
- }
- Key {
- type: 6
- key: 75
- modifiers: 0
- text: "6b"
- autorep: false
- count: 1
- }
- Frame {
- msec: 992
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1008
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1024
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1040
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Key {
- type: 7
- key: 75
- modifiers: 0
- text: "6b"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1056
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1072
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1088
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1104
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1120
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1136
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1152
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1168
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1184
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1200
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1216
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Frame {
- msec: 1232
- hash: "d072aebc2314a149a856634786b208a0"
- }
- Key {
- type: 6
- key: 68
- modifiers: 0
- text: "64"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1248
- hash: "94defec2865529f185d02cfcbfe166cc"
- }
- Frame {
- msec: 1264
- hash: "94defec2865529f185d02cfcbfe166cc"
- }
- Frame {
- msec: 1280
- hash: "94defec2865529f185d02cfcbfe166cc"
- }
- Key {
- type: 7
- key: 68
- modifiers: 0
- text: "64"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1296
- hash: "94defec2865529f185d02cfcbfe166cc"
- }
- Frame {
- msec: 1312
- hash: "94defec2865529f185d02cfcbfe166cc"
- }
- Frame {
- msec: 1328
- hash: "94defec2865529f185d02cfcbfe166cc"
- }
- Key {
- type: 6
- key: 65
- modifiers: 0
- text: "61"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1344
- hash: "f625a2a82879df96141000e6931d4487"
- }
- Frame {
- msec: 1360
- hash: "f625a2a82879df96141000e6931d4487"
- }
- Frame {
- msec: 1376
- hash: "f625a2a82879df96141000e6931d4487"
- }
- Frame {
- msec: 1392
- hash: "f625a2a82879df96141000e6931d4487"
- }
- Frame {
- msec: 1408
- hash: "f625a2a82879df96141000e6931d4487"
- }
- Frame {
- msec: 1424
- hash: "f625a2a82879df96141000e6931d4487"
- }
- Frame {
- msec: 1440
- hash: "f625a2a82879df96141000e6931d4487"
- }
- Frame {
- msec: 1456
- hash: "f625a2a82879df96141000e6931d4487"
- }
- Frame {
- msec: 1472
- hash: "f625a2a82879df96141000e6931d4487"
- }
- Key {
- type: 7
- key: 65
- modifiers: 0
- text: "61"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1488
- hash: "f625a2a82879df96141000e6931d4487"
- }
- Key {
- type: 6
- key: 87
- modifiers: 0
- text: "77"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1504
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
- }
- Frame {
- msec: 1520
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
- }
- Frame {
- msec: 1536
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
- }
- Frame {
- msec: 1552
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
- }
- Key {
- type: 7
- key: 87
- modifiers: 0
- text: "77"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1568
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
- }
- Frame {
- msec: 1584
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
- }
- Frame {
- msec: 1600
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
- }
- Frame {
- msec: 1616
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
- }
- Frame {
- msec: 1632
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
- }
- Frame {
- msec: 1648
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
- }
- Key {
- type: 6
- key: 83
- modifiers: 0
- text: "73"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1664
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Frame {
- msec: 1680
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Frame {
- msec: 1696
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Frame {
- msec: 1712
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Frame {
- msec: 1728
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Key {
- type: 6
- key: 32
- modifiers: 0
- text: "20"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1744
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Key {
- type: 7
- key: 83
- modifiers: 0
- text: "73"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1760
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Frame {
- msec: 1776
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Frame {
- msec: 1792
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Key {
- type: 7
- key: 32
- modifiers: 0
- text: "20"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1808
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Frame {
- msec: 1824
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Frame {
- msec: 1840
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Frame {
- msec: 1856
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
- }
- Key {
- type: 6
- key: 76
- modifiers: 0
- text: "6c"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1872
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
- }
- Frame {
- msec: 1888
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
- }
- Frame {
- msec: 1904
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
- }
- Frame {
- msec: 1920
- image: "echoMode.1.png"
- }
- Key {
- type: 7
- key: 76
- modifiers: 0
- text: "6c"
- autorep: false
- count: 1
- }
- Frame {
- msec: 1936
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
- }
- Frame {
- msec: 1952
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
- }
- Frame {
- msec: 1968
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
- }
- Frame {
- msec: 1984
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
- }
- Frame {
- msec: 2000
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
- }
- Frame {
- msec: 2016
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
- }
- Key {
- type: 6
- key: 79
- modifiers: 0
- text: "6f"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2032
- hash: "c2aff1ebdee69cca7dc67a102fce5e8e"
- }
- Frame {
- msec: 2048
- hash: "c2aff1ebdee69cca7dc67a102fce5e8e"
- }
- Key {
- type: 7
- key: 79
- modifiers: 0
- text: "6f"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2064
- hash: "c2aff1ebdee69cca7dc67a102fce5e8e"
- }
- Frame {
- msec: 2080
- hash: "c2aff1ebdee69cca7dc67a102fce5e8e"
- }
- Key {
- type: 6
- key: 86
- modifiers: 0
- text: "76"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2096
- hash: "c82441813af6ff577687f29f6a09da38"
- }
- Frame {
- msec: 2112
- hash: "c82441813af6ff577687f29f6a09da38"
- }
- Frame {
- msec: 2128
- hash: "c82441813af6ff577687f29f6a09da38"
- }
- Frame {
- msec: 2144
- hash: "c82441813af6ff577687f29f6a09da38"
- }
- Key {
- type: 6
- key: 69
- modifiers: 0
- text: "65"
- autorep: false
- count: 1
- }
- Key {
- type: 7
- key: 86
- modifiers: 0
- text: "76"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2160
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Frame {
- msec: 2176
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Frame {
- msec: 2192
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Frame {
- msec: 2208
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Key {
- type: 6
- key: 32
- modifiers: 0
- text: "20"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2224
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Key {
- type: 7
- key: 69
- modifiers: 0
- text: "65"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2240
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Frame {
- msec: 2256
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Frame {
- msec: 2272
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Frame {
- msec: 2288
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Frame {
- msec: 2304
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Key {
- type: 7
- key: 32
- modifiers: 0
- text: "20"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2320
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Frame {
- msec: 2336
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
- }
- Key {
- type: 6
- key: 77
- modifiers: 0
- text: "6d"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2352
- hash: "8f36e26d8685fe55e7a1dd294188f649"
- }
- Frame {
- msec: 2368
- hash: "8f36e26d8685fe55e7a1dd294188f649"
- }
- Frame {
- msec: 2384
- hash: "8f36e26d8685fe55e7a1dd294188f649"
- }
- Frame {
- msec: 2400
- hash: "8f36e26d8685fe55e7a1dd294188f649"
- }
- Frame {
- msec: 2416
- hash: "8f36e26d8685fe55e7a1dd294188f649"
- }
- Frame {
- msec: 2432
- hash: "8f36e26d8685fe55e7a1dd294188f649"
- }
- Key {
- type: 7
- key: 77
- modifiers: 0
- text: "6d"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2448
- hash: "8f36e26d8685fe55e7a1dd294188f649"
- }
- Frame {
- msec: 2464
- hash: "8f36e26d8685fe55e7a1dd294188f649"
- }
- Frame {
- msec: 2480
- hash: "8f36e26d8685fe55e7a1dd294188f649"
- }
- Frame {
- msec: 2496
- hash: "8f36e26d8685fe55e7a1dd294188f649"
- }
- Key {
- type: 6
- key: 89
- modifiers: 0
- text: "79"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2512
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2528
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2544
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Key {
- type: 7
- key: 89
- modifiers: 0
- text: "79"
- autorep: false
- count: 1
- }
- Frame {
- msec: 2560
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2576
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2592
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2608
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2624
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2640
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2656
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2672
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2688
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2704
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2720
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2736
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2752
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2768
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2784
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2800
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2816
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2832
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2848
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2864
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2880
- image: "echoMode.2.png"
- }
- Frame {
- msec: 2896
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2912
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2928
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2944
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2960
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2976
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 2992
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 3008
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 3024
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 3040
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
- Frame {
- msec: 3056
- hash: "316f2ba46d059755576e6822dc77afb2"
- }
-}
diff --git a/tests/auto/declarative/visual/qdeclarativetextinput/echoMode.qml b/tests/auto/declarative/visual/qdeclarativetextinput/echoMode.qml
deleted file mode 100644
index b0b50e4..0000000
--- a/tests/auto/declarative/visual/qdeclarativetextinput/echoMode.qml
+++ /dev/null
@@ -1,10 +0,0 @@
-import Qt 4.6
-
-Item{
- height: 50; width: 200
- Column{
- //Not an exhaustive echo mode test, that's in QLineEdit (since the functionality is in QLineControl)
- TextInput{ id: main; focus: true; echoMode: TextInput.Password }
- Text{ text: main.text }
- }
-}
diff --git a/tests/auto/declarative/visual/qfxwebview/autosize/autosize.qml b/tests/auto/declarative/visual/qfxwebview/autosize/autosize.qml
deleted file mode 100644
index 74c6844..0000000
--- a/tests/auto/declarative/visual/qfxwebview/autosize/autosize.qml
+++ /dev/null
@@ -1,60 +0,0 @@
-import Qt 4.6
-
-// The WebView size is determined by the width, height,
-// preferredWidth, and preferredHeight properties.
-Rectangle {
- id: rect
- color: "white"
- width: 200
- height: layout.height
- Column {
- id: layout
- spacing: 2
- WebView {
- html: "No width defined."
- Rectangle { color: "#10000000"
- anchors.fill: parent
- }
- }
- WebView {
- width: rect.width
- html: "The width is full."
- Rectangle {
- color: "#10000000"
- anchors.fill: parent
- }
- }
- WebView {
- width: rect.width/2
- html: "The width is half."
- Rectangle {
- color: "#10000000"
- anchors.fill: parent
- }
- }
- WebView {
- preferredWidth: rect.width/2
- html: "The preferredWidth is half."
- Rectangle {
- color: "#10000000"
- anchors.fill: parent
- }
- }
- WebView {
- preferredWidth: rect.width/2
- html: "The_preferredWidth_is_half."
- Rectangle {
- color: "#10000000"
- anchors.fill: parent
- }
- }
- WebView {
- width: rect.width/2
- html: "The_width_is_half."
- Rectangle {
- color: "#10000000"
- anchors.fill: parent
- }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/tst_visual.cpp b/tests/auto/declarative/visual/tst_visual.cpp
deleted file mode 100644
index cd88e87..0000000
--- a/tests/auto/declarative/visual/tst_visual.cpp
+++ /dev/null
@@ -1,370 +0,0 @@
-/****************************************************************************
-**
-** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
-** All rights reserved.
-** Contact: Nokia Corporation (qt-info@nokia.com)
-**
-** This file is part of the test suite of the Qt Toolkit.
-**
-** $QT_BEGIN_LICENSE:LGPL$
-** No Commercial Usage
-** This file contains pre-release code and may not be distributed.
-** You may use this file in accordance with the terms and conditions
-** contained in the Technology Preview License Agreement accompanying
-** this package.
-**
-** GNU Lesser General Public License Usage
-** Alternatively, this file may be used under the terms of the GNU Lesser
-** General Public License version 2.1 as published by the Free Software
-** Foundation and appearing in the file LICENSE.LGPL included in the
-** packaging of this file. Please review the following information to
-** ensure the GNU Lesser General Public License version 2.1 requirements
-** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
-**
-** In addition, as a special exception, Nokia gives you certain additional
-** rights. These rights are described in the Nokia Qt LGPL Exception
-** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
-**
-** If you have questions regarding the use of this file, please contact
-** Nokia at qt-info@nokia.com.
-**
-**
-**
-**
-**
-**
-**
-**
-** $QT_END_LICENSE$
-**
-****************************************************************************/
-#include <qtest.h>
-#include <QDeclarativeView>
-#include <QApplication>
-#include <QLibraryInfo>
-#include <QDir>
-#include <QDebug>
-#include <QProcess>
-#include <QFile>
-
-enum Mode { Record, RecordNoVisuals, Play, TestVisuals, RemoveVisuals, UpdateVisuals, UpdatePlatformVisuals, Test };
-
-static QString testdir;
-class tst_visual : public QObject
-{
- Q_OBJECT
-public:
- tst_visual();
-
- static QString toTestScript(const QString &, Mode=Test);
- static QString viewer();
-
- static QStringList findQmlFiles(const QDir &d);
-private slots:
- void visual_data();
- void visual();
-
-private:
- QString qmlruntime;
-};
-
-
-tst_visual::tst_visual()
-{
- qmlruntime = viewer();
-}
-
-QString tst_visual::viewer()
-{
- QString binaries = QLibraryInfo::location(QLibraryInfo::BinariesPath);
-
- QString qmlruntime;
-
-#if defined(Q_WS_MAC)
- qmlruntime = QDir(binaries).absoluteFilePath("qml.app/Contents/MacOS/qml");
-#elif defined(Q_WS_WIN)
- qmlruntime = QDir(binaries).absoluteFilePath("qml.exe");
-#else
- qmlruntime = QDir(binaries).absoluteFilePath("qml");
-#endif
-
- return qmlruntime;
-}
-
-void tst_visual::visual_data()
-{
- QTest::addColumn<QString>("file");
- QTest::addColumn<QString>("testdata");
-
- QStringList files;
- files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR));
-
- foreach (const QString &file, files) {
- QString testdata = toTestScript(file);
- if (testdata.isEmpty())
- continue;
-
- QTest::newRow(file.toLatin1().constData()) << file << testdata;
- }
-}
-
-void tst_visual::visual()
-{
- QFETCH(QString, file);
- QFETCH(QString, testdata);
-
- QStringList arguments;
- arguments << "-script" << testdata
- << "-scriptopts" << "play,testimages,testerror,exitoncomplete,exitonfailure"
- << file;
- QProcess p;
- p.start(qmlruntime, arguments);
- QVERIFY(p.waitForFinished());
- if (p.exitCode() != 0)
- qDebug() << p.readAllStandardError();
- QCOMPARE(p.exitStatus(), QProcess::NormalExit);
- QCOMPARE(p.exitCode(), 0);
-}
-
-QString tst_visual::toTestScript(const QString &file, Mode mode)
-{
- if (!file.endsWith(".qml"))
- return QString();
-
- int index = file.lastIndexOf(QDir::separator());
- if (index == -1)
- return QString();
-
- const char* platformsuffix=0; // platforms with different fonts
-#if defined(Q_WS_MACX)
- platformsuffix = "-MAC";
-#elif defined(Q_WS_X11)
- platformsuffix = "-X11";
-#elif defined(Q_WS_WIN32)
- platformsuffix = "-WIN";
-#elif defined(Q_WS_QWS)
- platformsuffix = "-QWS";
-#elif defined(Q_WS_S60)
- platformsuffix = "-S60";
-#endif
-
- QString testdata = file.left(index + 1) +
- QString("data");
- QString testname = file.mid(index + 1, file.length() - index - 5);
-
- if (platformsuffix && (mode == UpdatePlatformVisuals || QFile::exists(testdata+QLatin1String(platformsuffix)+QDir::separator()+testname+".qml"))) {
- QString platformdir = testdata + QLatin1String(platformsuffix);
- if (mode == UpdatePlatformVisuals) {
- Q_ASSERT(QDir().mkpath(platformdir));
- // Copy from base
- QDir dir(testdata,testname+".*");
- dir.setFilter(QDir::Files);
- QFileInfoList list = dir.entryInfoList();
- for (int i = 0; i < list.size(); ++i) {
- QFile in(list.at(i).filePath());
- Q_ASSERT(in.open(QIODevice::ReadOnly));
- QFile out(platformdir + QDir::separator() + list.at(i).fileName());
- Q_ASSERT(out.open(QIODevice::WriteOnly));
- out.write(in.readAll());
- }
- }
- testdata = platformdir;
- }
-
- testdata += QDir::separator() + testname;
-
- return testdata;
-}
-
-QStringList tst_visual::findQmlFiles(const QDir &d)
-{
- QStringList rv;
-
- QStringList files = d.entryList(QStringList() << QLatin1String("*.qml"),
- QDir::Files);
- foreach (const QString &file, files) {
- if (file.at(0).isLower()) {
- rv << d.absoluteFilePath(file);
- }
- }
-
- QStringList dirs = d.entryList(QDir::Dirs | QDir::NoDotAndDotDot |
- QDir::NoSymLinks);
- foreach (const QString &dir, dirs) {
- if (dir.left(4) == "data")
- continue;
-
- QDir sub = d;
- sub.cd(dir);
- rv << findQmlFiles(sub);
- }
-
- return rv;
-}
-
-void action(Mode mode, const QString &file)
-{
- Q_ASSERT(mode != Test);
-
- QString testdata = tst_visual::toTestScript(file,mode);
-
- QStringList arguments;
- switch (mode) {
- case Test:
- // Don't run qml
- break;
- case Record:
- arguments << "-script" << testdata
- << "-scriptopts" << "record,testimages,saveonexit"
- << file;
- break;
- case RecordNoVisuals:
- arguments << "-script" << testdata
- << "-scriptopts" << "record,saveonexit"
- << file;
- break;
- case Play:
- arguments << "-script" << testdata
- << "-scriptopts" << "play,testimages,testerror,exitoncomplete"
- << file;
- break;
- case TestVisuals:
- arguments << "-script" << testdata
- << "-scriptopts" << "play"
- << file;
- break;
- case UpdateVisuals:
- case UpdatePlatformVisuals:
- arguments << "-script" << testdata
- << "-scriptopts" << "play,record,testimages,exitoncomplete,saveonexit"
- << file;
- break;
- case RemoveVisuals:
- arguments << "-script" << testdata
- << "-scriptopts" << "play,record,exitoncomplete,saveonexit"
- << file;
- break;
- }
- if (!arguments.isEmpty()) {
- QProcess p;
- p.setProcessChannelMode(QProcess::ForwardedChannels);
- p.start(tst_visual::viewer(), arguments);
- p.waitForFinished();
- }
-}
-
-void usage()
-{
- fprintf(stderr, "\n");
- fprintf(stderr, "QML related options\n");
- fprintf(stderr, " -listtests : list all the tests seen by tst_visual, and then exit immediately\n");
- fprintf(stderr, " -record file : record new test data for file\n");
- fprintf(stderr, " -recordnovisuals file : record new test data for file, but ignore visuals\n");
- fprintf(stderr, " -play file : playback test data for file, printing errors\n");
- fprintf(stderr, " -testvisuals file : playback test data for file, without errors\n");
- fprintf(stderr, " -updatevisuals file : playback test data for file, accept new visuals for file\n");
- fprintf(stderr, " -updateplatformvisuals file : playback test data for file, accept new visuals for file only on current platform (MacOSX/Win32/X11/QWS/S60)\n");
- fprintf(stderr, "\n"
- "Visual tests are recordings of manual interactions with a QML test,\n"
- "that can then be run automatically. To record a new test, run:\n"
- "\n"
- " tst_visual -record yourtestdir/yourtest.qml\n"
- "\n"
- "This records everything you do (try to keep it short).\n"
- "To play back a test, run:\n"
- "\n"
- " tst_visual -play yourtestdir/yourtest.qml\n"
- "\n"
- "Your test may include QML code to test itself, reporting any error to an\n"
- "'error' property on the root object - the test will fail if this property\n"
- "gets set to anything non-empty.\n"
- "\n"
- "If your test changes slightly but is still correct (check with -play), you\n"
- "can update the visuals by running:\n"
- "\n"
- " tst_visual -updatevisuals yourtestdir/yourtest.qml\n"
- "\n"
- "If your test includes platform-sensitive visuals (eg. text in system fonts),\n"
- "you should create platform-specific visuals, using -updateplatformvisuals\n"
- "instead.\n"
- "\n"
- "If you ONLY wish to use the 'error' property, you can record your test with\n"
- "-recordnovisuals, or discard existing visuals with -removevisuals; the test\n"
- "will then only fail on a syntax error, crash, or non-empty 'error' property.\n"
- );
-}
-
-int main(int argc, char **argv)
-{
- QApplication app(argc, argv);
-
- Mode mode = Test;
- QString file;
- bool showHelp = false;
-
- int newArgc = 1;
- char **newArgv = new char*[argc];
- newArgv[0] = argv[0];
-
- for (int ii = 1; ii < argc; ++ii) {
- QString arg(argv[ii]);
- if (arg == "-play" && (ii + 1) < argc) {
- mode = Play;
- file = argv[++ii];
- } else if (arg == "-record" && (ii + 1) < argc) {
- mode = Record;
- file = argv[++ii];
- } else if (arg == "-recordnovisuals" && (ii + 1) < argc) {
- mode = RecordNoVisuals;
- file = argv[++ii];
- } else if (arg == "-testvisuals" && (ii + 1) < argc) {
- mode = TestVisuals;
- file = argv[++ii];
- } else if (arg == "-removevisuals" && (ii + 1) < argc) {
- mode = RemoveVisuals;
- file = argv[++ii];
- } else if (arg == "-updatevisuals" && (ii + 1) < argc) {
- mode = UpdateVisuals;
- file = argv[++ii];
- } else if (arg == "-updateplatformvisuals" && (ii + 1) < argc) {
- mode = UpdatePlatformVisuals;
- file = argv[++ii];
- } else {
- newArgv[newArgc++] = argv[ii];
- }
-
- if (arg == "-help" || arg == "-?" || arg == "--help") {
- atexit(usage);
- showHelp = true;
- }
-
- if (arg == "-listtests") {
- QStringList list = tst_visual::findQmlFiles(QDir(QT_TEST_SOURCE_DIR));
- foreach (QString test, list) {
- qWarning() << qPrintable(test);
- }
- return 0;
- }
- }
-
- if (mode == Test || showHelp) {
- tst_visual tc;
- return QTest::qExec(&tc, newArgc, newArgv);
- } else {
- if (!file.endsWith(QLatin1String(".qml"))) {
- qWarning() << "Error: Invalid file name (must end in .qml)";
- return -1;
- }
- QDir d = QDir::current();
- QString absFile = d.absoluteFilePath(file);
- if (!QFile::exists(absFile)) {
- qWarning() << "Error: File does not exist";
- return -1;
- }
-
- action(mode, absFile);
- return 0;
- }
-}
-
-#include "tst_visual.moc"
diff --git a/tests/auto/declarative/visual/visual.pro b/tests/auto/declarative/visual/visual.pro
deleted file mode 100644
index 7ae2bed..0000000
--- a/tests/auto/declarative/visual/visual.pro
+++ /dev/null
@@ -1,7 +0,0 @@
-load(qttest_p4)
-contains(QT_CONFIG,declarative): QT += declarative
-macx:CONFIG -= app_bundle
-
-SOURCES += tst_visual.cpp
-
-DEFINES += QT_TEST_SOURCE_DIR=\"\\\"$$PWD\\\"\"
diff --git a/tests/auto/declarative/visual/webview/embedding/egg.qml b/tests/auto/declarative/visual/webview/embedding/egg.qml
deleted file mode 100644
index fe1bb70..0000000
--- a/tests/auto/declarative/visual/webview/embedding/egg.qml
+++ /dev/null
@@ -1,26 +0,0 @@
-import Qt 4.6
-
-Item {
- property var period : 250
- property var color : "black"
- id: root
-
- Item {
- x: root.width/2
- y: root.height/2
- Rectangle {
- radius: width/2
- color: root.color
- x: -width/2
- y: -height/2
- width: root.width*1.5
- height: root.height*1.5
- }
- rotation: NumberAnimation {
- from: 0
- to: 360
- repeat: true
- duration: root.period
- }
- }
-}
diff --git a/tests/auto/declarative/visual/webview/embedding/nesting.qml b/tests/auto/declarative/visual/webview/embedding/nesting.qml
deleted file mode 100644
index 0d76579..0000000
--- a/tests/auto/declarative/visual/webview/embedding/nesting.qml
+++ /dev/null
@@ -1,8 +0,0 @@
-import Qt 4.6
-
-WebView {
- width: 300
- height: 200
- url: "nesting.html"
- settings.pluginsEnabled: true
-}
diff --git a/tests/auto/declarative/visual/webview/javascript/evaluateJavaScript.qml b/tests/auto/declarative/visual/webview/javascript/evaluateJavaScript.qml
deleted file mode 100644
index 78d5cfc..0000000
--- a/tests/auto/declarative/visual/webview/javascript/evaluateJavaScript.qml
+++ /dev/null
@@ -1,31 +0,0 @@
-import Qt 4.6
-
-Column {
- WebView {
- id: webview
- width: 200
- height: 200
- url: "test-objects.html"
- javaScriptWindowObjects:
- QtObject {
- property string text: btntext.text
- WebView.windowObjectName: "qmltext"
- onTextChanged: {
- webview.evaluateJavaScript("{document.getElementById('button').value=window.qmltext.text}")
- }
- }
- }
- Row {
- Text { text: "Input:" }
- Rectangle {
- width: btntext.width+10
- height: btntext.height+10
- border.color: "black"
- TextInput {
- id: btntext
- text: "Blah"
- cursorDelegate: Rectangle { width: 1; color: "red" }
- }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/webview/javascript/windowObjects.qml b/tests/auto/declarative/visual/webview/javascript/windowObjects.qml
deleted file mode 100644
index a41de9a..0000000
--- a/tests/auto/declarative/visual/webview/javascript/windowObjects.qml
+++ /dev/null
@@ -1,26 +0,0 @@
-import Qt 4.6
-
-Column {
- WebView {
- width: 200
- height: 200
- url: "test-objects.html"
- javaScriptWindowObjects:
- QtObject {
- property string text: btntext.text
- WebView.windowObjectName: "qmltext"
- }
- }
- Row {
- Text { text: "Input:" }
- Rectangle {
- width: btntext.width+10
- height: btntext.height+10
- border.color: "black"
- TextInput {
- id: btntext
- text: "Blah"
- }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/webview/settings/fontFamily.qml b/tests/auto/declarative/visual/webview/settings/fontFamily.qml
deleted file mode 100644
index 2bb2a53..0000000
--- a/tests/auto/declarative/visual/webview/settings/fontFamily.qml
+++ /dev/null
@@ -1,16 +0,0 @@
-import Qt 4.6
-
-WebView {
- id: web
- width: 200
- height: 200
- Column {
- anchors.fill: parent
- Text { text: "standard: " + web.settings.standardFontFamily }
- Text { text: "fixed: " + web.settings.fixedFontFamily }
- Text { text: "serif: " + web.settings.serifFontFamily }
- Text { text: "sansserif: " + web.settings.sansSerifFontFamily }
- Text { text: "cursive: " + web.settings.cursiveFontFamily }
- Text { text: "fantasy: " + web.settings.fantasyFontFamily }
- }
-}
diff --git a/tests/auto/declarative/visual/webview/settings/fontSize.qml b/tests/auto/declarative/visual/webview/settings/fontSize.qml
deleted file mode 100644
index b970783..0000000
--- a/tests/auto/declarative/visual/webview/settings/fontSize.qml
+++ /dev/null
@@ -1,70 +0,0 @@
-import Qt 4.6
-
-Grid {
- columns: 3
- Rectangle {
- Text { color: "green"; text: "Normal" }
- border.color: "black"
- width: 200
- height: 200
- WebView {
- anchors.fill: parent
- url: "test.html"
- }
- }
- Rectangle {
- Text { color: "green"; text: "Big" }
- border.color: "black"
- width: 200
- height: 200
- WebView {
- anchors.fill: parent
- url: "test.html"
- settings.minimumFontSize: 20
- }
- }
- Rectangle {
- Text { color: "green"; text: "Big (logical)" }
- border.color: "black"
- width: 200
- height: 200
- WebView {
- anchors.fill: parent
- url: "test.html"
- settings.minimumLogicalFontSize: 20
- }
- }
- Rectangle {
- Text { color: "green"; text: "Bigger" }
- border.color: "black"
- width: 200
- height: 200
- WebView {
- anchors.fill: parent
- url: "test.html"
- settings.minimumFontSize: 30
- }
- }
- Rectangle {
- Text { color: "green"; text: "Small (except fixed)" }
- border.color: "black"
- width: 200
- height: 200
- WebView {
- anchors.fill: parent
- url: "test.html"
- settings.defaultFontSize: 8
- }
- }
- Rectangle {
- Text { color: "green"; text: "Small fixed" }
- border.color: "black"
- width: 200
- height: 200
- WebView {
- anchors.fill: parent
- url: "test.html"
- settings.defaultFixedFontSize: 8
- }
- }
-}
diff --git a/tests/auto/declarative/visual/webview/settings/noAutoLoadImages.qml b/tests/auto/declarative/visual/webview/settings/noAutoLoadImages.qml
deleted file mode 100644
index 72e672d..0000000
--- a/tests/auto/declarative/visual/webview/settings/noAutoLoadImages.qml
+++ /dev/null
@@ -1,20 +0,0 @@
-import Qt 4.6
-
-Grid {
- columns: 2
- Rectangle {
- Text { id: label; x:10; y:170; color: "green"; text: "No image" }
- border.color: "black"
- width: 200
- height: 200
- WebView {
- anchors.fill: parent
- settings.autoLoadImages: false
- url: "test-img.html"
- MouseArea {
- anchors.fill: parent
- onClicked: { parent.settings.autoLoadImages=true; label.text=""; parent.reload.trigger() }
- }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/webview/settings/setFontFamily.qml b/tests/auto/declarative/visual/webview/settings/setFontFamily.qml
deleted file mode 100644
index 26deed8..0000000
--- a/tests/auto/declarative/visual/webview/settings/setFontFamily.qml
+++ /dev/null
@@ -1,10 +0,0 @@
-import Qt 4.6
-
-WebView {
- url: "test.html"
- width: 300
- height: 300
- settings.standardFontFamily: font.name
- // WebKit doesn't seem to honour any other FontFamily settings
- FontLoader { id: font; source: "tarzeau_ocr_a.ttf" }
-}
diff --git a/tests/auto/declarative/visual/webview/zooming/pageWidth.qml b/tests/auto/declarative/visual/webview/zooming/pageWidth.qml
deleted file mode 100644
index 86dd7d2..0000000
--- a/tests/auto/declarative/visual/webview/zooming/pageWidth.qml
+++ /dev/null
@@ -1,9 +0,0 @@
-import Qt 4.6
-
-WebView {
- width: 200
- height: 250
- url: "resolution.html"
- webPageWidth: 400
- preferredWidth: 200
-}
diff --git a/tests/auto/declarative/visual/webview/zooming/renderControl.qml b/tests/auto/declarative/visual/webview/zooming/renderControl.qml
deleted file mode 100644
index 0c8bb3b..0000000
--- a/tests/auto/declarative/visual/webview/zooming/renderControl.qml
+++ /dev/null
@@ -1,20 +0,0 @@
-import Qt 4.6
-
-Rectangle {
- width: 200
- height: 250
- clip: true
- WebView {
- id: webview
- width: 400
- url: "renderControl.html"
- x: SequentialAnimation {
- repeat: true
- NumberAnimation { from: 100; to: 0; duration: 200 }
- PropertyAction { target: webview; property: "renderingEnabled"; value: false }
- NumberAnimation { from: 0; to: -100; duration: 200 }
- PropertyAction { target: webview; property: "renderingEnabled"; value: true }
- NumberAnimation { from: -100; to: 100; duration: 400 }
- }
- }
-}
diff --git a/tests/auto/declarative/visual/webview/zooming/resolution.qml b/tests/auto/declarative/visual/webview/zooming/resolution.qml
deleted file mode 100644
index a9d4e3a..0000000
--- a/tests/auto/declarative/visual/webview/zooming/resolution.qml
+++ /dev/null
@@ -1,16 +0,0 @@
-import Qt 4.6
-
-WebView {
- width: 200 * zoomFactor
- height: 250 * zoomFactor
- scale: 1/zoomFactor
- url: "resolution.html"
- zoomFactor:
- SequentialAnimation {
- repeat: true
- NumberAnimation { from: 1; to: 0.25; duration: 2000 }
- NumberAnimation { from: 0.25; to: 1; duration: 2000 }
- NumberAnimation { from: 1; to: 5; duration: 2000 }
- NumberAnimation { from: 5; to: 1; duration: 2000 }
- }
-}
diff --git a/tests/auto/declarative/visual/webview/zooming/zoomTextOnly.qml b/tests/auto/declarative/visual/webview/zooming/zoomTextOnly.qml
deleted file mode 100644
index 4455b43..0000000
--- a/tests/auto/declarative/visual/webview/zooming/zoomTextOnly.qml
+++ /dev/null
@@ -1,14 +0,0 @@
-import Qt 4.6
-
-WebView {
- width: 200
- height: 250
- url: "zoomTextOnly.html"
- settings.zoomTextOnly: true
- zoomFactor:
- SequentialAnimation {
- repeat: true
- NumberAnimation { from: 2; to: 0.25; duration: 1000 }
- NumberAnimation { from: 0.25; to: 2; duration: 1000 }
- }
-}
diff --git a/tests/auto/declarative/visual/webview/zooming/zooming.qml b/tests/auto/declarative/visual/webview/zooming/zooming.qml
deleted file mode 100644
index 0ea9131..0000000
--- a/tests/auto/declarative/visual/webview/zooming/zooming.qml
+++ /dev/null
@@ -1,17 +0,0 @@
-import Qt 4.6
-
-// Note that zooming is better done using zoomFactor and careful
-// control of rendering to avoid excessive re-rendering during
-// zoom animations. This test is written for simplicity.
-WebView {
- width: 200
- height: 250
- x: Behavior { NumberAnimation { } }
- y: Behavior { NumberAnimation { } }
- scale: Behavior { NumberAnimation { } }
- url: "zooming.html"
- preferredWidth: width
- preferredHeight: height
- onDoubleClick: {console.log(clickX,clickY);heuristicZoom(clickX,clickY,2)}
- onZoomTo: {console.log(zoom);scale=zoom;x=width/2-centerX;y=height/2-centerY}
-}