summaryrefslogtreecommitdiffstats
path: root/examples/declarative
diff options
context:
space:
mode:
Diffstat (limited to 'examples/declarative')
-rw-r--r--examples/declarative/cppextensions/imageprovider/imageprovider-example.qml28
-rw-r--r--examples/declarative/cppextensions/imageprovider/imageprovider.cpp73
-rw-r--r--examples/declarative/cppextensions/plugins/com/nokia/TimeExample/Clock.qml16
-rw-r--r--examples/declarative/modelviews/listview/highlight.qml5
-rw-r--r--examples/declarative/toys/clocks/content/Clock.qml35
-rw-r--r--examples/declarative/toys/corkboards/Day.qml6
-rw-r--r--examples/declarative/toys/tvtennis/tvtennis.qml24
-rw-r--r--examples/declarative/tutorials/samegame/samegame4/content/BoomBlock.qml11
-rwxr-xr-xexamples/declarative/tutorials/samegame/samegame4/content/samegame.js7
-rw-r--r--examples/declarative/ui-components/dialcontrol/content/Dial.qml19
-rw-r--r--examples/declarative/ui-components/tabwidget/TabWidget.qml7
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()