diff options
Diffstat (limited to 'examples/declarative')
11 files changed, 108 insertions, 123 deletions
diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml index 5890c91..1ef97fa 100644 --- a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml +++ b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml @@ -37,29 +37,13 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ - import Qt 4.7 -import "ImageProviderCore" -//![0] -ListView { - width: 100; height: 100 - anchors.fill: parent - - model: myModel +import "ImageProviderCore" // import the plugin that registers the color image provider - delegate: Component { - Item { - width: 100 - height: 50 - Text { - text: "Loading..." - anchors.centerIn: parent - } - Image { - source: modelData - sourceSize: "50x25" - } - } - } +//![0] +Column { + Image { source: "image://colors/yellow" } + Image { source: "image://colors/red" } } //![0] + diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider.cpp b/examples/declarative/cppextensions/imageprovider/imageprovider.cpp index 0281b4a..995192a 100644 --- a/examples/declarative/cppextensions/imageprovider/imageprovider.cpp +++ b/examples/declarative/cppextensions/imageprovider/imageprovider.cpp @@ -42,7 +42,6 @@ #include <qdeclarativeextensionplugin.h> #include <qdeclarativeengine.h> -#include <qdeclarativecontext.h> #include <qdeclarative.h> #include <qdeclarativeitem.h> #include <qdeclarativeimageprovider.h> @@ -50,62 +49,57 @@ #include <QImage> #include <QPainter> -/* - This example illustrates using a QDeclarativeImageProvider to serve - images asynchronously. -*/ - //![0] class ColorImageProvider : public QDeclarativeImageProvider { public: - // This is run in a low priority thread. - QImage request(const QString &id, QSize *size, const QSize &req_size) + ColorImageProvider() + : QDeclarativeImageProvider(Pixmap) { - if (size) *size = QSize(100,50); - QImage image( - req_size.width() > 0 ? req_size.width() : 100, - req_size.height() > 0 ? req_size.height() : 50, - QImage::Format_RGB32); - image.fill(QColor(id).rgba()); - QPainter p(&image); - QFont f = p.font(); - f.setPixelSize(30); - p.setFont(f); - p.setPen(Qt::black); - if (req_size.isValid()) - p.scale(req_size.width()/100.0, req_size.height()/50.0); - p.drawText(QRectF(0,0,100,50),Qt::AlignCenter,id); - return image; + } + + QPixmap requestPixmap(const QString &id, QSize *size, const QSize &requestedSize) + { + int width = 100; + int height = 50; + + if (size) + *size = QSize(width, height); + QPixmap pixmap(requestedSize.width() > 0 ? requestedSize.width() : width, + requestedSize.height() > 0 ? requestedSize.height() : height); + pixmap.fill(QColor(id).rgba()); +//![0] + + // write the color name + QPainter painter(&pixmap); + QFont f = painter.font(); + f.setPixelSize(20); + painter.setFont(f); + painter.setPen(Qt::black); + if (requestedSize.isValid()) + painter.scale(requestedSize.width() / width, requestedSize.height() / height); + painter.drawText(QRectF(0, 0, width, height), Qt::AlignCenter, id); + +//![1] + return pixmap; } }; +//![1] class ImageProviderExtensionPlugin : public QDeclarativeExtensionPlugin { Q_OBJECT public: - void registerTypes(const char *uri) { + void registerTypes(const char *uri) + { Q_UNUSED(uri); - } - void initializeEngine(QDeclarativeEngine *engine, const char *uri) { + void initializeEngine(QDeclarativeEngine *engine, const char *uri) + { Q_UNUSED(uri); - engine->addImageProvider("colors", new ColorImageProvider); - - QStringList dataList; - dataList.append("image://colors/red"); - dataList.append("image://colors/green"); - dataList.append("image://colors/blue"); - dataList.append("image://colors/brown"); - dataList.append("image://colors/orange"); - dataList.append("image://colors/purple"); - dataList.append("image://colors/yellow"); - - QDeclarativeContext *ctxt = engine->rootContext(); - ctxt->setContextProperty("myModel", QVariant::fromValue(dataList)); } }; @@ -113,5 +107,4 @@ public: #include "imageprovider.moc" Q_EXPORT_PLUGIN(ImageProviderExtensionPlugin); -//![0] diff --git a/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml index 37128b5..6b2676e 100644 --- a/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml +++ b/examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml @@ -57,10 +57,10 @@ Rectangle { smooth: true transform: Rotation { id: hourRotation - origin.x: 7.5; origin.y: 73; angle: 0 - SpringFollow on angle { - spring: 2; damping: 0.2; modulus: 360 - to: (clock.hours * 30) + (clock.minutes * 0.5) + origin.x: 7.5; origin.y: 73; + angle: (clock.hours * 30) + (clock.minutes * 0.5) + Behavior on angle { + SpringAnimation{ spring: 2; damping: 0.2; modulus: 360 } } } } @@ -71,10 +71,10 @@ Rectangle { smooth: true transform: Rotation { id: minuteRotation - origin.x: 6.5; origin.y: 83; angle: 0 - SpringFollow on angle { - spring: 2; damping: 0.2; modulus: 360 - to: clock.minutes * 6 + origin.x: 6.5; origin.y: 83; + angle: clock.minutes * 6 + Behavior on angle { + SpringAnimation{ spring: 2; damping: 0.2; modulus: 360 } } } } diff --git a/examples/declarative/modelviews/listview/highlight.qml b/examples/declarative/modelviews/listview/highlight.qml index 4c14f2a..2d68da6 100644 --- a/examples/declarative/modelviews/listview/highlight.qml +++ b/examples/declarative/modelviews/listview/highlight.qml @@ -39,7 +39,7 @@ ****************************************************************************/ // This example shows how to create your own highlight delegate for a ListView -// that uses a SpringFollow animation to provide custom movement when the +// that uses a SpringAnimation to provide custom movement when the // highlight bar is moved between items. import Qt 4.7 @@ -78,7 +78,8 @@ Rectangle { Rectangle { width: 200; height: 50 color: "#FFFF88" - SpringFollow on y { to: listView.currentItem.y; spring: 3; damping: 0.1 } + y: listView.currentItem.y; + Behavior on y { SpringAnimation { spring: 2; damping: 0.1 } } } } diff --git a/examples/declarative/toys/clocks/content/Clock.qml b/examples/declarative/toys/clocks/content/Clock.qml index 136573b..24a07ec 100644 --- a/examples/declarative/toys/clocks/content/Clock.qml +++ b/examples/declarative/toys/clocks/content/Clock.qml @@ -45,10 +45,10 @@ Item { width: 200; height: 230 property alias city: cityLabel.text - property variant hours - property variant minutes - property variant seconds - property variant shift : 0 + property int hours + property int minutes + property int seconds + property real shift property bool night: false function timeChanged() { @@ -60,23 +60,24 @@ Item { } Timer { - interval: 100; running: true; repeat: true; triggeredOnStart: true + interval: 100; running: true; repeat: true; onTriggered: clock.timeChanged() } Image { id: background; source: "clock.png"; visible: clock.night == false } Image { source: "clock-night.png"; visible: clock.night == true } + Image { x: 92.5; y: 27 source: "hour.png" smooth: true transform: Rotation { id: hourRotation - origin.x: 7.5; origin.y: 73; angle: 0 - SpringFollow on angle { - spring: 2; damping: 0.2; modulus: 360 - to: (clock.hours * 30) + (clock.minutes * 0.5) + origin.x: 7.5; origin.y: 73; + angle: (clock.hours * 30) + (clock.minutes * 0.5) + Behavior on angle { + NumberAnimation{} } } } @@ -87,10 +88,10 @@ Item { smooth: true transform: Rotation { id: minuteRotation - origin.x: 6.5; origin.y: 83; angle: 0 - SpringFollow on angle { - spring: 2; damping: 0.2; modulus: 360 - to: clock.minutes * 6 + origin.x: 6.5; origin.y: 83; + angle: clock.minutes * 6 + Behavior on angle { + NumberAnimation{} } } } @@ -101,10 +102,10 @@ Item { smooth: true transform: Rotation { id: secondRotation - origin.x: 2.5; origin.y: 80; angle: 0 - SpringFollow on angle { - spring: 5; damping: 0.25; modulus: 360 - to: clock.seconds * 6 + origin.x: 2.5; origin.y: 80; + angle: clock.seconds * 6 + Behavior on angle { + NumberAnimation{} } } } diff --git a/examples/declarative/toys/corkboards/Day.qml b/examples/declarative/toys/corkboards/Day.qml index cc297b1..9d1f3ae 100644 --- a/examples/declarative/toys/corkboards/Day.qml +++ b/examples/declarative/toys/corkboards/Day.qml @@ -70,9 +70,9 @@ Component { x: randomX; y: randomY - SpringFollow on rotation { - to: -flickable.horizontalVelocity / 100 - spring: 2.0; damping: 0.15 + rotation: -flickable.horizontalVelocity / 100; + Behavior on rotation { + SpringAnimation { spring: 2.0; damping: 0.15 } } Item { diff --git a/examples/declarative/toys/tvtennis/tvtennis.qml b/examples/declarative/toys/tvtennis/tvtennis.qml index 726c649..2e144ed 100644 --- a/examples/declarative/toys/tvtennis/tvtennis.qml +++ b/examples/declarative/toys/tvtennis/tvtennis.qml @@ -50,7 +50,6 @@ Rectangle { id: ball // Add a property for the target y coordinate - property int targetY : page.height - 10 property variant direction : "right" x: 20; width: 20; height: 20; z: 1 @@ -65,15 +64,18 @@ Rectangle { PropertyAction { target: ball; property: "direction"; value: "right" } } - // Make y follow the target y coordinate, with a velocity of 200 - SpringFollow on y { to: ball.targetY; velocity: 200 } + // Make y move with a velocity of 200 + Behavior on y { SpringAnimation{ velocity: 200; } + } + + Component.onCompleted: y = page.height-10; // start the ball motion // Detect the ball hitting the top or bottom of the view and bounce it onYChanged: { if (y <= 0) { - targetY = page.height - 20; + y = page.height - 20; } else if (y >= page.height - 20) { - targetY = 0; + y = 0; } } } @@ -84,19 +86,15 @@ Rectangle { id: leftBat color: "Lime" x: 2; width: 20; height: 90 - SpringFollow on y { - to: ball.y - 45; velocity: 300 - enabled: ball.direction == 'left' - } + y: ball.direction == 'left' ? ball.y - 45 : page.height/2 -45; + Behavior on y { SpringAnimation{ spring: 1; damping: .1; } } } Rectangle { id: rightBat color: "Lime" x: page.width - 22; width: 20; height: 90 - SpringFollow on y { - to: ball.y-45; velocity: 300 - enabled: ball.direction == 'right' - } + y: ball.direction == 'right' ? ball.y - 45 : page.height/2 -45; + Behavior on y { SpringAnimation{ spring: 1; damping: .1; } } } // The rest, to make it look realistic, if neither ever scores... diff --git a/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml b/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml index 1f51e13..92c607f 100644 --- a/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml +++ b/examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml @@ -49,11 +49,14 @@ Item { //![1] property bool spawned: false - property int targetX: 0 - property int targetY: 0 - SpringFollow on x { to: targetX; spring: 2; damping: 0.2; enabled: spawned } - SpringFollow on y { to: targetY; spring: 2; damping: 0.2 } + Behavior on x { + enabled: spawned; + SpringAnimation{ spring: 2; damping: 0.2 } + } + Behavior on y { + SpringAnimation{ spring: 2; damping: 0.2 } + } //![1] //![2] diff --git a/examples/declarative/tutorials/samegame/samegame4/content/samegame.js b/examples/declarative/tutorials/samegame/samegame4/content/samegame.js index 930a3d8..b1f427c 100755 --- a/examples/declarative/tutorials/samegame/samegame4/content/samegame.js +++ b/examples/declarative/tutorials/samegame/samegame4/content/samegame.js @@ -57,8 +57,7 @@ function createBlock(column, row) { } dynamicObject.type = Math.floor(Math.random() * 3); dynamicObject.x = column * gameCanvas.blockSize; - dynamicObject.targetX = column * gameCanvas.blockSize; - dynamicObject.targetY = row * gameCanvas.blockSize; + dynamicObject.y = row * gameCanvas.blockSize; dynamicObject.width = gameCanvas.blockSize; dynamicObject.height = gameCanvas.blockSize; dynamicObject.spawned = true; @@ -128,7 +127,7 @@ function shuffleDown() { } else { if (fallDist > 0) { var obj = board[index(column, row)]; - obj.targetY += fallDist * gameCanvas.blockSize; + obj.y += fallDist * gameCanvas.blockSize; board[index(column, row + fallDist)] = obj; board[index(column, row)] = null; } @@ -146,7 +145,7 @@ function shuffleDown() { obj = board[index(column, row)]; if (obj == null) continue; - obj.targetX -= fallDist * gameCanvas.blockSize; + obj.x -= fallDist * gameCanvas.blockSize; board[index(column - fallDist, row)] = obj; board[index(column, row)] = null; } diff --git a/examples/declarative/ui-components/dialcontrol/content/Dial.qml b/examples/declarative/ui-components/dialcontrol/content/Dial.qml index 2b421bf..b5074a64 100644 --- a/examples/declarative/ui-components/dialcontrol/content/Dial.qml +++ b/examples/declarative/ui-components/dialcontrol/content/Dial.qml @@ -50,11 +50,11 @@ Item { //! [needle_shadow] Image { - x: 93 + x: 96 y: 35 source: "needle_shadow.png" transform: Rotation { - origin.x: 11; origin.y: 67 + origin.x: 9; origin.y: 67 angle: needleRotation.angle } } @@ -62,17 +62,18 @@ Item { //! [needle] Image { id: needle - x: 95; y: 33 + x: 98; y: 33 smooth: true source: "needle.png" transform: Rotation { id: needleRotation - origin.x: 7; origin.y: 65 - angle: -130 - SpringFollow on angle { - spring: 1.4 - damping: .15 - to: Math.min(Math.max(-130, root.value*2.6 - 130), 133) + origin.x: 5; origin.y: 65 + angle: Math.min(Math.max(-130, root.value*2.6 - 130), 133) + Behavior on angle { + SpringAnimation { + spring: 1.4 + damping: .15 + } } } } diff --git a/examples/declarative/ui-components/tabwidget/TabWidget.qml b/examples/declarative/ui-components/tabwidget/TabWidget.qml index 9642e04..ce57213 100644 --- a/examples/declarative/ui-components/tabwidget/TabWidget.qml +++ b/examples/declarative/ui-components/tabwidget/TabWidget.qml @@ -43,9 +43,14 @@ import Qt 4.7 Item { id: tabWidget - property int current: 0 + // Setting the default property to stack.children means any child items + // of the TabWidget are actually added to the 'stack' item's children. + // See the "Extending Types from QML" documentation for details on default + // properties. default property alias content: stack.children + property int current: 0 + onCurrentChanged: setOpacities() Component.onCompleted: setOpacities() |