summaryrefslogtreecommitdiffstats
path: root/examples/declarative/dynamic
diff options
context:
space:
mode:
authorAlan Alpert <alan.alpert@nokia.com>2009-07-02 00:48:50 (GMT)
committerAlan Alpert <alan.alpert@nokia.com>2009-07-02 00:48:50 (GMT)
commitafe57350c40ea2469413e4c5b42a7fd45f55769f (patch)
tree45b4de413df72e30513416538a52ae9889aa9a50 /examples/declarative/dynamic
parent4e9336d1f60089bffda7fca93a63d18ffce0a6fa (diff)
downloadQt-afe57350c40ea2469413e4c5b42a7fd45f55769f.zip
Qt-afe57350c40ea2469413e4c5b42a7fd45f55769f.tar.gz
Qt-afe57350c40ea2469413e4c5b42a7fd45f55769f.tar.bz2
Beautification of dynamic object example.
Adds some error handling, and cleans up documentation and the example a little.
Diffstat (limited to 'examples/declarative/dynamic')
-rw-r--r--examples/declarative/dynamic/dynamic.js43
-rw-r--r--examples/declarative/dynamic/dynamic.qml25
2 files changed, 43 insertions, 25 deletions
diff --git a/examples/declarative/dynamic/dynamic.js b/examples/declarative/dynamic/dynamic.js
index 66ec292..6b483fd 100644
--- a/examples/declarative/dynamic/dynamic.js
+++ b/examples/declarative/dynamic/dynamic.js
@@ -1,51 +1,54 @@
-var sprite = null;
+var dynamicObject = null;
+var fourthBox = null;
var component;
var started = false;
-function make(p) {
+function createWithEvalQml(p) {
return evalQml('Rect { color: "lightsteelblue"; width: 100;'
+ 'height: 100; id: newRect}','DynPart.qml');
}
-function death() {
- if(!(sprite==null)){
- sprite.destroy();
- sprite = null;
+function destroyDynamicObject() {
+ if(!(dynamicObject==null)){
+ dynamicObject.destroy();
+ dynamicObject = null;
}
}
-function spawn() {//Like create, but assumes instant readyness
- if(sprite!=null)//Already made
+function instantCreateWithComponent() {//Like create, but assumes instant readyness
+ if(dynamicObject!=null)//Already made
return null;
component = createComponent("dynamic.qml");
- sprite = component.createObject();
- if(sprite == null){
- print("err");
+ dynamicObject = component.createObject();
+ if(dynamicObject == null){
+ print("error creating component");
}else{
- sprite.parent = targetItem;
- return sprite;
+ dynamicObject.parent = targetItem;
+ return dynamicObject;
}
return null;
}
function finishCreation(){
if(component.isReady()){
- sprite = component.createObject();
- sprite.parent = targetItem;
+ dynamicObject = component.createObject();
+ dynamicObject.parent = targetItem;
}else if(component.isError()){
- sprite = null;
+ dynamicObject = null;
+ print("error creating component");
+ print(component.errorsString());
}
}
-function create(){
+function createWithComponent(){
if(started!=false){
finishCreation();//Remakes if destroyed
- return sprite;
+ return dynamicObject;
}
started = true;
component = createComponent("dynamic.qml");
finishCreation();
- if(sprite != null){
- return sprite;
+ if(dynamicObject != null){
+ return dynamicObject;
}
component.statusChanged.connect(finishCreation);
return null;
diff --git a/examples/declarative/dynamic/dynamic.qml b/examples/declarative/dynamic/dynamic.qml
index ee81ff6..3e0c12e 100644
--- a/examples/declarative/dynamic/dynamic.qml
+++ b/examples/declarative/dynamic/dynamic.qml
@@ -1,16 +1,31 @@
Rect { id: page; width: 800; height: 800; color:"black"
Script { source: "dynamic.js" }
- property bool fourthBox: false;
+ property bool extendStars: false;
Item { id: targetItem; x: 100; y: 100; }
Item { id: targetItem2; x: 0; y: 300; }
Rect { width: 100; height: 100; color: "green"; id: rect
- MouseRegion { anchors.fill:parent; onClicked: {a = create();}}
+ MouseRegion { anchors.fill:parent; onClicked: {a = createWithComponent();}}
}
Rect { width: 100; height: 100; color: "red"; id: rect2; y:100;
- MouseRegion { anchors.fill:parent; onClicked: {death();}}
+ MouseRegion { anchors.fill:parent; onClicked: {destroyDynamicObject();}}
}
Rect { width: 100; height: 100; color: "blue"; id: rect3; y:200;
- MouseRegion { anchors.fill:parent; onClicked: {a = make(); if(a!=null){a.parent = targetItem2; fourthBox = true;}}}
+ MouseRegion { anchors.fill:parent; onClicked:
+ {
+ if(fourthBox == null) {
+ a = createWithEvalQml();
+ if(a!=null) {
+ a.parent = targetItem2;
+ fourthBox = a;
+ extendStars = true;
+ }
+ } else {
+ fourthBox.destroy();
+ fourthBox = null;
+ extendStars = false;
+ }
+ }
+ }
}
- Particles { x:0; y:0; count:20; lifeSpan:500; width:100; height: if(fourthBox){400;}else{300;} source:"star.png"}
+ Particles { x:0; y:0; count:20; lifeSpan:500; width:100; height: if(extendStars){400;}else{300;} source:"star.png"}
}