diff options
Diffstat (limited to 'examples/declarative/particles/modelparticles/stream.qml')
-rw-r--r-- | examples/declarative/particles/modelparticles/stream.qml | 276 |
1 files changed, 0 insertions, 276 deletions
diff --git a/examples/declarative/particles/modelparticles/stream.qml b/examples/declarative/particles/modelparticles/stream.qml deleted file mode 100644 index 0938f17cd4..0000000000 --- a/examples/declarative/particles/modelparticles/stream.qml +++ /dev/null @@ -1,276 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). -** All rights reserved. -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** This file is part of the examples of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:BSD$ -** You may use this file under the terms of the BSD license as follows: -** -** "Redistribution and use in source and binary forms, with or without -** modification, are permitted provided that the following conditions are -** met: -** * Redistributions of source code must retain the above copyright -** notice, this list of conditions and the following disclaimer. -** * Redistributions in binary form must reproduce the above copyright -** notice, this list of conditions and the following disclaimer in -** the documentation and/or other materials provided with the -** distribution. -** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor -** the names of its contributors may be used to endorse or promote -** products derived from this software without specific prior written -** permission. -** -** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS -** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT -** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR -** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT -** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, -** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT -** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY -** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.0 -import QtQuick.Particles 2.0 -import "content/script.js" as Script -import "content" - -Item{ - id: root - width: 640 - height: 480 - Rectangle{ - anchors.fill: parent - color: "black" - z: -1 - } - Item{ - id: loading - Behavior on opacity{NumberAnimation{}} - anchors.fill: parent - Text{ - anchors.centerIn: parent - text: "Loading" - color: "white" - } - } - ParticleSystem{ - id: sys; - running: true - startTime: 12000//Doesn't actually work with the loading time though... - } - Emitter{ - id: emitter - system: sys - height: parent.height - 132/2 - x: -132/2 - y: 132/2 - speed: PointDirection{ x: 32; xVariation: 8 } - emitRate: 0.5 - lifeSpan: 120000 //TODO: A -1 or something which does 'infinite'? (but need disable fade first) - particle: "photos" - } - Kill{ - system: sys - x: parent.width + 132/2 - height: parent.height - width: 1000 - } - ImageParticle{ - system: sys - particles: ["fireworks"] - source: "../trails/content/star.png" - color: "lightsteelblue" - alpha: 0 - colorVariation: 0 - z: 1000 - } - ItemParticle{ - id: mp - z: 0 - system: sys - fade: false - particles: ["photos"] - } - Component{ - id: alertDelegate - Rectangle{ - width: 132 - height: 132 - NumberAnimation on scale{ - running: true - loops: 1 - from: 0.2 - to: 1 - } - Image{ - source: "../asteroid/content/rocket.png" - anchors.centerIn: parent - } - Text{ - anchors.bottom: parent.bottom - anchors.horizontalCenter: parent.horizontalCenter - text: "A new ship has arrived!" - } - } - } - property Item alertItem; - function alert(){ - //resetter.active = false - force.active = true; - alertItem = alertDelegate.createObject(root); - alertItem.x = root.width/2 - alertItem.width/2 - alertItem.y = root.height/2 - alertItem.height/2 - spawnFireworks.pulse(0.2); - stopAlert.start(); - } - focus: true - Keys.onSpacePressed: alert(); - Timer{ - id: stopAlert - running: false - repeat: false - interval: 800 - onTriggered: { - force.active = false - //resetter.active = true; - mp.take(alertItem, true); - centerEmitter.burst(1); - } - } - PointAttractor{ - id: force - system: sys - pointX: root.width/2 - pointY: root.height/2 - strength: -10000 - active: false - anchors.centerIn: parent - width: parent.width/2 - height: parent.height/2 - particles:["photos"] - physics: PointAttractor.Position - } - Emitter{ - id: centerEmitter - speed: PointDirection{ x: 32; xVariation: 8;} - emitRate: 0.5 - lifeSpan: 12000 //TODO: A -1 or something which does 'infinite'? (but need disable fade first) - emitCap: 20 - particle: "photos" - system: sys - anchors.centerIn: parent - emitting: false - - //TODO: Zoom in effect - } - Emitter{ - id: spawnFireworks - particle: "fireworks" - system: sys - emitCap: 400 - emitRate: 400 - lifeSpan: 2800 - x: parent.width/2 - y: parent.height/2 - 64 - width: 8 - height: 8 - emitting: false - size: 32 - endSize: 8 - speed: AngledDirection{ magnitude: 160; magnitudeVariation: 120; angleVariation: 90; angle: 270 } - acceleration: PointDirection{ y: 160 } - } - Item{ x: -1000; y: -1000 //offscreen - Repeater{//Load them here, add to system on completed - model: theModel - delegate: theDelegate - } - } - RssModel{id: theModel; tags:"particle,particles"} - Component { - id: theDelegate - Rectangle { - id: container - border.width: 2 - property real myRand: Math.random();//'depth' - z: Math.floor(myRand * 100) - scale: (myRand + 1.0)/2; - //TODO: Darken based on 'depth' - width: 132 - height: 132 - //ItemParticle.onAttached: console.log("I'm in" + x + "," + y + ":" + opacity); - ItemParticle.onDetached: mp.take(container);//respawns - function manage() - { - if(state == "selected"){ - // console.log("Taking " + index); - mp.freeze(container); - }else{ - // console.log("Returning " +index); - mp.unfreeze(container); - } - } - Image{ - id: img - anchors.centerIn: parent - smooth: true; source: "http://" + Script.getImagePath(content); cache: true - fillMode: Image.PreserveAspectFit; - width: parent.width-4; height: parent.height-4 - onStatusChanged: if(img.status == Image.Ready){ - container.opacity = 0; - loading.opacity = 0; - mp.take(container); - } - } - Text{ - anchors.bottom: parent.bottom - width: parent.width - horizontalAlignment: Text.AlignHCenter - elide: Text.ElideRight - text: title - color: "black" - } - MouseArea{ - anchors.fill: parent - onClicked: container.state == "selected" ? container.state = "" : container.state = "selected" - } - states: State{ - name: "selected" - ParentChange{ - target: container - parent: root - x: 0 - y: 0 - } - PropertyChanges{ - target: container - width: root.width - height: root.height - z: 101 - opacity: 1 - rotation: 0 - } - } - transitions: Transition{ - to: "selected" - reversible: true - SequentialAnimation{ - ScriptAction{script: container.manage();} - ParallelAnimation{ - ParentAnimation{NumberAnimation{ properties: "x,y" }}//Doesn't work, particles takes control of x,y instantly - NumberAnimation{ properties: "width, height, z, rotation" } - } - } - } - } - } -} |