aboutsummaryrefslogtreecommitdiffstats
path: root/examples/declarative/canvas/motionchart/motionchart.qml
diff options
context:
space:
mode:
authorMartin Jones <martin.jones@nokia.com>2011-05-31 15:25:44 +1000
committerMartin Jones <martin.jones@nokia.com>2011-05-31 15:25:44 +1000
commit766521d62a4cf4598326a510186b080a91bde6dd (patch)
tree5cf89c1338f42122c370c649b73c8193ca079268 /examples/declarative/canvas/motionchart/motionchart.qml
parenta91b8a041966f8aea4bf01fdcb1d5006547f3902 (diff)
parente7fef9d6115d1a9193c112d8fd4249ae9396dae3 (diff)
Merge branch 'qtquick2'
Conflicts: demos/declarative/flickr/common/Progress.qml demos/declarative/flickr/common/RssModel.qml demos/declarative/flickr/common/ScrollBar.qml demos/declarative/flickr/common/Slider.qml demos/declarative/flickr/mobile/Button.qml demos/declarative/flickr/mobile/GridDelegate.qml demos/declarative/flickr/mobile/ImageDetails.qml demos/declarative/flickr/mobile/ListDelegate.qml demos/declarative/flickr/mobile/TitleBar.qml demos/declarative/flickr/mobile/ToolBar.qml demos/declarative/webbrowser/content/Button.qml demos/declarative/webbrowser/content/FlickableWebView.qml demos/declarative/webbrowser/content/Header.qml demos/declarative/webbrowser/content/ScrollBar.qml demos/declarative/webbrowser/content/UrlInput.qml demos/declarative/webbrowser/webbrowser.qml doc/src/snippets/declarative/mousearea/mousearea-snippet.qml examples/declarative/modelviews/webview/newwindows/qml/alerts.html examples/declarative/modelviews/webview/newwindows/qml/content/Mapping/map.html examples/declarative/modelviews/webview/newwindows/qml/content/pics/cancel.png examples/declarative/modelviews/webview/newwindows/qml/content/pics/ok.png examples/declarative/modelviews/webview/newwindows/qml/newwindows.html src/declarative/graphicsitems/qdeclarativetextinput.cpp src/declarative/qml/qdeclarativecompiledbindings.cpp src/declarative/qml/qdeclarativecompiledbindings_p.h src/declarative/qml/qdeclarativedom.cpp src/declarative/qml/qdeclarativedom_p.h src/declarative/qml/qdeclarativedom_p_p.h src/declarative/qml/qdeclarativeengine.cpp src/declarative/qml/qdeclarativetypeloader.cpp src/imports/particles/particles.cpp tests/auto/declarative/qdeclarativedom/tst_qdeclarativedom.cpp tests/auto/declarative/qmlvisual/qdeclarativeflickable/data/flickable-horizontal.4.png tests/auto/declarative/qmlvisual/qdeclarativepathview/data/test-pathview.6.png tests/auto/declarative/qmlvisual/qdeclarativepositioners/data/usingRepeater.0.png tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.0.png tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.1.png tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.2.png tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.3.png tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.4.png tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.5.png tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.6.png tests/auto/declarative/qmlvisual/qdeclarativespringanimation/data/follow.7.png tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-MAC/multilineAlign.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/align/data-X11/multilineAlign.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/baseline/data-X11/parentanchor.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/data-MAC/qtbug_14865.1.png tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/data-X11/qtbug_14865.1.png tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide.1.png tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/elide2.1.png tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.1.png tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.2.png tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.3.png tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.4.png tests/auto/declarative/qmlvisual/qdeclarativetext/elide/data-X11/multilength.5.png tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext2.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-MAC/plaintext3.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/plaintext2.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext.0.png tests/auto/declarative/qmlvisual/qdeclarativetext/font/data-X11/richtext2.0.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.0.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.1.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.10.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.11.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.2.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.3.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.4.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.5.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.6.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.7.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.8.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/usingMultilineEdit.9.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.0.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.1.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.2.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.3.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.4.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.5.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-MAC/wrap.6.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.0.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.1.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.2.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.3.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/qt-669.4.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.10.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.11.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.12.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.7.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/usingMultilineEdit.9.png tests/auto/declarative/qmlvisual/qdeclarativetextedit/data-X11/wrap.7.png tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.0.png tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.1.png tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-MAC/echoMode.2.png tests/auto/declarative/qmlvisual/qdeclarativetextinput/data-X11/usingLineEdit.11.png tests/auto/declarative/qmlvisual/tst_qmlvisual.cpp Change-Id: I40df8a9403a58a6c03a0f1734f16a5cbed6c85ff
Diffstat (limited to 'examples/declarative/canvas/motionchart/motionchart.qml')
-rw-r--r--examples/declarative/canvas/motionchart/motionchart.qml140
1 files changed, 140 insertions, 0 deletions
diff --git a/examples/declarative/canvas/motionchart/motionchart.qml b/examples/declarative/canvas/motionchart/motionchart.qml
new file mode 100644
index 0000000000..974690e3fc
--- /dev/null
+++ b/examples/declarative/canvas/motionchart/motionchart.qml
@@ -0,0 +1,140 @@
+import QtQuick 2.0
+
+Canvas {
+ id:motionChart
+ width:1300
+ height: 700
+ property int progress:-1
+ property variant applesFrom: [1000, 300];
+ property variant applesTo:[1200, 400];
+ property variant orangesFrom: [1150, 200];
+ property variant orangesTo:[250, 550];
+ property variant bananasFrom: [300, 250];
+ property variant bananasTo:[788, 617];
+
+ property date startDate:new Date (1988,0,1)
+ property date endDate:new Date (1989,6,1)
+ property variant title:["Fruit", "Sales", "Expenses", "Location"];
+ property bool clearTrace:true
+ Text {id:appleText; text:"Apples"; font.bold:true; font.pixelSize:12; opacity:0}
+ Text {id:orangeText; text:"Oranges"; font.bold:true; font.pixelSize:12; opacity:0}
+ Text {id:bananaText; text:"Bananas"; font.bold:true; font.pixelSize:12; opacity:0}
+
+ Text {id:sales; text: "700 Sales"; x:15; y:15;font.bold:true; font.pixelSize:15; opacity:0}
+ Text {id:expenses; text: "Expenses 1300"; x:1170; y:670;font.bold:true; font.pixelSize:15; opacity:0}
+ Timer {
+ id:timer
+ interval: 1; running: true; repeat: true
+ onTriggered: {
+ if (motionChart.progress == -1) {
+ motionChart.setup();
+ running = false;
+ }
+ motionChart.draw();
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onPressed : {
+ motionChart.progress = 0;
+ setup();
+ timer.running = true;
+ motionChart.clearTrace = true;
+ }
+ onDoubleClicked : {
+ motionChart.progress = 0;
+ setup();
+ timer.running = true;
+ motionChart.clearTrace = false;
+ }
+ }
+
+
+ function setup() {
+ var ctx = motionChart.getContext("2d");
+ ctx.globalCompositeOperation = "source-over";
+ ctx.clearRect(0, 0, motionChart.width, motionChart.height);
+
+ ctx.strokeColor = Qt.rgba(133, 133, 133,1);
+ ctx.lineWidth = 2;
+ ctx.beginPath();
+ ctx.moveTo(10,690);
+ ctx.lineTo(10, 5);
+ ctx.moveTo(10,690);
+ ctx.lineTo(1295, 690);
+
+ for ( var i = 0; i < 10; i++) {
+ ctx.moveTo(10, i*70);
+ ctx.lineTo(15, i*70);
+ ctx.moveTo(i*130, 690);
+ ctx.lineTo(i*130, 685);
+ }
+
+ ctx.stroke();
+ sales.opacity =1;
+ expenses.opacity = 1;
+ appleText.opacity = 1;
+ orangeText.opacity = 1;
+ bananaText.opacity = 1;
+ }
+
+ function draw() {
+ var totalDays = Math.ceil((endDate.getTime()-startDate.getTime())/(1000*60*60*24));
+ if (motionChart.progress >= totalDays) {
+ timer.running = false;
+ return;
+ }
+ var apples = [];
+ apples[0] = applesFrom[0] + ((applesTo[0] - applesFrom[0]) * (motionChart.progress/totalDays));
+ apples[1] = applesFrom[1] + ((applesTo[1] - applesFrom[1]) * (motionChart.progress/totalDays));
+
+ var oranges = [];
+ oranges[0] = orangesFrom[0] + ((orangesTo[0] - orangesFrom[0]) * (motionChart.progress/totalDays));
+ oranges[1] = orangesFrom[1] + ((orangesTo[1] - orangesFrom[1]) * (motionChart.progress/totalDays));
+
+ var bananas = [];
+ bananas[0] = bananasFrom[0] + ((bananasTo[0] - bananasFrom[0]) * (motionChart.progress/totalDays));
+ bananas[1] = bananasFrom[1] + ((bananasTo[1] - bananasFrom[1]) * (motionChart.progress/totalDays));
+
+ var ctx = motionChart.getContext("2d");
+ ctx.globalCompositeOperation = "source-over";
+
+ if (motionChart.clearTrace)
+ ctx.clearRect(15, 15, motionChart.width - 15, motionChart.height - 30);
+
+
+ //apples
+ ctx.fillColor = Qt.rgba(0,255,0,1);
+
+ ctx.beginPath();
+ ctx.arc( apples[0] , 700 - apples[1] , 20 , 0 , Math.PI * 2 , true );
+ //ctx.closePath();
+ ctx.fill();
+ ctx.fillRect(apples[0], 700 - apples[1], 28, 28);
+ appleText.x = apples[0];
+ appleText.y = 700 - apples[1] - 30;
+ //oranges
+ ctx.fillColor = Qt.rgba(0,0,255,1);
+ ctx.beginPath();
+ ctx.arc( oranges[0], 700 - oranges[1] , 20 , 0 , Math.PI * 2 , true );
+ ctx.closePath();
+ ctx.fill();
+ ctx.fillRect(oranges[0], 700 - oranges[1], 28, 28);
+ orangeText.x = oranges[0];
+ orangeText.y = 700 - oranges[1] - 30;
+
+ //bananas
+ ctx.fillColor = Qt.rgba(255,0,0,1);
+ ctx.beginPath();
+ ctx.arc( bananas[0] , 700 - bananas[1] , 20 , 0 , Math.PI * 2 , true );
+ ctx.closePath();
+ ctx.fill();
+ ctx.fillRect(bananas[0], 700 - bananas[1], 28, 28);
+ bananaText.x = bananas[0];
+ bananaText.y = 700 - bananas[1] - 30;
+
+ ctx.sync();
+ motionChart.progress ++;
+ }
+}