=============================================================================The changes below are pre Qt 4.7.0 RCFlickable: - overShoot is replaced by boundsBehavior enumeration - flickingHorizontally and flickingVertically properties added - movingHorizontally and movingVertically properties added - flickDirection is renamed flickableDirectionComponent: - isReady, isLoading, isError and isNull properties removed, use status property instead - errorsString() renamed to errorString()QList<QObject*> models no longer provide properties in model object. Theproperties are now updated when the object changes. An object's property"foo" may now be accessed as "foo", modelData.foo" or model.modelData.foo"component.createObject has gained a mandatory "parent" argumentC++ API-------QDeclarativeExpression::value() has been renamed toQDeclarativeExpression::evaluate()The QDeclarativeExpression constructor has changed from QDeclarativeExpression(context, expression, scope)to QDeclarativeExpression(context, scope, expression, parent = 0)QML Viewer------------The standalone qml executable has been renamed back to Qml Viewer. Runtime warningscan be now accessed via the menu (Debugging->Show Warnings).=============================================================================The changes below are pre Qt 4.7.0 beta 1TextEdit: wrap property is replaced by wrapMode enumeration.Text: wrap property is replaced by wrapMode enumeration.Removed Q-prefix from validators (IntValidator, DoubleValidator, and RegExpValidator)PathView: offset property now uses range 0-1.0 rather than 0-100ListView, GridView::positionViewAtIndex() gained a 'mode' parameterRemoved Qt.playSound (replaced by SoundEffect element)Removed Qt.closestAngle (use RotationAnimation instead)Removed NumberFormatterRemoved DateTimeFormatter (use Qt.formatDateTime() instead)Using WebView now requires "import org.webkit 1.0"Using Particles now requires "import Qt.labs.particles 1.0"AnchorAnimation must now be used to animate anchor changes (and not NumberAnimation)Removed ParentAction (use ParentAnimation instead)ScriptAction: renamed stateChangeScriptName -> scriptNameAnimation: replace repeat with loops (loops: Animation.Infinite gives the old repeat behavior)AnchorChanges: use natural form to specify anchors (anchors.left instead of left)AnchorChanges: removed reset property. (reset: "left" should now be anchors.left: undefined)PathView: snapPosition replaced by preferredHighlightBegin, preferredHighlightEndcreateQmlObject: Moved to the Qt object, now use Qt.createQmlObject()createComponent: Moved to the Qt object, now use Qt.createComponent()C++ API-------QDeclarativeContext::addDefaultObject() has been replaced withQDeclarativeContext::setContextObject()Behavior and Animation syntax-----------------------------Previously animations and behaviors could be "assigned" to properties like this: Item { x: Behavior {}; y: NumberAnimation {} }To make it more obvious that these are not regular value assignments a new "on"syntax has been introduced: Item { Behavior on x {}; NumberAnimation on y {} }Only the syntax has changed, the behavior is identical.EaseFollow renamed to SmoothedFollow---------------------------------------This element shares the internal implementation with SmoothedAnimation,both providing the same easing function, but with SmoothedFollow it'seasier to set a start value to animate intially and then start to follow,while SmoothedAnimation is still convenient for using inside Behaviorsand Transitions.Add SmoothedAnimation element---------------------------------------SmoothedAnimation inherits from NumberAnimaton and as aconsequence SmoothedAnimation can be used inside Behaviors,as PropertySourceValues or in state transitions, like any other animation.The old EaseFollow properties changed to comply with the other declarativeanimations ('source' changed to 'to'), so now 'to' changes are notautomatically 'followed' anymore.If you want to follow an hypothetical rect1, you should do now: Rectangle { color: "green" width: 60; height: 60; x: rect1.x - 5; y: rect1.y - 5; Behavior on x { SmoothedAnimation { velocity: 200 } } Behavior on y { SmoothedAnimation { velocity: 200 } } }instead of the old automatic source changed tracking: Rectangle { color: "green" width: 60; height: 60; EaseFollow on x { source: rect1.x - 5; velocity: 200 } EaseFollow on y { source: rect1.y - 5; velocity: 200 } }This is a syntax and behavior change.Script element removed----------------------Inline Script{} blocks have been deprecated, and will soon be removed entirely.If you used Script to write inline javascript code, it can simply be removed.For exampleItem { Script { function doSomething() {} }}becomesItem { function doSomething() {}}If you used Script to include external JavaScript files, you can replace theScript element with an “import†line. For exampleMouseArea { Script { source: “foo.js†} onClicked: foo()}becomesimport “foo.js†as FooMouseArea { onClicked: Foo.foo()}The “as†qualifier is mandatory for script imports (as opposed to typeimports where it is optional).=============================================================================The changes below are pre Qt 4.7.0 alphaFlickable: renamed viewportWidth -> contentWidthFlickable: renamed viewportHeight -> contentHeightFlickable: renamed viewportX -> contentXFlickable: renamed viewportY -> contentYRemoved Flickable.reportedVelocitySmoothingRenamed MouseRegion -> MouseAreaConnection: syntax and rename: Connection { sender: a; signal: foo(); script: xxx } Connection { sender: a; signal: bar(); script: yyy } becomes: Connections { target: a; onFoo: xxx; onBar: yyy }ListView::sectionExpression has been replaced by section.property, section.criteriaListModel---------- types are strictly checked (previously, everything was a string) - foo: "bar" continues to work as before - foo: bar is now invalid, use foo: "bar" - foo: true is now a bool (not string "true") - foo: false is now a bool (not string "false" == true!)PropertyAnimation------------------matchProperties and matchTargets have been renamed back to properties and targets.The semantics are explained in the PropertyAnimation::properties documentationand the animation overview documentation.Easing curves and their parameters are now specified via dot properties:* easing.type : enum* easing.amplitude : real* easing.overshoot : real* easing.period : realFor example:PropertyAnimation { properties: "y"; easing.type: "InOutElastic"; easing.amplitude: 2.0; easing.period: 1.5 }C++ API-------QML_DEFINE_... definition macros, previously global macros, are replaced byqmlRegisterType registration functions, which must be called explicitly.C++ API users should also consider using the QmlExtensionPlugin (previouslynamed QmlModulePlugin) as a cleaner mechanism for publishing libraries of QMLtypes, or the upcoming application plugin features of the qmlviewer /qmlruntime / qml.QmlView-------The API of QmlView has been narrowed and its role as a convenience classreinforced.- remove addItem()- remove clearItems() - use 'delete root()'- remove reset()- resizeContent -> enum ResizeMode { SizeViewToRootObject, SizeRootObjectToView }- remove setQml(), qml()- rename setUrl(), ur() to setSource(), source()- root() -> rootObject(), returns QGraphicsObject rather than QmlGraphicsItem- remove quit() signal -> use quit() signal of engine()- initialSize() signal removed- Added status() to determine status of the internal QmlComponent- removed execute() - setSource() will also execute the QML.=============================================================================The changes below are pre-4.6.0 release.QML API Review==============The QML API is being reviewed. This file documents the changes.Note that the changes are incremental, so a rename A->B for example may be followedby another subsequent rename B->C, if later reviews override earlier reviews.API Changes===========Renamed Elements:LineEdit -> TextInputVerticalLayout -> ColumnHorizontalLayout -> RowVerticalPositioner -> ColumnHorizontalPositioner -> RowGridLayout -> GridGridPositioner -> GridRect -> RectangleFocusRealm -> FocusScopeFontFamily -> FontLoaderPalette -> SystemPaletteBind -> BindingSetProperties -> PropertyChangesRunScript -> StateChangeScriptSetAnchors -> AnchorChangesSetPropertyAction -> PropertyActionRunScriptAction -> ScriptActionParentChangeAction -> ParentActionVisualModel -> VisualDataModelFollow -> SpringFollowRenamed properties:Item: contents -> childrenRectMouseRegion: xmin -> minimumXMouseRegion: xmax -> maximumXMouseRegion: ymin -> minimumYMouseRegion: ymin -> maximumYText elements: hAlign -> horizontalAlignmentText elements: vAlign -> verticalAlignmentText elements: highlightColor -> selectionColorText elements: highlightedTextColor -> selectedTextColorText elements: preserveSelection -> persistentSelectionState: operations -> changesTransition: operations -> animationsTransition: fromState -> fromTransition: toState -> toFollow: followValue -> valueFlickable: xPosition -> viewportXFlickable: yPosition -> viewportYFlickable: xVelocity -> horizontalVelocityFlickable: yVelocity -> verticalVelocityFlickable: velocityDecay -> reportedVelocitySmoothingFlickable: locked -> interactive (note reversal of meaning)Flickable: pageXPosition -> visibleArea.xPositionFlickable: pageYPosition -> visibleArea.yPositionFlickable: pageWidth -> visibleArea.widthRatioFlickable: pageHeight -> visibleArea.heightRatioWebView: idealWidth -> preferredWidthWebView: idealHeight -> preferredHeightWebView: status -> statusTextWebView: mouseX -> clickX (parameter to onDoubleClick)WebView: mouseY -> clickY (parameter to onDoubleClick)WebView: cacheSize -> pixelCacheSizeRepeater: component -> delegateRepeater: dataSource -> modelListView: current -> currentItemGridView: current -> currentItemListView: wrap -> keyNavigationWrapsListView: autoHighlight -> highlightFollowsCurrentItemGridView: wrap -> keyNavigationWrapsGridView: autoHighlight -> highlightFollowsCurrentItemAnimation: targets -> matchTargetsAnimation: properties -> matchPropertiesAdditions:MouseRegion: add "acceptedButtons" propertyMouseRegion: add "hoverEnabled" propertyMouseRegion: add "pressedButtons" propertyTimer: add start() and stop() slotsWebView: add newWindowComponent and newWindowParent propertiesLoader: add status() and progress() propertiesLoader: add sourceComponent propertyLoader: add resizeMode propertyListView: preferredHighlightBegin, preferredHighlightEndListView: strictlyEnforceHighlightRangeParticles: Added emissionRate, emissionVariance and burst()Deletions:Column/VerticalPositioner: lost "margins" propertyRow/HorizontalPositioner: lost "margins" propertyGrid/Positioner/Layout: lost "margins" propertyWebView: lost "interactive" property (always true now)Flickable: removed "dragMode" propertyComponentInstance: removed. Replaced by Loader.sourceComponentListView: removed currentItemMode. Replaced by highligh range.ListView: removed snapPos.Particles: removed streamIn. Replaced by emissionRateOther Changes:ids must be lowercase: Text { id: foo }, not Text { id: Foo }Drag: axis becomes an enum with values "XAxis", "YAxis", "XandYAxis"Image: scaleGrid property removed. New item called BorderImage instead.KeyActions: changed to a Keys attached property on any item.KeyProxy: changed to a Keys.forwardTo property on any item.Script: now an intrinsic type in the language - cannot be assigned to properties - good: Item { Script { ... } } - bad: Item { resources: Script { ... } }Script: delay-loaded of the QML file until their source has been loaded (this only effects QML files loaded across the network.)Scope: declared properties shadow a property of the same name (was previously the reverse)ScriptAction and StateChangeScript: the script property now takes script rather than a string containing script (script: doSomething() rather than script: "doSomething()")QmlGraphicsItem::transformOrigin default changed from TopLeft to CenterAnimations used as PropertySourceValues are set to 'running: true' as default