diff -r b72c6db6890b -r 5dc02b23752f src/declarative/QmlChanges.txt --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/declarative/QmlChanges.txt Tue Jul 06 15:10:48 2010 +0300 @@ -0,0 +1,333 @@ +============================================================================= +The changes below are pre Qt 4.7.0 RC + +Flickable: + - overShoot is replaced by boundsBehavior enumeration + - flickingHorizontally and flickingVertically properties added + - movingHorizontally and movingVertically properties added + - flickDirection is renamed flickableDirection +Component: + - isReady, isLoading, isError and isNull properties removed, use + status property instead + - errorsString() renamed to errorString() + +QList models no longer provide properties in model object. The +properties 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" argument + +C++ API +------- +QDeclarativeExpression::value() has been renamed to +QDeclarativeExpression::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 warnings +can be now accessed via the menu (Debugging->Show Warnings). + +============================================================================= +The changes below are pre Qt 4.7.0 beta 1 + +TextEdit: 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-100 +ListView, GridView::positionViewAtIndex() gained a 'mode' parameter +Removed Qt.playSound (replaced by SoundEffect element) +Removed Qt.closestAngle (use RotationAnimation instead) +Removed NumberFormatter +Removed 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 -> scriptName +Animation: 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, preferredHighlightEnd +createQmlObject: 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 with +QDeclarativeContext::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's +easier to set a start value to animate intially and then start to follow, +while SmoothedAnimation is still convenient for using inside Behaviors +and Transitions. + + +Add SmoothedAnimation element +--------------------------------------- +SmoothedAnimation inherits from NumberAnimaton and as a +consequence 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 declarative +animations ('source' changed to 'to'), so now 'to' changes are not +automatically '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 example + +Item { + Script { + function doSomething() {} + } +} + +becomes + +Item { + function doSomething() {} +} + +If you used Script to include external JavaScript files, you can replace the +Script element with an “import” line. For example + +MouseArea { + Script { + source: “foo.js” + } + onClicked: foo() +} + +becomes + +import “foo.js” as Foo +MouseArea { + onClicked: Foo.foo() +} + +The “as” qualifier is mandatory for script imports (as opposed to type +imports where it is optional). + + +============================================================================= +The changes below are pre Qt 4.7.0 alpha + +Flickable: renamed viewportWidth -> contentWidth +Flickable: renamed viewportHeight -> contentHeight +Flickable: renamed viewportX -> contentX +Flickable: renamed viewportY -> contentY +Removed Flickable.reportedVelocitySmoothing +Renamed MouseRegion -> MouseArea +Connection: 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.criteria + +ListModel +--------- +- 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 documentation +and 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 : real +For 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 by +qmlRegisterType registration functions, which must be called explicitly. +C++ API users should also consider using the QmlExtensionPlugin (previously +named QmlModulePlugin) as a cleaner mechanism for publishing libraries of QML +types, 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 class +reinforced. +- 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 followed +by another subsequent rename B->C, if later reviews override earlier reviews. + +API Changes +=========== + +Renamed Elements: +LineEdit -> TextInput +VerticalLayout -> Column +HorizontalLayout -> Row +VerticalPositioner -> Column +HorizontalPositioner -> Row +GridLayout -> Grid +GridPositioner -> Grid +Rect -> Rectangle +FocusRealm -> FocusScope +FontFamily -> FontLoader +Palette -> SystemPalette +Bind -> Binding +SetProperties -> PropertyChanges +RunScript -> StateChangeScript +SetAnchors -> AnchorChanges +SetPropertyAction -> PropertyAction +RunScriptAction -> ScriptAction +ParentChangeAction -> ParentAction +VisualModel -> VisualDataModel +Follow -> SpringFollow + +Renamed properties: +Item: contents -> childrenRect +MouseRegion: xmin -> minimumX +MouseRegion: xmax -> maximumX +MouseRegion: ymin -> minimumY +MouseRegion: ymin -> maximumY +Text elements: hAlign -> horizontalAlignment +Text elements: vAlign -> verticalAlignment +Text elements: highlightColor -> selectionColor +Text elements: highlightedTextColor -> selectedTextColor +Text elements: preserveSelection -> persistentSelection +State: operations -> changes +Transition: operations -> animations +Transition: fromState -> from +Transition: toState -> to +Follow: followValue -> value +Flickable: xPosition -> viewportX +Flickable: yPosition -> viewportY +Flickable: xVelocity -> horizontalVelocity +Flickable: yVelocity -> verticalVelocity +Flickable: velocityDecay -> reportedVelocitySmoothing +Flickable: locked -> interactive (note reversal of meaning) +Flickable: pageXPosition -> visibleArea.xPosition +Flickable: pageYPosition -> visibleArea.yPosition +Flickable: pageWidth -> visibleArea.widthRatio +Flickable: pageHeight -> visibleArea.heightRatio +WebView: idealWidth -> preferredWidth +WebView: idealHeight -> preferredHeight +WebView: status -> statusText +WebView: mouseX -> clickX (parameter to onDoubleClick) +WebView: mouseY -> clickY (parameter to onDoubleClick) +WebView: cacheSize -> pixelCacheSize +Repeater: component -> delegate +Repeater: dataSource -> model +ListView: current -> currentItem +GridView: current -> currentItem +ListView: wrap -> keyNavigationWraps +ListView: autoHighlight -> highlightFollowsCurrentItem +GridView: wrap -> keyNavigationWraps +GridView: autoHighlight -> highlightFollowsCurrentItem +Animation: targets -> matchTargets +Animation: properties -> matchProperties + +Additions: +MouseRegion: add "acceptedButtons" property +MouseRegion: add "hoverEnabled" property +MouseRegion: add "pressedButtons" property +Timer: add start() and stop() slots +WebView: add newWindowComponent and newWindowParent properties +Loader: add status() and progress() properties +Loader: add sourceComponent property +Loader: add resizeMode property +ListView: preferredHighlightBegin, preferredHighlightEnd +ListView: strictlyEnforceHighlightRange +Particles: Added emissionRate, emissionVariance and burst() + +Deletions: +Column/VerticalPositioner: lost "margins" property +Row/HorizontalPositioner: lost "margins" property +Grid/Positioner/Layout: lost "margins" property +WebView: lost "interactive" property (always true now) +Flickable: removed "dragMode" property +ComponentInstance: removed. Replaced by Loader.sourceComponent +ListView: removed currentItemMode. Replaced by highligh range. +ListView: removed snapPos. +Particles: removed streamIn. Replaced by emissionRate + +Other 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 Center +Animations used as PropertySourceValues are set to 'running: true' as default