Warning, /plasma/libplasma/examples/wallpapers/autumn/contents/ui/main.qml is written in an unsupported language. File is not indexed.

0001 /*
0002     SPDX-FileCopyrightText: 2013 Digia Plc and /or its subsidiary(-ies) <http://www.qt-project.org/legal>
0003 
0004     This file is part of the examples of the Qt Toolkit.
0005 
0006     SPDX-License-Identifier: BSD-3-Clause
0007 */
0008 
0009 import QtQuick
0010 import QtQuick.Particles
0011 
0012 Item {
0013     width: 360
0014     height: 600
0015 
0016     Image {
0017         source: "../images/backgroundLeaves.jpg"
0018         anchors.fill: parent
0019     }
0020     ParticleSystem {
0021         anchors.fill: parent
0022         Emitter {
0023             width: parent.width
0024             emitRate: 4
0025             lifeSpan: 14000
0026             size: 80
0027             velocity: PointDirection { y: wallpaper.configuration.Speed }
0028         }
0029         Wander {
0030             anchors.fill: parent
0031             anchors.bottomMargin: 100
0032             xVariance: 60
0033             pace: 60
0034         }
0035 
0036         //! [0]
0037         Affector {
0038             property real coefficient: 2.0
0039             property real velocity: 1.5
0040             width: parent.width
0041             height: parent.height - 100
0042             onAffectParticles: {
0043             /*  //Linear movement
0044                 if (particle.r == 0) {
0045                     particle.r = Math.random() > 0.5 ? -1 : 1;
0046                 } else if (particle.r == 1) {
0047                     particle.rotation += velocity * dt;
0048                     if (particle.rotation >= maxAngle)
0049                         particle.r = -1;
0050                 } else if (particle.r == -1) {
0051                     particle.rotation -= velocity * dt;
0052                     if (particle.rotation <= -1 * maxAngle)
0053                         particle.r = 1;
0054                 }
0055             */
0056                 //Wobbly movement
0057                 for (var i=0; i<particles.length; i++) {
0058                     var particle = particles[i];
0059                     if (particle.r == 0.0) {
0060                         particle.r = Math.random() + 0.01;
0061                     }
0062                     particle.rotation += velocity * particle.r * dt;
0063                     particle.r -= particle.rotation * coefficient;
0064                     if (particle.r == 0.0)
0065                         particle.r -= particle.rotation * 0.000001;
0066                     particle.update = 1;
0067                 }
0068             }
0069         }
0070         //! [0]
0071 
0072         //! [1]
0073         Affector {//Custom Friction, adds some 'randomness'
0074             x: -60
0075             width: parent.width + 120
0076             height: 100
0077             anchors.bottom: parent.bottom
0078             onAffectParticles: {
0079                 for (var i=0; i<particles.length; i++) {
0080                     var particle = particles[i];
0081                     var pseudoRand = (Math.floor(particle.t*1327) % 10) + 1;
0082                     var yslow = dt * pseudoRand * 0.5 + 1;
0083                     var xslow = dt * pseudoRand * 0.05 + 1;
0084                     if (particle.vy < 1)
0085                         particle.vy = 0;
0086                     else
0087                         particle.vy = (particle.vy / yslow);
0088                     if (particle.vx < 1)
0089                         particle.vx = 0;
0090                     else
0091                         particle.vx = (particle.vx / xslow);
0092                     particle.update = true;
0093                 }
0094             }
0095         }
0096         //! [1]
0097 
0098         ImageParticle {
0099             anchors.fill: parent
0100             id: particles
0101             sprites: [Sprite {
0102                     source: "../images/realLeaf1.png"
0103                     frameCount: 1
0104                     frameDuration: 1
0105                     to: {"a":1, "b":1, "c":1, "d":1}
0106                 }, Sprite {
0107                     name: "a"
0108                     source: "../images/realLeaf1.png"
0109                     frameCount: 1
0110                     frameDuration: 10000
0111                 },
0112                 Sprite {
0113                     name: "b"
0114                     source: "../images/realLeaf2.png"
0115                     frameCount: 1
0116                     frameDuration: 10000
0117                 },
0118                 Sprite {
0119                     name: "c"
0120                     source: "../images/realLeaf3.png"
0121                     frameCount: 1
0122                     frameDuration: 10000
0123                 },
0124                 Sprite {
0125                     name: "d"
0126                     source: "../images/realLeaf4.png"
0127                     frameCount: 1
0128                     frameDuration: 10000
0129                 }
0130             ]
0131 
0132             z:4
0133         }
0134     }
0135 }