aboutsummaryrefslogtreecommitdiffstats
path: root/examples/quick/threading
diff options
context:
space:
mode:
authorAlan Alpert <alan.alpert@nokia.com>2012-04-23 14:39:48 +1000
committerQt by Nokia <qt-info@nokia.com>2012-04-26 04:53:08 +0200
commita5336a0577b715edf49bef3794c6b1a8fa225a73 (patch)
treea7cc3ad59d7af572e1582aa9f8eb9546697a7e6c /examples/quick/threading
parent5e62f313588dc81c7284c4eb451cb9ebe7f3c994 (diff)
More example docs
MouseArea, Threading and TouchInteraction Change-Id: I9ca812d20a6c87d68ef91066ae0a4b9bc8829478 Reviewed-by: Michael Brasser <michael.brasser@nokia.com>
Diffstat (limited to 'examples/quick/threading')
-rw-r--r--examples/quick/threading/threadedlistmodel/timedisplay.qml4
-rw-r--r--examples/quick/threading/threading.qml12
-rw-r--r--examples/quick/threading/workerscript/workerscript.js4
-rw-r--r--examples/quick/threading/workerscript/workerscript.qml4
4 files changed, 20 insertions, 4 deletions
diff --git a/examples/quick/threading/threadedlistmodel/timedisplay.qml b/examples/quick/threading/threadedlistmodel/timedisplay.qml
index 48d0f659e5..266534a57c 100644
--- a/examples/quick/threading/threadedlistmodel/timedisplay.qml
+++ b/examples/quick/threading/threadedlistmodel/timedisplay.qml
@@ -38,7 +38,6 @@
**
****************************************************************************/
-// ![0]
import QtQuick 2.0
Rectangle {
@@ -60,6 +59,7 @@ Rectangle {
source: "dataloader.js"
}
+// ![0]
Timer {
id: timer
interval: 2000; repeat: true
@@ -71,6 +71,6 @@ Rectangle {
worker.sendMessage(msg);
}
}
+// ![0]
}
}
-// ![0]
diff --git a/examples/quick/threading/threading.qml b/examples/quick/threading/threading.qml
index b96c6975ac..cff4dd83b9 100644
--- a/examples/quick/threading/threading.qml
+++ b/examples/quick/threading/threading.qml
@@ -48,8 +48,20 @@ import "../../shared" as Examples
\image qml-threading-example.png
Threaded ListModel contains a ListView and a ListModel. The ListModel is updated asynchronusly in another thread, and the results propagate back to the main thread.
+ A timer requests updates from the worker thread periodically:
+ \snippet examples/threading/threadedlistmodel/timedisplay.qml 0
+
+ Inside the worker thread, the ListModel is synchronized once the data is finished loading:
+ \snippet examples/threading/threadedlistmodel/dataloader.js 0
WorkerScript contains an example of using a WorkerScript to offload expensive calculations into another thread. This keeps the UI from being blocked. This example calculates numbers in Pascal's Triangle, and not in a very optimal way, so it will often take several seconds to complete the calculation. By doing this in a WorkerScript in another thread, the UI is not blocked during this time.
+
+ When the UI needs another value, a request is sent to the WorkerScript:
+ \snippet examples/threading/workerscript/workerscript.qml 0
+ The workerscript then is free to take a really long time to calculate it:
+ \snippet examples/threading/workerscript/workerscript.js 0
+ When it's done, the result returns to the main scene via the WorkerScript element:
+ \snippet examples/threading/workerscript/workerscript.qml 1
*/
Item {
diff --git a/examples/quick/threading/workerscript/workerscript.js b/examples/quick/threading/workerscript/workerscript.js
index ada3d82589..67fbd8af9a 100644
--- a/examples/quick/threading/workerscript/workerscript.js
+++ b/examples/quick/threading/workerscript/workerscript.js
@@ -12,7 +12,7 @@ function triangle(row, column) {
return 1;
return triangle(row-1, column-1) + triangle(row-1, column);
}
-
+//! [0]
WorkerScript.onMessage = function(message) {
//Calculate result (may take a while, using a naive algorithm)
var calculatedResult = triangle(message.row, message.column);
@@ -21,4 +21,4 @@ WorkerScript.onMessage = function(message) {
column: message.column,
result: calculatedResult} );
}
-
+//! [0]
diff --git a/examples/quick/threading/workerscript/workerscript.qml b/examples/quick/threading/workerscript/workerscript.qml
index 640df0b483..d66628e79e 100644
--- a/examples/quick/threading/workerscript/workerscript.qml
+++ b/examples/quick/threading/workerscript/workerscript.qml
@@ -43,6 +43,7 @@ import QtQuick 2.0
Rectangle {
width: 320; height: 480
+//! [1]
WorkerScript {
id: myWorker
source: "workerscript.js"
@@ -56,10 +57,12 @@ Rectangle {
}
}
}
+//! [1]
Row {
y: 24
spacing: 24
anchors.horizontalCenter: parent.horizontalCenter
+//! [0]
Spinner {
id: rowSpinner
label: "Row"
@@ -68,6 +71,7 @@ Rectangle {
myWorker.sendMessage( { row: rowSpinner.value, column: columnSpinner.value } );
}
}
+//! [0]
Spinner {
id: columnSpinner