diff options
author | Alan Alpert <alan.alpert@nokia.com> | 2009-07-02 00:48:50 (GMT) |
---|---|---|
committer | Alan Alpert <alan.alpert@nokia.com> | 2009-07-02 00:48:50 (GMT) |
commit | afe57350c40ea2469413e4c5b42a7fd45f55769f (patch) | |
tree | 45b4de413df72e30513416538a52ae9889aa9a50 /examples/declarative/dynamic | |
parent | 4e9336d1f60089bffda7fca93a63d18ffce0a6fa (diff) | |
download | Qt-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.js | 43 | ||||
-rw-r--r-- | examples/declarative/dynamic/dynamic.qml | 25 |
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"} } |