============================================================================= 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 } Using WebView now requires "import org.webkit 1.0" 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 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!) C++ API ------- QML_DEFINE_... definition macros, previously global macros, are replaced by QML_REGISTER_... registration macros, 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. 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. 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. ============================================================================= 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