summaryrefslogtreecommitdiffstats
path: root/tests/auto
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto')
-rw-r--r--tests/auto/bic/tst_bic.cpp2
-rw-r--r--tests/auto/declarative/declarative.pro6
-rw-r--r--tests/auto/declarative/examples/tst_examples.cpp22
-rw-r--r--tests/auto/declarative/graphicswidgets/data/graphicswidgets.qml85
-rw-r--r--tests/auto/declarative/graphicswidgets/tst_graphicswidgets.cpp7
-rw-r--r--tests/auto/declarative/parserstress/tst_parserstress.cpp4
-rw-r--r--tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp10
-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/tst_qdeclarativeanimatedimage.cpp24
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/data/startup.qml17
-rw-r--r--tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp16
-rw-r--r--tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp16
-rw-r--r--tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir3
-rw-r--r--tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp18
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/NestedTypeTransientErrors.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml6
-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/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/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/propertyAssignmentErrors.qml22
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/data/signalParameterTypes.qml4
-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/testtypes.cpp1
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/testtypes.h65
-rw-r--r--tests/auto/declarative/qdeclarativeecmascript/tst_qdeclarativeecmascript.cpp148
-rw-r--r--tests/auto/declarative/qdeclarativeflipable/data/flipable-abort.qml10
-rw-r--r--tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp8
-rw-r--r--tests/auto/declarative/qdeclarativefocusscope/data/test5.qml4
-rw-r--r--tests/auto/declarative/qdeclarativegridview/data/gridview1.qml2
-rw-r--r--tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp5
-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/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp21
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/childrenProperty.qml14
-rw-r--r--tests/auto/declarative/qdeclarativeitem/data/resourcesProperty.qml21
-rw-r--r--tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp33
-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/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/assignLiteralToVariant.qml14
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/assignObjectToVariant.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/componentCompositeType.qml2
-rw-r--r--tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml2
-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/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/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/tst_qdeclarativelanguage.cpp238
-rw-r--r--tests/auto/declarative/qdeclarativelayouts/data/layouts.qml43
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/data/model.qml4
-rw-r--r--tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp11
-rw-r--r--tests/auto/declarative/qdeclarativelistreference/data/variantToList.qml2
-rw-r--r--tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp18
-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/tst_qdeclarativemousearea.cpp76
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/darker.qml12
-rw-r--r--tests/auto/declarative/qdeclarativeqt/data/formatting.qml4
-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/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/vector.qml8
-rw-r--r--tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp16
-rw-r--r--tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp10
-rw-r--r--tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml5
-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.pro8
-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/tst_qdeclarativespringfollow.cpp6
-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/anchorChangesCrash.qml14
-rw-r--r--tests/auto/declarative/qdeclarativestates/data/reset.qml2
-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/tst_qdeclarativestates.cpp61
-rw-r--r--tests/auto/declarative/qdeclarativestyledtext/tst_qdeclarativestyledtext.cpp5
-rw-r--r--tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp8
-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.cpp6
-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.qml6
-rw-r--r--tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp105
-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/deletedObject.qml9
-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/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/vector3d_read.qml2
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/testtypes.h3
-rw-r--r--tests/auto/declarative/qdeclarativevaluetypes/tst_qdeclarativevaluetypes.cpp69
-rw-r--r--tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml2
-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/text.qml134
-rw-r--r--tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp4
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation-visual.qml (renamed from tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml (renamed from tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/easing/pics/qtlogo.pngbin2738 -> 0 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml (renamed from tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml (renamed from tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation.qml)8
-rw-r--r--tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml (renamed from tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml (renamed from tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction.qml)7
-rw-r--r--tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml (renamed from tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction.qml)0
-rw-r--r--tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml (renamed from tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction.qml)5
-rw-r--r--tests/auto/declarative/qmlvisual/fillmode/fillmode.qml5
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.pngbin1563 -> 1578 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.pngbin1570 -> 1585 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.pngbin1553 -> 1568 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.pngbin1563 -> 1578 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.pngbin1569 -> 1584 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.pngbin1569 -> 1584 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.pngbin1566 -> 1581 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.pngbin1566 -> 1581 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml8
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativesmoothedanimation/smoothedfollow.qml40
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml12
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml10
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml14
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml14
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml23
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/LineEdit.qml67
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.pngbin999 -> 716 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.pngbin1880 -> 1352 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.pngbin2962 -> 2047 bytes
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml376
-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/echoMode.qml2
-rw-r--r--tests/auto/declarative/qmlvisual/qdeclarativetextinput/usingLineEdit.qml10
-rw-r--r--tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp14
-rw-r--r--tests/auto/declarative/qmlvisual/webview/embedding/egg.qml4
-rw-r--r--tests/auto/declarative/sql/tst_sql.cpp4
-rw-r--r--tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp19
-rw-r--r--tests/auto/macnativeevents/expectedeventlist.cpp176
-rw-r--r--tests/auto/macnativeevents/expectedeventlist.h71
-rw-r--r--tests/auto/macnativeevents/macnativeevents.pro6
-rw-r--r--tests/auto/macnativeevents/nativeeventlist.cpp (renamed from tests/auto/macnativeevents/qnativeplayer.cpp)78
-rw-r--r--tests/auto/macnativeevents/nativeeventlist.h (renamed from tests/auto/macnativeevents/qnativeplayer.h)32
-rw-r--r--tests/auto/macnativeevents/qnativeevents.cpp (renamed from tests/auto/macnativeevents/qnativeinput.cpp)2
-rw-r--r--tests/auto/macnativeevents/qnativeevents.h (renamed from tests/auto/macnativeevents/qnativeinput.h)0
-rw-r--r--tests/auto/macnativeevents/qnativeevents_mac.cpp (renamed from tests/auto/macnativeevents/qnativeinput_mac.cpp)2
-rw-r--r--tests/auto/macnativeevents/tst_macnativeevents.cpp229
-rw-r--r--tests/auto/qchar/qchar.pro6
-rw-r--r--tests/auto/qchar/tst_qchar.cpp5
-rw-r--r--tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp15
-rw-r--r--tests/auto/qfile/tst_qfile.cpp6
-rw-r--r--tests/auto/qfileinfo/tst_qfileinfo.cpp60
-rw-r--r--tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp86
-rw-r--r--tests/auto/qhelpgenerator/data/test.qhp2
-rw-r--r--tests/auto/qhelpgenerator/tst_qhelpgenerator.cpp2
-rw-r--r--tests/auto/qhelpprojectdata/data/test.qhp4
-rw-r--r--tests/auto/qhelpprojectdata/tst_qhelpprojectdata.cpp2
-rw-r--r--tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp3
-rw-r--r--tests/auto/qnetworkreply/tst_qnetworkreply.cpp2
-rw-r--r--tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp5
-rw-r--r--tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp3
-rw-r--r--tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp6
-rw-r--r--tests/auto/qsslsocket/tst_qsslsocket.cpp5
-rw-r--r--tests/auto/qtableview/tst_qtableview.cpp8
-rw-r--r--tests/auto/qtextcursor/tst_qtextcursor.cpp34
-rw-r--r--tests/auto/qthread/tst_qthread.cpp47
-rw-r--r--tests/auto/qwidget/tst_qwidget.cpp3
242 files changed, 7462 insertions, 1081 deletions
diff --git a/tests/auto/bic/tst_bic.cpp b/tests/auto/bic/tst_bic.cpp
index 0331c96..2349afa 100644
--- a/tests/auto/bic/tst_bic.cpp
+++ b/tests/auto/bic/tst_bic.cpp
@@ -147,7 +147,9 @@ void tst_Bic::initTestCase_data()
QTest::newRow("QtXmlPatterns") << "QtXmlPatterns";
QTest::newRow("Qt3Support") << "Qt3Support";
QTest::newRow("QtTest") << "QtTest";
+#ifndef QT_NO_DBUS
QTest::newRow("QtDBus") << "QtDBus";
+#endif
QTest::newRow("QtDesigner") << "QtDesigner";
}
diff --git a/tests/auto/declarative/declarative.pro b/tests/auto/declarative/declarative.pro
index 2d88058..5441311 100644
--- a/tests/auto/declarative/declarative.pro
+++ b/tests/auto/declarative/declarative.pro
@@ -1,5 +1,6 @@
TEMPLATE = subdirs
SUBDIRS += \
+ examples \
graphicswidgets \ # Cover
parserstress \ # Cover
qmetaobjectbuilder \ # Cover
@@ -41,13 +42,14 @@ SUBDIRS += \
qdeclarativelanguage \ # Cover
qdeclarativelistreference \ # Cover
qdeclarativelistmodel \ # Cover
- qdeclarativeproperty \ # Cover
+ qdeclarativeproperty \ # Cover
qdeclarativemetatype \ # Cover
qdeclarativemoduleplugin \ # Cover
qdeclarativepixmapcache \ # Cover
qdeclarativepropertymap \ # Cover
qdeclarativeqt \ # Cover
qdeclarativesmoothedanimation \ # Cover
+ qdeclarativesmoothedfollow\ # Cover
qdeclarativespringfollow \ # Cover
qdeclarativestates \ # Cover
qdeclarativesystempalette \ # Cover
@@ -61,7 +63,7 @@ SUBDIRS += \
qdeclarativeimageprovider \ # Cover
qdeclarativestyledtext \ # Cover
sql \ # Cover
- qmlvisual
+ qmlvisual # Cover
contains(QT_CONFIG, webkit) {
SUBDIRS += \
diff --git a/tests/auto/declarative/examples/tst_examples.cpp b/tests/auto/declarative/examples/tst_examples.cpp
index 678dd59..3d717bc 100644
--- a/tests/auto/declarative/examples/tst_examples.cpp
+++ b/tests/auto/declarative/examples/tst_examples.cpp
@@ -79,6 +79,14 @@ 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";
+#ifdef QT_NO_XMLPATTERNS
+ excludedDirs << "examples/declarative/xmldata";
+ excludedDirs << "demos/declarative/twitter";
+ excludedDirs << "demos/declarative/flickr";
+ excludedDirs << "demos/declarative/photoviewer";
+#endif
}
/*
@@ -88,7 +96,7 @@ 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;
}
@@ -129,7 +137,7 @@ 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();
}
@@ -185,15 +193,21 @@ void tst_examples::examples()
QFileInfo fi(file);
QFileInfo dir(fi.path());
- QString script = "data/"+dir.baseName()+"/"+fi.baseName();
+ QString script = SRCDIR "/data/"+dir.baseName()+"/"+fi.baseName();
QFileInfo testdata(script+".qml");
QStringList arguments;
- arguments << "-script" << (testdata.exists() ? script : QLatin1String("data/dummytest"))
+ arguments << "-script" << (testdata.exists() ? script : QLatin1String(SRCDIR "/data/dummytest"))
<< "-scriptopts" << "play,testerror,exitoncomplete,exitonfailure"
<< file;
+#ifdef Q_WS_QWS
+ arguments << "-qws";
+#endif
+
QProcess p;
p.start(qmlruntime, arguments);
QVERIFY(p.waitForFinished());
+ if (p.exitStatus() != QProcess::NormalExit || p.exitCode() != 0)
+ qWarning() << p.readAllStandardOutput() << p.readAllStandardError();
QCOMPARE(p.exitStatus(), QProcess::NormalExit);
QCOMPARE(p.exitCode(), 0);
}
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/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/parserstress/tst_parserstress.cpp b/tests/auto/declarative/parserstress/tst_parserstress.cpp
index 6ff5515..ee246fa 100644
--- a/tests/auto/declarative/parserstress/tst_parserstress.cpp
+++ b/tests/auto/declarative/parserstress/tst_parserstress.cpp
@@ -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/tst_qdeclarativeanchors.cpp b/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp
index 16ae7fc..9eaa400 100644
--- a/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp
+++ b/tests/auto/declarative/qdeclarativeanchors/tst_qdeclarativeanchors.cpp
@@ -372,6 +372,16 @@ 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());
QDeclarativeView *view = new QDeclarativeView(source);
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/tst_qdeclarativeanimatedimage.cpp b/tests/auto/declarative/qdeclarativeanimatedimage/tst_qdeclarativeanimatedimage.cpp
index 31efc64..39ce9eb 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();
};
@@ -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");
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/tst_qdeclarativebehaviors.cpp b/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
index 26c8231..4c9c9ca 100644
--- a/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
+++ b/tests/auto/declarative/qdeclarativebehaviors/tst_qdeclarativebehaviors.cpp
@@ -68,6 +68,7 @@ private slots:
void reassignedAnimation();
void disabled();
void dontStart();
+ void startup();
};
void tst_qdeclarativebehaviors::simpleBehavior()
@@ -326,6 +327,21 @@ void tst_qdeclarativebehaviors::dontStart()
delete rect;
}
+void tst_qdeclarativebehaviors::startup()
+{
+ QDeclarativeEngine engine;
+ QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/startup.qml"));
+ QDeclarativeRectangle *rect = qobject_cast<QDeclarativeRectangle*>(c.create());
+ QVERIFY(rect);
+
+ QDeclarativeRectangle *innerRect = rect->findChild<QDeclarativeRectangle*>("innerRect");
+ QVERIFY(innerRect);
+
+ QCOMPARE(innerRect->x(), qreal(100)); //should be set immediately
+
+ delete rect;
+}
+
QTEST_MAIN(tst_qdeclarativebehaviors)
#include "tst_qdeclarativebehaviors.moc"
diff --git a/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp b/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp
index be20ba1..ae62363 100644
--- a/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp
+++ b/tests/auto/declarative/qdeclarativecontext/tst_qdeclarativecontext.cpp
@@ -228,7 +228,7 @@ private:
#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.6; QtObject { property variant test: " #name " }", QUrl()); \
\
QObject *obj = component.create(ctxt); \
\
@@ -278,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.6; QtObject { property variant test: a }", QUrl());
QObject *obj = component.create(&ctxt2);
@@ -290,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.6; QtObject { property variant test: b }", QUrl());
QObject *obj = component.create(&ctxt2);
@@ -304,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.6; QtObject { property variant test: e.a }", QUrl());
QObject *obj = component.create(&ctxt2);
@@ -318,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.6; QtObject { property variant test: a }", QUrl());
QObject *obj = component.create(&ctxt2);
@@ -332,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.6; 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());
@@ -380,7 +380,7 @@ void tst_qdeclarativecontext::setContextObject()
// Changes in context properties
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; QtObject { property var test: a }", QUrl());
+ component.setData("import Qt 4.6; QtObject { property variant test: a }", QUrl());
QObject *obj = component.create(&ctxt);
@@ -412,7 +412,7 @@ void tst_qdeclarativecontext::destruction()
void tst_qdeclarativecontext::idAsContextProperty()
{
QDeclarativeComponent component(&engine);
- component.setData("import Qt 4.6; QtObject { property var a; a: QtObject { id: myObject } }", QUrl());
+ component.setData("import Qt 4.6; QtObject { property variant a; a: QtObject { id: myObject } }", QUrl());
QObject *obj = component.create();
QVERIFY(obj);
diff --git a/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir b/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir
index 5bdd17b..98d6b74 100644
--- a/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir
+++ b/tests/auto/declarative/qdeclarativedom/data/importlib/sublib/qmldir
@@ -1 +1,2 @@
-Foo Foo.qml
+Foo 1.1 Foo.qml
+Foo 1.0 Foo.qml
diff --git a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
index 79b0c36..d391941 100644
--- a/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
+++ b/tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp
@@ -274,7 +274,7 @@ void tst_qdeclarativedom::loadComposite()
void tst_qdeclarativedom::testValueSource()
{
QByteArray qml = "import Qt 4.6\n"
- "Rectangle { SpringFollow on height { spring: 1.4; damping: .15; source: Math.min(Math.max(-130, value*2.2 - 130), 133); }}";
+ "Rectangle { SpringFollow on height { spring: 1.4; damping: .15; to: Math.min(Math.max(-130, value*2.2 - 130), 133); }}";
QDeclarativeEngine freshEngine;
QDeclarativeDomDocument document;
@@ -297,7 +297,7 @@ void tst_qdeclarativedom::testValueSource()
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)");
@@ -333,8 +333,8 @@ void tst_qdeclarativedom::testValueInterceptor()
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"
+ "import importlib.sublib 1.1\n"
+ "import importlib.sublib 1.0 as NewFoo\n"
"import 'import'\n"
"import 'import' as X\n"
"Item {}";
@@ -356,13 +356,13 @@ void tst_qdeclarativedom::loadImports()
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);
@@ -450,7 +450,7 @@ void tst_qdeclarativedom::loadDynamicProperty()
" property url f\n"
" property color g\n"
" property date h\n"
- " property var i\n"
+ " property variant i\n"
" property QtObject j\n"
"}";
@@ -483,8 +483,8 @@ void tst_qdeclarativedom::loadDynamicProperty()
DP_TEST(5, f, QVariant::Url, 128, 14, "url");
DP_TEST(6, g, QVariant::Color, 147, 16, "color");
DP_TEST(7, h, QVariant::DateTime, 168, 15, "date");
- DP_TEST(8, i, qMetaTypeId<QVariant>(), 188, 14, "var");
- DP_TEST(9, j, -1, 207, 19, "QtObject");
+ DP_TEST(8, i, qMetaTypeId<QVariant>(), 188, 18, "variant");
+ DP_TEST(9, j, -1, 211, 19, "QtObject");
}
{
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/compiled.qml b/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml
index 2fec9da..1c88700 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml
+++ b/tests/auto/declarative/qdeclarativeecmascript/data/compiled.qml
@@ -38,7 +38,7 @@ QtObject {
property int d: 176
property string e: "Hello"
property string f: "World"
- property var g: 6.7
- property var h: "!"
- property var i: true
+ 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/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/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/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/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/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/testtypes.cpp b/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp
index a3bcb6a..0d07055 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp
+++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.cpp
@@ -80,6 +80,7 @@ void registerTypes()
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 faad8b7..4424419 100644
--- a/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
+++ b/tests/auto/declarative/qdeclarativeecmascript/testtypes.h
@@ -600,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 77dd4b8..c9fb116 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();
@@ -130,10 +132,15 @@ private slots:
void qlistqobjectMethods();
void strictlyEquals();
void compiled();
+ void numberAssignment();
void bug1();
void dynamicCreationCrash();
void regExpBug();
+ void nullObjectBinding();
+ void deletedEngine();
+ void libraryScriptAssert();
+ void variantsAssignedUndefined();
void callQtInvokables();
private:
@@ -543,11 +550,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()
@@ -986,6 +1002,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.
*/
@@ -2065,6 +2119,98 @@ void tst_qdeclarativeecmascript::compiled()
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;
+}
+
QTEST_MAIN(tst_qdeclarativeecmascript)
#include "tst_qdeclarativeecmascript.moc"
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/tst_qdeclarativeflipable.cpp b/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp
index 4beee9a..4155edb 100644
--- a/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp
+++ b/tests/auto/declarative/qdeclarativeflipable/tst_qdeclarativeflipable.cpp
@@ -116,7 +116,9 @@ void tst_qdeclarativeflipable::setFrontAndBack()
void tst_qdeclarativeflipable::QTBUG_9161_crash()
{
QDeclarativeView *canvas = new QDeclarativeView;
- canvas->setSource(QUrl(SRCDIR "/data/crash.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/crash.qml"));
+ QGraphicsObject *root = canvas->rootObject();
+ QVERIFY(root != 0);
canvas->show();
delete canvas;
}
@@ -124,7 +126,9 @@ void tst_qdeclarativeflipable::QTBUG_9161_crash()
void tst_qdeclarativeflipable::QTBUG_8474_qgv_abort()
{
QDeclarativeView *canvas = new QDeclarativeView;
- canvas->setSource(QUrl(SRCDIR "/data/flipable-abort.qml"));
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/flipable-abort.qml"));
+ QGraphicsObject *root = canvas->rootObject();
+ QVERIFY(root != 0);
canvas->show();
delete canvas;
}
diff --git a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
index 0b75ec4..da452cf 100644
--- a/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
+++ b/tests/auto/declarative/qdeclarativefocusscope/data/test5.qml
@@ -38,7 +38,7 @@ Rectangle {
Keys.onReturnPressed: console.log("Top Left");
KeyNavigation.right: item2
focus: true
- wrap: true
+ wrapMode: TextEdit.WordWrap
text: "Box 1"
}
@@ -79,6 +79,6 @@ Rectangle {
Keys.onReturnPressed: console.log("Bottom Left");
KeyNavigation.up: myScope
- wrap: true
+ wrapMode: TextEdit.WordWrap
}
}
diff --git a/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml b/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml
index ba6b807..a061ae2 100644
--- a/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml
+++ b/tests/auto/declarative/qdeclarativegridview/data/gridview1.qml
@@ -3,7 +3,7 @@ import Qt 4.6
Rectangle {
id: root
property int added: -1
- property var removed
+ property variant removed
width: 240
height: 320
diff --git a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
index dd594774..7add9c6 100644
--- a/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
+++ b/tests/auto/declarative/qdeclarativegridview/tst_qdeclarativegridview.cpp
@@ -578,6 +578,11 @@ void tst_QDeclarativeGridView::moved()
QCOMPARE(number->text(), model.number(i));
}
+ // ensure content position is stable
+ gridview->setContentY(0);
+ model.moveItem(10, 0);
+ QVERIFY(gridview->contentY() == 0);
+
delete canvas;
}
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/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
index c747bfc..f4df130 100644
--- a/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
+++ b/tests/auto/declarative/qdeclarativeinstruction/tst_qdeclarativeinstruction.cpp
@@ -520,12 +520,31 @@ void tst_qdeclarativeinstruction::dump()
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;
+ }
+
QStringList expect;
expect
<< "Index\tLine\tOperation\t\tData1\tData2\tData3\tComments"
<< "-------------------------------------------------------------------------------"
<< "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"
@@ -574,6 +593,8 @@ void tst_qdeclarativeinstruction::dump()
<< "47\t\tNA\tDEFER\t\t\t7"
<< "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/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/tst_qdeclarativeitem.cpp b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
index 46f3517..a6171ae 100644
--- a/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
+++ b/tests/auto/declarative/qdeclarativeitem/tst_qdeclarativeitem.cpp
@@ -64,6 +64,9 @@ private slots:
void transforms();
void transforms_data();
+ void childrenProperty();
+ void resourcesProperty();
+
private:
template<typename T>
T *findItem(QGraphicsObject *parent, const QString &objectName);
@@ -429,6 +432,36 @@ void tst_QDeclarativeItem::transforms()
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);
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/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/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/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/dynamicProperties.qml b/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml
index bedab8c..6411609 100644
--- a/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml
+++ b/tests/auto/declarative/qdeclarativelanguage/data/dynamicProperties.qml
@@ -9,5 +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 varProperty: "Hello World!"
}
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/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/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 450fc16..0000000
--- a/tests/auto/declarative/qdeclarativelanguage/data/script.8.errors.txt
+++ /dev/null
@@ -1 +0,0 @@
-6:9:Property value set multiple times
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/tst_qdeclarativelanguage.cpp b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
index 722e161..bfb56ba 100644
--- a/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
+++ b/tests/auto/declarative/qdeclarativelanguage/tst_qdeclarativelanguage.cpp
@@ -87,6 +87,7 @@ private slots:
void assignBasicTypes();
void assignTypeExtremes();
void assignCompositeToType();
+ void assignLiteralToVariant();
void customParserTypes();
void rootAsQmlComponent();
void inlineQmlComponents();
@@ -136,7 +137,7 @@ private slots:
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) \
@@ -283,18 +284,7 @@ void tst_qdeclarativelanguage::errors_data()
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;
@@ -490,6 +480,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()
{
@@ -1069,7 +1090,7 @@ void tst_qdeclarativelanguage::declaredPropertyValues()
}
// 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
@@ -1078,6 +1099,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();
@@ -1097,156 +1125,199 @@ 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"
"Test {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("local import subsubdir")
<< "import Qt 4.6\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::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";
- 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 {}" << "";
- QTest::newRow("wrong remote import of internal local") << "import \""+serverdir+"\"\nLocalInternal {}" << "";
- QTest::newRow("wrong remote import of undeclared local") << "import \""+serverdir+"\"\nUndeclaredLocal {}" << "";
+ 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"
@@ -1255,11 +1326,12 @@ void tst_qdeclarativelanguage::importsRemote()
{
QFETCH(QString, qml);
QFETCH(QString, type);
+ QFETCH(QString, error);
TestHTTPServer server(14445);
server.serveDirectory(SRCDIR);
- testType(qml,type);
+ testType(qml,type,error);
}
void tst_qdeclarativelanguage::importsInstalled_data()
@@ -1268,43 +1340,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);
}
@@ -1312,65 +1398,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"
"Rectangle {}"
- << "QDeclarativeRectangle";
+ << "QDeclarativeRectangle"
+ << "";
QTest::newRow("installed import versus builtin 2") <<
"import Qt 4.6\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 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 com.nokia.installedtest 1.5\n"
"Rectangle.Image {}"
- << "QDeclarativeImage";
+ << "QDeclarativeImage"
+ << "";
QTest::newRow("local last 1") <<
"LocalLast {}"
- << "QDeclarativeText";
+ << "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
+ << "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()
diff --git a/tests/auto/declarative/qdeclarativelayouts/data/layouts.qml b/tests/auto/declarative/qdeclarativelayouts/data/layouts.qml
index 1792500..5c2178f 100644
--- a/tests/auto/declarative/qdeclarativelayouts/data/layouts.qml
+++ b/tests/auto/declarative/qdeclarativelayouts/data/layouts.qml
@@ -5,29 +5,26 @@ 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 }
- }
+ 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/qdeclarativelistmodel/data/model.qml b/tests/auto/declarative/qdeclarativelistmodel/data/model.qml
index ebd4ebf..4019948 100644
--- a/tests/auto/declarative/qdeclarativelistmodel/data/model.qml
+++ b/tests/auto/declarative/qdeclarativelistmodel/data/model.qml
@@ -2,9 +2,9 @@ import Qt 4.6
Item {
id: item
- property var model
+ property variant model
property bool done: false
- property var result
+ property variant result
function evalExpressionViaWorker(commands) {
done = false
diff --git a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
index d02f54f..5962a42 100644
--- a/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
+++ b/tests/auto/declarative/qdeclarativelistmodel/tst_qdeclarativelistmodel.cpp
@@ -337,7 +337,6 @@ void tst_QDeclarativeListModel::dynamic_worker()
}
delete item;
- QTest::ignoreMessage(QtWarningMsg, "QThread: Destroyed while thread is still running");
qApp->processEvents();
}
@@ -367,7 +366,6 @@ void tst_QDeclarativeListModel::convertNestedToFlat_fail()
QCOMPARE(model.count(), 2);
delete item;
- QTest::ignoreMessage(QtWarningMsg, "QThread: Destroyed while thread is still running");
qApp->processEvents();
}
@@ -427,7 +425,6 @@ void tst_QDeclarativeListModel::convertNestedToFlat_ok()
QCOMPARE(model.count(), count+1);
delete item;
- QTest::ignoreMessage(QtWarningMsg, "QThread: Destroyed while thread is still running");
qApp->processEvents();
}
@@ -528,7 +525,11 @@ void tst_QDeclarativeListModel::error_data()
QTest::newRow("default properties not allowed in ListElement")
<< "import Qt 4.6\nListModel { ListElement { Item { } } }"
- << "QTBUG-6082 ListElement should not allow child objects";
+ << "ListElement: cannot contain nested elements";
+
+ QTest::newRow("QML elements not allowed in ListElement")
+ << "import Qt 4.6\nListModel { ListElement { a: Item { } } }"
+ << "ListElement: cannot contain nested elements";
}
void tst_QDeclarativeListModel::error()
@@ -543,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);
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/qdeclarativeloader/tst_qdeclarativeloader.cpp b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
index 05d968c..abdd210 100644
--- a/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
+++ b/tests/auto/declarative/qdeclarativeloader/tst_qdeclarativeloader.cpp
@@ -133,7 +133,7 @@ void tst_QDeclarativeLoader::component()
QVERIFY(c);
QCOMPARE(loader->sourceComponent(), c);
- delete loader;
+ delete item;
}
void tst_QDeclarativeLoader::invalidUrl()
@@ -196,7 +196,7 @@ void tst_QDeclarativeLoader::clear()
QCOMPARE(loader->status(), QDeclarativeLoader::Null);
QCOMPARE(static_cast<QGraphicsItem*>(loader)->children().count(), 0);
- delete loader;
+ delete item;
}
}
@@ -242,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()
@@ -275,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()
@@ -303,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()
@@ -317,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()
@@ -344,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()
@@ -374,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()
@@ -391,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()
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/tst_qdeclarativemousearea.cpp b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
index 9b664e5..bdb8eca 100644
--- a/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
+++ b/tests/auto/declarative/qdeclarativemousearea/tst_qdeclarativemousearea.cpp
@@ -44,20 +44,24 @@
#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);
@@ -127,19 +131,49 @@ void tst_QDeclarativeMouseArea::dragProperties()
delete canvas;
}
-QDeclarativeView *tst_QDeclarativeMouseArea::createView(const QString &filename)
+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()
{
QDeclarativeView *canvas = new QDeclarativeView(0);
canvas->setFixedSize(240,320);
- canvas->setSource(QUrl::fromLocalFile(filename));
-
return canvas;
}
void tst_QDeclarativeMouseArea::updateMouseAreaPosOnClick()
{
- QDeclarativeView *canvas = createView(SRCDIR "/data/updateMousePosOnClick.qml");
+ QDeclarativeView *canvas = createView();
+ canvas->setSource(QUrl::fromLocalFile(SRCDIR "/data/updateMousePosOnClick.qml"));
canvas->show();
canvas->setFocus();
QVERIFY(canvas->rootObject() != 0);
@@ -169,6 +203,36 @@ void tst_QDeclarativeMouseArea::updateMouseAreaPosOnClick()
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/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
index e62749a..4cf0602 100644
--- a/tests/auto/declarative/qdeclarativeqt/data/formatting.qml
+++ b/tests/auto/declarative/qdeclarativeqt/data/formatting.qml
@@ -6,13 +6,13 @@ QtObject {
property string test2: Qt.formatDate(date1, Qt.DefaultLocaleLongDate)
property string test3: Qt.formatDate(date1, "ddd MMMM d yy")
- property var time1: new Date(0,0,0,14,15,38,200)
+ 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 var dateTime1: new Date(1978,2,4,9,13,54)
+ 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/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/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/tst_qdeclarativeqt.cpp b/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp
index 48d5235..98f1200 100644
--- a/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp
+++ b/tests/auto/declarative/qdeclarativeqt/tst_qdeclarativeqt.cpp
@@ -73,6 +73,7 @@ private slots:
void createQmlObject();
void consoleLog();
void formatting();
+ void isQtObject();
private:
QDeclarativeEngine engine;
@@ -392,6 +393,21 @@ void tst_qdeclarativeqt::formatting()
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/tst_qdeclarativerepeater.cpp b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp
index 09c4879..419f5ea 100644
--- a/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp
+++ b/tests/auto/declarative/qdeclarativerepeater/tst_qdeclarativerepeater.cpp
@@ -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;
}
/*
@@ -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;
}
@@ -352,6 +360,8 @@ void tst_QDeclarativeRepeater::properties()
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/smoothedanimationBehavior.qml b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml
index eb06344..ec35067 100644
--- a/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml
+++ b/tests/auto/declarative/qdeclarativesmoothedanimation/data/smoothedanimationBehavior.qml
@@ -17,7 +17,8 @@ Rectangle {
color: "green"
width: 60; height: 60;
x: rect1.x; y: rect1.y;
- Behavior on x { SmoothedAnimation { objectName: "easeX"; velocity: 400 } }
- Behavior on y { SmoothedAnimation { objectName: "easeY"; velocity: 400 } }
+ // 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/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..f8e97a0
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativesmoothedfollow/qdeclarativesmoothedfollow.pro
@@ -0,0 +1,8 @@
+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\\\"
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/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/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/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/reset.qml b/tests/auto/declarative/qdeclarativestates/data/reset.qml
index 8e9b13a..7da80b3 100644
--- a/tests/auto/declarative/qdeclarativestates/data/reset.qml
+++ b/tests/auto/declarative/qdeclarativestates/data/reset.qml
@@ -6,7 +6,7 @@ Rectangle {
Text {
id: theText
width: 40
- wrap: true
+ wrapMode: Text.WordWrap
text: "a text string that is longer than 40 pixels"
}
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/tst_qdeclarativestates.cpp b/tests/auto/declarative/qdeclarativestates/tst_qdeclarativestates.cpp
index 2ab21a4..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();
@@ -107,6 +109,8 @@ private slots:
void nonExistantProperty();
void reset();
void illegalObjectCreation();
+ void whenOrdering();
+ void urlResolution();
};
void tst_qdeclarativestates::initTestCase()
@@ -716,6 +720,20 @@ void tst_qdeclarativestates::anchorChanges5()
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;
+}
+
void tst_qdeclarativestates::script()
{
QDeclarativeEngine engine;
@@ -978,6 +996,49 @@ void tst_qdeclarativestates::illegalObjectCreation()
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/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/qdeclarativetext/tst_qdeclarativetext.cpp b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
index bbbbd83..bf7d110 100644
--- a/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
+++ b/tests/auto/declarative/qdeclarativetext/tst_qdeclarativetext.cpp
@@ -251,18 +251,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.6\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.6\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 +278,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.6\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());
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 b1935df..d578f68 100644
--- a/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
+++ b/tests/auto/declarative/qdeclarativetextedit/tst_qdeclarativetextedit.cpp
@@ -235,7 +235,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.6\nTextEdit { text: \"\"; wrapMode: TextEdit.WordWrap; width: 300 }", QUrl());
QDeclarativeTextEdit *textEditObject = qobject_cast<QDeclarativeTextEdit*>(texteditComponent.create());
QVERIFY(textEditObject != 0);
@@ -244,7 +244,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.6\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 +255,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.6\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());
diff --git a/tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml b/tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml
new file mode 100644
index 0000000..5773cc2
--- /dev/null
+++ b/tests/auto/declarative/qdeclarativetextinput/data/echoMode.qml
@@ -0,0 +1,11 @@
+import Qt 4.7
+
+Rectangle {
+ property var 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 531a232..4b1ba27 100644
--- a/tests/auto/declarative/qdeclarativetextinput/data/validators.qml
+++ b/tests/auto/declarative/qdeclarativetextinput/data/validators.qml
@@ -1,9 +1,9 @@
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;
diff --git a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
index b6f55dd..9a66a36 100644
--- a/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
+++ b/tests/auto/declarative/qdeclarativetextinput/tst_qdeclarativetextinput.cpp
@@ -73,7 +73,9 @@ private slots:
void sendRequestSoftwareInputPanelEvent();
void setHAlignClearCache();
+ void focusOutClearSelection();
+ void echoMode();
private:
void simulateKey(QDeclarativeView *, int key);
QDeclarativeView *createView(const QString &filename);
@@ -112,6 +114,8 @@ void tst_qdeclarativetextinput::text()
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->text(), QString(""));
+
+ delete textinputObject;
}
for (int i = 0; i < standard.size(); i++)
@@ -123,6 +127,8 @@ void tst_qdeclarativetextinput::text()
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->text(), standard.at(i));
+
+ delete textinputObject;
}
}
@@ -137,6 +143,8 @@ void tst_qdeclarativetextinput::width()
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->width(), 1.);//1 for the cursor
+
+ delete textinputObject;
}
for (int i = 0; i < standard.size(); i++)
@@ -152,6 +160,8 @@ void tst_qdeclarativetextinput::width()
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->width(), qreal(metricWidth) + 1.);//1 for the cursor
+
+ delete textinputObject;
}
}
@@ -168,6 +178,8 @@ void tst_qdeclarativetextinput::font()
QCOMPARE(textinputObject->font().pointSize(), 40);
QCOMPARE(textinputObject->font().bold(), false);
QCOMPARE(textinputObject->font().italic(), false);
+
+ delete textinputObject;
}
{
@@ -179,6 +191,8 @@ void tst_qdeclarativetextinput::font()
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->font().bold(), true);
QCOMPARE(textinputObject->font().italic(), false);
+
+ delete textinputObject;
}
{
@@ -190,6 +204,8 @@ void tst_qdeclarativetextinput::font()
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->font().italic(), true);
QCOMPARE(textinputObject->font().bold(), false);
+
+ delete textinputObject;
}
{
@@ -202,6 +218,8 @@ void tst_qdeclarativetextinput::font()
QCOMPARE(textinputObject->font().family(), QString("Helvetica"));
QCOMPARE(textinputObject->font().bold(), false);
QCOMPARE(textinputObject->font().italic(), false);
+
+ delete textinputObject;
}
{
@@ -212,6 +230,8 @@ void tst_qdeclarativetextinput::font()
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->font().family(), QString(""));
+
+ delete textinputObject;
}
}
@@ -226,6 +246,8 @@ void tst_qdeclarativetextinput::color()
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->color(), QColor(colorStrings.at(i)));
+
+ delete textinputObject;
}
//test selection color
@@ -237,6 +259,8 @@ void tst_qdeclarativetextinput::color()
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->selectionColor(), QColor(colorStrings.at(i)));
+
+ delete textinputObject;
}
//test selected text color
@@ -248,6 +272,8 @@ void tst_qdeclarativetextinput::color()
QDeclarativeTextInput *textinputObject = qobject_cast<QDeclarativeTextInput*>(textinputComponent.create());
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->selectedTextColor(), QColor(colorStrings.at(i)));
+
+ delete textinputObject;
}
{
@@ -262,6 +288,8 @@ void tst_qdeclarativetextinput::color()
QVERIFY(textinputObject != 0);
QCOMPARE(textinputObject->color(), testColor);
+
+ delete textinputObject;
}
}
@@ -344,6 +372,8 @@ void tst_qdeclarativetextinput::selection()
QVERIFY(textinputObject->selectedText().size() == 10);
textinputObject->setSelectionEnd(100);
QVERIFY(textinputObject->selectedText().size() == 10);
+
+ delete textinputObject;
}
void tst_qdeclarativetextinput::maxLength()
@@ -371,6 +401,8 @@ 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()
@@ -393,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()
@@ -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;
}
/*
@@ -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)
@@ -683,6 +765,29 @@ void tst_qdeclarativetextinput::setHAlignClearCache()
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/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/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/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/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/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/testtypes.h b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
index 0ad8449..9057b4f 100644
--- a/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
+++ b/tests/auto/declarative/qdeclarativevaluetypes/testtypes.h
@@ -63,6 +63,7 @@ class MyTypeObject : public QObject
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)
@@ -134,6 +135,7 @@ 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 +144,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 4e254eb..e653abf 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();
@@ -193,6 +194,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()
{
{
@@ -352,6 +397,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
diff --git a/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml b/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml
index 1fce155..ca989f8 100644
--- a/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml
+++ b/tests/auto/declarative/qdeclarativeworkerscript/data/worker.qml
@@ -4,7 +4,7 @@ WorkerScript {
id: worker
source: "script.js"
- property var response
+ property variant response
signal done()
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/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/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp b/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp
index 74da79e..7edf7e9 100644
--- a/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp
+++ b/tests/auto/declarative/qdeclarativexmllistmodel/tst_qdeclarativexmllistmodel.cpp
@@ -336,7 +336,9 @@ void tst_qdeclarativexmllistmodel::source_data()
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;
+
+ // XXX This test fails on the rare occasion due to networking, fix the test for Error status signal (323)
+ //QTest::newRow("invalid") << QUrl("http://blah.blah/blah.xml") << 0 << QDeclarativeXmlListModel::Error;
// empty file
QTemporaryFile *temp = new QTemporaryFile(this);
diff --git a/tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation.qml b/tests/auto/declarative/qmlvisual/animation/colorAnimation/colorAnimation-visual.qml
index f205ae8..f205ae8 100644
--- a/tests/auto/declarative/qmlvisual/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.qml b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml
index 4d0959a..4d0959a 100644
--- a/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation.qml
+++ b/tests/auto/declarative/qmlvisual/animation/colorAnimation/data/colorAnimation-visual.qml
diff --git a/tests/auto/declarative/qmlvisual/animation/easing/pics/qtlogo.png b/tests/auto/declarative/qmlvisual/animation/easing/pics/qtlogo.png
deleted file mode 100644
index 399bd0b..0000000
--- a/tests/auto/declarative/qmlvisual/animation/easing/pics/qtlogo.png
+++ /dev/null
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.qml b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml
index 5f5b8fc..5f5b8fc 100644
--- a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation.qml
+++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/data/parallelAnimation-visual.qml
diff --git a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation.qml b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml
index 1980b91..ba606f4 100644
--- a/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation.qml
+++ b/tests/auto/declarative/qmlvisual/animation/parallelAnimation/parallelAnimation-visual.qml
@@ -1,5 +1,13 @@
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 {
diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction.qml b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml
index 7c8c233..7c8c233 100644
--- a/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction.qml
+++ b/tests/auto/declarative/qmlvisual/animation/propertyAction/data/propertyAction-visual.qml
diff --git a/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction.qml b/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml
index e18e770..5651b87 100644
--- a/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction.qml
+++ b/tests/auto/declarative/qmlvisual/animation/propertyAction/propertyAction-visual.qml
@@ -1,5 +1,12 @@
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 {
diff --git a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction.qml b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml
index 01da490..01da490 100644
--- a/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction.qml
+++ b/tests/auto/declarative/qmlvisual/animation/scriptAction/data/scriptAction-visual.qml
diff --git a/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction.qml b/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml
index fc9ccc8..dc2fcee 100644
--- a/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction.qml
+++ b/tests/auto/declarative/qmlvisual/animation/scriptAction/scriptAction-visual.qml
@@ -1,5 +1,10 @@
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 {
diff --git a/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml b/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml
index 8450bf2..7c3b486 100644
--- a/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml
+++ b/tests/auto/declarative/qmlvisual/fillmode/fillmode.qml
@@ -1,5 +1,10 @@
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"
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png
index cf36d60..5b7b426 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.0.png
+++ 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
index 6069df8..7c27310 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.1.png
+++ 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
index b8bd5f3..cbfdb23 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.2.png
+++ 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
index cf36d60..5b7b426 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.3.png
+++ 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
index 831d6b4..5af705e 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.4.png
+++ 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
index f7079dc..af4395e 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.5.png
+++ 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
index a5f4451..cd12bc9 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.6.png
+++ 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
index e1261d0..471c86b 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.7.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml
index 5a131e9..f3071e4 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativemousearea/data/drag.qml
@@ -486,7 +486,7 @@ VisualTest {
}
Frame {
msec: 1840
- hash: "b6b4b2c7acddd23609caa9727911b981"
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
}
Mouse {
type: 5
@@ -498,7 +498,7 @@ VisualTest {
}
Frame {
msec: 1856
- hash: "b6b4b2c7acddd23609caa9727911b981"
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
}
Mouse {
type: 5
@@ -510,7 +510,7 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "022610222cfbcf9e9a8991cdb60c7bbb"
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
}
Mouse {
type: 5
@@ -522,7 +522,7 @@ VisualTest {
}
Frame {
msec: 1888
- hash: "9b5201a3201a102b20592d81218b5e74"
+ hash: "668cc6d9d699b947a7c0f3ff4b26853f"
}
Mouse {
type: 5
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
index 21bbc7f..0ddcca4 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/clock.qml
@@ -5,9 +5,9 @@ Rectangle {
color: "gray"
width: 200; height: 200
- property var hours: 10
- property var minutes: 28
- property var seconds: 0
+ property variant hours: 10
+ property variant minutes: 28
+ property variant seconds: 0
Timer {
interval: 1000; running: true; repeat: true; triggeredOnStart: true
@@ -25,7 +25,7 @@ Rectangle {
origin.x: 7.5; origin.y: 73; angle: 0
SpringFollow on angle {
spring: 2; damping: 0.2; modulus: 360
- source: (clock.hours * 30) + (clock.minutes * 0.5)
+ to: (clock.hours * 30) + (clock.minutes * 0.5)
}
}
}
@@ -39,7 +39,7 @@ Rectangle {
origin.x: 6.5; origin.y: 83; angle: 0
SpringFollow on angle {
spring: 2; damping: 0.2; modulus: 360
- source: clock.minutes * 6
+ to: clock.minutes * 6
}
}
}
@@ -53,7 +53,7 @@ Rectangle {
origin.x: 2.5; origin.y: 80; angle: 0
SpringFollow on angle {
spring: 5; damping: 0.25; modulus: 360
- source: clock.seconds * 6
+ to: clock.seconds * 6
}
}
}
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml
index 1659bb7..5368349 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativespringfollow/follow.qml
@@ -26,7 +26,7 @@ Rectangle {
color: "#ff0000"
x: rect.width; width: rect.width; height: 20
y: 200
- SpringFollow on y { source: rect.y; velocity: 200 }
+ SpringFollow on y { to: rect.y; velocity: 200 }
}
// Spring
@@ -34,13 +34,13 @@ Rectangle {
color: "#ff0000"
x: rect.width * 2; width: rect.width/2; height: 20
y: 200
- SpringFollow on y { source: rect.y; spring: 1.0; damping: 0.2 }
+ 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 { source: rect.y; spring: 1.0; damping: 0.2; mass: 3.0 } // "heavier" object
+ SpringFollow on y { to: rect.y; spring: 1.0; damping: 0.2; mass: 3.0 } // "heavier" object
}
// Follow mouse
@@ -52,8 +52,8 @@ Rectangle {
width: 20; height: 20
radius: 10
color: "#0000ff"
- SpringFollow on x { id: f1; source: mouseRegion.mouseX-10; spring: 1.0; damping: 0.05; epsilon: 0.25 }
- SpringFollow on y { id: f2; source: mouseRegion.mouseY-10; spring: 1.0; damping: 0.05; epsilon: 0.25 }
+ 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"
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml
index a3aa929..90b5411 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/plaintext.qml
@@ -61,7 +61,7 @@ Rectangle {
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: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"; wrapMode: Text.WordWrap; width: 200
}
Text {
text: s.text; elide: Text.ElideLeft; width: 200
@@ -73,13 +73,19 @@ Rectangle {
text: s.text; elide: Text.ElideRight; width: 200
}
Text {
- text: s.text; elide: Text.ElideLeft; width: 200; wrap: true
+ text: s.text; elide: Text.ElideLeft; width: 200; wrapMode: Text.WordWrap
}
Text {
- text: s.text; elide: Text.ElideMiddle; width: 200; wrap: true
+ text: s.text; elide: Text.ElideMiddle; width: 200; wrapMode: Text.WordWrap
}
Text {
- text: s.text; elide: Text.ElideRight; width: 200; wrap: true
+ 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
index 35aa232..0dba47c 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetext/font/richtext.qml
@@ -61,7 +61,7 @@ Rectangle {
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: s.text; font.pixelSize: 18; style: Text.Outline; styleColor: "white"; wrapMode: Text.WordWrap; width: 200
}
Text {
text: s.text; elide: Text.ElideLeft; width: 200
@@ -73,13 +73,19 @@ Rectangle {
text: s.text; elide: Text.ElideRight; width: 200
}
Text {
- text: s.text; elide: Text.ElideLeft; width: 200; wrap: true
+ text: s.text; elide: Text.ElideLeft; width: 200; wrapMode: Text.WordWrap
}
Text {
- text: s.text; elide: Text.ElideMiddle; width: 200; wrap: true
+ text: s.text; elide: Text.ElideMiddle; width: 200; wrapMode: Text.WordWrap
}
Text {
- text: s.text; elide: Text.ElideRight; width: 200; wrap: true
+ 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/wrap.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml
index f9fe025..b2a0754 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextedit/wrap.qml
@@ -5,17 +5,30 @@ Item {
width: 200
TextEdit {
width: 200
- height: 200
- wrap: true
+ height: 100
+ wrapMode: TextEdit.WordWrap
focus: true
}
//With QTBUG-6273 only the bottom one would be wrapped
TextEdit {
width: 200
- height: 200
- wrap: true
+ 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/data-X11/echoMode.0.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png
index 2b45a06..f30ee4f 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.0.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png
index 1f5bae0..7ae3b94 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.1.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png
index cb2b5a4..636afe8 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.2.png
Binary files differ
diff --git a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml
index dd7b291..b779c21 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/echoMode.qml
@@ -6,11 +6,11 @@ VisualTest {
}
Frame {
msec: 16
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 32
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Key {
type: 6
@@ -22,83 +22,83 @@ VisualTest {
}
Frame {
msec: 48
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 64
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 80
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 96
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 112
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 128
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 144
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 160
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 176
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 192
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 208
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 224
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 240
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 256
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 272
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 288
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 304
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 320
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 336
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Frame {
msec: 352
- hash: "b73bd9c2fef8812591fff9f43b73da13"
+ hash: "48400809c3862dae64b0cd00d51057a4"
}
Key {
type: 6
@@ -110,23 +110,23 @@ VisualTest {
}
Frame {
msec: 368
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Frame {
msec: 384
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Frame {
msec: 400
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Frame {
msec: 416
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Frame {
msec: 432
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Key {
type: 7
@@ -138,27 +138,27 @@ VisualTest {
}
Frame {
msec: 448
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Frame {
msec: 464
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Frame {
msec: 480
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Frame {
msec: 496
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Frame {
msec: 512
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Frame {
msec: 528
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "4acf112eda369b7eb351e0e522cefa05"
}
Key {
type: 7
@@ -170,43 +170,43 @@ VisualTest {
}
Frame {
msec: 544
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
}
Frame {
msec: 560
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
}
Frame {
msec: 576
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
}
Frame {
msec: 592
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
}
Frame {
msec: 608
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
}
Frame {
msec: 624
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
}
Frame {
msec: 640
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
}
Frame {
msec: 656
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
}
Frame {
msec: 672
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
}
Frame {
msec: 688
- hash: "e8b6bdc7d552bb13c5dc2f50b8cf1125"
+ hash: "238dc96885dadb763bfc1500d8b7c5b2"
}
Key {
type: 6
@@ -218,23 +218,23 @@ VisualTest {
}
Frame {
msec: 704
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
+ hash: "2da540e72d88932b61a261d791fc34b0"
}
Frame {
msec: 720
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
+ hash: "2da540e72d88932b61a261d791fc34b0"
}
Frame {
msec: 736
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
+ hash: "2da540e72d88932b61a261d791fc34b0"
}
Frame {
msec: 752
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
+ hash: "2da540e72d88932b61a261d791fc34b0"
}
Frame {
msec: 768
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
+ hash: "2da540e72d88932b61a261d791fc34b0"
}
Key {
type: 7
@@ -246,23 +246,23 @@ VisualTest {
}
Frame {
msec: 784
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
+ hash: "2da540e72d88932b61a261d791fc34b0"
}
Frame {
msec: 800
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
+ hash: "2da540e72d88932b61a261d791fc34b0"
}
Frame {
msec: 816
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
+ hash: "2da540e72d88932b61a261d791fc34b0"
}
Frame {
msec: 832
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
+ hash: "2da540e72d88932b61a261d791fc34b0"
}
Frame {
msec: 848
- hash: "fbc09d695e0b47aae6e977c13f535bfd"
+ hash: "2da540e72d88932b61a261d791fc34b0"
}
Key {
type: 6
@@ -274,15 +274,15 @@ VisualTest {
}
Frame {
msec: 864
- hash: "a4b81c526a5bf8902fde9b8721980977"
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
}
Frame {
msec: 880
- hash: "a4b81c526a5bf8902fde9b8721980977"
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
}
Frame {
msec: 896
- hash: "a4b81c526a5bf8902fde9b8721980977"
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
}
Key {
type: 7
@@ -294,15 +294,15 @@ VisualTest {
}
Frame {
msec: 912
- hash: "a4b81c526a5bf8902fde9b8721980977"
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
}
Frame {
msec: 928
- hash: "a4b81c526a5bf8902fde9b8721980977"
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
}
Frame {
msec: 944
- hash: "a4b81c526a5bf8902fde9b8721980977"
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
}
Frame {
msec: 960
@@ -310,7 +310,7 @@ VisualTest {
}
Frame {
msec: 976
- hash: "a4b81c526a5bf8902fde9b8721980977"
+ hash: "25ade09747f07a9bdd07f5885a72dc55"
}
Key {
type: 6
@@ -322,19 +322,19 @@ VisualTest {
}
Frame {
msec: 992
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "0a60e76e96846f9f4e909f7a01ede377"
}
Frame {
msec: 1008
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "0a60e76e96846f9f4e909f7a01ede377"
}
Frame {
msec: 1024
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "0a60e76e96846f9f4e909f7a01ede377"
}
Frame {
msec: 1040
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Key {
type: 7
@@ -346,51 +346,51 @@ VisualTest {
}
Frame {
msec: 1056
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1072
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1088
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1104
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1120
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1136
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1152
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1168
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1184
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1200
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1216
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Frame {
msec: 1232
- hash: "d072aebc2314a149a856634786b208a0"
+ hash: "6f28f435e552cbbf6376f2443ed3843c"
}
Key {
type: 6
@@ -402,15 +402,15 @@ VisualTest {
}
Frame {
msec: 1248
- hash: "94defec2865529f185d02cfcbfe166cc"
+ hash: "16a353e711a8fb654b5fe3097ba29296"
}
Frame {
msec: 1264
- hash: "94defec2865529f185d02cfcbfe166cc"
+ hash: "16a353e711a8fb654b5fe3097ba29296"
}
Frame {
msec: 1280
- hash: "94defec2865529f185d02cfcbfe166cc"
+ hash: "16a353e711a8fb654b5fe3097ba29296"
}
Key {
type: 7
@@ -422,15 +422,15 @@ VisualTest {
}
Frame {
msec: 1296
- hash: "94defec2865529f185d02cfcbfe166cc"
+ hash: "16a353e711a8fb654b5fe3097ba29296"
}
Frame {
msec: 1312
- hash: "94defec2865529f185d02cfcbfe166cc"
+ hash: "16a353e711a8fb654b5fe3097ba29296"
}
Frame {
msec: 1328
- hash: "94defec2865529f185d02cfcbfe166cc"
+ hash: "16a353e711a8fb654b5fe3097ba29296"
}
Key {
type: 6
@@ -442,39 +442,39 @@ VisualTest {
}
Frame {
msec: 1344
- hash: "f625a2a82879df96141000e6931d4487"
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
}
Frame {
msec: 1360
- hash: "f625a2a82879df96141000e6931d4487"
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
}
Frame {
msec: 1376
- hash: "f625a2a82879df96141000e6931d4487"
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
}
Frame {
msec: 1392
- hash: "f625a2a82879df96141000e6931d4487"
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
}
Frame {
msec: 1408
- hash: "f625a2a82879df96141000e6931d4487"
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
}
Frame {
msec: 1424
- hash: "f625a2a82879df96141000e6931d4487"
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
}
Frame {
msec: 1440
- hash: "f625a2a82879df96141000e6931d4487"
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
}
Frame {
msec: 1456
- hash: "f625a2a82879df96141000e6931d4487"
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
}
Frame {
msec: 1472
- hash: "f625a2a82879df96141000e6931d4487"
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
}
Key {
type: 7
@@ -486,7 +486,7 @@ VisualTest {
}
Frame {
msec: 1488
- hash: "f625a2a82879df96141000e6931d4487"
+ hash: "fcdbf8ef17e1a7aa6e0e1d952b25d47d"
}
Key {
type: 6
@@ -498,19 +498,19 @@ VisualTest {
}
Frame {
msec: 1504
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
+ hash: "fe0e4e097f655e0b330ed6fcfce669c2"
}
Frame {
msec: 1520
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
+ hash: "fe0e4e097f655e0b330ed6fcfce669c2"
}
Frame {
msec: 1536
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
}
Frame {
msec: 1552
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
}
Key {
type: 7
@@ -522,27 +522,27 @@ VisualTest {
}
Frame {
msec: 1568
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
}
Frame {
msec: 1584
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
}
Frame {
msec: 1600
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
}
Frame {
msec: 1616
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
}
Frame {
msec: 1632
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
}
Frame {
msec: 1648
- hash: "1cf29837a4ea63bbb06c15382680d1b6"
+ hash: "522f11cbb8da0cca25af91d3f6d5240b"
}
Key {
type: 6
@@ -554,23 +554,23 @@ VisualTest {
}
Frame {
msec: 1664
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "f459ca172e643d6e22c38067f8ced305"
}
Frame {
msec: 1680
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "f459ca172e643d6e22c38067f8ced305"
}
Frame {
msec: 1696
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "f459ca172e643d6e22c38067f8ced305"
}
Frame {
msec: 1712
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "f459ca172e643d6e22c38067f8ced305"
}
Frame {
msec: 1728
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "f459ca172e643d6e22c38067f8ced305"
}
Key {
type: 6
@@ -582,7 +582,7 @@ VisualTest {
}
Frame {
msec: 1744
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
}
Key {
type: 7
@@ -594,15 +594,15 @@ VisualTest {
}
Frame {
msec: 1760
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
}
Frame {
msec: 1776
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
}
Frame {
msec: 1792
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
}
Key {
type: 7
@@ -614,19 +614,19 @@ VisualTest {
}
Frame {
msec: 1808
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
}
Frame {
msec: 1824
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
}
Frame {
msec: 1840
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
}
Frame {
msec: 1856
- hash: "6eabb6d168ecc9ac604dcf2db0075380"
+ hash: "0016ecff508885d3a199b27baa9b7ecf"
}
Key {
type: 6
@@ -638,15 +638,15 @@ VisualTest {
}
Frame {
msec: 1872
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
+ hash: "05c631afb9df51c23b1f714a7de92788"
}
Frame {
msec: 1888
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
+ hash: "05c631afb9df51c23b1f714a7de92788"
}
Frame {
msec: 1904
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
+ hash: "05c631afb9df51c23b1f714a7de92788"
}
Frame {
msec: 1920
@@ -662,27 +662,27 @@ VisualTest {
}
Frame {
msec: 1936
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
+ hash: "05c631afb9df51c23b1f714a7de92788"
}
Frame {
msec: 1952
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
+ hash: "05c631afb9df51c23b1f714a7de92788"
}
Frame {
msec: 1968
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
+ hash: "05c631afb9df51c23b1f714a7de92788"
}
Frame {
msec: 1984
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
+ hash: "05c631afb9df51c23b1f714a7de92788"
}
Frame {
msec: 2000
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
+ hash: "05c631afb9df51c23b1f714a7de92788"
}
Frame {
msec: 2016
- hash: "cb2dc1c4fc4e213841b873561f404a4f"
+ hash: "05c631afb9df51c23b1f714a7de92788"
}
Key {
type: 6
@@ -694,11 +694,11 @@ VisualTest {
}
Frame {
msec: 2032
- hash: "c2aff1ebdee69cca7dc67a102fce5e8e"
+ hash: "95ad72a49b991225e2ed5ae9c2a7b4e5"
}
Frame {
msec: 2048
- hash: "c2aff1ebdee69cca7dc67a102fce5e8e"
+ hash: "95ad72a49b991225e2ed5ae9c2a7b4e5"
}
Key {
type: 7
@@ -710,11 +710,11 @@ VisualTest {
}
Frame {
msec: 2064
- hash: "c2aff1ebdee69cca7dc67a102fce5e8e"
+ hash: "95ad72a49b991225e2ed5ae9c2a7b4e5"
}
Frame {
msec: 2080
- hash: "c2aff1ebdee69cca7dc67a102fce5e8e"
+ hash: "95ad72a49b991225e2ed5ae9c2a7b4e5"
}
Key {
type: 6
@@ -726,19 +726,19 @@ VisualTest {
}
Frame {
msec: 2096
- hash: "c82441813af6ff577687f29f6a09da38"
+ hash: "7f2366b163c110a50259936c150d8287"
}
Frame {
msec: 2112
- hash: "c82441813af6ff577687f29f6a09da38"
+ hash: "7f2366b163c110a50259936c150d8287"
}
Frame {
msec: 2128
- hash: "c82441813af6ff577687f29f6a09da38"
+ hash: "7f2366b163c110a50259936c150d8287"
}
Frame {
msec: 2144
- hash: "c82441813af6ff577687f29f6a09da38"
+ hash: "7f2366b163c110a50259936c150d8287"
}
Key {
type: 6
@@ -758,19 +758,19 @@ VisualTest {
}
Frame {
msec: 2160
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "b5110b1a7aa74f7b4ed72f573f10b1fe"
}
Frame {
msec: 2176
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "b5110b1a7aa74f7b4ed72f573f10b1fe"
}
Frame {
msec: 2192
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "b5110b1a7aa74f7b4ed72f573f10b1fe"
}
Frame {
msec: 2208
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "b5110b1a7aa74f7b4ed72f573f10b1fe"
}
Key {
type: 6
@@ -782,7 +782,7 @@ VisualTest {
}
Frame {
msec: 2224
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
}
Key {
type: 7
@@ -794,23 +794,23 @@ VisualTest {
}
Frame {
msec: 2240
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
}
Frame {
msec: 2256
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
}
Frame {
msec: 2272
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
}
Frame {
msec: 2288
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
}
Frame {
msec: 2304
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
}
Key {
type: 7
@@ -822,11 +822,11 @@ VisualTest {
}
Frame {
msec: 2320
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
}
Frame {
msec: 2336
- hash: "d7da9862980b99e97a1fcd1b5c4c976f"
+ hash: "30cdfb276e7a234c72d89a03e6a10dc5"
}
Key {
type: 6
@@ -838,27 +838,27 @@ VisualTest {
}
Frame {
msec: 2352
- hash: "8f36e26d8685fe55e7a1dd294188f649"
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
}
Frame {
msec: 2368
- hash: "8f36e26d8685fe55e7a1dd294188f649"
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
}
Frame {
msec: 2384
- hash: "8f36e26d8685fe55e7a1dd294188f649"
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
}
Frame {
msec: 2400
- hash: "8f36e26d8685fe55e7a1dd294188f649"
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
}
Frame {
msec: 2416
- hash: "8f36e26d8685fe55e7a1dd294188f649"
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
}
Frame {
msec: 2432
- hash: "8f36e26d8685fe55e7a1dd294188f649"
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
}
Key {
type: 7
@@ -870,19 +870,19 @@ VisualTest {
}
Frame {
msec: 2448
- hash: "8f36e26d8685fe55e7a1dd294188f649"
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
}
Frame {
msec: 2464
- hash: "8f36e26d8685fe55e7a1dd294188f649"
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
}
Frame {
msec: 2480
- hash: "8f36e26d8685fe55e7a1dd294188f649"
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
}
Frame {
msec: 2496
- hash: "8f36e26d8685fe55e7a1dd294188f649"
+ hash: "c0f7406f3718ab0120c79ff119d6986c"
}
Key {
type: 6
@@ -894,15 +894,15 @@ VisualTest {
}
Frame {
msec: 2512
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "870d7866b8e289b4843b62c856d769d4"
}
Frame {
msec: 2528
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "870d7866b8e289b4843b62c856d769d4"
}
Frame {
msec: 2544
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Key {
type: 7
@@ -914,83 +914,83 @@ VisualTest {
}
Frame {
msec: 2560
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2576
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2592
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2608
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2624
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2640
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2656
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2672
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2688
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2704
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2720
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2736
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2752
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2768
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2784
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2800
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2816
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2832
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2848
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2864
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2880
@@ -998,46 +998,46 @@ VisualTest {
}
Frame {
msec: 2896
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2912
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2928
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2944
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2960
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2976
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 2992
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 3008
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 3024
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "84e1cbf26e6b571603e0b9e69579af8b"
}
Frame {
msec: 3040
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "870d7866b8e289b4843b62c856d769d4"
}
Frame {
msec: 3056
- hash: "316f2ba46d059755576e6822dc77afb2"
+ hash: "870d7866b8e289b4843b62c856d769d4"
}
}
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/qmlvisual/qdeclarativetextinput/echoMode.qml b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml
index b0b50e4..ed8bc2c 100644
--- a/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml
+++ b/tests/auto/declarative/qmlvisual/qdeclarativetextinput/echoMode.qml
@@ -4,7 +4,7 @@ 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 }
+ TextInput{ id: main; focus: true; echoMode: TextInput.Password; passwordCharacter: '.' }
Text{ text: main.text }
}
}
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/tst_qmlvisual.cpp b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
index 91f8486..05c2ebd 100644
--- a/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
+++ b/tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp
@@ -101,11 +101,19 @@ void tst_qmlvisual::visual_data()
files << findQmlFiles(QDir(QT_TEST_SOURCE_DIR));
else {
//these are tests we think are stable and useful enough to be run by the CI system
- files << QT_TEST_SOURCE_DIR "/qdeclarativemousearea/mousearea-visual.qml";
- files << QT_TEST_SOURCE_DIR "/qdeclarativemousearea/drag.qml";
- files << QT_TEST_SOURCE_DIR "/animation/pauseAnimation/pauseAnimation-visual.qml";
+ files << QT_TEST_SOURCE_DIR "/animation/bindinganimation/bindinganimation.qml";
+ files << QT_TEST_SOURCE_DIR "/animation/colorAnimation/colorAnimation-visual.qml";
+ files << QT_TEST_SOURCE_DIR "/animation/easing/easing.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/pauseAnimation/pauseAnimation-visual.qml";
+ files << QT_TEST_SOURCE_DIR "/animation/propertyAction/propertyAction-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/mousearea-visual.qml";
+ files << QT_TEST_SOURCE_DIR "/qdeclarativemousearea/drag.qml";
+ files << QT_TEST_SOURCE_DIR "/fillmode/fillmode.qml";
}
foreach (const QString &file, files) {
diff --git a/tests/auto/declarative/qmlvisual/webview/embedding/egg.qml b/tests/auto/declarative/qmlvisual/webview/embedding/egg.qml
index fe1bb70..711a747 100644
--- a/tests/auto/declarative/qmlvisual/webview/embedding/egg.qml
+++ b/tests/auto/declarative/qmlvisual/webview/embedding/egg.qml
@@ -1,8 +1,8 @@
import Qt 4.6
Item {
- property var period : 250
- property var color : "black"
+ property variant period : 250
+ property variant color : "black"
id: root
Item {
diff --git a/tests/auto/declarative/sql/tst_sql.cpp b/tests/auto/declarative/sql/tst_sql.cpp
index e8a5e0c..1bab2d2 100644
--- a/tests/auto/declarative/sql/tst_sql.cpp
+++ b/tests/auto/declarative/sql/tst_sql.cpp
@@ -197,11 +197,13 @@ void tst_sql::testQml()
QString qml=
"import Qt 4.6\n"
- "Text { Script { source: \""+jsfile+"\" } text: test() }";
+ "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"));
diff --git a/tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp b/tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp
index 4433c7a..91d1a44 100644
--- a/tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp
+++ b/tests/auto/exceptionsafety_objects/tst_exceptionsafety_objects.cpp
@@ -43,6 +43,7 @@
#include <QtTest/QtTest>
#include <stddef.h>
+#include <exception>
QT_USE_NAMESPACE
@@ -285,8 +286,26 @@ void tst_ExceptionSafetyObjects::safeMessageHandler(QtMsgType type, const char *
allocFailer.reactivateAt(currentIndex);
}
+typedef void (*PVF)();
+PVF defaultTerminate;
+void debugTerminate()
+{
+ // you can detect uncaught exceptions with a breakpoint in here
+ (*defaultTerminate)();
+}
+
+PVF defaultUnexpected;
+void debugUnexpected()
+{
+ // you can detect unexpected exceptions with a breakpoint in here
+ (*defaultUnexpected)();
+}
+
void tst_ExceptionSafetyObjects::initTestCase()
{
+ // set handlers for bad exception cases, you might want to step in and breakpoint the default handlers too
+ defaultTerminate = std::set_terminate(&debugTerminate);
+ defaultUnexpected = std::set_unexpected(&debugUnexpected);
testMessageHandler = qInstallMsgHandler(safeMessageHandler);
QVERIFY(AllocFailer::initialize());
diff --git a/tests/auto/macnativeevents/expectedeventlist.cpp b/tests/auto/macnativeevents/expectedeventlist.cpp
new file mode 100644
index 0000000..b1fb9a6
--- /dev/null
+++ b/tests/auto/macnativeevents/expectedeventlist.cpp
@@ -0,0 +1,176 @@
+/****************************************************************************
+**
+** 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 "expectedeventlist.h"
+#include <QDebug>
+#include <QCoreApplication>
+#include <QAbstractEventDispatcher>
+#include <QtTest/QtTest>
+
+ExpectedEventList::ExpectedEventList(QObject *target)
+ : QObject(target), eventCount(0)
+{
+ target->installEventFilter(this);
+ debug = !qgetenv("NATIVEDEBUG").isEmpty();
+}
+
+ExpectedEventList::~ExpectedEventList()
+{
+ qDeleteAll(eventList);
+}
+
+void ExpectedEventList::append(QEvent *e)
+{
+ eventList.append(e);
+ ++eventCount;
+}
+
+void ExpectedEventList::timerEvent(QTimerEvent *)
+{
+ timer.stop();
+ QAbstractEventDispatcher::instance()->interrupt();
+}
+
+bool ExpectedEventList::waitForAllEvents(int maxEventWaitTime)
+{
+ if (eventList.isEmpty())
+ return true;
+
+ int eventCount = eventList.size();
+ timer.start(maxEventWaitTime, this);
+
+ while (timer.isActive()) {
+ QCoreApplication::processEvents(QEventLoop::WaitForMoreEvents);
+ if (eventList.isEmpty())
+ return true;
+
+ if (eventCount < eventList.size()){
+ eventCount = eventList.size();
+ timer.start(maxEventWaitTime, this);
+ }
+ }
+
+ int eventListNr = eventCount - eventList.size() + 1;
+ qWarning() << "Stopped waiting for expected event nr" << eventListNr;
+ return false;
+}
+
+void ExpectedEventList::compareMouseEvents(QEvent *received, QEvent *expected)
+{
+ QMouseEvent *e1 = static_cast<QMouseEvent *>(received);
+ QMouseEvent *e2 = static_cast<QMouseEvent *>(expected);
+ if (e1->pos() == e2->pos()
+ && (e1->globalPos() == e2->globalPos())
+ && (e1->button() == e2->button())
+ && (e1->buttons() == e2->buttons())
+ && (e1->modifiers() == e2->modifiers()))
+ return; // equal
+
+ int eventListNr = eventCount - eventList.size();
+ if (!debug) {
+ qWarning() << "Expected event" << eventListNr << "differs from received event:";
+ QCOMPARE(e1->pos(), e2->pos());
+ QCOMPARE(e1->globalPos(), e2->globalPos());
+ QCOMPARE(e1->button(), e2->button());
+ QCOMPARE(e1->buttons(), e2->buttons());
+ QCOMPARE(e1->modifiers(), e2->modifiers());
+ } else {
+ qWarning() << "*** FAIL *** : Expected event" << eventListNr << "differs from received event:";
+ qWarning() << "Received:" << e1 << e1->globalPos();
+ qWarning() << "Expected:" << e2 << e2->globalPos();
+ }
+}
+
+void ExpectedEventList::compareKeyEvents(QEvent *event1, QEvent *event2)
+{
+ QKeyEvent *e1 = static_cast<QKeyEvent *>(event1);
+ QKeyEvent *e2 = static_cast<QKeyEvent *>(event2);
+ Q_UNUSED(e1);
+ Q_UNUSED(e2);
+}
+
+bool ExpectedEventList::eventFilter(QObject *, QEvent *received)
+{
+ if (debug)
+ qDebug() << received;
+ if (eventList.isEmpty())
+ return false;
+
+ QEvent *expected = eventList.first();
+ if (expected->type() == received->type()) {
+ eventList.removeFirst();
+ switch (received->type()) {
+ case QEvent::MouseButtonPress:
+ case QEvent::MouseButtonRelease:
+ case QEvent::MouseMove:
+ case QEvent::MouseButtonDblClick:
+ case QEvent::NonClientAreaMouseButtonPress:
+ case QEvent::NonClientAreaMouseButtonRelease:
+ case QEvent::NonClientAreaMouseButtonDblClick:
+ case QEvent::NonClientAreaMouseMove: {
+ compareMouseEvents(received, expected);
+ break;
+ }
+ case QEvent::KeyPress: {
+ break;
+ }
+ case QEvent::KeyRelease: {
+ break;
+ }
+ case QEvent::Resize: {
+ break;
+ }
+ case QEvent::WindowActivate: {
+ break;
+ }
+ case QEvent::WindowDeactivate: {
+ break;
+ }
+ default:
+ break;
+ }
+ if (eventList.isEmpty())
+ QAbstractEventDispatcher::instance()->interrupt();
+ }
+
+ return false;
+}
+
diff --git a/tests/auto/macnativeevents/expectedeventlist.h b/tests/auto/macnativeevents/expectedeventlist.h
new file mode 100644
index 0000000..bd9f358
--- /dev/null
+++ b/tests/auto/macnativeevents/expectedeventlist.h
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** 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 EVENTFILTER
+#define EVENTFILTER
+
+#include <QWidget>
+#include <QList>
+#include <QEvent>
+#include <QBasicTimer>
+
+class ExpectedEventList : public QObject
+{
+ QList<QEvent *> eventList;
+ QBasicTimer timer;
+ bool debug;
+ int eventCount;
+ void timerEvent(QTimerEvent *);
+
+public:
+ ExpectedEventList(QObject *target);
+ ~ExpectedEventList();
+ void append(QEvent *e);
+ bool waitForAllEvents(int timeoutPerEvent = 2000);
+ bool eventFilter(QObject *obj, QEvent *event);
+
+private:
+ void compareMouseEvents(QEvent *event1, QEvent *event2);
+ void compareKeyEvents(QEvent *event1, QEvent *event2);
+};
+
+#endif
+
diff --git a/tests/auto/macnativeevents/macnativeevents.pro b/tests/auto/macnativeevents/macnativeevents.pro
index a0293d4..af34942 100644
--- a/tests/auto/macnativeevents/macnativeevents.pro
+++ b/tests/auto/macnativeevents/macnativeevents.pro
@@ -8,9 +8,9 @@ DEPENDPATH += .
INCLUDEPATH += .
LIBS += -framework Carbon
-HEADERS += qnativeinput.h qnativeplayer.h
-SOURCES += qnativeinput.cpp qnativeplayer.cpp qnativeinput_mac.cpp
-
+HEADERS += qnativeevents.h nativeeventlist.h expectedeventlist.h
+SOURCES += qnativeevents.cpp qnativeevents_mac.cpp
+SOURCES += expectedeventlist.cpp nativeeventlist.cpp
SOURCES += tst_macnativeevents.cpp
requires(mac)
diff --git a/tests/auto/macnativeevents/qnativeplayer.cpp b/tests/auto/macnativeevents/nativeeventlist.cpp
index 92298ef..d5d7b95 100644
--- a/tests/auto/macnativeevents/qnativeplayer.cpp
+++ b/tests/auto/macnativeevents/nativeeventlist.cpp
@@ -39,22 +39,26 @@
**
****************************************************************************/
-#include "qnativeplayer.h"
+#include "nativeeventlist.h"
-QNativePlayer::QNativePlayer()
+NativeEventList::NativeEventList(int defaultWaitMs)
+ : playbackMultiplier(1.0)
+ , currIndex(-1)
+ , wait(false)
+ , defaultWaitMs(defaultWaitMs)
{
- currIndex = -1;
- playbackMultiplier = 1.0;
- wait = false;
+ QString multiplier = qgetenv("NATIVEDEBUG");
+ if (!multiplier.isEmpty())
+ setTimeMultiplier(multiplier.toFloat());
}
-QNativePlayer::~QNativePlayer()
+NativeEventList::~NativeEventList()
{
for (int i=0; i<eventList.size(); i++)
delete eventList.takeAt(i).second;
}
-void QNativePlayer::sendNextEvent()
+void NativeEventList::sendNextEvent()
{
QNativeEvent *e = eventList.at(currIndex).second;
if (e)
@@ -62,7 +66,7 @@ void QNativePlayer::sendNextEvent()
waitNextEvent();
}
-void QNativePlayer::waitNextEvent()
+void NativeEventList::waitNextEvent()
{
if (++currIndex >= eventList.size()){
emit done();
@@ -74,12 +78,22 @@ void QNativePlayer::waitNextEvent()
QTimer::singleShot(interval * playbackMultiplier, this, SLOT(sendNextEvent()));
}
-void QNativePlayer::append(int waitMs, QNativeEvent *event)
+void NativeEventList::append(QNativeEvent *event)
+{
+ eventList.append(QPair<int, QNativeEvent *>(defaultWaitMs, event));
+}
+
+void NativeEventList::append(int waitMs, QNativeEvent *event)
{
eventList.append(QPair<int, QNativeEvent *>(waitMs, event));
}
-void QNativePlayer::play(Playback playback)
+void NativeEventList::append(int waitMs)
+{
+ eventList.append(QPair<int, QNativeEvent *>(waitMs, 0));
+}
+
+void NativeEventList::play(Playback playback)
{
waitNextEvent();
@@ -88,52 +102,14 @@ void QNativePlayer::play(Playback playback)
QCoreApplication::processEvents(QEventLoop::WaitForMoreEvents);
}
-void QNativePlayer::stop()
+void NativeEventList::stop()
{
wait = false;
QAbstractEventDispatcher::instance()->interrupt();
}
-// ************************************************************************
-
-QEventOutputList::QEventOutputList()
-{
- wait = true;
-}
-
-QEventOutputList::~QEventOutputList()
+void NativeEventList::setTimeMultiplier(float multiplier)
{
- qDeleteAll(*this);
+ playbackMultiplier = multiplier;
}
-bool QEventOutputList::waitUntilEmpty(int maxEventWaitTime)
-{
- int currSize = size();
- QTime time;
- time.restart();
- while (wait){
- QCoreApplication::processEvents(QEventLoop::AllEvents, 50);
-
- if (isEmpty()){
- return true;
- }
- else if (currSize == size()){
- if (time.elapsed() > maxEventWaitTime){
- return false;
- }
- }
- else{
- currSize = size();
- time.restart();
- }
- }
- return false;
-}
-
-void QEventOutputList::sleep(int sleepTime)
-{
- QTime time;
- time.restart();
- while (time.elapsed() < sleepTime)
- QCoreApplication::processEvents(QEventLoop::AllEvents, 50);
-}
diff --git a/tests/auto/macnativeevents/qnativeplayer.h b/tests/auto/macnativeevents/nativeeventlist.h
index 61ee162..688665d 100644
--- a/tests/auto/macnativeevents/qnativeplayer.h
+++ b/tests/auto/macnativeevents/nativeeventlist.h
@@ -43,22 +43,25 @@
#define Q_NATIVE_PLAYBACK
#include <QtCore>
-#include "qnativeinput.h"
+#include "qnativeevents.h"
-class QNativePlayer : public QObject
+class NativeEventList : public QObject
{
Q_OBJECT;
public:
enum Playback {ReturnImmediately, WaitUntilFinished};
- QNativePlayer();
- ~QNativePlayer();
+ NativeEventList(int defaultWaitMs = 20);
+ ~NativeEventList();
+ void append(QNativeEvent *event);
void append(int waitMs, QNativeEvent *event = 0);
+ void append(int waitMs);
+
void play(Playback playback = WaitUntilFinished);
void stop();
- float playbackMultiplier;
+ void setTimeMultiplier(float multiplier);
signals:
void done();
@@ -66,27 +69,14 @@ signals:
private slots:
void sendNextEvent();
- private:
+private:
void waitNextEvent();
QList<QPair<int, QNativeEvent *> > eventList;
+ float playbackMultiplier;
int currIndex;
bool wait;
+ int defaultWaitMs;
};
-// ******************************************************************
-
-class QEventOutputList : public QList<QEvent *>
-{
-public:
- QEventOutputList();
- ~QEventOutputList();
- bool waitUntilEmpty(int maxEventWaitTime = 1000);
- bool wait;
-
- // Useful method. Just sleep and process events:
- static void sleep(int sleepTime);
-};
-
-
#endif
diff --git a/tests/auto/macnativeevents/qnativeinput.cpp b/tests/auto/macnativeevents/qnativeevents.cpp
index c9462a6..cb4b82e 100644
--- a/tests/auto/macnativeevents/qnativeinput.cpp
+++ b/tests/auto/macnativeevents/qnativeevents.cpp
@@ -39,7 +39,7 @@
**
****************************************************************************/
-#include "qnativeinput.h"
+#include "qnativeevents.h"
QNativeInput::QNativeInput(bool subscribe)
{
diff --git a/tests/auto/macnativeevents/qnativeinput.h b/tests/auto/macnativeevents/qnativeevents.h
index a98e4e4..a98e4e4 100644
--- a/tests/auto/macnativeevents/qnativeinput.h
+++ b/tests/auto/macnativeevents/qnativeevents.h
diff --git a/tests/auto/macnativeevents/qnativeinput_mac.cpp b/tests/auto/macnativeevents/qnativeevents_mac.cpp
index 143a633..6c04bf3 100644
--- a/tests/auto/macnativeevents/qnativeinput_mac.cpp
+++ b/tests/auto/macnativeevents/qnativeevents_mac.cpp
@@ -39,7 +39,7 @@
**
****************************************************************************/
-#include "qnativeinput.h"
+#include "qnativeevents.h"
#include <Carbon/Carbon.h>
#include <QtCore>
diff --git a/tests/auto/macnativeevents/tst_macnativeevents.cpp b/tests/auto/macnativeevents/tst_macnativeevents.cpp
index ccadd54..08ab9e6 100644
--- a/tests/auto/macnativeevents/tst_macnativeevents.cpp
+++ b/tests/auto/macnativeevents/tst_macnativeevents.cpp
@@ -44,8 +44,9 @@
#include <QPushButton>
#include <QtTest/QtTest>
-#include "qnativeinput.h"
-#include "qnativeplayer.h"
+#include "qnativeevents.h"
+#include "nativeeventlist.h"
+#include "expectedeventlist.h"
#ifdef Q_OS_MAC
@@ -55,21 +56,233 @@ class tst_MacNativeEvents : public QObject
{
Q_OBJECT
private slots:
- void testLeftMousePressRelease();
+ void testMouseMoveLocation();
+ void testPushButtonPressRelease();
+ void testMouseLeftDoubleClick();
+ void stressTestMouseLeftDoubleClick();
+ void testMouseDragInside();
+ void testMouseDragOutside();
+ void testMouseDragToNonClientArea();
+ void testDragWindow();
+ void testMouseEnter();
};
-void tst_MacNativeEvents::testLeftMousePressRelease()
+void tst_MacNativeEvents::testMouseMoveLocation()
{
+ QWidget w;
+ w.setMouseTracking(true);
+ w.show();
+ QPoint p = w.geometry().center();
+
+ NativeEventList native;
+ native.append(new QNativeMouseMoveEvent(p, Qt::NoModifier));
+
+ ExpectedEventList expected(&w);
+ expected.append(new QMouseEvent(QEvent::MouseMove, w.mapFromGlobal(p), p, Qt::NoButton, Qt::NoButton, Qt::NoModifier));
+
+ native.play();
+ QVERIFY2(expected.waitForAllEvents(), "the test did not receive all expected events!");
+}
+
+void tst_MacNativeEvents::testPushButtonPressRelease()
+{
+ // Check that a native mouse press and release generates the
+ // same qevents on a pushbutton:
QPushButton w("click me");
w.show();
QPoint p = w.geometry().center();
- QNativePlayer player;
- player.append(50, new QNativeMouseButtonEvent(p, Qt::LeftButton, 1, Qt::NoModifier));
- player.append(50, new QNativeMouseButtonEvent(p, Qt::LeftButton, 0, Qt::NoModifier));
- player.play();
+ NativeEventList native;
+ native.append(new QNativeMouseButtonEvent(p, Qt::LeftButton, 1, Qt::NoModifier));
+ native.append(new QNativeMouseButtonEvent(p, Qt::LeftButton, 0, Qt::NoModifier));
+
+ ExpectedEventList expected(&w);
+ expected.append(new QMouseEvent(QEvent::MouseButtonPress, w.mapFromGlobal(p), p, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseButtonRelease, w.mapFromGlobal(p), p, Qt::LeftButton, Qt::NoButton, Qt::NoModifier));
+
+ native.play();
+ QVERIFY2(expected.waitForAllEvents(), "the test did not receive all expected events!");
+}
+
+void tst_MacNativeEvents::testMouseLeftDoubleClick()
+{
+ // Check that a native double click makes
+ // the test widget receive a press-release-click-release:
+ QWidget w;
+ w.show();
+ QPoint p = w.geometry().center();
+
+ NativeEventList native;
+ native.append(new QNativeMouseButtonEvent(p, Qt::LeftButton, 1, Qt::NoModifier));
+ native.append(new QNativeMouseButtonEvent(p, Qt::LeftButton, 0, Qt::NoModifier));
+ native.append(new QNativeMouseButtonEvent(p, Qt::LeftButton, 2, Qt::NoModifier));
+ native.append(new QNativeMouseButtonEvent(p, Qt::LeftButton, 0, Qt::NoModifier));
+
+ ExpectedEventList expected(&w);
+ expected.append(new QMouseEvent(QEvent::MouseButtonPress, w.mapFromGlobal(p), p, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseButtonRelease, w.mapFromGlobal(p), p, Qt::LeftButton, Qt::NoButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseButtonDblClick, w.mapFromGlobal(p), p, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseButtonRelease, w.mapFromGlobal(p), p, Qt::LeftButton, Qt::NoButton, Qt::NoModifier));
+
+ native.play();
+ QVERIFY2(expected.waitForAllEvents(), "the test did not receive all expected events!");
+}
+
+void tst_MacNativeEvents::stressTestMouseLeftDoubleClick()
+{
+ // Check that multiple, fast, double clicks makes
+ // the test widget receive correct click events
+ QWidget w;
+ w.show();
+ QPoint p = w.geometry().center();
+
+ NativeEventList native;
+ ExpectedEventList expected(&w);
+
+ for (int i=0; i<10; ++i){
+ native.append(new QNativeMouseButtonEvent(p, Qt::LeftButton, 1, Qt::NoModifier));
+ native.append(new QNativeMouseButtonEvent(p, Qt::LeftButton, 0, Qt::NoModifier));
+ native.append(new QNativeMouseButtonEvent(p, Qt::LeftButton, 2, Qt::NoModifier));
+ native.append(new QNativeMouseButtonEvent(p, Qt::LeftButton, 0, Qt::NoModifier));
+
+ expected.append(new QMouseEvent(QEvent::MouseButtonPress, w.mapFromGlobal(p), p, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseButtonRelease, w.mapFromGlobal(p), p, Qt::LeftButton, Qt::NoButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseButtonDblClick, w.mapFromGlobal(p), p, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseButtonRelease, w.mapFromGlobal(p), p, Qt::LeftButton, Qt::NoButton, Qt::NoModifier));
+ }
+
+ native.play();
+ QVERIFY2(expected.waitForAllEvents(), "the test did not receive all expected events!");
}
+void tst_MacNativeEvents::testMouseDragInside()
+{
+ // Check that a mouse drag inside a widget
+ // will cause press-move-release events to be delivered
+ QWidget w;
+ w.show();
+ QPoint p1 = w.geometry().center();
+ QPoint p2 = p1 - QPoint(10, 0);
+ QPoint p3 = p1 - QPoint(20, 0);
+ QPoint p4 = p1 - QPoint(30, 0);
+
+ NativeEventList native;
+ native.append(new QNativeMouseButtonEvent(p1, Qt::LeftButton, 1, Qt::NoModifier));
+ native.append(new QNativeMouseDragEvent(p2, Qt::LeftButton, Qt::NoModifier));
+ native.append(new QNativeMouseDragEvent(p3, Qt::LeftButton, Qt::NoModifier));
+ native.append(new QNativeMouseButtonEvent(p4, Qt::LeftButton, 0, Qt::NoModifier));
+
+ ExpectedEventList expected(&w);
+ expected.append(new QMouseEvent(QEvent::MouseButtonPress, w.mapFromGlobal(p1), p1, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseMove, w.mapFromGlobal(p2), p2, Qt::NoButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseMove, w.mapFromGlobal(p3), p3, Qt::NoButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseButtonRelease, w.mapFromGlobal(p4), p4, Qt::LeftButton, Qt::NoButton, Qt::NoModifier));
+
+ native.play();
+ QVERIFY2(expected.waitForAllEvents(), "the test did not receive all expected events!");
+}
+
+void tst_MacNativeEvents::testMouseDragOutside()
+{
+ // Check that if we drag the mouse from inside the
+ // widget, and release it outside, we still get mouse move
+ // and release events when the mouse is outside the widget.
+ QWidget w;
+ w.show();
+ QPoint inside1 = w.geometry().center();
+ QPoint inside2 = inside1 - QPoint(10, 0);
+ QPoint outside1 = w.geometry().topLeft() - QPoint(50, 0);
+ QPoint outside2 = outside1 - QPoint(10, 0);
+
+ NativeEventList native;
+ native.append(new QNativeMouseButtonEvent(inside1, Qt::LeftButton, 1, Qt::NoModifier));
+ native.append(new QNativeMouseDragEvent(inside2, Qt::LeftButton, Qt::NoModifier));
+ native.append(new QNativeMouseDragEvent(outside1, Qt::LeftButton, Qt::NoModifier));
+ native.append(new QNativeMouseButtonEvent(outside2, Qt::LeftButton, 0, Qt::NoModifier));
+
+ ExpectedEventList expected(&w);
+ expected.append(new QMouseEvent(QEvent::MouseButtonPress, w.mapFromGlobal(inside1), inside1, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseMove, w.mapFromGlobal(inside2), inside2, Qt::NoButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseMove, w.mapFromGlobal(outside1), outside1, Qt::NoButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseButtonRelease, w.mapFromGlobal(outside2), outside2, Qt::LeftButton, Qt::NoButton, Qt::NoModifier));
+
+ native.play();
+ QVERIFY2(expected.waitForAllEvents(), "the test did not receive all expected events!");
+}
+
+void tst_MacNativeEvents::testMouseDragToNonClientArea()
+{
+ // Check that if we drag the mouse from inside the
+ // widget, and release it on the title bar, we still get mouse move
+ // and release events when the mouse is on the title bar
+ QWidget w;
+ w.show();
+ QPoint inside1 = w.geometry().center();
+ QPoint inside2 = inside1 - QPoint(10, 0);
+ QPoint titlebar1 = w.geometry().topLeft() - QPoint(-100, 10);
+ QPoint titlebar2 = titlebar1 - QPoint(10, 0);
+
+ NativeEventList native;
+ native.append(new QNativeMouseButtonEvent(inside1, Qt::LeftButton, 1, Qt::NoModifier));
+ native.append(new QNativeMouseDragEvent(inside2, Qt::LeftButton, Qt::NoModifier));
+ native.append(new QNativeMouseDragEvent(titlebar1, Qt::LeftButton, Qt::NoModifier));
+ native.append(new QNativeMouseButtonEvent(titlebar2, Qt::LeftButton, 0, Qt::NoModifier));
+
+ ExpectedEventList expected(&w);
+ expected.append(new QMouseEvent(QEvent::MouseButtonPress, w.mapFromGlobal(inside1), inside1, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseMove, w.mapFromGlobal(inside2), inside2, Qt::NoButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseMove, w.mapFromGlobal(titlebar1), titlebar1, Qt::NoButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::MouseButtonRelease, w.mapFromGlobal(titlebar2), titlebar2, Qt::LeftButton, Qt::NoButton, Qt::NoModifier));
+
+ native.play();
+ QVERIFY2(expected.waitForAllEvents(), "the test did not receive all expected events!");
+}
+
+void tst_MacNativeEvents::testDragWindow()
+{
+ // Check that if we drag the mouse from inside the
+ // widgets title bar, we get a move event on the window
+ QWidget w;
+ w.show();
+ QPoint titlebar = w.geometry().topLeft() - QPoint(-100, 10);
+ QPoint moveTo = titlebar + QPoint(100, 0);
+
+ NativeEventList native;
+ native.append(new QNativeMouseButtonEvent(titlebar, Qt::LeftButton, 1, Qt::NoModifier));
+ native.append(new QNativeMouseDragEvent(moveTo, Qt::LeftButton, Qt::NoModifier));
+ native.append(500, new QNativeMouseButtonEvent(moveTo, Qt::LeftButton, 0, Qt::NoModifier));
+
+ ExpectedEventList expected(&w);
+ expected.append(new QMouseEvent(QEvent::NonClientAreaMouseButtonPress, w.mapFromGlobal(titlebar), titlebar, Qt::LeftButton, Qt::LeftButton, Qt::NoModifier));
+ expected.append(new QMouseEvent(QEvent::NonClientAreaMouseButtonRelease, w.mapFromGlobal(titlebar), moveTo, Qt::LeftButton, Qt::NoButton, Qt::NoModifier));
+
+ native.play();
+ QVERIFY2(expected.waitForAllEvents(), "the test did not receive all expected events!");
+}
+
+void tst_MacNativeEvents::testMouseEnter()
+{
+ // When a mouse enters a widget, both a mouse enter events and a
+ // mouse move event should be sendt. Lets test this:
+ QWidget w;
+ w.setMouseTracking(true);
+ w.show();
+ QPoint outside = w.geometry().topLeft() - QPoint(50, 0);
+ QPoint inside = w.geometry().center();
+
+ NativeEventList native;
+ native.append(new QNativeMouseMoveEvent(outside, Qt::NoModifier));
+ native.append(new QNativeMouseMoveEvent(inside, Qt::NoModifier));
+
+ ExpectedEventList expected(&w);
+ expected.append(new QEvent(QEvent::Enter));
+ expected.append(new QMouseEvent(QEvent::MouseMove, w.mapFromGlobal(inside), inside, Qt::NoButton, Qt::NoButton, Qt::NoModifier));
+
+ native.play();
+ QVERIFY2(expected.waitForAllEvents(), "the test did not receive all expected events!");
+}
+
+
#include "tst_macnativeevents.moc"
QTEST_MAIN(tst_MacNativeEvents)
diff --git a/tests/auto/qchar/qchar.pro b/tests/auto/qchar/qchar.pro
index 0a3fcc3..a534d14 100644
--- a/tests/auto/qchar/qchar.pro
+++ b/tests/auto/qchar/qchar.pro
@@ -8,4 +8,8 @@ deploy.sources += NormalizationTest.txt
DEPLOYMENT = deploy
}
-DEFINES += SRCDIR=\\\"$$PWD/\\\"
+symbian*: {
+ DEFINES += SRCDIR=""
+} else {
+ DEFINES += SRCDIR=\\\"$$PWD/\\\"
+}
diff --git a/tests/auto/qchar/tst_qchar.cpp b/tests/auto/qchar/tst_qchar.cpp
index 6227c2e..5ca2255 100644
--- a/tests/auto/qchar/tst_qchar.cpp
+++ b/tests/auto/qchar/tst_qchar.cpp
@@ -513,10 +513,7 @@ void tst_QChar::normalization()
}
QFile f(SRCDIR "NormalizationTest.txt");
- if (!f.exists()) {
- QFAIL("Couldn't find NormalizationTest.txt");
- return;
- }
+ QVERIFY(f.exists());
f.open(QIODevice::ReadOnly);
diff --git a/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp b/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp
index 9ea422c..87df57d 100644
--- a/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp
+++ b/tests/auto/qelapsedtimer/tst_qelapsedtimer.cpp
@@ -46,6 +46,17 @@
static const int minResolution = 50; // the minimum resolution for the tests
+QDebug operator<<(QDebug s, const QElapsedTimer &t)
+{
+ union {
+ QElapsedTimer t;
+ struct { qint64 t1, t2; } i;
+ } copy;
+ copy.t = t;
+ s.nospace() << "(" << copy.i.t1 << ", " << copy.i.t2 << ")";
+ return s.space();
+}
+
class tst_QElapsedTimer : public QObject
{
Q_OBJECT
@@ -110,15 +121,17 @@ void tst_QElapsedTimer::basics()
#endif
quint64 value1 = t1.msecsSinceReference();
+ qDebug() << value1 << t1;
qint64 elapsed = t1.restart();
QVERIFY(elapsed < minResolution);
quint64 value2 = t1.msecsSinceReference();
+ qDebug() << value2 << t1 << elapsed;
// in theory, elapsed == value2 - value1
// However, since QElapsedTimer keeps internally the full resolution,
// we have here a rounding error due to integer division
- QVERIFY(qAbs(elapsed - qint64(value2 - value1)) < 1);
+ QVERIFY(qAbs(elapsed - qint64(value2 - value1)) <= 1);
}
void tst_QElapsedTimer::elapsed()
diff --git a/tests/auto/qfile/tst_qfile.cpp b/tests/auto/qfile/tst_qfile.cpp
index 8722a86..ee799f3 100644
--- a/tests/auto/qfile/tst_qfile.cpp
+++ b/tests/auto/qfile/tst_qfile.cpp
@@ -482,7 +482,7 @@ void tst_QFile::open_data()
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
QTest::newRow("//./PhysicalDrive0") << QString("//./PhysicalDrive0") << int(QIODevice::ReadOnly)
<< (bool)TRUE << QFile::NoError;
- QTest::newRow("uncFile") << "//" + QtNetworkSettings::winServerName() + "/testsharewritable/test.pri" << int(QIODevice::ReadOnly)
+ QTest::newRow("uncFile") << "//" + QtNetworkSettings::winServerName() + "/testshare/test.pri" << int(QIODevice::ReadOnly)
<< true << QFile::NoError;
#endif
}
@@ -554,7 +554,7 @@ void tst_QFile::size_data()
QTest::newRow( "exist01" ) << QString(SRCDIR "testfile.txt") << (qint64)245;
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
// Only test UNC on Windows./
- QTest::newRow("unc") << "//" + QString(QtNetworkSettings::winServerName() + "/testsharewritable/test.pri") << (qint64)34;
+ QTest::newRow("unc") << "//" + QString(QtNetworkSettings::winServerName() + "/testshare/test.pri") << (qint64)34;
#endif
}
@@ -2475,7 +2475,7 @@ void tst_QFile::miscWithUncPathAsCurrentDir()
{
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
QString current = QDir::currentPath();
- QVERIFY(QDir::setCurrent("//" + QtNetworkSettings::winServerName() + "/testsharewritable"));
+ QVERIFY(QDir::setCurrent("//" + QtNetworkSettings::winServerName() + "/testshare"));
QFile file("test.pri");
QVERIFY(file.exists());
QCOMPARE(int(file.size()), 34);
diff --git a/tests/auto/qfileinfo/tst_qfileinfo.cpp b/tests/auto/qfileinfo/tst_qfileinfo.cpp
index 42e7250..da5c772 100644
--- a/tests/auto/qfileinfo/tst_qfileinfo.cpp
+++ b/tests/auto/qfileinfo/tst_qfileinfo.cpp
@@ -194,6 +194,9 @@ tst_QFileInfo::~tst_QFileInfo()
#if defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN)
QDir().rmdir("./.hidden-directory");
#endif
+#ifdef Q_OS_WIN
+ QDir().rmdir("./hidden-directory");
+#endif
}
// Testing get/set functions
@@ -1056,14 +1059,6 @@ void tst_QFileInfo::isSymLink_data()
QTest::newRow("existent file") << SRCDIR "tst_qfileinfo.cpp" << false << "";
QTest::newRow("link") << "link.lnk" << true << QFileInfo(SRCDIR "tst_qfileinfo.cpp").absoluteFilePath();
QTest::newRow("broken link") << "brokenlink.lnk" << true << QFileInfo("dummyfile").absoluteFilePath();
-
-#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
- if (QSysInfo::WindowsVersion & QSysInfo::WV_VISTA) {
- QTest::newRow("Documents and Settings") << "C:/Documents and Settings" << true << "C:/Users";
- QTest::newRow("All Users") << "C:/Users/All Users" << true << "C:/ProgramData";
- QTest::newRow("Default User") << "C:/Users/Default User" << true << "C:/Users/Default";
- }
-#endif
}
void tst_QFileInfo::isSymLink()
@@ -1086,16 +1081,13 @@ void tst_QFileInfo::isHidden_data()
}
#if defined(Q_OS_WIN) && !defined(Q_OS_WINCE)
- QTest::newRow("C:/RECYCLER") << QString::fromLatin1("C:/RECYCLER") << true;
- QTest::newRow("C:/RECYCLER/.") << QString::fromLatin1("C:/RECYCLER/.") << true;
- QTest::newRow("C:/RECYCLER/..") << QString::fromLatin1("C:/RECYCLER/..") << true;
+ QVERIFY(QDir("./hidden-directory").exists() || QDir().mkdir("./hidden-directory"));
+ QVERIFY(SetFileAttributesW(QString("./hidden-directory").utf16(),FILE_ATTRIBUTE_HIDDEN));
+ QTest::newRow("C:/path/to/hidden-directory") << QDir::currentPath() + QString::fromLatin1("/hidden-directory") << true;
+ QTest::newRow("C:/path/to/hidden-directory/.") << QDir::currentPath() + QString::fromLatin1("/hidden-directory/.") << true;
#endif
#if defined(Q_OS_UNIX) && !defined(Q_OS_SYMBIAN)
-
- if (!QDir("./.hidden-directory").exists()
- && !QDir().mkdir("./.hidden-directory"))
- qWarning("Unable to create directory './.hidden-directory'. Some tests will fail.");
-
+ QVERIFY(QDir("./.hidden-directory").exists() || QDir().mkdir("./.hidden-directory"));
QTest::newRow("/path/to/.hidden-directory") << QDir::currentPath() + QString("/.hidden-directory") << true;
QTest::newRow("/path/to/.hidden-directory/.") << QDir::currentPath() + QString("/.hidden-directory/.") << true;
QTest::newRow("/path/to/.hidden-directory/..") << QDir::currentPath() + QString("/.hidden-directory/..") << true;
@@ -1123,34 +1115,24 @@ void tst_QFileInfo::isHidden_data()
{
QFile file(hiddenFileName);
- if (file.open(QIODevice::WriteOnly)) {
- QTextStream t(&file);
- t << "foobar";
- } else {
- qWarning("Failed to create hidden file");
- }
+ QVERIFY(file.open(QIODevice::WriteOnly));
+ QTextStream t(&file);
+ t << "foobar";
+
QFile file2(notHiddenFileName);
- if (file2.open(QIODevice::WriteOnly)) {
- QTextStream t(&file);
- t << "foobar";
- } else {
- qWarning("Failed to create non-hidden file");
- }
+ QVERIFY(file2.open(QIODevice::WriteOnly))
+ QTextStream t(&file);
+ t << "foobar";
}
RFs rfs;
TInt err = rfs.Connect();
- if (err == KErrNone) {
- HBufC* symFile = qt_QString2HBufC(hiddenFileName);
- err = rfs.SetAtt(*symFile, KEntryAttHidden, 0);
- rfs.Close();
- delete symFile;
- if (err != KErrNone) {
- qWarning("Failed to set hidden attribute for test file");
- }
- } else {
- qWarning("Failed to open RFs session");
- }
+ QCOMPARE(err, KErrNone);
+ HBufC* symFile = qt_QString2HBufC(hiddenFileName);
+ err = rfs.SetAtt(*symFile, KEntryAttHidden, 0);
+ rfs.Close();
+ delete symFile;
+ QCOMPARE(err, KErrNone);
#endif
}
diff --git a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
index 3313240..5a1d20b 100644
--- a/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
+++ b/tests/auto/qgraphicswidget/tst_qgraphicswidget.cpp
@@ -168,6 +168,7 @@ private slots:
void autoFillBackground();
void initialShow();
void initialShow2();
+ void itemChangeEvents();
// Task fixes
void task236127_bspTreeIndexFails();
@@ -2944,6 +2945,91 @@ void tst_QGraphicsWidget::initialShow2()
QTRY_COMPARE(widget->repaints, expectedRepaintCount);
}
+void tst_QGraphicsWidget::itemChangeEvents()
+{
+ class TestGraphicsWidget : public QGraphicsWidget
+ { public:
+ TestGraphicsWidget() : QGraphicsWidget() {}
+ QHash<QEvent::Type, QVariant> valueDuringEvents;
+ bool event(QEvent *event) {
+ Q_UNUSED(event);
+ switch (event->type()) {
+ case QEvent::EnabledChange: {
+ valueDuringEvents.insert(QEvent::EnabledChange, isEnabled());
+ break;
+ }
+ case QEvent::ParentAboutToChange: {
+ valueDuringEvents.insert(QEvent::ParentAboutToChange, qVariantFromValue(parentItem()));
+ break;
+ }
+ case QEvent::ParentChange: {
+ valueDuringEvents.insert(QEvent::ParentChange, qVariantFromValue(parentItem()));
+ break;
+ }
+ case QEvent::CursorChange: {
+ valueDuringEvents.insert(QEvent::CursorChange, int(cursor().shape()));
+ break;
+ }
+ case QEvent::ToolTipChange: {
+ valueDuringEvents.insert(QEvent::ToolTipChange, toolTip());
+ break;
+ }
+ default: {
+ break;
+ }
+ }
+ return true;
+ }
+ void showEvent(QShowEvent *event) {
+ Q_UNUSED(event);
+ valueDuringEvents.insert(QEvent::Show, isVisible());
+ }
+ void hideEvent(QHideEvent *event) {
+ Q_UNUSED(event);
+ valueDuringEvents.insert(QEvent::Hide, isVisible());
+ }
+ };
+
+ QGraphicsScene scene;
+ QGraphicsView view(&scene);
+ QGraphicsWidget *parent = new QGraphicsWidget;
+ scene.addItem(parent);
+ view.show();
+ QTest::qWaitForWindowShown(&view);
+
+ TestGraphicsWidget *item = new TestGraphicsWidget;
+ item->setParentItem(parent);
+ // ParentAboutToChange should be triggered before the parent has changed
+ QTRY_COMPARE(qVariantValue<QGraphicsItem *>(item->valueDuringEvents.value(QEvent::ParentAboutToChange)),
+ static_cast<QGraphicsItem *>(0));
+ // ParentChange should be triggered after the parent has changed
+ QTRY_COMPARE(qVariantValue<QGraphicsItem *>(item->valueDuringEvents.value(QEvent::ParentChange)),
+ static_cast<QGraphicsItem *>(parent));
+
+ // ShowEvent should be triggered before the item is shown
+ QTRY_VERIFY(!item->valueDuringEvents.value(QEvent::Show).toBool());
+
+ // HideEvent should be triggered after the item is hidden
+ QVERIFY(item->isVisible());
+ item->setVisible(false);
+ QVERIFY(!item->isVisible());
+ QTRY_VERIFY(!item->valueDuringEvents.value(QEvent::Hide).toBool());
+
+ // CursorChange should be triggered after the cursor has changed
+ item->setCursor(Qt::PointingHandCursor);
+ QTRY_COMPARE(item->valueDuringEvents.value(QEvent::CursorChange).toInt(), int(item->cursor().shape()));
+
+ // ToolTipChange should be triggered after the tooltip has changed
+ item->setToolTip("tooltipText");
+ QTRY_COMPARE(item->valueDuringEvents.value(QEvent::ToolTipChange).toString(), item->toolTip());
+
+ // EnabledChange should be triggered after the enabled state has changed
+ QVERIFY(item->isEnabled());
+ item->setEnabled(false);
+ QVERIFY(!item->isEnabled());
+ QTRY_VERIFY(!item->valueDuringEvents.value(QEvent::EnabledChange).toBool());
+}
+
void tst_QGraphicsWidget::QT_BUG_6544_tabFocusFirstUnsetWhenRemovingItems()
{
QGraphicsScene scene;
diff --git a/tests/auto/qhelpgenerator/data/test.qhp b/tests/auto/qhelpgenerator/data/test.qhp
index a97c00d..2c3f128 100644
--- a/tests/auto/qhelpgenerator/data/test.qhp
+++ b/tests/auto/qhelpgenerator/data/test.qhp
@@ -3,7 +3,7 @@
<metaData name="author" value="Nokia Corporation and/or its subsidiary(-ies)" />
<metaData name="language" value="en" />
<virtualFolder>testFolder</virtualFolder>
- <namespace>trolltech.com.1_0_0.test</namespace>
+ <namespace>trolltech.com.1.0.0.test</namespace>
<customFilter name="Custom Filter 1">
<filterAttribute>test</filterAttribute>
<filterAttribute>filter1</filterAttribute>
diff --git a/tests/auto/qhelpgenerator/tst_qhelpgenerator.cpp b/tests/auto/qhelpgenerator/tst_qhelpgenerator.cpp
index 34ee7c6..a190081 100644
--- a/tests/auto/qhelpgenerator/tst_qhelpgenerator.cpp
+++ b/tests/auto/qhelpgenerator/tst_qhelpgenerator.cpp
@@ -119,7 +119,7 @@ void tst_QHelpGenerator::checkNamespace()
{
m_query->exec("SELECT Id, Name FROM NamespaceTable");
if (m_query->next()
- && m_query->value(1).toString() == QLatin1String("trolltech.com.1_0_0.test"))
+ && m_query->value(1).toString() == QLatin1String("trolltech.com.1.0.0.test"))
return;
QFAIL("Namespace Error!");
}
diff --git a/tests/auto/qhelpprojectdata/data/test.qhp b/tests/auto/qhelpprojectdata/data/test.qhp
index e9ac7f2..1e9074a 100644
--- a/tests/auto/qhelpprojectdata/data/test.qhp
+++ b/tests/auto/qhelpprojectdata/data/test.qhp
@@ -3,7 +3,7 @@
<metaData name="author" value="Nokia Corporation and/or its subsidiary(-ies)" />
<metaData name="language" value="en" />
<virtualFolder>testFolder</virtualFolder>
- <namespace>trolltech.com.1_0_0.test</namespace>
+ <namespace>trolltech.com.1.0.0.test</namespace>
<customFilter name="Custom Filter 1">
<filterAttribute>test</filterAttribute>
<filterAttribute>filter1</filterAttribute>
@@ -69,4 +69,4 @@
<file>cars.html</file>
</files>
</filterSection>
-</QtHelpProject> \ No newline at end of file
+</QtHelpProject>
diff --git a/tests/auto/qhelpprojectdata/tst_qhelpprojectdata.cpp b/tests/auto/qhelpprojectdata/tst_qhelpprojectdata.cpp
index 929cab5..9c458f7 100644
--- a/tests/auto/qhelpprojectdata/tst_qhelpprojectdata.cpp
+++ b/tests/auto/qhelpprojectdata/tst_qhelpprojectdata.cpp
@@ -83,7 +83,7 @@ void tst_QHelpProjectData::namespaceName()
QHelpProjectData data;
if (!data.readData(m_inputFile))
QFAIL("Cannot read qhp file!");
- QCOMPARE(data.namespaceName(), QString("trolltech.com.1_0_0.test"));
+ QCOMPARE(data.namespaceName(), QString("trolltech.com.1.0.0.test"));
}
void tst_QHelpProjectData::virtualFolder()
diff --git a/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp b/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp
index ca12f2a..3a3ea79 100644
--- a/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp
+++ b/tests/auto/qhttpsocketengine/tst_qhttpsocketengine.cpp
@@ -506,7 +506,8 @@ void tst_QHttpSocketEngine::tcpSocketNonBlockingTest()
// Connect
socket.connectToHost(QtNetworkSettings::serverName(), 143);
- QCOMPARE(socket.state(), QTcpSocket::HostLookupState);
+ QVERIFY(socket.state() == QTcpSocket::HostLookupState ||
+ socket.state() == QTcpSocket::ConnectingState);
QTestEventLoop::instance().enterLoop(30);
if (QTestEventLoop::instance().timeout()) {
diff --git a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
index c238f59..dd497b0 100644
--- a/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
+++ b/tests/auto/qnetworkreply/tst_qnetworkreply.cpp
@@ -3363,7 +3363,7 @@ void tst_QNetworkReply::lastModifiedHeaderForFile()
void tst_QNetworkReply::lastModifiedHeaderForHttp()
{
// Tue, 22 May 2007 12:04:57 GMT according to webserver
- QUrl url = "http://" + QtNetworkSettings::serverName() + "/gif/fluke.gif";
+ QUrl url = "http://" + QtNetworkSettings::serverName() + "/qtest/fluke.gif";
QNetworkRequest request(url);
QNetworkReplyPtr reply = manager.head(request);
diff --git a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp
index 10ff488..a280256 100644
--- a/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp
+++ b/tests/auto/qscriptjstestsuite/tst_qscriptjstestsuite.cpp
@@ -683,11 +683,6 @@ tst_Suite::tst_Suite()
addExpectedFailure("ecma_3/String/15.5.4.11.js", "Section 7", willFixInNextReleaseMessage);
addExpectedFailure("ecma_3/String/15.5.4.11.js", "Section 26", willFixInNextReleaseMessage);
-#ifndef Q_CC_MINGW
- addExpectedFailure("ecma/Expressions/11.4.7-02.js", "-(-2147483648) == 2147483648", willFixInNextReleaseMessage);
- addExpectedFailure("ecma/TypeConversion/9.3.1-3.js", "- -\"0x80000000\"", willFixInNextReleaseMessage);
-#endif
-
#ifdef Q_CC_MSVC
addExpectedFailure("ecma_3/Expressions/11.7.3-01.js", "11.7.3 - >>> should evaluate operands in order: order", "QTBUG-8056");
addExpectedFailure("ecma_3/Operators/order-01.js", "operator evaluation order: 11.7.3 >>>", "QTBUG-8056");
diff --git a/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp b/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp
index 0240a0e..a679765 100644
--- a/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp
+++ b/tests/auto/qsocks5socketengine/tst_qsocks5socketengine.cpp
@@ -647,7 +647,8 @@ void tst_QSocks5SocketEngine::tcpSocketNonBlockingTest()
// Connect
socket.connectToHost(QtNetworkSettings::serverName(), 143);
- QCOMPARE(socket.state(), QTcpSocket::HostLookupState);
+ QVERIFY(socket.state() == QTcpSocket::HostLookupState ||
+ socket.state() == QTcpSocket::ConnectingState);
QTestEventLoop::instance().enterLoop(30);
if (QTestEventLoop::instance().timeout()) {
diff --git a/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp b/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp
index 8a084bb..38e5387 100644
--- a/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp
+++ b/tests/auto/qsqltablemodel/tst_qsqltablemodel.cpp
@@ -181,7 +181,11 @@ void tst_QSqlTableModel::createTestTables()
QVERIFY_SQL( q, exec("create table " + test3 + "(id int, random varchar(20), randomtwo varchar(20))"));
- QVERIFY_SQL( q, exec("create table " + qTableName("test4", __FILE__) + "(column1 varchar(50), column2 varchar(50), column3 varchar(50))"));
+ if(!tst_Databases::isSqlServer(db))
+ QVERIFY_SQL( q, exec("create table " + qTableName("test4", __FILE__) + "(column1 varchar(50), column2 varchar(50), column3 varchar(50))"));
+ else
+ QVERIFY_SQL( q, exec("create table " + qTableName("test4", __FILE__) + "(column1 varchar(50), column2 varchar(50) NULL, column3 varchar(50))"));
+
QVERIFY_SQL( q, exec("create table " + qTableName("emptytable", __FILE__) + "(id int)"));
diff --git a/tests/auto/qsslsocket/tst_qsslsocket.cpp b/tests/auto/qsslsocket/tst_qsslsocket.cpp
index 2bfce74..0cf638b 100644
--- a/tests/auto/qsslsocket/tst_qsslsocket.cpp
+++ b/tests/auto/qsslsocket/tst_qsslsocket.cpp
@@ -1286,7 +1286,7 @@ void tst_QSslSocket::setReadBufferSize_task_250027()
connect(socket, SIGNAL(readyRead()), &setReadBufferSize_task_250027_handler, SLOT(readyReadSlot()));
// provoke a response by sending a request
- socket->write("GET /gif/fluke.gif HTTP/1.0\n"); // this file is 27 KB
+ socket->write("GET /qtest/fluke.gif HTTP/1.0\n"); // this file is 27 KB
socket->write("Host: ");
socket->write(QtNetworkSettings::serverName().toLocal8Bit().constData());
socket->write("\n");
@@ -1535,7 +1535,6 @@ void tst_QSslSocket::verifyMode()
loop.exec();
QVERIFY(clientSocket.isEncrypted());
- qDebug() << server.socket->sslErrors();
QVERIFY(server.socket->sslErrors().isEmpty());
}
@@ -1751,7 +1750,7 @@ void tst_QSslSocket::readFromClosedSocket()
socket->waitForConnected();
socket->waitForEncrypted();
// provoke a response by sending a request
- socket->write("GET /gif/fluke.gif HTTP/1.1\n");
+ socket->write("GET /qtest/fluke.gif HTTP/1.1\n");
socket->write("Host: ");
socket->write(QtNetworkSettings::serverName().toLocal8Bit().constData());
socket->write("\n");
diff --git a/tests/auto/qtableview/tst_qtableview.cpp b/tests/auto/qtableview/tst_qtableview.cpp
index 54e32218..2062e8e 100644
--- a/tests/auto/qtableview/tst_qtableview.cpp
+++ b/tests/auto/qtableview/tst_qtableview.cpp
@@ -3035,6 +3035,14 @@ void tst_QTableView::spans_data()
<< QPoint(0, 0)
<< 1
<< 1;
+
+ QTest::newRow("QTBUG-9631: remove one span")
+ << 10 << 10
+ << (SpanList() << QRect(1, 1, 2, 1) << QRect(2, 2, 2, 2) << QRect(1, 1, 1, 1))
+ << false
+ << QPoint(1, 1)
+ << 1
+ << 1;
}
void tst_QTableView::spans()
diff --git a/tests/auto/qtextcursor/tst_qtextcursor.cpp b/tests/auto/qtextcursor/tst_qtextcursor.cpp
index f55b8db..d44ce72 100644
--- a/tests/auto/qtextcursor/tst_qtextcursor.cpp
+++ b/tests/auto/qtextcursor/tst_qtextcursor.cpp
@@ -150,6 +150,7 @@ private slots:
void adjustCursorsOnInsert();
void cursorPositionWithBlockUndoAndRedo();
+ void cursorPositionWithBlockUndoAndRedo2();
private:
int blockCount();
@@ -1778,5 +1779,38 @@ void tst_QTextCursor::cursorPositionWithBlockUndoAndRedo()
QCOMPARE(cursor.position(), cursorPositionAfter);
}
+void tst_QTextCursor::cursorPositionWithBlockUndoAndRedo2()
+{
+ cursor.insertText("AAAABBBB");
+ int cursorPositionBefore = cursor.position();
+ cursor.setPosition(0, QTextCursor::KeepAnchor);
+ cursor.beginEditBlock();
+ cursor.removeSelectedText();
+ cursor.insertText("AAAABBBBCCCCDDDD");
+ cursor.endEditBlock();
+ doc->undo(&cursor);
+ QVERIFY(doc->toPlainText() == "AAAABBBB");
+ QCOMPARE(cursor.position(), cursorPositionBefore);
+
+ cursor.insertText("CCCC");
+ QVERIFY(doc->toPlainText() == "AAAABBBBCCCC");
+
+ cursorPositionBefore = cursor.position();
+ cursor.setPosition(0, QTextCursor::KeepAnchor);
+ cursor.beginEditBlock();
+ cursor.removeSelectedText();
+ cursor.insertText("AAAABBBBCCCCDDDD");
+ cursor.endEditBlock();
+
+ /* this undo now implicitely reinserts two segments, first "CCCCC", then
+ "AAAABBBB". The test ensures that the two are combined in order to
+ reconstruct the correct cursor position */
+ doc->undo(&cursor);
+
+
+ QVERIFY(doc->toPlainText() == "AAAABBBBCCCC");
+ QCOMPARE(cursor.position(), cursorPositionBefore);
+}
+
QTEST_MAIN(tst_QTextCursor)
#include "tst_qtextcursor.moc"
diff --git a/tests/auto/qthread/tst_qthread.cpp b/tests/auto/qthread/tst_qthread.cpp
index bd1bc53..871578e 100644
--- a/tests/auto/qthread/tst_qthread.cpp
+++ b/tests/auto/qthread/tst_qthread.cpp
@@ -168,16 +168,18 @@ public slots:
class Exit_Thread : public Simple_Thread
{
public:
+ Exit_Object *object;
int code;
int result;
void run()
{
- Simple_Thread::run();
- Exit_Object o;
- o.thread = this;
- o.code = code;
- QTimer::singleShot(100, &o, SLOT(slot()));
+ if (object) {
+ Simple_Thread::run();
+ object->thread = this;
+ object->code = code;
+ QTimer::singleShot(100, object, SLOT(slot()));
+ }
result = exec();
}
};
@@ -211,17 +213,16 @@ public slots:
class Quit_Thread : public Simple_Thread
{
public:
+ Quit_Object *object;
int result;
void run()
{
- {
- QMutexLocker locker(&mutex);
- cond.wakeOne();
+ if (object) {
+ Simple_Thread::run();
+ object->thread = this;
+ QTimer::singleShot(100, object, SLOT(slot()));
}
- Quit_Object o;
- o.thread = this;
- QTimer::singleShot(100, &o, SLOT(slot()));
result = exec();
}
};
@@ -420,6 +421,8 @@ void tst_QThread::stackSize()
void tst_QThread::exit()
{
Exit_Thread thread;
+ thread.object = new Exit_Object;
+ thread.object->moveToThread(&thread);
thread.code = 42;
thread.result = 0;
QVERIFY(!thread.isFinished());
@@ -433,6 +436,16 @@ void tst_QThread::exit()
QVERIFY(thread.isFinished());
QVERIFY(!thread.isRunning());
QCOMPARE(thread.result, thread.code);
+ delete thread.object;
+
+ Exit_Thread thread2;
+ thread2.object = 0;
+ thread2.code = 53;
+ thread2.result = 0;
+ thread2.start();
+ thread2.exit(thread.code);
+ QVERIFY(thread2.wait(five_minutes));
+ QCOMPARE(thread.result, thread.code);
}
void tst_QThread::start()
@@ -480,6 +493,9 @@ void tst_QThread::terminate()
void tst_QThread::quit()
{
Quit_Thread thread;
+ thread.object = new Quit_Object;
+ thread.object->moveToThread(&thread);
+ thread.result = -1;
QVERIFY(!thread.isFinished());
QVERIFY(!thread.isRunning());
QMutexLocker locker(&thread.mutex);
@@ -491,6 +507,15 @@ void tst_QThread::quit()
QVERIFY(thread.isFinished());
QVERIFY(!thread.isRunning());
QCOMPARE(thread.result, 0);
+ delete thread.object;
+
+ Quit_Thread thread2;
+ thread2.object = 0;
+ thread2.result = -1;
+ thread2.start();
+ thread2.quit();
+ QVERIFY(thread2.wait(five_minutes));
+ QCOMPARE(thread.result, 0);
}
void tst_QThread::wait()
diff --git a/tests/auto/qwidget/tst_qwidget.cpp b/tests/auto/qwidget/tst_qwidget.cpp
index 76e20b9..1b2944e 100644
--- a/tests/auto/qwidget/tst_qwidget.cpp
+++ b/tests/auto/qwidget/tst_qwidget.cpp
@@ -6056,6 +6056,9 @@ void tst_QWidget::setToolTip()
#ifdef Q_OS_WINCE_WM
QSKIP("Mouse over doesn't work on Windows mobile.", SkipAll);
#endif
+#ifdef QT_MAC_USE_COCOA
+ QSKIP("Temporarily disable the rest on cocoa due to QCursor::setPos problems.", SkipAll);
+#endif
for (int pass = 0; pass < 2; ++pass) {
QWidget *popup = new QWidget(0, Qt::Popup);