diff options
Diffstat (limited to 'examples/declarative/particles/exampleslauncher.qml')
-rw-r--r-- | examples/declarative/particles/exampleslauncher.qml | 182 |
1 files changed, 182 insertions, 0 deletions
diff --git a/examples/declarative/particles/exampleslauncher.qml b/examples/declarative/particles/exampleslauncher.qml new file mode 100644 index 0000000000..c08123cf44 --- /dev/null +++ b/examples/declarative/particles/exampleslauncher.qml @@ -0,0 +1,182 @@ +/**************************************************************************** +** +** 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 "launcherContent/launcher.js" as Util +import "launcherContent" + +Rectangle{ + color: "black" + width: 360 + height: 600 + Shell{ + z: 1 + id: shell + anchors.fill: parent + } + property string emissionMode: "Falling" + onEmissionModeChanged: workaround.active = true + VisualDataModel{//TODO: Transitions between modes + id: vdm + model: [ + "../spaceexplorer/spaceexplorer.qml", + "../snow/snow.qml", + "../asteroid/asteroid.qml", + "../asteroid/blackhole.qml", + "../custom/blurparticles.qml", + "../modelparticles/bubbles.qml", + "../modelparticles/gridsplosion.qml", + "../modelparticles/package.qml", + "../modelparticles/stream.qml", + "../allsmiles/plain.qml", + "../allsmiles/smile.qml", + "../allsmiles/smilefactory.qml", + "../allsmiles/ultraparticles.qml", + "../allsmiles/spriteparticles.qml", + "../allsmiles/spritestateparticles.qml", + "../allsmiles/spritevariedparticles.qml", + "../trails/velocityfrommotion.qml", + "../trails/fireballs.qml", + "../trails/list.qml", + "../trails/portal.qml", + "../trails/rainbow.qml", + "../trails/dynamicemitters.qml", + "../trails/overburst.qml", + "../trails/layered.qml", + "../trails/shimmer.qml", + "../trails/turbulence.qml", + "../../../../demos/declarative/samegame/samegame.qml", + "../../../../demos/declarative/plasmapatrol/plasmapatrol.qml", + "../../../../demos/declarative/flickr/flickr.qml" + ] + delegate: Rectangle{ + color: "white" + width: 96 + height: 96 + Image{ + width: 72 + height: 72 + anchors.centerIn: parent + source: Util.iconFromPath(modelData) + } + Text{ + text: Util.nameFromPath(modelData) + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + font.pixelSize: 8 + } + MouseArea{ + anchors.fill: parent + onClicked: shell.setDemo(modelData) + } + } + } + GridView{ + anchors.fill: parent + anchors.bottomMargin: 128 + model: vdm + visible: emissionMode == "Grid" + opacity: visible?1:0 + Behavior on opacity{NumberAnimation{}} + } + ParticleSystem{ id: sys } + ModelParticle{ + system: sys + model: vdm + } + Kill{ + //TODO: File bug? + id: workaround + system: sys + active: false + onActiveChanged: timer.start() + Timer{ + id: timer + interval: 32 + running: false + repeat: false + onTriggered: workaround.active = false + } + } + Emitter{ + system: sys + emitting: emissionMode == "Falling" + width: parent.width + particlesPerSecond: 2 + particleDuration: 6000 + speed: PointDirection{y:100;} + } + Emitter{ + system: sys + emitting: emissionMode == "Bursting" + anchors.centerIn: parent + particlesPerSecond: 2 + particleDuration: 6000 + speed: AngledDirection{magnitude: 60; angleVariation: 360} + } + Emitter{ + system: sys + emitting: emissionMode == "Shimmering" + anchors.fill: parent + particlesPerSecond: 4 + particleDuration: 4000 + } + Row{ + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + Button{ + text:"Grid" + onClicked: emissionMode = "Grid"; + } + Button{ + text:"Fall" + onClicked: emissionMode = "Falling"; + } + Button{ + text:"Burst" + onClicked: emissionMode = "Bursting"; + } + Button{ + text:"Shimmer" + onClicked: emissionMode = "Shimmering"; + } + } +} |