aboutsummaryrefslogtreecommitdiffstats
path: root/examples/declarative/particles/modelparticles/stream.qml
diff options
context:
space:
mode:
Diffstat (limited to 'examples/declarative/particles/modelparticles/stream.qml')
-rw-r--r--examples/declarative/particles/modelparticles/stream.qml276
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" }
- }
- }
- }
- }
- }
-}