diff options
author | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-06-09 16:22:45 +1000 |
---|---|---|
committer | Aaron Kennedy <aaron.kennedy@nokia.com> | 2011-06-09 16:22:45 +1000 |
commit | 250763ffb5cef2173b80b0e67266c937850ff516 (patch) | |
tree | 1de5e73b20a714c2cd32565873e6f3712a699c0d | |
parent | 8bb487e60899382f0890fd675eb272d5cc562882 (diff) | |
parent | 2d16155bb8fef642ce6bb5cab7cb26b1289a1e6b (diff) |
Merge branch 'qtquick2' into v8
Conflicts:
src/declarative/qml/qml.pri
388 files changed, 8379 insertions, 7682 deletions
diff --git a/demos/declarative/flickr/content/ImageDetails.qml b/demos/declarative/flickr/content/ImageDetails.qml index 62c3397f08..74346466e3 100644 --- a/demos/declarative/flickr/content/ImageDetails.qml +++ b/demos/declarative/flickr/content/ImageDetails.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Flipable { id: container @@ -57,6 +57,8 @@ Flipable { property int rating: 2 property variant prevScale: 1.0 + property int flipDuration: 1600 + signal closed transform: Rotation { @@ -137,95 +139,173 @@ Flipable { slider.value = prevScale; } if (inBackState && bigImage.status == Image.Ready) - particleBox.imageInAnim(); + effectBox.imageInAnim(); } property bool inBackState: false onInBackStateChanged:{ if(inBackState && bigImage.status == Image.Ready) - particleBox.imageInAnim(); + effectBox.imageInAnim(); else if (!inBackState && bigImage.status == Image.Ready) - particleBox.imageOutAnim(); + effectBox.imageOutAnim(); } } + ShaderEffectSource{ + id: pictureSource + sourceItem: bigImage + smooth: true + //Workaround: Doesn't work below lines + width: bigImage.width + height: bigImage.width + visible: false + } + Turbulence{//only fill visible rect + id: turbulence + system: imageSystem + anchors.fill: parent + frequency: 100 + strength: 250 + active: false + } Item{ - id: particleBox + id: effectBox width: bigImage.width * bigImage.scale height: bigImage.height * bigImage.scale anchors.centerIn: parent - function imageInAnim(){ - cp.visible = true; - pixAffect.onceOff = false; bigImage.visible = false; + noiseIn.visible = true; endEffectTimer.start(); - pixelEmitter.pulse(1); } function imageOutAnim(){ - cp.visible = true; - pixAffect.onceOff = true; bigImage.visible = false; + noiseIn.visible = false; turbulence.active = true; endEffectTimer.start(); pixelEmitter.burst(2048); } Timer{ id: endEffectTimer - interval: 1000 + interval: flipDuration repeat: false running: false onTriggered:{ - bigImage.visible = true; turbulence.active = false; - cp.visible = false; + noiseIn.visible = false; + bigImage.visible = true; } } - ParticleSystem{ - id: imageSystem - } - ColoredParticle{ - id: cp - system: imageSystem - color: "gray" - alpha: 1 - image: "images/squareParticle.png" - colorVariation: 0 - } - Picture{ - id: pixAffect - system: imageSystem + ShaderEffectItem{ + id: noiseIn anchors.fill: parent - image: container.photoUrl; - onceOff: true + property real t: 0 + visible: false + onVisibleChanged: tAnim.start() + NumberAnimation{ + id: tAnim + target: noiseIn + property: "t" + from: 0.0 + to: 1.0 + duration: flipDuration + } + property variant source: pictureSource + property variant noise: ShaderEffectSource{ + sourceItem:Image{ + source: "images/noise.png" + } + hideSource: true + smooth: false + } + fragmentShader:" + uniform sampler2D noise; + uniform sampler2D source; + uniform highp float t; + uniform lowp float qt_Opacity; + varying highp vec2 qt_TexCoord0; + void main(){ + //Want to use noise2, but it always returns (0,0)? + if(texture2D(noise, qt_TexCoord0).w <= t) + gl_FragColor = texture2D(source, qt_TexCoord0) * qt_Opacity; + else + gl_FragColor = vec4(0.,0.,0.,0.); + } + " } - Turbulence{ - id: turbulence - system: imageSystem - anchors.fill: parent - frequency: 100 - strength: 250 - active: false + ParticleSystem{ + id: imageSystem } - TrailEmitter{ - id: pixelEmitter0 + Emitter{ + id: pixelEmitter system: imageSystem - height: parent.height - particleSize: 4 - particleDuration: 1000 - particlesPerSecond: 4096 - speed: PointVector{x: 360; xVariation: 8; yVariation: 4} + //anchors.fill: parent + width: Math.min(bigImage.width * bigImage.scale, flickable.width); + height: Math.min(bigImage.height * bigImage.scale, flickable.height); + anchors.centerIn: parent + size: 4 + lifeSpan: flipDuration + emitRate: 2048 emitting: false } - TrailEmitter{ - id: pixelEmitter + CustomParticle{ + id: blowOut system: imageSystem - anchors.fill: parent - particleSize: 4 - particleDuration: 1000 - particlesPerSecond: 2048 - emitting: false + property real maxWidth: effectBox.width + property real maxHeight: effectBox.height + vertexShader:" + attribute highp vec2 vPos; + attribute highp vec2 vTex; + attribute highp vec4 vData; // x = time, y = lifeSpan, z = size, w = endSize + attribute highp vec4 vVec; // x,y = constant speed, z,w = acceleration + attribute highp float r; + + uniform highp float maxWidth; + uniform highp float maxHeight; + + uniform highp mat4 qt_ModelViewProjectionMatrix; + uniform highp float timestamp; + uniform lowp float qt_Opacity; + + varying highp vec2 fTex2; + varying lowp float fFade; + + void main() { + fTex2 = vec2(vPos.x / maxWidth, vPos.y / maxHeight); + highp float size = vData.z; + highp float endSize = vData.w; + + highp float t = (timestamp - vData.x) / vData.y; + + highp float currentSize = mix(size, endSize, t * t); + + if (t < 0. || t > 1.) + currentSize = 0.; + + highp vec2 pos = vPos + - currentSize / 2. + currentSize * vTex // adjust size + + vVec.xy * t * vData.y // apply speed vector.. + + 0.5 * vVec.zw * pow(t * vData.y, 2.); + + gl_Position = qt_ModelViewProjectionMatrix * vec4(pos.x, pos.y, 0, 1); + + highp float fadeIn = min(t * 10., 1.); + highp float fadeOut = 1. - max(0., min((t - 0.75) * 4., 1.)); + + fFade = 1.0;//fadeIn * fadeOut * qt_Opacity; + } + " + property variant pictureTexture: pictureSource + fragmentShader: " + uniform sampler2D pictureTexture; + varying highp vec2 fTex2; + varying highp float fFade; + void main() { + gl_FragColor = texture2D(pictureTexture, fTex2) * fFade; + }" } + + } } } @@ -268,7 +348,7 @@ Flipable { transitions: Transition { SequentialAnimation { PropertyAction { target: bigImage; property: "smooth"; value: false } - NumberAnimation { easing.type: Easing.InOutQuad; properties: "angle"; duration: 1000 } + NumberAnimation { easing.type: Easing.InOutQuad; properties: "angle"; duration: flipDuration } PropertyAction { target: bigImage; property: "smooth"; value: !flickable.movingVertically } } } diff --git a/demos/declarative/flickr/content/Progress.qml b/demos/declarative/flickr/content/Progress.qml index d403feebd1..73a91a4aa9 100644 --- a/demos/declarative/flickr/content/Progress.qml +++ b/demos/declarative/flickr/content/Progress.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item{ id: container @@ -59,24 +59,24 @@ Item{ running: container.visible id: barSys } - ColoredParticle{ + ImageParticle{ color: "lightsteelblue" alpha: 0.1 colorVariation: 0.05 - image: "images/particle.png" + source: "images/particle.png" system: barSys } - TrailEmitter{ + Emitter{ y: 2; height: parent.height-4; x: 2; width: Math.max(parent.width * progress - 4, 0); - speed: AngleVector{ angleVariation: 180; magnitudeVariation: 12 } + speed: AngledDirection{ angleVariation: 180; magnitudeVariation: 12 } system: barSys - particlesPerSecond: width; - particleDuration: 1000 - particleSize: 20 - particleSizeVariation: 4 - particleEndSize: 12 - maxParticles: parent.width; + emitRate: width; + lifeSpan: 1000 + size: 20 + sizeVariation: 4 + endSize: 12 + emitCap: parent.width; } Text { diff --git a/demos/declarative/flickr/content/StreamView.qml b/demos/declarative/flickr/content/StreamView.qml index 26a3f35e63..d7b608a391 100644 --- a/demos/declarative/flickr/content/StreamView.qml +++ b/demos/declarative/flickr/content/StreamView.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item{ id: container @@ -52,7 +52,7 @@ Item{ anchors.fill:parent overwrite: false } - DataParticle{ + ModelParticle{ id: mp fade: false system: sys @@ -66,38 +66,38 @@ Item{ } } property real emitterSpacing: parent.width/3 - TrailEmitter{ + Emitter{ system: sys width: emitterSpacing - 64 x: emitterSpacing*0 + 32 y: -128 height: 32 - speed: PointVector{ y: (container.height + 128)/12 } - particlesPerSecond: 0.4 - particleDuration: 1000000//eventually -1 should mean a million seconds for neatness - maxParticles: 15 + speed: PointDirection{ y: (container.height + 128)/12 } + emitRate: 0.4 + lifeSpan: 1000000//eventually -1 should mean a million seconds for neatness + emitCap: 15 } - TrailEmitter{ + Emitter{ system: sys width: emitterSpacing - 64 x: emitterSpacing*1 + 32 y: -128 height: 32 - speed: PointVector{ y: (container.height + 128)/12 } - particlesPerSecond: 0.4 - particleDuration: 1000000//eventually -1 should mean a million seconds for neatness - maxParticles: 15 + speed: PointDirection{ y: (container.height + 128)/12 } + emitRate: 0.4 + lifeSpan: 1000000//eventually -1 should mean a million seconds for neatness + emitCap: 15 } - TrailEmitter{ + Emitter{ system: sys width: emitterSpacing - 64 x: emitterSpacing*2 + 32 y: -128 height: 32 - speed: PointVector{ y: (container.height + 128)/12 } - particlesPerSecond: 0.4 - particleDuration: 1000000//eventually -1 should mean a million seconds for neatness - maxParticles: 15 + speed: PointDirection{ y: (container.height + 128)/12 } + emitRate: 0.4 + lifeSpan: 1000000//eventually -1 should mean a million seconds for neatness + emitCap: 15 } Kill{ system: sys diff --git a/demos/declarative/flickr/content/UnifiedDelegate.qml b/demos/declarative/flickr/content/UnifiedDelegate.qml index aaf4ccbd7a..f4c926763f 100644 --- a/demos/declarative/flickr/content/UnifiedDelegate.qml +++ b/demos/declarative/flickr/content/UnifiedDelegate.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Package { function photoClicked() { diff --git a/demos/declarative/flickr/content/images/noise.png b/demos/declarative/flickr/content/images/noise.png Binary files differnew file mode 100644 index 0000000000..c5a5ba0053 --- /dev/null +++ b/demos/declarative/flickr/content/images/noise.png diff --git a/demos/declarative/flickr/flickr.qml b/demos/declarative/flickr/flickr.qml index 40e1bae683..a222b41341 100644 --- a/demos/declarative/flickr/flickr.qml +++ b/demos/declarative/flickr/flickr.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 import "content" Item { @@ -56,21 +56,21 @@ Item { id: bgParticles startTime: 16000 } - ColoredParticle { + ImageParticle { particles: ["trail"] - image: "content/images/particle.png" + source: "content/images/particle.png" color: "#1A1A6F" alpha: 0.1 colorVariation: 0.01 blueVariation: 0.8 system: bgParticles } - TrailEmitter { + Emitter { particle: "drops" width: parent.width - particlesPerSecond: 0.5 - particleDuration: 20000 - speed: PointVector{ + emitRate: 0.5 + lifeSpan: 20000 + speed: PointDirection{ y: {screen.height/18} } system: bgParticles @@ -78,16 +78,16 @@ Item { FollowEmitter { follow: "drops" particle: "trail" - particlesPerParticlePerSecond: 18 - particleSize: 32 - particleEndSize: 0 - particleSizeVariation: 4 - particleDuration: 1200 + emitRatePerParticle: 18 + size: 32 + endSize: 0 + sizeVariation: 4 + lifeSpan: 1200 system: bgParticles anchors.fill: parent - emissionWidth: 16 - emissionHeight: 16 - emissionShape: Ellipse{} + emitWidth: 16 + emitHeight: 16 + emitShape: EllipseShape{} } VisualDataModel{ diff --git a/demos/declarative/plasmapatrol/content/BlasterHardpoint.qml b/demos/declarative/plasmapatrol/content/BlasterHardpoint.qml index 8d36cdfb13..1242a85149 100644 --- a/demos/declarative/plasmapatrol/content/BlasterHardpoint.qml +++ b/demos/declarative/plasmapatrol/content/BlasterHardpoint.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item { id: container @@ -53,20 +53,20 @@ Item { width: 24 height: 24 - TrailEmitter{ + Emitter{ id: visualization particle: "blaster" system: container.system emitting: show anchors.fill: parent - shape: Ellipse{} - speed: DirectedVector{ targetX: width/2; targetY: width/2; magnitude: -1; proportionalMagnitude: true} - particleDuration: 1000 - particlesPerSecond: 64 + shape: EllipseShape{} + speed: TargetedDirection{ targetX: width/2; targetY: width/2; magnitude: -1; proportionalMagnitude: true} + lifeSpan: 1000 + emitRate: 64 - particleSize: 24 - particleSizeVariation: 24 - particleEndSize: 0 + size: 24 + sizeVariation: 24 + endSize: 0 } property int blastsLeft: 0 @@ -112,20 +112,20 @@ Item { rofTimer.repeat = false; } } - TrailEmitter{ + Emitter{ id: emitter particle: "blaster" emitting: false system: container.system anchors.centerIn: parent - particleDuration: 1000 - particlesPerSecond: 16 - maxParticles: blasts - particleSize: 24 - particleEndSize:16 - particleSizeVariation: 8 - speed: DirectedVector{ + lifeSpan: 1000 + emitRate: 16 + emitCap: blasts + size: 24 + endSize:16 + sizeVariation: 8 + speed: TargetedDirection{ id: blastVector targetX: target.x; targetY: target.y; magnitude: 1.1; proportionalMagnitude: true } diff --git a/demos/declarative/plasmapatrol/content/CannonHardpoint.qml b/demos/declarative/plasmapatrol/content/CannonHardpoint.qml index d9a307cc64..b7572ef5c4 100644 --- a/demos/declarative/plasmapatrol/content/CannonHardpoint.qml +++ b/demos/declarative/plasmapatrol/content/CannonHardpoint.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item { id: container @@ -49,17 +49,17 @@ Item { width: 24 height: 24 - TrailEmitter{ + Emitter{ id: visualization particle: "cannon" emitting: container.show system: container.system anchors.centerIn: parent - particleDuration: 2000 - particlesPerSecond: 1 + lifeSpan: 2000 + emitRate: 1 - particleSize: 4 - particleEndSize: 0 + size: 4 + endSize: 0 } function fireAt(targetArg, hardpoint){ @@ -78,18 +78,18 @@ Item { } emitter.burst(1); } - TrailEmitter{ + Emitter{ id: emitter particle: "cannon" emitting: false system: container.system anchors.centerIn: parent - particleDuration: 1000 - particlesPerSecond: 1 - particleSize: 8 - particleEndSize: 4 - speed: DirectedVector{ + lifeSpan: 1000 + emitRate: 1 + size: 8 + endSize: 4 + speed: TargetedDirection{ id: blastVector targetX: target.x; targetY: target.y; magnitude: 1.1; proportionalMagnitude: true } diff --git a/demos/declarative/plasmapatrol/content/ChoiceBox.qml b/demos/declarative/plasmapatrol/content/ChoiceBox.qml index 6bdc4288ee..1e64a76225 100644 --- a/demos/declarative/plasmapatrol/content/ChoiceBox.qml +++ b/demos/declarative/plasmapatrol/content/ChoiceBox.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item{ id: container diff --git a/demos/declarative/plasmapatrol/content/Cruiser.qml b/demos/declarative/plasmapatrol/content/Cruiser.qml index 8b8073328e..a844fa1bb8 100644 --- a/demos/declarative/plasmapatrol/content/Cruiser.qml +++ b/demos/declarative/plasmapatrol/content/Cruiser.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item { id: container @@ -54,7 +54,7 @@ Item { property int gunType: 0 width: 128 height: 128 - TrailEmitter{ + Emitter{ //TODO: Cooler would be an 'orbiting' affector //TODO: On the subject, opacity and size should be grouped type 'overLife' if we can cram that in the particles system: container.system @@ -62,30 +62,30 @@ Item { anchors.centerIn: parent width: 64 height: 64 - shape: Ellipse{} + shape: EllipseShape{} - particlesPerSecond: hp > 0 ? hp * 1 + 20 : 0 - particleDuration: 2400 - maxParticles: (maxHP * 1 + 20)*2.4 + emitRate: hp > 0 ? hp * 1 + 20 : 0 + lifeSpan: 2400 + emitCap: (maxHP * 1 + 20)*2.4 - particleSize: 48 - particleSizeVariation: 16 - particleEndSize: 16 + size: 48 + sizeVariation: 16 + endSize: 16 - speed: AngleVector{angleVariation:360; magnitudeVariation: 32} + speed: AngledDirection{angleVariation:360; magnitudeVariation: 32} } - TrailEmitter{ + Emitter{ system: container.system particle: "cruiserArmor" anchors.fill: parent - shape: Ellipse{ fill: false } + shape: EllipseShape{ fill: false } emitting: hp>0 - particlesPerSecond: 16 - particleDuration: 2000 + emitRate: 16 + lifeSpan: 2000 - particleSize: 48 - particleSizeVariation: 24 + size: 48 + sizeVariation: 24 SpriteGoal{ id: destructor diff --git a/demos/declarative/plasmapatrol/content/Frigate.qml b/demos/declarative/plasmapatrol/content/Frigate.qml index 54f629268f..d31405250e 100644 --- a/demos/declarative/plasmapatrol/content/Frigate.qml +++ b/demos/declarative/plasmapatrol/content/Frigate.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item { id: container @@ -54,29 +54,29 @@ Item { property int gunType: 0 width: 128 height: 128 - TrailEmitter{ + Emitter{ system: container.system particle: "frigateShield" anchors.centerIn: parent - particleSize: 92 - particlesPerSecond: 1 - particleDuration: 4800 + size: 92 + emitRate: 1 + lifeSpan: 4800 emitting: hp > 0 } - TrailEmitter{ + Emitter{ system: container.system particle: container.shipParticle anchors.centerIn: parent width: 64 height: 16 - shape: Ellipse{} + shape: EllipseShape{} - particleSize: 16 - particleSizeVariation: 8 - particleEndSize: 8 - particlesPerSecond: hp > 0 ? hp * 1 + 20 : 0 - particleDuration: 1200 - maxParticles: (maxHP * 1 + 20)*2 + size: 16 + sizeVariation: 8 + endSize: 8 + emitRate: hp > 0 ? hp * 1 + 20 : 0 + lifeSpan: 1200 + emitCap: (maxHP * 1 + 20)*2 } Timer{ id: fireControl diff --git a/demos/declarative/plasmapatrol/content/Hardpoint.qml b/demos/declarative/plasmapatrol/content/Hardpoint.qml index 184c750a79..3d4edb38f8 100644 --- a/demos/declarative/plasmapatrol/content/Hardpoint.qml +++ b/demos/declarative/plasmapatrol/content/Hardpoint.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item { id: container diff --git a/demos/declarative/plasmapatrol/content/HelpScreens.qml b/demos/declarative/plasmapatrol/content/HelpScreens.qml index 8896aeee4a..7e4fb9f1c9 100644 --- a/demos/declarative/plasmapatrol/content/HelpScreens.qml +++ b/demos/declarative/plasmapatrol/content/HelpScreens.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 SequentialLoader { id: hLdr diff --git a/demos/declarative/plasmapatrol/content/LaserHardpoint.qml b/demos/declarative/plasmapatrol/content/LaserHardpoint.qml index d6d470a15b..e99424856c 100644 --- a/demos/declarative/plasmapatrol/content/LaserHardpoint.qml +++ b/demos/declarative/plasmapatrol/content/LaserHardpoint.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item { id: container @@ -49,20 +49,20 @@ Item { width: 24 height: 24 - TrailEmitter{ + Emitter{ id: visualization particle: "laser" system: container.system anchors.fill: parent emitting: container.show - shape: Ellipse{} - speed: DirectedVector{ targetX: width/2; targetY: width/2; magnitude: -1; proportionalMagnitude: true } - particleDuration: 1000 - particlesPerSecond: 64 + shape: EllipseShape{} + speed: TargetedDirection{ targetX: width/2; targetY: width/2; magnitude: -1; proportionalMagnitude: true } + lifeSpan: 1000 + emitRate: 64 - particleSize: 24 - particleSizeVariation: 8 - particleEndSize: 8 + size: 24 + sizeVariation: 8 + endSize: 8 } function fireAt(targetArg, hardpoint){ @@ -84,7 +84,7 @@ Item { emitter.pulse(0.10); // console.log("Fire box: " + Math.min(container.width/2, target.x) + "," + Math.min(container.height/2, target.y) + " " + (Math.max(container.width/2, target.x) - Math.min(container.width/2, target.x)) + "," + (Math.max(container.height/2, target.y) - Math.min(container.height/2, target.y))); } - TrailEmitter{ + Emitter{ id: emitter particle: "laser" emitting: false @@ -93,16 +93,16 @@ Item { width: Math.max(container.width/2, target.x) - x; y: Math.min(container.height/2, target.y); height: Math.max(container.height/2, target.y) - y; - shape: Line{ + shape: LineShape{ mirrored: (emitter.y < 0 || emitter.x < 0) && !(emitter.y < 0 && emitter.x < 0 )//I just want XOR } - particleDuration: 1000 - particlesPerSecond: 8000 - maxParticles: 800 - particleSize: 16 - particleEndSize: 0 + lifeSpan: 1000 + emitRate: 8000 + emitCap: 800 + size: 16 + endSize: 0 - speed: PointVector{xVariation: 4; yVariation: 4} + speed: PointDirection{xVariation: 4; yVariation: 4} } } diff --git a/demos/declarative/plasmapatrol/content/PlasmaPatrolParticles.qml b/demos/declarative/plasmapatrol/content/PlasmaPatrolParticles.qml index 7a6fcb96d0..b65686e59e 100644 --- a/demos/declarative/plasmapatrol/content/PlasmaPatrolParticles.qml +++ b/demos/declarative/plasmapatrol/content/PlasmaPatrolParticles.qml @@ -39,87 +39,87 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item{ property ParticleSystem sys - ColoredParticle{ + ImageParticle{ system: sys particles: ["default"] - image: "pics/blur-circle3.png" + source: "pics/blur-circle3.png" color: "#003A3A3A" colorVariation: 0.1 z: 0 } - ColoredParticle{ + ImageParticle{ system: sys particles: ["redTeam"] - image: "pics/blur-circle3.png" + source: "pics/blur-circle3.png" color: "#0028060A" colorVariation: 0.1 z: 0 } - ColoredParticle{ + ImageParticle{ system: sys particles: ["greenTeam"] - image: "pics/blur-circle3.png" + source: "pics/blur-circle3.png" color: "#0006280A" colorVariation: 0.1 z: 0 } - ColoredParticle{ + ImageParticle{ system: sys particles: ["blaster"] - image: "pics/star2.png" + source: "pics/star2.png" //color: "#0F282406" color: "#0F484416" colorVariation: 0.2 z: 2 } - ColoredParticle{ + ImageParticle{ system: sys particles: ["laser"] - image: "pics/star3.png" + source: "pics/star3.png" //color: "#00123F68" color: "#00428FF8" colorVariation: 0.2 z: 2 } - ColoredParticle{ + ImageParticle{ system: sys particles: ["cannon"] - image: "pics/particle.png" + source: "pics/particle.png" color: "#80FFAAFF" colorVariation: 0.1 z: 2 } - ColoredParticle{ + ImageParticle{ system: sys particles: ["cannonCore"] - image: "pics/particle.png" + source: "pics/particle.png" color: "#00666666" colorVariation: 0.8 z: 1 } - ColoredParticle{ + ImageParticle{ system: sys particles: ["cannonWake"] - image: "pics/star.png" + source: "pics/star.png" color: "#00CCCCCC" colorVariation: 0.2 z: 1 } - ColoredParticle{ + ImageParticle{ system: sys particles: ["frigateShield"] - image: "pics/blur-circle2.png" + source: "pics/blur-circle2.png" color: "#00000000" colorVariation: 0.05 blueVariation: 0.5 greenVariation: 0.1 z: 3 } - SpriteParticle{ + ImageParticle{ system: sys particles: ["cruiserArmor"] z: 1 @@ -148,12 +148,12 @@ Item{ system: sys particle: "cannonWake" follow: "cannon" - particlesPerParticlePerSecond: 64 - particleDuration: 600 - speed: AngleVector{ angleVariation: 360; magnitude: 48} - particleSize: 16 - particleEndSize: 8 - particleSizeVariation: 2 + emitRatePerParticle: 64 + lifeSpan: 600 + speed: AngledDirection{ angleVariation: 360; magnitude: 48} + size: 16 + endSize: 8 + sizeVariation: 2 emitting: true width: 1000//XXX: Terrible hack height: 1000 @@ -162,10 +162,10 @@ Item{ system: sys particle: "cannonCore" follow: "cannon" - particlesPerParticlePerSecond: 256 - particleDuration: 128 - particleSize: 24 - particleEndSize: 8 + emitRatePerParticle: 256 + lifeSpan: 128 + size: 24 + endSize: 8 emitting: true width: 1000//XXX: Terrible hack height: 1000 diff --git a/demos/declarative/plasmapatrol/content/Ship.qml b/demos/declarative/plasmapatrol/content/Ship.qml index 0ccea94221..ce8fb6073f 100644 --- a/demos/declarative/plasmapatrol/content/Ship.qml +++ b/demos/declarative/plasmapatrol/content/Ship.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item { id: me diff --git a/demos/declarative/plasmapatrol/content/Sloop.qml b/demos/declarative/plasmapatrol/content/Sloop.qml index 1b9bce7333..1a6f3a9620 100644 --- a/demos/declarative/plasmapatrol/content/Sloop.qml +++ b/demos/declarative/plasmapatrol/content/Sloop.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item { id: container @@ -55,23 +55,23 @@ Item { property int gunType: 0 width: 128 height: 128 - TrailEmitter{ + Emitter{ id: emitter //TODO: Cooler would be an 'orbiting' affector //TODO: On the subject, opacity and size should be grouped type 'overLife' if we can cram that in the particles system: container.system particle: container.shipParticle - shape: Ellipse{} + shape: EllipseShape{} - particlesPerSecond: hp > 0 ? hp + 20 : 0 - particleDuration: blinkInterval - maxParticles: (maxHP + 20) + emitRate: hp > 0 ? hp + 20 : 0 + lifeSpan: blinkInterval + emitCap: (maxHP + 20) - acceleration: AngleVector{angleVariation: 360; magnitude: 8} + acceleration: AngledDirection{angleVariation: 360; magnitude: 8} - particleSize: 24 - particleEndSize: 4 - particleSizeVariation: 8 + size: 24 + endSize: 4 + sizeVariation: 8 width: 16 height: 16 x: 64 diff --git a/demos/declarative/plasmapatrol/plasmapatrol.qml b/demos/declarative/plasmapatrol/plasmapatrol.qml index 3a7b217618..dfc36ded01 100644 --- a/demos/declarative/plasmapatrol/plasmapatrol.qml +++ b/demos/declarative/plasmapatrol/plasmapatrol.qml @@ -39,7 +39,7 @@ ** ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 import "content" Rectangle { @@ -93,18 +93,18 @@ Rectangle { id: title width: root.width height: 240 - TrailEmitter{ + Emitter{ anchors.fill: parent system: particles emitting: true particle: "default" - particlesPerSecond: 1200 - particleDuration: 1200 - shape: Mask{source:"content/pics/TitleText.png"} - particleSize: 16 - particleEndSize: 0 - particleSizeVariation: 8 - speed: AngleVector{angleVariation:360; magnitudeVariation: 6} + emitRate: 1200 + lifeSpan: 1200 + shape: MaskShape{source:"content/pics/TitleText.png"} + size: 16 + endSize: 0 + sizeVariation: 8 + speed: AngledDirection{angleVariation:360; magnitudeVariation: 6} } } Button{ diff --git a/demos/declarative/samegame/SamegameCore/BoomBlock.qml b/demos/declarative/samegame/SamegameCore/BoomBlock.qml index 67e67b893a..2d8fdba2c9 100644 --- a/demos/declarative/samegame/SamegameCore/BoomBlock.qml +++ b/demos/declarative/samegame/SamegameCore/BoomBlock.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Item { id: block @@ -71,7 +71,7 @@ Item { Behavior on opacity { NumberAnimation { duration: 200 } } anchors.fill: parent } - TrailEmitter { + Emitter { id: particles system: particleSystem particle: { @@ -85,14 +85,14 @@ Item { } anchors.fill: parent - speed: DirectedVector{targetX: block.width/2; targetY: block.height/2; magnitude: -60; magnitudeVariation: 60} - shape: Ellipse{fill:true} + speed: TargetedDirection{targetX: block.width/2; targetY: block.height/2; magnitude: -60; magnitudeVariation: 60} + shape: EllipseShape{fill:true} emitting: false; - particleDuration: 700; particleDurationVariation: 100 - particlesPerSecond: 1000 - maxParticles: 100 //only fires 0.1s bursts (still 2x old number, ColoredParticle wants less than 16000 max though) - particleSize: 28 - particleEndSize: 14 + lifeSpan: 700; lifeSpanVariation: 100 + emitRate: 1000 + emitCap: 100 //only fires 0.1s bursts (still 2x old number, ImageParticle wants less than 16000 max though) + size: 28 + endSize: 14 } states: [ diff --git a/demos/declarative/samegame/samegame.qml b/demos/declarative/samegame/samegame.qml index 202eb40401..0daf72de58 100644 --- a/demos/declarative/samegame/samegame.qml +++ b/demos/declarative/samegame/samegame.qml @@ -40,7 +40,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 import "SamegameCore" import "SamegameCore/samegame.js" as Logic @@ -77,27 +77,27 @@ Rectangle { } Item{ ParticleSystem{ id: particleSystem; } - ColoredParticle { + ImageParticle { system: particleSystem particles: ["red"] color: Qt.darker("red");//Actually want desaturated... - image: "SamegameCore/pics/particle.png" + source: "SamegameCore/pics/particle.png" colorVariation: 0.4 alpha: 0.1 } - ColoredParticle { + ImageParticle { system: particleSystem particles: ["green"] color: Qt.darker("green");//Actually want desaturated... - image: "SamegameCore/pics/particle.png" + source: "SamegameCore/pics/particle.png" colorVariation: 0.4 alpha: 0.1 } - ColoredParticle { + ImageParticle { system: particleSystem particles: ["blue"] color: Qt.darker("blue");//Actually want desaturated... - image: "SamegameCore/pics/particle.png" + source: "SamegameCore/pics/particle.png" colorVariation: 0.4 alpha: 0.1 } diff --git a/doc/src/declarative/whatsnew.qdoc b/doc/src/declarative/whatsnew.qdoc index 3b91cf170e..e20efa7392 100644 --- a/doc/src/declarative/whatsnew.qdoc +++ b/doc/src/declarative/whatsnew.qdoc @@ -33,10 +33,15 @@ QtQuick 2.0 is a major update. -MouseArea now propagates clicked, doubleClicked and pressAndHold differently. +MouseArea now propagates clicked, doubleClicked and pressAndHold differently to pressed. +These will now be propagated to the highest-stacking-order enabled MouseArea which has a handler for them. +You can still ignore these events in the handler to let them pass through. -The Binding element now restores any previously set binding when its \e when -clause becomes false. +The Binding element can now be used as a value source, and will also restore any previously +set binding when its \e when clause becomes false. + +QDeclarativeExpression can now be directly (and more efficiently) constructed from a +QDeclarativeScriptString. \section1 Qt 4.7.4 includes QtQuick 1.1 diff --git a/examples/declarative/animation/basics/color-animation/main.cpp b/examples/declarative/animation/basics/color-animation/main.cpp index 1bf8fc2e08..1a5dcd5e91 100644 --- a/examples/declarative/animation/basics/color-animation/main.cpp +++ b/examples/declarative/animation/basics/color-animation/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/animation/basics/color-animation/qml/basics.qmlproject b/examples/declarative/animation/basics/color-animation/qml/basics.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/animation/basics/color-animation/qml/basics.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/animation/basics/color-animation/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/animation/basics/color-animation/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/animation/basics/color-animation/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/animation/basics/color-animation/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/animation/basics/color-animation/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/animation/basics/color-animation/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/animation/basics/color-animation/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/animation/basics/color-animation/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/animation/basics/property-animation/main.cpp b/examples/declarative/animation/basics/property-animation/main.cpp index 6ae8859d93..2a84ef09ac 100644 --- a/examples/declarative/animation/basics/property-animation/main.cpp +++ b/examples/declarative/animation/basics/property-animation/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/animation/basics/property-animation/qml/basics.qmlproject b/examples/declarative/animation/basics/property-animation/qml/basics.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/animation/basics/property-animation/qml/basics.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/animation/basics/property-animation/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/animation/basics/property-animation/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/animation/basics/property-animation/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/animation/basics/property-animation/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/animation/basics/property-animation/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/animation/basics/property-animation/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/animation/basics/property-animation/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/animation/basics/property-animation/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/animation/behaviors/behavior-example/main.cpp b/examples/declarative/animation/behaviors/behavior-example/main.cpp index 579707738f..601371cf3d 100644 --- a/examples/declarative/animation/behaviors/behavior-example/main.cpp +++ b/examples/declarative/animation/behaviors/behavior-example/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/animation/behaviors/behavior-example/qml/behaviors.qmlproject b/examples/declarative/animation/behaviors/behavior-example/qml/behaviors.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/animation/behaviors/behavior-example/qml/behaviors.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/animation/behaviors/behavior-example/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/animation/behaviors/behavior-example/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/animation/behaviors/behavior-example/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/animation/behaviors/behavior-example/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/animation/behaviors/behavior-example/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/animation/behaviors/behavior-example/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/animation/behaviors/behavior-example/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/animation/behaviors/behavior-example/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/animation/easing/main.cpp b/examples/declarative/animation/easing/main.cpp index 084c83a40b..c0151a1002 100644 --- a/examples/declarative/animation/easing/main.cpp +++ b/examples/declarative/animation/easing/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/animation/easing/qml/easing.qmlproject b/examples/declarative/animation/easing/qml/easing.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/animation/easing/qml/easing.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/animation/easing/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/animation/easing/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/animation/easing/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/animation/easing/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/animation/easing/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/animation/easing/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/animation/easing/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/animation/easing/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/animation/states/main.cpp b/examples/declarative/animation/states/main.cpp index fec46627f9..0f4161f0cc 100644 --- a/examples/declarative/animation/states/main.cpp +++ b/examples/declarative/animation/states/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/animation/states/qml/states.qmlproject b/examples/declarative/animation/states/qml/states.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/animation/states/qml/states.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/animation/states/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/animation/states/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/animation/states/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/animation/states/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/animation/states/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/animation/states/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/animation/states/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/animation/states/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml index e25b420025..f8f7b0ee55 100644 --- a/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml +++ b/examples/declarative/cppextensions/imageprovider/imageprovider-example.qml @@ -42,8 +42,8 @@ import "ImageProviderCore" // import the plugin that registers the color image p //![0] Column { - Image { source: "image://colors/yellow" } - Image { source: "image://colors/red" } + Image { source: "source://colors/yellow" } + Image { source: "source://colors/red" } } //![0] diff --git a/examples/declarative/cppextensions/imageprovider/imageprovider.pro b/examples/declarative/cppextensions/imageprovider/imageprovider.pro index 5786af6de0..eaa48cd901 100644 --- a/examples/declarative/cppextensions/imageprovider/imageprovider.pro +++ b/examples/declarative/cppextensions/imageprovider/imageprovider.pro @@ -26,4 +26,4 @@ symbian:{ importFiles.path = ImageProviderCore DEPLOYMENT += importFiles } -maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri) +maemo5: CONFIG += qt_example diff --git a/examples/declarative/cppextensions/plugins/plugins.pro b/examples/declarative/cppextensions/plugins/plugins.pro index c5c68e30ec..03f7294131 100644 --- a/examples/declarative/cppextensions/plugins/plugins.pro +++ b/examples/declarative/cppextensions/plugins/plugins.pro @@ -27,4 +27,4 @@ symbian { CONFIG += qt_example TARGET.EPOCALLOWDLLDATA = 1 } -maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri) +maemo5: CONFIG += qt_example diff --git a/examples/declarative/cppextensions/qwidgets/qwidgets.pro b/examples/declarative/cppextensions/qwidgets/qwidgets.pro index 9d15198fb8..d7e6f9318a 100644 --- a/examples/declarative/cppextensions/qwidgets/qwidgets.pro +++ b/examples/declarative/cppextensions/qwidgets/qwidgets.pro @@ -22,4 +22,4 @@ symbian:{ DEPLOYMENT += importFiles } -maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri) +maemo5: CONFIG += qt_example diff --git a/examples/declarative/i18n/main.cpp b/examples/declarative/i18n/main.cpp index 66b3ffe423..bc650f277a 100644 --- a/examples/declarative/i18n/main.cpp +++ b/examples/declarative/i18n/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/i18n/qml/i18n.qmlproject b/examples/declarative/i18n/qml/i18n.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/i18n/qml/i18n.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/i18n/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/i18n/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/i18n/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/i18n/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/i18n/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/i18n/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/i18n/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/i18n/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/imageelements/borderimage/main.cpp b/examples/declarative/imageelements/borderimage/main.cpp index 1cd6d0c41a..c8a9b85b78 100644 --- a/examples/declarative/imageelements/borderimage/main.cpp +++ b/examples/declarative/imageelements/borderimage/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/imageelements/borderimage/qml/borderimage.qmlproject b/examples/declarative/imageelements/borderimage/qml/borderimage.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/imageelements/borderimage/qml/borderimage.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/imageelements/borderimage/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/imageelements/borderimage/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/imageelements/borderimage/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/imageelements/borderimage/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/imageelements/borderimage/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/imageelements/borderimage/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/imageelements/borderimage/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/imageelements/borderimage/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/imageelements/image/main.cpp b/examples/declarative/imageelements/image/main.cpp index 152d5365ef..09cc88438d 100644 --- a/examples/declarative/imageelements/image/main.cpp +++ b/examples/declarative/imageelements/image/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/imageelements/image/qml/image.qmlproject b/examples/declarative/imageelements/image/qml/image.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/imageelements/image/qml/image.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/imageelements/image/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/imageelements/image/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/imageelements/image/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/imageelements/image/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/imageelements/image/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/imageelements/image/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/imageelements/image/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/imageelements/image/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/imageelements/shadows/main.cpp b/examples/declarative/imageelements/shadows/main.cpp index 1cd6d0c41a..c8a9b85b78 100644 --- a/examples/declarative/imageelements/shadows/main.cpp +++ b/examples/declarative/imageelements/shadows/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/imageelements/shadows/qml/borderimage.qmlproject b/examples/declarative/imageelements/shadows/qml/borderimage.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/imageelements/shadows/qml/borderimage.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/imageelements/shadows/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/imageelements/shadows/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/imageelements/shadows/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/imageelements/shadows/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/imageelements/shadows/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/imageelements/shadows/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/imageelements/shadows/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/imageelements/shadows/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/keyinteraction/focus/main.cpp b/examples/declarative/keyinteraction/focus/main.cpp index 9e5270a5f7..2f4deff9ef 100644 --- a/examples/declarative/keyinteraction/focus/main.cpp +++ b/examples/declarative/keyinteraction/focus/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/keyinteraction/focus/qml/focus.qmlproject b/examples/declarative/keyinteraction/focus/qml/focus.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/keyinteraction/focus/qml/focus.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/keyinteraction/focus/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/keyinteraction/focus/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/keyinteraction/focus/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/keyinteraction/focus/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/keyinteraction/focus/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/keyinteraction/focus/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/keyinteraction/focus/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/keyinteraction/focus/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/Delegate/qml/package.qmlproject b/examples/declarative/modelviews/Delegate/qml/package.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/modelviews/Delegate/qml/package.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/modelviews/gridview-example/main.cpp b/examples/declarative/modelviews/gridview-example/main.cpp index 3cf521f9c8..54f49ad50d 100644 --- a/examples/declarative/modelviews/gridview-example/main.cpp +++ b/examples/declarative/modelviews/gridview-example/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/modelviews/gridview-example/qml/gridview.qmlproject b/examples/declarative/modelviews/gridview-example/qml/gridview.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/modelviews/gridview-example/qml/gridview.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/modelviews/gridview-example/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/modelviews/gridview-example/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/modelviews/gridview-example/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/modelviews/gridview-example/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/gridview-example/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/modelviews/gridview-example/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/modelviews/gridview-example/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/modelviews/gridview-example/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/listview/dynamiclist/main.cpp b/examples/declarative/modelviews/listview/dynamiclist/main.cpp index 28cc168521..757b1135b7 100644 --- a/examples/declarative/modelviews/listview/dynamiclist/main.cpp +++ b/examples/declarative/modelviews/listview/dynamiclist/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/modelviews/listview/dynamiclist/qml/listview.qmlproject b/examples/declarative/modelviews/listview/dynamiclist/qml/listview.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/modelviews/listview/dynamiclist/qml/listview.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/modelviews/listview/dynamiclist/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/modelviews/listview/dynamiclist/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/modelviews/listview/dynamiclist/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/modelviews/listview/dynamiclist/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/listview/dynamiclist/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/modelviews/listview/dynamiclist/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/modelviews/listview/dynamiclist/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/modelviews/listview/dynamiclist/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/listview/expandingdelegates/main.cpp b/examples/declarative/modelviews/listview/expandingdelegates/main.cpp index 0de5247d4f..b411dff2ec 100644 --- a/examples/declarative/modelviews/listview/expandingdelegates/main.cpp +++ b/examples/declarative/modelviews/listview/expandingdelegates/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/modelviews/listview/expandingdelegates/qml/listview.qmlproject b/examples/declarative/modelviews/listview/expandingdelegates/qml/listview.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/modelviews/listview/expandingdelegates/qml/listview.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/modelviews/listview/expandingdelegates/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/modelviews/listview/expandingdelegates/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/modelviews/listview/expandingdelegates/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/modelviews/listview/expandingdelegates/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/listview/expandingdelegates/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/modelviews/listview/expandingdelegates/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/modelviews/listview/expandingdelegates/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/modelviews/listview/expandingdelegates/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/listview/highlight/main.cpp b/examples/declarative/modelviews/listview/highlight/main.cpp index 6628a676d6..7b8cdf2119 100644 --- a/examples/declarative/modelviews/listview/highlight/main.cpp +++ b/examples/declarative/modelviews/listview/highlight/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/modelviews/listview/highlight/qml/listview.qmlproject b/examples/declarative/modelviews/listview/highlight/qml/listview.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/modelviews/listview/highlight/qml/listview.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/modelviews/listview/highlight/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/modelviews/listview/highlight/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/modelviews/listview/highlight/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/modelviews/listview/highlight/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/listview/highlight/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/modelviews/listview/highlight/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/modelviews/listview/highlight/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/modelviews/listview/highlight/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/listview/highlightranges/main.cpp b/examples/declarative/modelviews/listview/highlightranges/main.cpp index f77ce158d6..fad8f0cfbf 100644 --- a/examples/declarative/modelviews/listview/highlightranges/main.cpp +++ b/examples/declarative/modelviews/listview/highlightranges/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/modelviews/listview/highlightranges/qml/listview.qmlproject b/examples/declarative/modelviews/listview/highlightranges/qml/listview.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/modelviews/listview/highlightranges/qml/listview.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/modelviews/listview/highlightranges/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/modelviews/listview/highlightranges/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/modelviews/listview/highlightranges/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/modelviews/listview/highlightranges/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/listview/highlightranges/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/modelviews/listview/highlightranges/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/modelviews/listview/highlightranges/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/modelviews/listview/highlightranges/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/listview/sections/main.cpp b/examples/declarative/modelviews/listview/sections/main.cpp index 19b2dc847c..7b827c7046 100644 --- a/examples/declarative/modelviews/listview/sections/main.cpp +++ b/examples/declarative/modelviews/listview/sections/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/modelviews/listview/sections/qml/listview.qmlproject b/examples/declarative/modelviews/listview/sections/qml/listview.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/modelviews/listview/sections/qml/listview.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/modelviews/listview/sections/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/modelviews/listview/sections/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/modelviews/listview/sections/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/modelviews/listview/sections/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/listview/sections/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/modelviews/listview/sections/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/modelviews/listview/sections/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/modelviews/listview/sections/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/pathview-example/main.cpp b/examples/declarative/modelviews/pathview-example/main.cpp index 15585ab3d2..85d682d896 100644 --- a/examples/declarative/modelviews/pathview-example/main.cpp +++ b/examples/declarative/modelviews/pathview-example/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/modelviews/pathview-example/qml/pathview.qmlproject b/examples/declarative/modelviews/pathview-example/qml/pathview.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/modelviews/pathview-example/qml/pathview.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/modelviews/pathview-example/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/modelviews/pathview-example/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/modelviews/pathview-example/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/modelviews/pathview-example/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/pathview-example/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/modelviews/pathview-example/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/modelviews/pathview-example/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/modelviews/pathview-example/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/visualitemmodel/main.cpp b/examples/declarative/modelviews/visualitemmodel/main.cpp index 6faeec8f82..1b265025e6 100644 --- a/examples/declarative/modelviews/visualitemmodel/main.cpp +++ b/examples/declarative/modelviews/visualitemmodel/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/modelviews/visualitemmodel/qml/visualitemmodel.qmlproject b/examples/declarative/modelviews/visualitemmodel/qml/visualitemmodel.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/modelviews/visualitemmodel/qml/visualitemmodel.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/modelviews/visualitemmodel/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/modelviews/visualitemmodel/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/modelviews/visualitemmodel/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/modelviews/visualitemmodel/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/modelviews/visualitemmodel/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/modelviews/visualitemmodel/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/modelviews/visualitemmodel/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/modelviews/visualitemmodel/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/particles/allsmiles/plain.qml b/examples/declarative/particles/allsmiles/plain.qml new file mode 100644 index 0000000000..890a5782d1 --- /dev/null +++ b/examples/declarative/particles/allsmiles/plain.qml @@ -0,0 +1,26 @@ +import QtQuick 2.0 +import QtQuick.Particles 2.0 + +Rectangle{ + color: "goldenrod" + width: 2000 + height: 2000 + ParticleSystem{id: sys} + ImageParticle{ + id: up + system: sys + source: "content/singlesmile.png" + } + Emitter{ + anchors.centerIn: parent + system: sys + emitRate: 1000 + size: 20 + lifeSpan: 10000 + speed: AngledDirection{angleVariation: 360; magnitudeVariation: 100;} + } + MouseArea{ + anchors.fill: parent + onClicked: up.autoRotation = !up.autoRotation + } +} diff --git a/examples/declarative/particles/allsmiles/smile.qml b/examples/declarative/particles/allsmiles/smile.qml index e37e8fa98e..6b122e7be5 100644 --- a/examples/declarative/particles/allsmiles/smile.qml +++ b/examples/declarative/particles/allsmiles/smile.qml @@ -39,35 +39,101 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ + id: root color: "white" width: 310 height: 300 ParticleSystem{ id: sys } - Picture{ + CustomParticle{ system: sys - anchors.fill: parent - image: "content/singlesmile.png" - onceOff: true - } - ColoredParticle{ - system: sys - image: "content/particle.png" - color: "black" - alpha: 0.4 - sizeTable: "content/sizeInOut.png" + property real maxWidth: root.width + property real maxHeight: root.height + ShaderEffectSource{ + id: pictureSource + sourceItem: picture + hideSource: true + } + Image{ + id: picture + source: "content/singlesmile.png" + } + ShaderEffectSource{ + id: particleSource + sourceItem: particle + hideSource: true + } + Image{ + id: particle + source: "content/particle.png" + } + vertexShader:" + attribute highp vec2 vPos; + attribute highp vec2 vTex; + attribute highp vec4 vData; // x = time, y = lifeSpan, z = size, w = endSize + attribute highp vec4 vVec; // x,y = constant speed, z,w = acceleration + attribute highp float r; + + uniform highp float maxWidth; + uniform highp float maxHeight; + + uniform highp mat4 qt_ModelViewProjectionMatrix; + uniform highp float timestamp; + uniform lowp float qt_Opacity; + + varying highp vec2 fTex; + varying highp vec2 fTex2; + varying lowp float fFade; + + void main() { + fTex = vTex; + fTex2 = vec2(vPos.x / maxWidth, vPos.y / maxHeight); + highp float size = vData.z; + highp float endSize = vData.w; + + highp float t = (timestamp - vData.x) / vData.y; + + highp float currentSize = mix(size, endSize, t * t); + + if (t < 0. || t > 1.) + currentSize = 0.; + + highp vec2 pos = vPos + - currentSize / 2. + currentSize * vTex // adjust size + + vVec.xy * t * vData.y // apply speed vector.. + + 0.5 * vVec.zw * pow(t * vData.y, 2.); + + gl_Position = qt_ModelViewProjectionMatrix * vec4(pos.x, pos.y, 0, 1); + + highp float fadeIn = min(t * 10., 1.); + highp float fadeOut = 1. - max(0., min((t - 0.75) * 4., 1.)); + + fFade = fadeIn * fadeOut * qt_Opacity; + } + " + property variant particleTexture: particleSource + property variant pictureTexture: pictureSource + fragmentShader: " + uniform sampler2D particleTexture; + uniform sampler2D pictureTexture; + varying highp vec2 fTex; + varying highp vec2 fTex2; + varying highp float fFade; + void main() { + gl_FragColor = texture2D(pictureTexture, fTex2) * texture2D(particleTexture, fTex).w * fFade; + }" } - TrailEmitter{ + Emitter{ id: emitter system: sys emitting: false - particleDuration: 4000 - maxParticles: 1200 + lifeSpan: 4000 + emitCap: 1200 anchors.fill: parent - particleSize: 32 - speed: PointVector{ xVariation: 12; yVariation: 12 } + size: 32 + speed: PointDirection{ xVariation: 12; yVariation: 12 } } MouseArea{ anchors.fill: parent diff --git a/examples/declarative/particles/allsmiles/smilefactory.qml b/examples/declarative/particles/allsmiles/smilefactory.qml index 47becb50fe..5b36eee3cd 100644 --- a/examples/declarative/particles/allsmiles/smilefactory.qml +++ b/examples/declarative/particles/allsmiles/smilefactory.qml @@ -39,27 +39,27 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ color: "goldenrod" width: 400 height: 400 ParticleSystem{id:sys} - DeformableParticle{ + ImageParticle{ system: sys particles: ["goingLeft", "goingRight"] - image: "content/singlesmile.png" + source: "content/singlesmile.png" rotation: 90 rotationSpeed: 90 autoRotation: true } - DeformableParticle{ + ImageParticle{ system: sys particles: ["goingDown"] - image: "content/squarefacespriteXX.png" + source: "content/squarefacespriteXX.png" rotation: 180 - yVector: PointVector{ y: 0.5; yVariation: 0.25; xVariation: 0.25; } + yVector: PointDirection{ y: 0.5; yVariation: 0.25; xVariation: 0.25; } } Timer{ running: true @@ -79,40 +79,40 @@ Rectangle{ interval: 8400 onTriggered: emitC.emitting = true; } - TrailEmitter{ + Emitter{ id: emitA x: 0 y: 120 system: sys emitting: false particle: "goingRight" - speed: PointVector{ x: 100 } - particleDuration: 4000 - particlesPerSecond: 2 - particleSize: 32 + speed: PointDirection{ x: 100 } + lifeSpan: 4000 + emitRate: 2 + size: 32 } - TrailEmitter{ + Emitter{ id: emitB x: 400 y: 240 system: sys emitting: false particle: "goingLeft" - speed: PointVector{ x: -100 } - particleDuration: 4000 - particlesPerSecond: 2 - particleSize: 32 + speed: PointDirection{ x: -100 } + lifeSpan: 4000 + emitRate: 2 + size: 32 } - TrailEmitter{ + Emitter{ id: emitC x: 0 y: 360 system: sys emitting: false particle: "goingDown" - speed: PointVector{ x: 100 } - particleDuration: 4000 - particlesPerSecond: 2 - particleSize: 32 + speed: PointDirection{ x: 100 } + lifeSpan: 4000 + emitRate: 2 + size: 32 } } diff --git a/examples/declarative/particles/allsmiles/spriteparticles.qml b/examples/declarative/particles/allsmiles/spriteparticles.qml index 4bcb7081b8..f5479f1570 100644 --- a/examples/declarative/particles/allsmiles/spriteparticles.qml +++ b/examples/declarative/particles/allsmiles/spriteparticles.qml @@ -39,60 +39,60 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ color: "goldenrod" width: 400 height: 400 - ColoredParticle{ + ImageParticle{ id: test particles: ["Test"] - image: "content/particle.png" + source: "content/particle.png" system: sys z: 2 anchors.fill: parent color: "#336666CC" colorVariation: 0.0 } - SpriteParticle{ + ImageParticle{ id: single particles: ["Face"] system: sys z: 2 anchors.fill: parent - Sprite{ + sprites: Sprite{ source: "content/squarefacesprite.png" frames: 6 duration: 120 } } - Mask{ + MaskShape{ id: mask source: "content/smileMask.png" } - TrailEmitter{ + Emitter{ system: sys particle: "Test" anchors.fill: parent id: particles2 - particlesPerSecond: 6000 - particleDuration: 720 + emitRate: 6000 + lifeSpan: 720 emitting: true - particleSize: 10 + size: 10 shape: mask } - TrailEmitter{ + Emitter{ system: sys particle: "Face" anchors.fill: parent id: particles - particlesPerSecond: 60 - particleDuration: 1440 + emitRate: 60 + lifeSpan: 1440 emitting: true - speed: PointVector{xVariation: 10; yVariation: 10;} - particleSize: 30 - particleSizeVariation: 10 + speed: PointDirection{xVariation: 10; yVariation: 10;} + size: 30 + sizeVariation: 10 shape: mask } ParticleSystem{ diff --git a/examples/declarative/particles/allsmiles/spritestateparticles.qml b/examples/declarative/particles/allsmiles/spritestateparticles.qml index 6a61487a89..a599c69a63 100644 --- a/examples/declarative/particles/allsmiles/spritestateparticles.qml +++ b/examples/declarative/particles/allsmiles/spritestateparticles.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ color: "goldenrod" @@ -109,7 +109,7 @@ Rectangle{ z:4 } ParticleSystem{ id: sys } - SpriteParticle{ + ImageParticle{ anchors.fill: parent id: particles system: sys @@ -168,15 +168,15 @@ Rectangle{ duration: 10000 }] } - TrailEmitter{ + Emitter{ system: sys - particlesPerSecond: 16 - particleDuration: 10000 + emitRate: 16 + lifeSpan: 10000 emitting: true - speed: AngleVector{angle: 90; magnitude: 60; angleVariation: 5} - acceleration: PointVector{ y: 10 } - particleSize: 30 - particleSizeVariation: 10 + speed: AngledDirection{angle: 90; magnitude: 60; angleVariation: 5} + acceleration: PointDirection{ y: 10 } + size: 30 + sizeVariation: 10 width: parent.width height: 100 } diff --git a/examples/declarative/particles/allsmiles/spritevariedparticles.qml b/examples/declarative/particles/allsmiles/spritevariedparticles.qml index c1b773093f..d6e13727ff 100644 --- a/examples/declarative/particles/allsmiles/spritevariedparticles.qml +++ b/examples/declarative/particles/allsmiles/spritevariedparticles.qml @@ -39,14 +39,14 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ color: "goldenrod" width: 800 height: 800 ParticleSystem{ id: sys } - SpriteParticle{ + ImageParticle{ system: sys anchors.fill: parent sprites: [Sprite{ @@ -92,17 +92,17 @@ Rectangle{ duration: 120 }] } - TrailEmitter{ + Emitter{ id: particleEmitter system: sys width: parent.width - particlesPerSecond: 16 - particleDuration: 8000 + emitRate: 16 + lifeSpan: 8000 emitting: true - speed: AngleVector{angle: 90; magnitude: 300; magnitudeVariation: 100; angleVariation: 5} - acceleration: PointVector{ y: 10 } - particleSize: 30 - particleSizeVariation: 10 + speed: AngledDirection{angle: 90; magnitude: 300; magnitudeVariation: 100; angleVariation: 5} + acceleration: PointDirection{ y: 10 } + size: 30 + sizeVariation: 10 } Binding{ target: particleEmitter diff --git a/examples/declarative/particles/allsmiles/ultraparticles.qml b/examples/declarative/particles/allsmiles/ultraparticles.qml index 85bbdbacd8..0ea095deb6 100644 --- a/examples/declarative/particles/allsmiles/ultraparticles.qml +++ b/examples/declarative/particles/allsmiles/ultraparticles.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ color: "white" @@ -48,7 +48,7 @@ Rectangle{ ParticleSystem{ id: sys } - UltraParticle{ + ImageParticle{ sprites: [ Sprite{ name: "licking" @@ -80,16 +80,16 @@ Rectangle{ factor: 0.1 system: sys } - TrailEmitter{ + Emitter{ system: sys anchors.centerIn: parent id: particles - particlesPerSecond: 200 - particleDuration: 6000 + emitRate: 200 + lifeSpan: 6000 emitting: true - speed: AngleVector{angleVariation: 360; magnitude: 80; magnitudeVariation: 40} - particleSize: 40 - particleEndSize: 80 + speed: AngledDirection{angleVariation: 360; magnitude: 80; magnitudeVariation: 40} + size: 40 + endSize: 80 } Text{ x: 16 diff --git a/examples/declarative/particles/asteroid/asteroid.qml b/examples/declarative/particles/asteroid/asteroid.qml index b5b4f672c2..2ecfc42a98 100644 --- a/examples/declarative/particles/asteroid/asteroid.qml +++ b/examples/declarative/particles/asteroid/asteroid.qml @@ -38,8 +38,8 @@ ** ****************************************************************************/ -import Qt.labs.particles 2.0 -import Qt.labs.particles 2.0 as Qlp +import QtQuick.Particles 2.0 +import QtQuick.Particles 2.0 as Qlp import QtQuick 2.0 Item { @@ -65,42 +65,42 @@ Item { } } - ColoredParticle { + ImageParticle { system: sys particles: ["starfield"] - image: "content/star.png" + source: "content/star.png" colorVariation: 0.3 color: "white" } - TrailEmitter { + Emitter { id: starField system: sys particle: "starfield" - particlesPerSecond: 80 - particleDuration: 2500 + emitRate: 80 + lifeSpan: 2500 anchors.centerIn: parent - //acceleration: AngleVector{angleVariation: 360; magnitude: 200}//Is this a better effect, more consistent speed? - acceleration: PointVector{ xVariation: 200; yVariation: 200; } + //acceleration: AngledDirection{angleVariation: 360; magnitude: 200}//Is this a better effect, more consistent speed? + acceleration: PointDirection{ xVariation: 200; yVariation: 200; } - particleSize: 0 - particleEndSize: 80 - particleSizeVariation: 10 + size: 0 + endSize: 80 + sizeVariation: 10 } - TrailEmitter{ + Emitter{ system: sys particle: "meteor" - particlesPerSecond: 12 - particleDuration: 5000 + emitRate: 12 + lifeSpan: 5000 emitting: true - acceleration: PointVector{ xVariation: 80; yVariation: 80; } - particleSize: 15 - particleEndSize: 300 + acceleration: PointDirection{ xVariation: 80; yVariation: 80; } + size: 15 + endSize: 300 anchors.centerIn: parent } - SpriteParticle{ + ImageParticle{ system: sys particles: ["meteor"] sprites:[Sprite{ @@ -168,11 +168,11 @@ Item { } } - ColoredParticle{ + ImageParticle{ z:0 system: sys particles: ["exhaust"] - image: "content/particle4.png" + source: "content/particle4.png" color: "orange" SequentialAnimation on color { @@ -191,23 +191,23 @@ Item { colorVariation: 0.2 } - TrailEmitter{ + Emitter{ id: trailsNormal2 system: sys particle: "exhaust" - particlesPerSecond: 300 - particleDuration: 500 + emitRate: 300 + lifeSpan: 500 y: holder.y x: holder.x - speed: PointVector{ xVariation: 40; yVariation: 40; } + speed: PointDirection{ xVariation: 40; yVariation: 40; } speedFromMovement: 16 - acceleration: PointVector{ xVariation: 10; yVariation: 10; } + acceleration: PointDirection{ xVariation: 10; yVariation: 10; } - particleSize: 4 - particleSizeVariation: 4 + size: 4 + sizeVariation: 4 } } diff --git a/examples/declarative/particles/asteroid/blackhole.qml b/examples/declarative/particles/asteroid/blackhole.qml index 68d5835880..4a7ce02538 100644 --- a/examples/declarative/particles/asteroid/blackhole.qml +++ b/examples/declarative/particles/asteroid/blackhole.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ id: root @@ -65,41 +65,42 @@ Rectangle{ } } - TrailEmitter{ + Emitter{ particle: "stars" system: particles - particlesPerSecond: 40 - particleDuration: 4000 + emitRate: 40 + lifeSpan: 4000 emitting: true - particleSize: 30 - particleSizeVariation: 10 - speed: PointVector{ x: 220; xVariation: 40 } + size: 30 + sizeVariation: 10 + speed: PointDirection{ x: 220; xVariation: 40 } height: parent.height } - TrailEmitter{ + Emitter{ particle: "roids" system: particles - particlesPerSecond: 10 - particleDuration: 4000 + emitRate: 10 + lifeSpan: 4000 emitting: true - particleSize: 30 - particleSizeVariation: 10 - speed: PointVector{ x: 220; xVariation: 40 } + size: 30 + sizeVariation: 10 + speed: PointDirection{ x: 220; xVariation: 40 } height: parent.height } ParticleSystem{ id: particles anchors.fill: parent } - ColoredParticle{ + ImageParticle{ id: stars particles: ["stars"] system: particles - image: "content/star.png" + source: "content/star.png" color: "white" colorVariation: 0.1 + alpha: 0 } - SpriteParticle{ + ImageParticle{ id: roids particles: ["roids"] system: particles @@ -112,20 +113,20 @@ Rectangle{ speedModifiesDuration: -0.1 } } - ColoredParticle{ + ImageParticle{ id: shot particles: ["shot"] system: particles - image: "content/star.png" + source: "content/star.png" color: "#0FF06600" colorVariation: 0.3 } - ColoredParticle{ + ImageParticle{ id: engine particles: ["engine"] system: particles - image: "content/particle4.png" + source: "content/particle4.png" color: "orange" SequentialAnimation on color { @@ -144,9 +145,11 @@ Rectangle{ colorVariation: 0.2 } - GravitationalSingularity{ + PointAttractor{ id: gs; x: root.width/2; y: root.height/2; strength: 4000000; system: particles + physics: PointAttractor.Acceleration + proportionalToDistance: PointAttractor.Quadratic } Kill{ system: particles @@ -166,27 +169,27 @@ Rectangle{ drag.axis: Drag.XandYAxis drag.target: ship } - TrailEmitter{ + Emitter{ particle: "engine" system: particles - particlesPerSecond: 200 - particleDuration: 1000 + emitRate: 200 + lifeSpan: 1000 emitting: true - particleSize: 10 - particleEndSize: 4 - particleSizeVariation: 4 - speed: PointVector{ x: -128; xVariation: 32 } + size: 10 + endSize: 4 + sizeVariation: 4 + speed: PointDirection{ x: -128; xVariation: 32 } height: parent.height width: 20 } - TrailEmitter{ + Emitter{ particle: "shot" system: particles - particlesPerSecond: 32 - particleDuration: 2000 + emitRate: 32 + lifeSpan: 2000 emitting: spacePressed - particleSize: 40 - speed: PointVector{ x: 256; } + size: 40 + speed: PointDirection{ x: 256; } x: parent.width y: parent.height/2 } diff --git a/examples/declarative/particles/custom/blurparticles.qml b/examples/declarative/particles/custom/blurparticles.qml new file mode 100644 index 0000000000..8a3e9ad803 --- /dev/null +++ b/examples/declarative/particles/custom/blurparticles.qml @@ -0,0 +1,125 @@ +import QtQuick 2.0 +import QtQuick.Particles 2.0 + +Rectangle{ + color: "white" + width: 240 + height: 360 + ParticleSystem{ + id: sys + } + Emitter{ + system:sys + height: parent.height + emitRate: 1 + lifeSpan: 12000 + speed: PointDirection{x:20;} + size: 64 + } + ShaderEffectSource{ + id: theSource + sourceItem: theItem + hideSource: true + } + Image{ + id: theItem + source: "content/smile.png" + } + + CustomParticle{ + system: sys + //TODO: Someway that you don't have to rewrite the basics for a simple addition + vertexShader:" + attribute highp vec2 vPos; + attribute highp vec2 vTex; + attribute highp vec4 vData; // x = time, y = lifeSpan, z = size, w = endSize + attribute highp vec4 vVec; // x,y = constant speed, z,w = acceleration + attribute highp float r; + + uniform highp mat4 qt_ModelViewProjectionMatrix; + uniform highp float timestamp; + uniform lowp float qt_Opacity; + + varying highp vec2 fTex; + varying lowp float fFade; + varying lowp float fBlur; + + void main() { + fTex = vTex; + highp float size = vData.z; + highp float endSize = vData.w; + + highp float t = (timestamp - vData.x) / vData.y; + + highp float currentSize = mix(size, endSize, t * t); + + if (t < 0. || t > 1.) + currentSize = 0.; + + highp vec2 pos = vPos + - currentSize / 2. + currentSize * vTex // adjust size + + vVec.xy * t * vData.y // apply speed vector.. + + 0.5 * vVec.zw * pow(t * vData.y, 2.); + + gl_Position = qt_ModelViewProjectionMatrix * vec4(pos.x, pos.y, 0, 1); + + highp float fadeIn = min(t * 10., 1.); + highp float fadeOut = 1. - max(0., min((t - 0.75) * 4., 1.)); + + fFade = fadeIn * fadeOut * qt_Opacity; + fBlur = max(0.2 * t, t * r); + } + " + property variant source: theSource + property variant blurred: ShaderEffectSource { + smooth: true + sourceItem: ShaderEffectItem { + width: theItem.width + height: theItem.height + property variant delta: Qt.size(0.0, 1.0 / height) + property variant source: ShaderEffectSource { + smooth: true + sourceItem: ShaderEffectItem { + width: theItem.width + height: theItem.height + property variant delta: Qt.size(1.0 / width, 0.0) + property variant source: theSource + fragmentShader: " + uniform sampler2D source; + uniform highp vec2 delta; + varying highp vec2 qt_TexCoord0; + void main() { + gl_FragColor = 0.0538 * texture2D(source, qt_TexCoord0 - 3.182 * delta) + + 0.3229 * texture2D(source, qt_TexCoord0 - 1.364 * delta) + + 0.2466 * texture2D(source, qt_TexCoord0) + + 0.3229 * texture2D(source, qt_TexCoord0 + 1.364 * delta) + + 0.0538 * texture2D(source, qt_TexCoord0 + 3.182 * delta); + }" + } + } + fragmentShader: " + uniform sampler2D source; + uniform highp vec2 delta; + varying highp vec2 qt_TexCoord0; + void main() { + gl_FragColor = 0.0538 * texture2D(source, qt_TexCoord0 - 3.182 * delta) + + 0.3229 * texture2D(source, qt_TexCoord0 - 1.364 * delta) + + 0.2466 * texture2D(source, qt_TexCoord0) + + 0.3229 * texture2D(source, qt_TexCoord0 + 1.364 * delta) + + 0.0538 * texture2D(source, qt_TexCoord0 + 3.182 * delta); + }" + } + } + fragmentShader: " + uniform sampler2D source; + uniform sampler2D blurred; + varying highp vec2 fTex; + varying highp float fBlur; + varying highp float fFade; + void main() { + gl_FragColor = mix(texture2D(source, fTex), texture2D(blurred, fTex), min(1.0,fBlur*3.0)) * fFade; + }" + + } +} + diff --git a/examples/declarative/particles/custom/content/smile.png b/examples/declarative/particles/custom/content/smile.png Binary files differnew file mode 100644 index 0000000000..3d66d72578 --- /dev/null +++ b/examples/declarative/particles/custom/content/smile.png diff --git a/examples/declarative/particles/exampleslauncher.qml b/examples/declarative/particles/exampleslauncher.qml new file mode 100644 index 0000000000..354bcdf65a --- /dev/null +++ b/examples/declarative/particles/exampleslauncher.qml @@ -0,0 +1,116 @@ +/**************************************************************************** +** +** 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 + } + 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 + cellWidth: 120 + cellHeight: 120 + model: vdm + } +} diff --git a/examples/declarative/particles/trails/swarm.qml b/examples/declarative/particles/launcherContent/Button.qml index 083f9e816d..a937b3bede 100644 --- a/examples/declarative/particles/trails/swarm.qml +++ b/examples/declarative/particles/launcherContent/Button.qml @@ -39,40 +39,35 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 as QLP -Rectangle{ - width: 200 - height: 200 - color: "black" - QLP.ParticleSystem{ id: ps } - QLP.ColoredParticle{ - system: ps - particles: ["star1","star2"] - anchors.fill: parent - clip: true - image: "content/star.png" - } - QLP.Swarm{ - system: ps - leaders: ["star2"]; - anchors.fill: parent - strength: 128 - } - QLP.TrailEmitter{ - anchors.fill: parent - system: ps - particle: "star1" - particlesPerSecond: 100 - particleDuration: 2000 +Rectangle { + id: container + + property string text: "Button" + signal clicked + + width: buttonLabel.width + 20; height: buttonLabel.height + 20 + smooth: true + property color myCol: "#999999" + border { width: 1; color: Qt.darker(myCol) } + radius: 8 + + gradient: Gradient { + GradientStop { + position: 0.0 + color: { + if (mouseArea.pressed) + return Qt.darker(myCol) + else + return Qt.lighter(myCol) + } + } + GradientStop { position: 1.0; color: myCol } } - QLP.TrailEmitter{ - anchors.fill: parent - system: ps - particle: "star2" - particlesPerSecond: 0.4 - particleDuration: 10000 - particleSize: 64 - particleEndSize: 32 + + MouseArea { id: mouseArea; anchors.fill: parent; onClicked: container.clicked() } + + Text { + id: buttonLabel; text: container.text; anchors.centerIn: container; color: "black"; font.pixelSize: 24 } } diff --git a/examples/declarative/particles/snow/snow2.qml b/examples/declarative/particles/launcherContent/Shell.qml index c016ba2934..32b0cd624c 100644 --- a/examples/declarative/particles/snow/snow2.qml +++ b/examples/declarative/particles/launcherContent/Shell.qml @@ -39,36 +39,40 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 -Rectangle{ - width: 360 - height: 540 - ParticleSystem{ id: particles } - SpriteParticle{ - system: particles - Sprite{ - name: "snow" - source: "content/flake-01.png" - frames: 51 - duration: 40 +Loader{ + id: ldr + visible: false + focus: visible + onVisibleChanged: source = "" + opacity: visible?1:0 + Behavior on opacity{NumberAnimation{}} + + function setDemo(str){ + visible = true; + source = str; + } + Image{//TODO: Augment with PARTICLES + z: 1 + source: "icons/close.png" + MouseArea{ + anchors.fill: parent + onClicked: ldr.visible = false; } } - Drift{ - system: particles + Rectangle{ + z: -1 anchors.fill: parent - xDrift: 400; - } - TrailEmitter{ - system: particles - particlesPerSecond: 20 - particleDuration: 7000 - emitting: true - speed: PointVector{ y:80; yVariation: 40; } - acceleration: PointVector{ y: 4 } - particleSize: 20 - particleSizeVariation: 10 - width: parent.width - height: 100 + color:"black" + Text{ + color: "white" + anchors.centerIn: parent + text: ldr.Status == Loader.Error ? "Error :(" : "Loading..." + } + MouseArea{ + id: graball + anchors.fill: parent + onClicked:; + } } } diff --git a/examples/declarative/particles/launcherContent/icons/asteroid.png b/examples/declarative/particles/launcherContent/icons/asteroid.png Binary files differnew file mode 100644 index 0000000000..77480c6f09 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/asteroid.png diff --git a/examples/declarative/particles/launcherContent/icons/blackhole.png b/examples/declarative/particles/launcherContent/icons/blackhole.png Binary files differnew file mode 100644 index 0000000000..4bd8040c3b --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/blackhole.png diff --git a/examples/declarative/particles/launcherContent/icons/blurparticles.png b/examples/declarative/particles/launcherContent/icons/blurparticles.png Binary files differnew file mode 100644 index 0000000000..7a247ae46e --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/blurparticles.png diff --git a/examples/declarative/particles/launcherContent/icons/close.png b/examples/declarative/particles/launcherContent/icons/close.png Binary files differnew file mode 100644 index 0000000000..c37714ee8f --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/close.png diff --git a/examples/declarative/particles/launcherContent/icons/dynamicemitters.png b/examples/declarative/particles/launcherContent/icons/dynamicemitters.png Binary files differnew file mode 100644 index 0000000000..0cdef9d21e --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/dynamicemitters.png diff --git a/examples/declarative/particles/launcherContent/icons/fireballs.png b/examples/declarative/particles/launcherContent/icons/fireballs.png Binary files differnew file mode 100644 index 0000000000..39acf8b40d --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/fireballs.png diff --git a/examples/declarative/particles/launcherContent/icons/flickr.png b/examples/declarative/particles/launcherContent/icons/flickr.png Binary files differnew file mode 100644 index 0000000000..4de2650280 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/flickr.png diff --git a/examples/declarative/particles/launcherContent/icons/gridsplosion.png b/examples/declarative/particles/launcherContent/icons/gridsplosion.png Binary files differnew file mode 100644 index 0000000000..ec75453df6 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/gridsplosion.png diff --git a/examples/declarative/particles/launcherContent/icons/layered.png b/examples/declarative/particles/launcherContent/icons/layered.png Binary files differnew file mode 100644 index 0000000000..a28e3c4f02 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/layered.png diff --git a/examples/declarative/particles/launcherContent/icons/list.png b/examples/declarative/particles/launcherContent/icons/list.png Binary files differnew file mode 100644 index 0000000000..bc13263cff --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/list.png diff --git a/examples/declarative/particles/launcherContent/icons/overburst.png b/examples/declarative/particles/launcherContent/icons/overburst.png Binary files differnew file mode 100644 index 0000000000..4ef0435991 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/overburst.png diff --git a/examples/declarative/particles/launcherContent/icons/package.png b/examples/declarative/particles/launcherContent/icons/package.png Binary files differnew file mode 100644 index 0000000000..eba8951c26 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/package.png diff --git a/examples/declarative/particles/launcherContent/icons/plain.png b/examples/declarative/particles/launcherContent/icons/plain.png Binary files differnew file mode 100644 index 0000000000..dd51498514 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/plain.png diff --git a/examples/declarative/particles/launcherContent/icons/plasmapatrol.png b/examples/declarative/particles/launcherContent/icons/plasmapatrol.png Binary files differnew file mode 100644 index 0000000000..fda852b420 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/plasmapatrol.png diff --git a/examples/declarative/particles/launcherContent/icons/portal.png b/examples/declarative/particles/launcherContent/icons/portal.png Binary files differnew file mode 100644 index 0000000000..9c1f910d0c --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/portal.png diff --git a/examples/declarative/particles/launcherContent/icons/rainbow.png b/examples/declarative/particles/launcherContent/icons/rainbow.png Binary files differnew file mode 100644 index 0000000000..8841ea30f9 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/rainbow.png diff --git a/examples/declarative/particles/launcherContent/icons/remove.png b/examples/declarative/particles/launcherContent/icons/remove.png Binary files differnew file mode 100644 index 0000000000..c37714ee8f --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/remove.png diff --git a/examples/declarative/particles/launcherContent/icons/samegame.png b/examples/declarative/particles/launcherContent/icons/samegame.png Binary files differnew file mode 100644 index 0000000000..d00698264b --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/samegame.png diff --git a/examples/declarative/particles/launcherContent/icons/shimmer.png b/examples/declarative/particles/launcherContent/icons/shimmer.png Binary files differnew file mode 100644 index 0000000000..0ff53196a6 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/shimmer.png diff --git a/examples/declarative/particles/launcherContent/icons/smile.png b/examples/declarative/particles/launcherContent/icons/smile.png Binary files differnew file mode 100644 index 0000000000..f990e6c03e --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/smile.png diff --git a/examples/declarative/particles/launcherContent/icons/smilefactory.png b/examples/declarative/particles/launcherContent/icons/smilefactory.png Binary files differnew file mode 100644 index 0000000000..78ea52790f --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/smilefactory.png diff --git a/examples/declarative/particles/launcherContent/icons/snow.png b/examples/declarative/particles/launcherContent/icons/snow.png Binary files differnew file mode 100644 index 0000000000..d98e14b8ae --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/snow.png diff --git a/examples/declarative/particles/launcherContent/icons/spaceexplorer.png b/examples/declarative/particles/launcherContent/icons/spaceexplorer.png Binary files differnew file mode 100644 index 0000000000..770584a0fa --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/spaceexplorer.png diff --git a/examples/declarative/particles/launcherContent/icons/spriteparticles.png b/examples/declarative/particles/launcherContent/icons/spriteparticles.png Binary files differnew file mode 100644 index 0000000000..5603964939 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/spriteparticles.png diff --git a/examples/declarative/particles/launcherContent/icons/spritestateparticles.png b/examples/declarative/particles/launcherContent/icons/spritestateparticles.png Binary files differnew file mode 100644 index 0000000000..dd01518ac4 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/spritestateparticles.png diff --git a/examples/declarative/particles/launcherContent/icons/spritevariedparticles.png b/examples/declarative/particles/launcherContent/icons/spritevariedparticles.png Binary files differnew file mode 100644 index 0000000000..495bb6beee --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/spritevariedparticles.png diff --git a/examples/declarative/particles/launcherContent/icons/stream.png b/examples/declarative/particles/launcherContent/icons/stream.png Binary files differnew file mode 100644 index 0000000000..a74f9a0340 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/stream.png diff --git a/examples/declarative/particles/launcherContent/icons/trails.png b/examples/declarative/particles/launcherContent/icons/trails.png Binary files differnew file mode 100644 index 0000000000..0337ebcfd8 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/trails.png diff --git a/examples/declarative/particles/launcherContent/icons/turbulence.png b/examples/declarative/particles/launcherContent/icons/turbulence.png Binary files differnew file mode 100644 index 0000000000..2b9446ea90 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/turbulence.png diff --git a/examples/declarative/particles/launcherContent/icons/ultraparticles.png b/examples/declarative/particles/launcherContent/icons/ultraparticles.png Binary files differnew file mode 100644 index 0000000000..0d87eea427 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/ultraparticles.png diff --git a/examples/declarative/particles/launcherContent/icons/velocityfrommotion.png b/examples/declarative/particles/launcherContent/icons/velocityfrommotion.png Binary files differnew file mode 100644 index 0000000000..79baa08293 --- /dev/null +++ b/examples/declarative/particles/launcherContent/icons/velocityfrommotion.png diff --git a/examples/declarative/particles/launcherContent/launcher.js b/examples/declarative/particles/launcherContent/launcher.js new file mode 100644 index 0000000000..e4fedd30d7 --- /dev/null +++ b/examples/declarative/particles/launcherContent/launcher.js @@ -0,0 +1,8 @@ +function nameFromPath(path){ + var ret = path.split('/'); + return ret[ret.length-1].split('.')[0]; +} +function iconFromPath(path){ + var ret = path.split('/'); + return "launcherContent/icons/" + ret[ret.length-1].split('.')[0] + ".png"; +} diff --git a/examples/declarative/particles/modelparticles/bubbles.qml b/examples/declarative/particles/modelparticles/bubbles.qml index 80d03a9ea7..23f0b82d01 100644 --- a/examples/declarative/particles/modelparticles/bubbles.qml +++ b/examples/declarative/particles/modelparticles/bubbles.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 import "../../modelviews/listview/content" as OtherDemo import "content/script.js" as Script import "content" @@ -56,21 +56,22 @@ Item{ ParticleSystem{ id: sys; } - TrailEmitter{ + Emitter{ system: sys particle: "A" width: parent.width/2 x: parent.width/4 y:parent.height - speed: PointVector{ y: -64; yVariation: 16 } - particlesPerSecond: 1 - particleDuration: 8000 + speed: PointDirection{ y: -64; yVariation: 16 } + emitRate: 1 + lifeSpan: 8000 } - Drift{ + Wander{ system: sys - xDrift: 200 + xVariance: 400 + pace: 200 } - DataParticle{ + ModelParticle{ id: mp z: 0 system: sys diff --git a/examples/declarative/particles/modelparticles/gridsplosion.qml b/examples/declarative/particles/modelparticles/gridsplosion.qml index d45ef392e0..db860125e5 100644 --- a/examples/declarative/particles/modelparticles/gridsplosion.qml +++ b/examples/declarative/particles/modelparticles/gridsplosion.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 import "content" Item{ @@ -48,13 +48,14 @@ Item{ height: 240 property bool inGrid: false ParticleSystem{ id: sys } - TrailEmitter{ + Emitter{ system: sys id: burster; emitting: false - particlesPerSecond: 1000 - particleDuration: 500 - speed: PointVector{xVariation: 400; yVariation: 400} + emitRate: 1000 + lifeSpan: 50000 + emitCap: 100; + speed: PointDirection{xVariation: 400; yVariation: 400} anchors.centerIn: parent Timer{ interval: 1000 @@ -69,9 +70,9 @@ Item{ onTriggered: {inGrid = true;}// sys.running = false;} } } - ColoredParticle{ + ImageParticle{ system: sys - image: "../trails/content/particle.png" + source: "../trails/content/particle.png" color: "black" colorVariation: 0.0 } @@ -80,17 +81,14 @@ Item{ width: 120 height: 120 } - DataParticle{ + ModelParticle{ system: sys model: theModel.parts.particles + fade: false } Friction{ system: sys - factor: 1 - } - Stasis{ - system: sys - targetLife: 400 + factor: 5 } VisualDataModel{ id: theModel diff --git a/examples/declarative/particles/modelparticles/package.qml b/examples/declarative/particles/modelparticles/package.qml index d5c104b480..0aa8903270 100644 --- a/examples/declarative/particles/modelparticles/package.qml +++ b/examples/declarative/particles/modelparticles/package.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 import "content" Rectangle { @@ -69,7 +69,7 @@ Rectangle { width: 200; height:200 model: visualModel.parts.list } - DataParticle{ + ModelParticle{ x: 200; width: 200; height:200 model: visualModel.parts.grid system: sys @@ -80,12 +80,12 @@ Rectangle { id: sys anchors.fill: parent } - TrailEmitter{ + Emitter{ system: sys width: 100 x: 50 - speed: PointVector{ y: 40 } - particleDuration: 5000 - particlesPerSecond: 1.6 + speed: PointDirection{ y: 40 } + lifeSpan: 5000 + emitRate: 1.6 } } diff --git a/examples/declarative/particles/modelparticles/stream.qml b/examples/declarative/particles/modelparticles/stream.qml index 0ad807bc7b..5c7a6f7fc4 100644 --- a/examples/declarative/particles/modelparticles/stream.qml +++ b/examples/declarative/particles/modelparticles/stream.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 import "content/script.js" as Script import "content" @@ -68,15 +68,15 @@ Item{ overwrite: false startTime: 12000//Doesn't actually work with the loading time though... } - TrailEmitter{ + Emitter{ id: emitter system: sys height: parent.height - 132/2 x: -132/2 y: 132/2 - speed: PointVector{ x: 32; xVariation: 8 } - particlesPerSecond: 0.5 - particleDuration: 120000 //TODO: A -1 or something which does 'infinite'? (but need disable fade first) + 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{ @@ -85,10 +85,10 @@ Item{ height: parent.height width: 1000 } - ColoredParticle{ + ImageParticle{ system: sys particles: ["fireworks"] - image: "../trails/content/star.png" + source: "../trails/content/star.png" color: "lightsteelblue" alpha: 0 colorVariation: 0 @@ -125,7 +125,7 @@ Item{ } property Item alertItem; function alert(){ - resetter.active = false + //resetter.active = false force.active = true; alertItem = alertDelegate.createObject(root); alertItem.x = root.width/2 - alertItem.width/2 @@ -142,34 +142,30 @@ Item{ interval: 800 onTriggered: { force.active = false - resetter.active = true; + //resetter.active = true; mp.take(alertItem, true); centerEmitter.burst(1); } } - Attractor{ + PointAttractor{ id: force system: sys x: root.width/2 y: root.height/2 - strength: -30000 + strength: -10000 active: false anchors.centerIn: parent width: parent.width/2 height: parent.height/2 particles:["photos"] + physics: PointAttractor.Position } - Reset{ - id: resetter - system: sys - particles:["photos"] - } - TrailEmitter{ + Emitter{ id: centerEmitter - speed: PointVector{ x: 32; xVariation: 8;} - particlesPerSecond: 0.5 - particleDuration: 12000 //TODO: A -1 or something which does 'infinite'? (but need disable fade first) - maxParticles: 20 + 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 @@ -177,22 +173,22 @@ Item{ //TODO: Zoom in effect } - TrailEmitter{ + Emitter{ id: spawnFireworks particle: "fireworks" system: sys - maxParticles: 400 - particlesPerSecond: 400 - particleDuration: 2800 + emitCap: 400 + emitRate: 400 + lifeSpan: 2800 x: parent.width/2 y: parent.height/2 - 64 width: 8 height: 8 emitting: false - particleSize: 32 - particleEndSize: 8 - speed: AngleVector{ magnitude: 160; magnitudeVariation: 120; angleVariation: 90; angle: 270 } - acceleration: PointVector{ y: 160 } + 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 diff --git a/examples/declarative/particles/snow/snow.qml b/examples/declarative/particles/snow/snow.qml index 25d2e1468b..ea2de17046 100644 --- a/examples/declarative/particles/snow/snow.qml +++ b/examples/declarative/particles/snow/snow.qml @@ -39,15 +39,17 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 +import "content" +import "../launcherContent" as UI Rectangle{ width: 360 height: 540 ParticleSystem { id: particles } - SpriteParticle { + ImageParticle { system: particles - Sprite{ + sprites: Sprite{ name: "snow" source: "content/flake-01.png" frames: 51 @@ -55,21 +57,38 @@ Rectangle{ } } Wander { + id: wanderer system: particles anchors.fill: parent - xVariance: 40; - pace: 40; + xVariance: 360/(wanderer.physics+1); + pace: 100*(wanderer.physics+1); } - TrailEmitter { + Emitter { system: particles - particlesPerSecond: 20 - particleDuration: 7000 + emitRate: 20 + lifeSpan: 7000 emitting: true - speed: PointVector{ y:80; yVariation: 40; } - acceleration: PointVector{ y: 4 } - particleSize: 20 - particleSizeVariation: 10 + speed: PointDirection{ y:80; yVariation: 40; } + acceleration: PointDirection{ y: 4 } + size: 20 + sizeVariation: 10 width: parent.width height: 100 } + Row{ + anchors.bottom: parent.bottom + anchors.horizontalCenter: parent.horizontalCenter + UI.Button{ + text:"dx/dt" + onClicked: wanderer.physics = Wander.Position; + } + UI.Button{ + text:"dv/dt" + onClicked: wanderer.physics = Wander.Velocity; + } + UI.Button{ + text:"da/dt" + onClicked: wanderer.physics = Wander.Acceleration; + } + } } diff --git a/examples/declarative/particles/snow/snow3.qml b/examples/declarative/particles/snow/snow3.qml deleted file mode 100644 index 080bc4d1af..0000000000 --- a/examples/declarative/particles/snow/snow3.qml +++ /dev/null @@ -1,80 +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 Qt.labs.particles 2.0 - -Rectangle{ - width: 360 - height: 540 - id: root - ParticleSystem{ id: particles } - SpriteParticle{ - system: particles - sprites: Sprite{ - name: "snow" - source: "content/flake-01.png" - frames: 51 - duration: 40 - } - } - Drift{ - system: particles - anchors.fill: parent - xDrift: 200 - } - SpeedLimit{ - system: particles - anchors.fill: parent - speedLimit: 100 - } - TrailEmitter{ - system: particles - particlesPerSecond: 20 - particleDuration: 7000 - emitting: true - speed: PointVector{ y:80; yVariation: 40; } - acceleration: PointVector{ y: 4 } - particleSize: 20 - particleSizeVariation: 10 - width: parent.width - height: 40 - } -} diff --git a/examples/declarative/particles/spaceexplorer/spaceexplorer.qml b/examples/declarative/particles/spaceexplorer/spaceexplorer.qml index 091ca0a8b5..1bb3cdae02 100644 --- a/examples/declarative/particles/spaceexplorer/spaceexplorer.qml +++ b/examples/declarative/particles/spaceexplorer/spaceexplorer.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 import "content/helpers.js" as Helpers Rectangle{ @@ -75,22 +75,22 @@ Rectangle{ property bool fakeMoving: false property real fakeMovementDir: 0 - TrailEmitter{ + Emitter{ particle: "stars2" system: background - particlesPerSecond: 60 - particleDuration: 4000 + emitRate: 60 + lifeSpan: 4000 emitting: true - particleSize: 10 - particleSizeVariation: 10 + size: 10 + sizeVariation: 10 anchors.fill: parent } ParticleSystem{ id: background } - ColoredParticle{ + ImageParticle{ particles: ["stars2"] system: background anchors.fill: parent - image: "content/star.png" + source: "content/star.png" color: "white" colorVariation: 0.1 } @@ -197,29 +197,29 @@ Rectangle{ ParticleSystem{ id: foreground } - ColoredParticle{ + ImageParticle{ particles: ["stars"] anchors.fill: parent system: foreground - image: "content/star.png" + source: "content/star.png" color: "white" colorVariation: 0.1 } - ColoredParticle{ + ImageParticle{ particles: ["shot"] anchors.fill: parent system: foreground - image: "content/star.png" + source: "content/star.png" color: "orange" colorVariation: 0.3 } - ColoredParticle{ + ImageParticle{ id: engine particles: ["engine"] anchors.fill: parent system: foreground - image: "content/particle4.png" + source: "content/particle4.png" color: "orange" SequentialAnimation on color { @@ -238,30 +238,31 @@ Rectangle{ colorVariation: 0.2 } - SpriteParticle{ + ImageParticle{ particles: ["powerups"] anchors.fill: parent system: foreground - Sprite{ + sprites:[Sprite{ name: "norm" source: "content/powerupScore.png" frames: 35 duration: 40 to: {"norm":1, "got":0} - } + }, Sprite{ name: "got" source: "content/powerupScore_got.png" frames: 22 duration: 40 to: {"null":1} - } + }, Sprite{ name: "null" source: "content/powerupScore_gone.png" frames: 1 duration: 1000 } + ] } SpriteGoal{ x: rocket.x - 30 @@ -273,8 +274,9 @@ Rectangle{ onAffected: if(!gameOver) score += 1000 system: foreground } - GravitationalSingularity{ + PointAttractor{ id: gs1; x: vorteX; y: vorteY; strength: 800000; + proportionalToDistance: PointAttractor.Quadratic; system: foreground } Kill{ @@ -285,8 +287,9 @@ Rectangle{ system: foreground } - GravitationalSingularity{ + PointAttractor{ id: gs2; x: vorteX2; y: vorteY2; strength: 800000; + proportionalToDistance: PointAttractor.Quadratic; system: foreground } Kill{ @@ -297,8 +300,9 @@ Rectangle{ system: foreground } - GravitationalSingularity{ + PointAttractor{ id: gs3; x: vorteX3; y: vorteY3; strength: 800000; + proportionalToDistance: PointAttractor.Quadratic; system: foreground } Kill{ @@ -308,8 +312,9 @@ Rectangle{ height: holeSize * 2 system: foreground } - GravitationalSingularity{ + PointAttractor{ id: gs4; x: vorteX4; y: vorteY4; strength: 800000; + proportionalToDistance: PointAttractor.Quadratic; system: foreground } Kill{ @@ -319,24 +324,24 @@ Rectangle{ height: holeSize * 2 system: foreground } - TrailEmitter{ + Emitter{ particle: "powerups" system: foreground - particlesPerSecond: 1 - particleDuration: 6000 + emitRate: 1 + lifeSpan: 6000 emitting: !gameOver - particleSize: 60 - particleSizeVariation: 10 + size: 60 + sizeVariation: 10 anchors.fill: parent } - TrailEmitter{ + Emitter{ particle: "stars" system: foreground - particlesPerSecond: 40 - particleDuration: 4000 + emitRate: 40 + lifeSpan: 4000 emitting: !gameOver - particleSize: 30 - particleSizeVariation: 10 + size: 30 + sizeVariation: 10 anchors.fill: parent } SpriteImage{ @@ -374,16 +379,16 @@ Rectangle{ drag.axis: Drag.XandYAxis drag.target: rocket }, - TrailEmitter{ + Emitter{ system: foreground particle: "engine" - particlesPerSecond: 100 - particleDuration: 1000 + emitRate: 100 + lifeSpan: 1000 emitting: !gameOver - particleSize: 10 - particleEndSize: 4 - particleSizeVariation: 4 - speed: PointVector{ + size: 10 + endSize: 4 + sizeVariation: 4 + speed: PointDirection{ x: -128 * Math.cos(rocket.rotation * (Math.PI / 180)) y: -128 * Math.sin(rocket.rotation * (Math.PI / 180)) } @@ -392,14 +397,14 @@ Rectangle{ width: 4 }, - TrailEmitter{ + Emitter{ system: foreground particle: "shot" - particlesPerSecond: 16 - particleDuration: 1600 + emitRate: 16 + lifeSpan: 1600 emitting: !gameOver && shoot - particleSize: 40 - speed: PointVector{ + size: 40 + speed: PointDirection{ x: 256 * Math.cos(rocket.rotation * (Math.PI / 180)) y: 256 * Math.sin(rocket.rotation * (Math.PI / 180)) } diff --git a/examples/declarative/particles/trails/dynamicemitters.qml b/examples/declarative/particles/trails/dynamicemitters.qml index 8ea0272d94..588474fb43 100644 --- a/examples/declarative/particles/trails/dynamicemitters.qml +++ b/examples/declarative/particles/trails/dynamicemitters.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ id: root @@ -49,26 +49,26 @@ Rectangle{ ParticleSystem{ id: sys } - ColoredParticle{ + ImageParticle{ system: sys - image: "content/particle.png" + source: "content/particle.png" color: "white" colorVariation: 1.0 alpha: 0.1 } Component{ id: emitterComp - TrailEmitter{ + Emitter{ id: container - TrailEmitter{ + Emitter{ id: emitMore system: sys emitting: true - particlesPerSecond: 128 - particleDuration: 600 - particleSize: 16 - particleEndSize: 8 - speed: AngleVector{angleVariation:360; magnitude: 60} + emitRate: 128 + lifeSpan: 600 + size: 16 + endSize: 8 + speed: AngledDirection{angleVariation:360; magnitude: 60} } property int life: 2600 @@ -81,10 +81,10 @@ Rectangle{ } system: sys emitting: true - particlesPerSecond: 64 - particleDuration: 600 - particleSize: 24 - particleEndSize: 8 + emitRate: 64 + lifeSpan: 600 + size: 24 + endSize: 8 NumberAnimation on x{ id: xAnim; to: targetX diff --git a/examples/declarative/particles/trails/fireballs.qml b/examples/declarative/particles/trails/fireballs.qml index 116a2334dc..4cc2eacc25 100644 --- a/examples/declarative/particles/trails/fireballs.qml +++ b/examples/declarative/particles/trails/fireballs.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle { id: root @@ -52,35 +52,35 @@ Rectangle { } /* - ColoredParticle{ + ImageParticle{ id: fireball anchors.fill: parent particles: ["E"] system: particles - image: "content/particleA.png" + source: "content/particleA.png" colorVariation: 0.2 color: "#00ff400f" } */ - ColoredParticle{ + ImageParticle{ id: smoke system: particles anchors.fill: parent particles: ["A", "B"] - image: "content/particle.png" + source: "content/particle.png" colorVariation: 0 color: "#00111111" } - ColoredParticle{ + ImageParticle{ id: flame anchors.fill: parent system: particles particles: ["C", "D"] - image: "content/particle.png" + source: "content/particle.png" colorVariation: 0.1 color: "#00ff400f" } - TrailEmitter{ + Emitter{ id: fire system: particles particle: "C" @@ -88,15 +88,15 @@ Rectangle { y: parent.height width: parent.width - particlesPerSecond: 350 - particleDuration: 3500 + emitRate: 350 + lifeSpan: 3500 - acceleration: PointVector{ y: -17; xVariation: 3 } - speed: PointVector{xVariation: 3} + acceleration: PointDirection{ y: -17; xVariation: 3 } + speed: PointDirection{xVariation: 3} - particleSize: 24 - particleSizeVariation: 8 - particleEndSize: 4 + size: 24 + sizeVariation: 8 + endSize: 4 } FollowEmitter{ id: fireSmoke @@ -106,15 +106,15 @@ Rectangle { width: root.width height: root.height - 68 - particlesPerParticlePerSecond: 1 - particleDuration: 2000 + emitRatePerParticle: 1 + lifeSpan: 2000 - speed: PointVector{y:-17*6; yVariation: -17; xVariation: 3} - acceleration: PointVector{xVariation: 3} + speed: PointDirection{y:-17*6; yVariation: -17; xVariation: 3} + acceleration: PointDirection{xVariation: 3} - particleSize: 36 - particleSizeVariation: 8 - particleEndSize: 16 + size: 36 + sizeVariation: 8 + endSize: 16 } FollowEmitter{ id: fireballFlame @@ -123,14 +123,14 @@ Rectangle { particle: "D" follow: "E" - particlesPerParticlePerSecond: 120 - particleDuration: 180 - emissionWidth: 8 - emissionHeight: 8 + emitRatePerParticle: 120 + lifeSpan: 180 + emitWidth: 8 + emitHeight: 8 - particleSize: 16 - particleSizeVariation: 4 - particleEndSize: 4 + size: 16 + sizeVariation: 4 + endSize: 4 } FollowEmitter{ @@ -140,19 +140,19 @@ Rectangle { particle: "A" follow: "E" - particlesPerParticlePerSecond: 128 - particleDuration: 2400 - emissionWidth: 16 - emissionHeight: 16 + emitRatePerParticle: 128 + lifeSpan: 2400 + emitWidth: 16 + emitHeight: 16 - speed: PointVector{yVariation: 16; xVariation: 16} - acceleration: PointVector{y: -16} + speed: PointDirection{yVariation: 16; xVariation: 16} + acceleration: PointDirection{y: -16} - particleSize: 24 - particleSizeVariation: 8 - particleEndSize: 8 + size: 24 + sizeVariation: 8 + endSize: 8 } - TrailEmitter{ + Emitter{ id: balls system: particles particle: "E" @@ -160,14 +160,14 @@ Rectangle { y: parent.height width: parent.width - particlesPerSecond: 2 - particleDuration: 7000 + emitRate: 2 + lifeSpan: 7000 - speed: PointVector{y:-17*4*2; xVariation: 6*6} - acceleration: PointVector{y: 17*2; xVariation: 6*6} + speed: PointDirection{y:-17*4*2; xVariation: 6*6} + acceleration: PointDirection{y: 17*2; xVariation: 6*6} - particleSize: 12 - particleSizeVariation: 4 + size: 12 + sizeVariation: 4 } } diff --git a/examples/declarative/particles/trails/layered.qml b/examples/declarative/particles/trails/layered.qml index 38eb8e67dc..d4a823b556 100644 --- a/examples/declarative/particles/trails/layered.qml +++ b/examples/declarative/particles/trails/layered.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ id: root @@ -55,30 +55,26 @@ Rectangle{ id: sys startTime: 4000 } - TrailEmitter{ + Emitter{ system: sys y:root.height + 20 width: root.width - particlesPerSecond: 200 - particleDuration: 4000 - speed: PointVector{ y: -120; } + emitRate: 200 + lifeSpan: 4000 + speed: PointDirection{ y: -120; } } - SpriteParticle{ + ImageParticle{ system: sys visible: !cloneMode - Sprite{ - source: "content/particle2.png" - } + source: "content/particle2.png" } - SpriteParticle{ + ImageParticle{ system: sys visible: cloneMode z: 0 - Sprite{ - source: "content/particle3.png" - } + source: "content/particle3.png" } - SpriteParticle{ + ImageParticle{ system: sys clip: true visible: cloneMode @@ -86,8 +82,6 @@ Rectangle{ height: 240 width: root.width z: 1 - Sprite{ - source: "content/particle.png" - } + source: "content/particle.png" } } diff --git a/examples/declarative/particles/trails/list.qml b/examples/declarative/particles/trails/list.qml index 2ab579f126..7e8fb44003 100644 --- a/examples/declarative/particles/trails/list.qml +++ b/examples/declarative/particles/trails/list.qml @@ -43,18 +43,18 @@ // highlight bar is moved between items. + Particles. import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 import "content" Rectangle { width: 200; height: 300 color: "black" ParticleSystem{ id: particles } - ColoredParticle{ + ImageParticle{ anchors.fill: parent system: particles z: 10 - image: "content/star.png" + source: "content/star.png" color: "white" colorVariation: 0.0 } @@ -92,14 +92,14 @@ Rectangle { y: listView.currentItem.y; //Behavior on y { SpringAnimation { spring: 2; damping: 0.1 } } Behavior on y { NumberAnimation {id: anim} } - TrailEmitter{ + Emitter{ anchors.fill: parent system: particles; emitting: anim.running - particlesPerSecond: 600 - particleDuration: 600 - particleSize: 16 - particleEndSize: 8 + emitRate: 600 + lifeSpan: 600 + size: 16 + endSize: 8 } } } diff --git a/examples/declarative/particles/trails/overburst.qml b/examples/declarative/particles/trails/overburst.qml index 6ca15972a4..c3129a1d72 100644 --- a/examples/declarative/particles/trails/overburst.qml +++ b/examples/declarative/particles/trails/overburst.qml @@ -39,34 +39,34 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ color: "black" width: 360 height: 540 ParticleSystem{ id: sys } - ColoredParticle{ + ImageParticle{ system: sys id: cp - image: "content/particle.png" + source: "content/particle.png" colorVariation: 0.4 color: "#000000FF" } - TrailEmitter{ + Emitter{ //burst on click id: bursty system: sys emitting: ma.pressed x: ma.mouseX y: ma.mouseY - particlesPerSecond: 16000 - particleDuration: 1000 - maxParticles: 4000 - acceleration: AngleVector{angleVariation: 360; magnitude: 360; } - particleSize: 8 - particleEndSize: 16 - particleSizeVariation: 4 + emitRate: 16000 + lifeSpan: 1000 + emitCap: 4000 + acceleration: AngledDirection{angleVariation: 360; magnitude: 360; } + size: 8 + endSize: 16 + sizeVariation: 4 } MouseArea{ anchors.fill: parent diff --git a/examples/declarative/particles/trails/portal.qml b/examples/declarative/particles/trails/portal.qml index dba2e59513..8cf323b0f5 100644 --- a/examples/declarative/particles/trails/portal.qml +++ b/examples/declarative/particles/trails/portal.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ id: root @@ -54,51 +54,51 @@ Rectangle{ id: particles startTime: 2000 } - ColoredParticle{ + ImageParticle{ particles: ["center","edge"] anchors.fill: parent system: particles - image: "content/particle.png" + source: "content/particle.png" colorVariation: 0.1 color: "#009999FF" } - TrailEmitter{ + Emitter{ anchors.fill: parent particle: "center" system: particles - particlesPerSecond: 200 - particleDuration: 2000 + emitRate: 200 + lifeSpan: 2000 emitting: true - particleSize: 20 - particleSizeVariation: 2 - particleEndSize: 0 - shape: Ellipse{fill: false} - speed: DirectedVector{ + size: 20 + sizeVariation: 2 + endSize: 0 + shape: EllipseShape{fill: false} + speed: TargetedDirection{ targetX: root.width/2 targetY: root.height/2 proportionalMagnitude: true magnitude: 0.5 } } - TrailEmitter{ + Emitter{ anchors.fill: parent particle: "edge" system: particles - particlesPerSecond: 4000 - particleDuration: 2000 + emitRate: 4000 + lifeSpan: 2000 emitting: true - particleSize: 20 - particleSizeVariation: 2 - particleEndSize: 0 - shape: Ellipse{fill: false} - speed: DirectedVector{ + size: 20 + sizeVariation: 2 + endSize: 0 + shape: EllipseShape{fill: false} + speed: TargetedDirection{ targetX: root.width/2 targetY: root.height/2 proportionalMagnitude: true magnitude: 0.1 magnitudeVariation: 0.1 } - acceleration: DirectedVector{ + acceleration: TargetedDirection{ targetX: root.width/2 targetY: root.height/2 targetVariation: 200 diff --git a/examples/declarative/particles/trails/rainbow.qml b/examples/declarative/particles/trails/rainbow.qml index 6c64929668..c0b61bf89e 100644 --- a/examples/declarative/particles/trails/rainbow.qml +++ b/examples/declarative/particles/trails/rainbow.qml @@ -38,7 +38,7 @@ ** ****************************************************************************/ -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 import QtQuick 2.0 Rectangle { @@ -48,19 +48,19 @@ Rectangle { color: "black" ParticleSystem{ id: particles } - ColoredParticle{ + ImageParticle{ system: particles colorVariation: 0.5 alpha: 0 - image: "content/particle.png" + source: "content/particle.png" colorTable: "content/colortable.png" sizeTable: "content/colortable.png" } - TrailEmitter{ + Emitter{ system: particles - particlesPerSecond: 500 - particleDuration: 2000 + emitRate: 500 + lifeSpan: 2000 y: root.height / 2 + Math.sin(t * 2) * root.height * 0.3 x: root.width / 2 + Math.cos(t) * root.width * 0.3 @@ -72,11 +72,11 @@ Rectangle { speedFromMovement: 20 - speed: PointVector{ xVariation: 5; yVariation: 5;} - acceleration: PointVector{ xVariation: 5; yVariation: 5;} + speed: PointDirection{ xVariation: 5; yVariation: 5;} + acceleration: PointDirection{ xVariation: 5; yVariation: 5;} - particleSize: 16 - //particleEndSize: 8 - //particleSizeVariation: 8 + size: 16 + //endSize: 8 + //sizeVariation: 8 } } diff --git a/examples/declarative/particles/trails/shimmer.qml b/examples/declarative/particles/trails/shimmer.qml index 06f599d97a..2bd4f6980f 100644 --- a/examples/declarative/particles/trails/shimmer.qml +++ b/examples/declarative/particles/trails/shimmer.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ width: 360 @@ -53,21 +53,21 @@ Rectangle{ id: particles running: false } - ColoredParticle{ + ImageParticle{ anchors.fill: parent system: particles - image: "content/star.png" + source: "content/star.png" sizeTable: "content/sparkleSize.png" alpha: 0 colorVariation: 0.6 } - TrailEmitter{ + Emitter{ anchors.fill: parent system: particles - particlesPerSecond: 2000 - particleDuration: 2000 + emitRate: 2000 + lifeSpan: 2000 emitting: true - particleSize: 30 - particleSizeVariation: 10 + size: 30 + sizeVariation: 10 } } diff --git a/examples/declarative/particles/trails/trails.qml b/examples/declarative/particles/trails/trails.qml index 58d369c8d5..689de4eb41 100644 --- a/examples/declarative/particles/trails/trails.qml +++ b/examples/declarative/particles/trails/trails.qml @@ -39,44 +39,44 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ color: "black" width: 360 height: 540 ParticleSystem{ id: sys } - ColoredParticle{ + ImageParticle{ system: sys id: cp - image: "content/particle.png" + source: "content/particle.png" color: "#00FFFFFF" colorVariation: 0.4 } - TrailEmitter{ + Emitter{ //burst on click id: bursty system: sys emitting: false - particlesPerSecond: 2000 - particleDuration: 500 - acceleration: AngleVector{ angle: 90; angleVariation: 360; magnitude: 640; } - particleSize: 8 - particleEndSize: 16 - particleSizeVariation: 4 + emitRate: 2000 + lifeSpan: 500 + acceleration: AngledDirection{ angle: 90; angleVariation: 360; magnitude: 640; } + size: 8 + endSize: 16 + sizeVariation: 4 } - TrailEmitter{ + Emitter{ system: sys speedFromMovement: 4.0 emitting: ma.pressed x: ma.mouseX y: ma.mouseY - particlesPerSecond: 400 - particleDuration: 2000 - acceleration: AngleVector{ angle: 90; angleVariation: 22; magnitude: 32; } - particleSize: 8 - particleEndSize: 16 - particleSizeVariation: 8 + emitRate: 400 + lifeSpan: 2000 + acceleration: AngledDirection{ angle: 90; angleVariation: 22; magnitude: 32; } + size: 8 + endSize: 16 + sizeVariation: 8 } MouseArea{ id: ma diff --git a/examples/declarative/particles/trails/turbulence.qml b/examples/declarative/particles/trails/turbulence.qml index 7da50464c2..6159b3e9c9 100644 --- a/examples/declarative/particles/trails/turbulence.qml +++ b/examples/declarative/particles/trails/turbulence.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle{ width: 360 @@ -66,32 +66,32 @@ Rectangle{ frequency: 64 gridSize: 16 } - ColoredParticle{ + ImageParticle{ particles: ["smoke"] system: ps - image: "content/particle.png" + source: "content/particle.png" color: "#11111111" colorVariation: 0 } - ColoredParticle{ + ImageParticle{ particles: ["flame"] system: ps - image: "content/particle.png" + source: "content/particle.png" color: "#11ff400f" colorVariation: 0.1 } - TrailEmitter{ + Emitter{ anchors.centerIn: parent system: ps particle: "flame" - particlesPerSecond: 120 - particleDuration: 1200 - particleSize: 20 - particleEndSize: 10 - particleSizeVariation: 10 - acceleration: PointVector{ y: -40 } - speed: AngleVector{ angle: 270; magnitude: 20; angleVariation: 22; magnitudeVariation: 5 } + emitRate: 120 + lifeSpan: 1200 + size: 20 + endSize: 10 + sizeVariation: 10 + acceleration: PointDirection{ y: -40 } + speed: AngledDirection{ angle: 270; magnitude: 20; angleVariation: 22; magnitudeVariation: 5 } } FollowEmitter{ id: smoke1 @@ -101,14 +101,14 @@ Rectangle{ particle: "smoke" follow: "flame" - particlesPerParticlePerSecond: 4 - particleDuration: 2400 - particleDurationVariation: 400 - particleSize: 16 - particleEndSize: 8 - particleSizeVariation: 8 - acceleration: PointVector{ y: -40 } - speed: AngleVector{ angle: 270; magnitude: 40; angleVariation: 22; magnitudeVariation: 5 } + emitRatePerParticle: 4 + lifeSpan: 2400 + lifeSpanVariation: 400 + size: 16 + endSize: 8 + sizeVariation: 8 + acceleration: PointDirection{ y: -40 } + speed: AngledDirection{ angle: 270; magnitude: 40; angleVariation: 22; magnitudeVariation: 5 } } FollowEmitter{ id: smoke2 @@ -118,12 +118,12 @@ Rectangle{ particle: "smoke" follow: "flame" - particlesPerParticlePerSecond: 1 - particleDuration: 2400 - particleSize: 36 - particleEndSize: 24 - particleSizeVariation: 8 - acceleration: PointVector{ y: -40 } - speed: AngleVector{ angle: 270; magnitude: 40; angleVariation: 22; magnitudeVariation: 5 } + emitRatePerParticle: 1 + lifeSpan: 2400 + size: 36 + endSize: 24 + sizeVariation: 8 + acceleration: PointDirection{ y: -40 } + speed: AngledDirection{ angle: 270; magnitude: 40; angleVariation: 22; magnitudeVariation: 5 } } } diff --git a/examples/declarative/particles/trails/velocityfrommotion.qml b/examples/declarative/particles/trails/velocityfrommotion.qml index 3692410853..d361c99f89 100644 --- a/examples/declarative/particles/trails/velocityfrommotion.qml +++ b/examples/declarative/particles/trails/velocityfrommotion.qml @@ -39,7 +39,7 @@ ****************************************************************************/ import QtQuick 2.0 -import Qt.labs.particles 2.0 +import QtQuick.Particles 2.0 Rectangle { @@ -75,9 +75,9 @@ Rectangle { } ParticleSystem{ id: sys1 } - ColoredParticle{ + ImageParticle{ system: sys1 - image: "content/particle.png" + source: "content/particle.png" color: "cyan" alpha: 0 SequentialAnimation on color { @@ -105,26 +105,26 @@ Rectangle { } colorVariation: 0.3 } - TrailEmitter{ + Emitter{ id: trailsNormal system: sys1 - particlesPerSecond: 500 - particleDuration: 2000 + emitRate: 500 + lifeSpan: 2000 y: mouseArea.pressed ? mouseArea.mouseY : circle.cy x: mouseArea.pressed ? mouseArea.mouseX : circle.cx - speed: PointVector{xVariation: 4; yVariation: 4;} - acceleration: PointVector{xVariation: 10; yVariation: 10;} + speed: PointDirection{xVariation: 4; yVariation: 4;} + acceleration: PointDirection{xVariation: 10; yVariation: 10;} speedFromMovement: 8 - particleSize: 8 - particleSizeVariation: 4 + size: 8 + sizeVariation: 4 } ParticleSystem { id: sys2 } - ColoredParticle{ + ImageParticle{ color: "cyan" system: sys2 alpha: 0 @@ -142,29 +142,29 @@ Rectangle { } } colorVariation: 0.5 - image: "content/star.png" + source: "content/star.png" } - TrailEmitter{ + Emitter{ id: trailsStars system: sys2 - particlesPerSecond: 100 - particleDuration: 2200 + emitRate: 100 + lifeSpan: 2200 y: mouseArea.pressed ? mouseArea.mouseY : circle.cy x: mouseArea.pressed ? mouseArea.mouseX : circle.cx - speed: PointVector{xVariation: 4; yVariation: 4;} - acceleration: PointVector{xVariation: 10; yVariation: 10;} + speed: PointDirection{xVariation: 4; yVariation: 4;} + acceleration: PointDirection{xVariation: 10; yVariation: 10;} speedFromMovement: 8 - particleSize: 22 - particleSizeVariation: 4 + size: 22 + sizeVariation: 4 } ParticleSystem { id: sys3; } - ColoredParticle{ - image: "content/particle.png" + ImageParticle{ + source: "content/particle.png" system: sys3 color: "orange" alpha: 0 @@ -185,28 +185,28 @@ Rectangle { colorVariation: 0.2 } - TrailEmitter{ + Emitter{ id: trailsNormal2 system: sys3 - particlesPerSecond: 300 - particleDuration: 2000 + emitRate: 300 + lifeSpan: 2000 y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx speedFromMovement: 16 - speed: PointVector{xVariation: 4; yVariation: 4;} - acceleration: PointVector{xVariation: 10; yVariation: 10;} + speed: PointDirection{xVariation: 4; yVariation: 4;} + acceleration: PointDirection{xVariation: 10; yVariation: 10;} - particleSize: 12 - particleSizeVariation: 4 + size: 12 + sizeVariation: 4 } ParticleSystem { id: sys4; } - ColoredParticle{ + ImageParticle{ system: sys4 - image: "content/star.png" + source: "content/star.png" color: "green" alpha: 0 SequentialAnimation on color { @@ -225,23 +225,23 @@ Rectangle { colorVariation: 0.5 } - TrailEmitter{ + Emitter{ id: trailsStars2 system: sys4 - particlesPerSecond: 50 - particleDuration: 2200 + emitRate: 50 + lifeSpan: 2200 y: mouseArea.pressed ? mouseArea.mouseY : circle2.cy x: mouseArea.pressed ? mouseArea.mouseX : circle2.cx speedFromMovement: 16 - speed: PointVector{xVariation: 2; yVariation: 2;} - acceleration: PointVector{xVariation: 10; yVariation: 10;} + speed: PointDirection{xVariation: 2; yVariation: 2;} + acceleration: PointDirection{xVariation: 10; yVariation: 10;} - particleSize: 22 - particleSizeVariation: 4 + size: 22 + sizeVariation: 4 } diff --git a/examples/declarative/positioners/main.cpp b/examples/declarative/positioners/main.cpp index 1338c66b9e..fe93a52c06 100644 --- a/examples/declarative/positioners/main.cpp +++ b/examples/declarative/positioners/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/positioners/qml/positioners.qmlproject b/examples/declarative/positioners/qml/positioners.qmlproject deleted file mode 100644 index e5262175c5..0000000000 --- a/examples/declarative/positioners/qml/positioners.qmlproject +++ /dev/null @@ -1,18 +0,0 @@ -/* File generated by QtCreator */ - -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/positioners/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/positioners/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/positioners/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/positioners/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/positioners/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/positioners/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/positioners/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/positioners/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/sqllocalstorage/sqllocalstorage.qmlproject b/examples/declarative/sqllocalstorage/sqllocalstorage.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/sqllocalstorage/sqllocalstorage.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/text/fonts/availableFonts/qml/fonts.qmlproject b/examples/declarative/text/fonts/availableFonts/qml/fonts.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/text/fonts/availableFonts/qml/fonts.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/text/fonts/banner/main.cpp b/examples/declarative/text/fonts/banner/main.cpp index 06e26b55bf..a61e2724e5 100644 --- a/examples/declarative/text/fonts/banner/main.cpp +++ b/examples/declarative/text/fonts/banner/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/text/fonts/banner/qml/fonts.qmlproject b/examples/declarative/text/fonts/banner/qml/fonts.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/text/fonts/banner/qml/fonts.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/text/fonts/banner/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/text/fonts/banner/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/text/fonts/banner/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/text/fonts/banner/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/text/fonts/banner/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/text/fonts/banner/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/text/fonts/banner/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/text/fonts/banner/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/text/fonts/fonts/main.cpp b/examples/declarative/text/fonts/fonts/main.cpp index 95d12998b6..4b70cac690 100644 --- a/examples/declarative/text/fonts/fonts/main.cpp +++ b/examples/declarative/text/fonts/fonts/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/text/fonts/fonts/qml/fonts.qmlproject b/examples/declarative/text/fonts/fonts/qml/fonts.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/text/fonts/fonts/qml/fonts.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/text/fonts/fonts/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/text/fonts/fonts/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/text/fonts/fonts/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/text/fonts/fonts/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/text/fonts/fonts/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/text/fonts/fonts/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/text/fonts/fonts/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/text/fonts/fonts/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/text/fonts/hello/main.cpp b/examples/declarative/text/fonts/hello/main.cpp index 293d7da646..ad9494a62e 100644 --- a/examples/declarative/text/fonts/hello/main.cpp +++ b/examples/declarative/text/fonts/hello/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/text/fonts/hello/qml/fonts.qmlproject b/examples/declarative/text/fonts/hello/qml/fonts.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/text/fonts/hello/qml/fonts.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/text/fonts/hello/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/text/fonts/hello/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/text/fonts/hello/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/text/fonts/hello/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/text/fonts/hello/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/text/fonts/hello/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/text/fonts/hello/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/text/fonts/hello/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/text/textselection/main.cpp b/examples/declarative/text/textselection/main.cpp index 4b670b6d42..94227ff2af 100644 --- a/examples/declarative/text/textselection/main.cpp +++ b/examples/declarative/text/textselection/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/text/textselection/qml/textselection.qmlproject b/examples/declarative/text/textselection/qml/textselection.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/text/textselection/qml/textselection.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/text/textselection/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/text/textselection/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/text/textselection/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/text/textselection/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/text/textselection/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/text/textselection/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/text/textselection/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/text/textselection/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/touchinteraction/gestures/experimental-gestures/main.cpp b/examples/declarative/touchinteraction/gestures/experimental-gestures/main.cpp index bdbf6a7c16..08268613a8 100644 --- a/examples/declarative/touchinteraction/gestures/experimental-gestures/main.cpp +++ b/examples/declarative/touchinteraction/gestures/experimental-gestures/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/touchinteraction/gestures/experimental-gestures/qml/gestures.qmlproject b/examples/declarative/touchinteraction/gestures/experimental-gestures/qml/gestures.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/touchinteraction/gestures/experimental-gestures/qml/gestures.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/touchinteraction/gestures/experimental-gestures/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/touchinteraction/gestures/experimental-gestures/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/touchinteraction/gestures/experimental-gestures/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/touchinteraction/gestures/experimental-gestures/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/touchinteraction/gestures/experimental-gestures/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/touchinteraction/gestures/experimental-gestures/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/touchinteraction/gestures/experimental-gestures/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/touchinteraction/gestures/experimental-gestures/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/touchinteraction/mousearea/mousearea-example/main.cpp b/examples/declarative/touchinteraction/mousearea/mousearea-example/main.cpp index 6c3c47ed9d..db7fd5ab2d 100644 --- a/examples/declarative/touchinteraction/mousearea/mousearea-example/main.cpp +++ b/examples/declarative/touchinteraction/mousearea/mousearea-example/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/touchinteraction/mousearea/mousearea-example/qml/mousearea.qmlproject b/examples/declarative/touchinteraction/mousearea/mousearea-example/qml/mousearea.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/touchinteraction/mousearea/mousearea-example/qml/mousearea.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/touchinteraction/mousearea/mousearea-example/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/touchinteraction/mousearea/mousearea-example/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/touchinteraction/mousearea/mousearea-example/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/touchinteraction/mousearea/mousearea-example/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/touchinteraction/mousearea/mousearea-example/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/touchinteraction/mousearea/mousearea-example/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/touchinteraction/mousearea/mousearea-example/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/touchinteraction/mousearea/mousearea-example/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/toys/clocks/main.cpp b/examples/declarative/toys/clocks/main.cpp index 2952238109..09055d1a52 100644 --- a/examples/declarative/toys/clocks/main.cpp +++ b/examples/declarative/toys/clocks/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/toys/clocks/qml/clocks.qmlproject b/examples/declarative/toys/clocks/qml/clocks.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/toys/clocks/qml/clocks.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/toys/clocks/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/toys/clocks/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/toys/clocks/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/toys/clocks/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/toys/clocks/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/toys/clocks/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/toys/clocks/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/toys/clocks/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/toys/corkboards/main.cpp b/examples/declarative/toys/corkboards/main.cpp index 38eb7122b5..984ca0f599 100644 --- a/examples/declarative/toys/corkboards/main.cpp +++ b/examples/declarative/toys/corkboards/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/toys/corkboards/qml/corkboards.qmlproject b/examples/declarative/toys/corkboards/qml/corkboards.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/toys/corkboards/qml/corkboards.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/toys/corkboards/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/toys/corkboards/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/toys/corkboards/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/toys/corkboards/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/toys/corkboards/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/toys/corkboards/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/toys/corkboards/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/toys/corkboards/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/toys/dynamicscene/dynamicscene.qml b/examples/declarative/toys/dynamicscene/dynamicscene.qml index a436b41b88..174204768a 100644 --- a/examples/declarative/toys/dynamicscene/dynamicscene.qml +++ b/examples/declarative/toys/dynamicscene/dynamicscene.qml @@ -147,27 +147,27 @@ Item { PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "Sun.qml" - image: "../images/sun.png" + source: "../images/sun.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "GenericSceneItem.qml" - image: "../images/moon.png" + source: "../images/moon.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "PerspectiveItem.qml" - image: "../images/tree_s.png" + source: "../images/tree_s.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "PerspectiveItem.qml" - image: "../images/rabbit_brown.png" + source: "../images/rabbit_brown.png" } PaletteItem { anchors.verticalCenter: parent.verticalCenter componentFile: "PerspectiveItem.qml" - image: "../images/rabbit_bw.png" + source: "../images/rabbit_bw.png" } } } diff --git a/examples/declarative/toys/dynamicscene/main.cpp b/examples/declarative/toys/dynamicscene/main.cpp index 77e279ff0a..5dfbb60066 100644 --- a/examples/declarative/toys/dynamicscene/main.cpp +++ b/examples/declarative/toys/dynamicscene/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/toys/dynamicscene/qml/Sun.qml b/examples/declarative/toys/dynamicscene/qml/Sun.qml index d632461262..df3246d356 100644 --- a/examples/declarative/toys/dynamicscene/qml/Sun.qml +++ b/examples/declarative/toys/dynamicscene/qml/Sun.qml @@ -44,7 +44,7 @@ Image { id: sun property bool created: false - property string image: "../images/sun.png" + property string source: "../images/sun.png" source: image diff --git a/examples/declarative/toys/dynamicscene/qml/dynamicscene.qmlproject b/examples/declarative/toys/dynamicscene/qml/dynamicscene.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/toys/dynamicscene/qml/dynamicscene.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/toys/dynamicscene/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/toys/dynamicscene/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/toys/dynamicscene/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/toys/dynamicscene/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/toys/dynamicscene/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/toys/dynamicscene/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/toys/dynamicscene/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/toys/dynamicscene/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/toys/tic-tac-toe/main.cpp b/examples/declarative/toys/tic-tac-toe/main.cpp index 269c43505c..5804d67961 100644 --- a/examples/declarative/toys/tic-tac-toe/main.cpp +++ b/examples/declarative/toys/tic-tac-toe/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/toys/tic-tac-toe/qml/tic-tac-toe.qmlproject b/examples/declarative/toys/tic-tac-toe/qml/tic-tac-toe.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/toys/tic-tac-toe/qml/tic-tac-toe.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/toys/tic-tac-toe/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/toys/tic-tac-toe/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/toys/tic-tac-toe/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/toys/tic-tac-toe/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/toys/tic-tac-toe/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/toys/tic-tac-toe/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/toys/tic-tac-toe/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/toys/tic-tac-toe/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/toys/tvtennis/main.cpp b/examples/declarative/toys/tvtennis/main.cpp index e4c28e0561..e5329b6e82 100644 --- a/examples/declarative/toys/tvtennis/main.cpp +++ b/examples/declarative/toys/tvtennis/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/toys/tvtennis/qml/tvtennis.qmlproject b/examples/declarative/toys/tvtennis/qml/tvtennis.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/toys/tvtennis/qml/tvtennis.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/toys/tvtennis/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/toys/tvtennis/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/toys/tvtennis/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/toys/tvtennis/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/toys/tvtennis/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/toys/tvtennis/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/toys/tvtennis/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/toys/tvtennis/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/tutorials/extending/chapter6-plugins/chapter6-plugins.pro b/examples/declarative/tutorials/extending/chapter6-plugins/chapter6-plugins.pro index 16c16e3311..aa1fb0129b 100644 --- a/examples/declarative/tutorials/extending/chapter6-plugins/chapter6-plugins.pro +++ b/examples/declarative/tutorials/extending/chapter6-plugins/chapter6-plugins.pro @@ -18,4 +18,4 @@ symbian { CONFIG += qt_example TARGET.EPOCALLOWDLLDATA = 1 } -maemo5: include($$QT_SOURCE_TREE/examples/maemo5pkgrules.pri) +maemo5: CONFIG += qt_example diff --git a/examples/declarative/ui-components/dialcontrol/main.cpp b/examples/declarative/ui-components/dialcontrol/main.cpp index f5f550832e..8b7bb6abf3 100644 --- a/examples/declarative/ui-components/dialcontrol/main.cpp +++ b/examples/declarative/ui-components/dialcontrol/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/ui-components/dialcontrol/qml/dialcontrol.qmlproject b/examples/declarative/ui-components/dialcontrol/qml/dialcontrol.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/ui-components/dialcontrol/qml/dialcontrol.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/ui-components/dialcontrol/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/ui-components/dialcontrol/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/ui-components/dialcontrol/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/ui-components/dialcontrol/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/ui-components/dialcontrol/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/ui-components/dialcontrol/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/ui-components/dialcontrol/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/ui-components/dialcontrol/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/ui-components/flipable/content/Card.qml b/examples/declarative/ui-components/flipable/content/Card.qml index 6374dd8eda..6574733abb 100644 --- a/examples/declarative/ui-components/flipable/content/Card.qml +++ b/examples/declarative/ui-components/flipable/content/Card.qml @@ -43,7 +43,7 @@ import QtQuick 1.0 Flipable { id: container - property alias image: frontImage.source + property alias source: frontImage.source property bool flipped: true property int xAxis: 0 property int yAxis: 0 diff --git a/examples/declarative/ui-components/flipable/flipable.qml b/examples/declarative/ui-components/flipable/flipable.qml index 6d0235ecb4..3b23aa0d69 100644 --- a/examples/declarative/ui-components/flipable/flipable.qml +++ b/examples/declarative/ui-components/flipable/flipable.qml @@ -49,7 +49,7 @@ Rectangle { Row { anchors.centerIn: parent; spacing: 30 - Card { image: "content/9_club.png"; angle: 180; yAxis: 1 } - Card { image: "content/5_heart.png"; angle: 540; xAxis: 1 } + Card { source: "content/9_club.png"; angle: 180; yAxis: 1 } + Card { source: "content/5_heart.png"; angle: 540; xAxis: 1 } } } diff --git a/examples/declarative/ui-components/flipable/main.cpp b/examples/declarative/ui-components/flipable/main.cpp index c4ea8b855c..feb8121241 100644 --- a/examples/declarative/ui-components/flipable/main.cpp +++ b/examples/declarative/ui-components/flipable/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/ui-components/flipable/qml/flipable.qmlproject b/examples/declarative/ui-components/flipable/qml/flipable.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/ui-components/flipable/qml/flipable.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/ui-components/flipable/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/ui-components/flipable/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/ui-components/flipable/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/ui-components/flipable/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/ui-components/flipable/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/ui-components/flipable/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/ui-components/flipable/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/ui-components/flipable/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/ui-components/main/main.cpp b/examples/declarative/ui-components/main/main.cpp index 6679628870..d60f16d2d2 100644 --- a/examples/declarative/ui-components/main/main.cpp +++ b/examples/declarative/ui-components/main/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/ui-components/main/qml/progressbar.qmlproject b/examples/declarative/ui-components/main/qml/progressbar.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/ui-components/main/qml/progressbar.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/ui-components/main/qml/scrollbar.qmlproject b/examples/declarative/ui-components/main/qml/scrollbar.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/ui-components/main/qml/scrollbar.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/ui-components/main/qml/searchbox.qmlproject b/examples/declarative/ui-components/main/qml/searchbox.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/ui-components/main/qml/searchbox.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/ui-components/main/qml/spinner.qmlproject b/examples/declarative/ui-components/main/qml/spinner.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/ui-components/main/qml/spinner.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/ui-components/main/qml/tabwidget.qmlproject b/examples/declarative/ui-components/main/qml/tabwidget.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/ui-components/main/qml/tabwidget.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/ui-components/main/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/ui-components/main/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/ui-components/main/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/ui-components/main/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/ui-components/main/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/ui-components/main/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/ui-components/main/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/ui-components/main/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/ui-components/progressbar/main.cpp b/examples/declarative/ui-components/progressbar/main.cpp index d10bcd1525..be38af0784 100644 --- a/examples/declarative/ui-components/progressbar/main.cpp +++ b/examples/declarative/ui-components/progressbar/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/ui-components/progressbar/qml/progressbar.qmlproject b/examples/declarative/ui-components/progressbar/qml/progressbar.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/ui-components/progressbar/qml/progressbar.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/ui-components/progressbar/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/ui-components/progressbar/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/ui-components/progressbar/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/ui-components/progressbar/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/ui-components/progressbar/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/ui-components/progressbar/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/ui-components/progressbar/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/ui-components/progressbar/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/ui-components/slideswitch/main.cpp b/examples/declarative/ui-components/slideswitch/main.cpp index a419c9dde9..ca3ffe9ef4 100644 --- a/examples/declarative/ui-components/slideswitch/main.cpp +++ b/examples/declarative/ui-components/slideswitch/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/ui-components/slideswitch/qml/slideswitch.qmlproject b/examples/declarative/ui-components/slideswitch/qml/slideswitch.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/ui-components/slideswitch/qml/slideswitch.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/ui-components/slideswitch/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/ui-components/slideswitch/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/ui-components/slideswitch/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/ui-components/slideswitch/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/ui-components/slideswitch/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/ui-components/slideswitch/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/ui-components/slideswitch/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/ui-components/slideswitch/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/xml/xmlhttprequest-example/main.cpp b/examples/declarative/xml/xmlhttprequest-example/main.cpp index 037f551217..fd768daa36 100644 --- a/examples/declarative/xml/xmlhttprequest-example/main.cpp +++ b/examples/declarative/xml/xmlhttprequest-example/main.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + #include <QtGui/QApplication> #include "qmlapplicationviewer.h" diff --git a/examples/declarative/xml/xmlhttprequest-example/qml/xmlhttprequest.qmlproject b/examples/declarative/xml/xmlhttprequest-example/qml/xmlhttprequest.qmlproject deleted file mode 100644 index d4909f8685..0000000000 --- a/examples/declarative/xml/xmlhttprequest-example/qml/xmlhttprequest.qmlproject +++ /dev/null @@ -1,16 +0,0 @@ -import QmlProject 1.0 - -Project { - /* Include .qml, .js, and image files from current directory and subdirectories */ - QmlFiles { - directory: "." - } - JavaScriptFiles { - directory: "." - } - ImageFiles { - directory: "." - } - /* List of plugin directories passed to QML runtime */ - // importPaths: [ " ../exampleplugin " ] -} diff --git a/examples/declarative/xml/xmlhttprequest-example/qmlapplicationviewer/qmlapplicationviewer.cpp b/examples/declarative/xml/xmlhttprequest-example/qmlapplicationviewer/qmlapplicationviewer.cpp index 11bedd1914..411a04c139 100644 --- a/examples/declarative/xml/xmlhttprequest-example/qmlapplicationviewer/qmlapplicationviewer.cpp +++ b/examples/declarative/xml/xmlhttprequest-example/qmlapplicationviewer/qmlapplicationviewer.cpp @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x28c7 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/examples/declarative/xml/xmlhttprequest-example/qmlapplicationviewer/qmlapplicationviewer.h b/examples/declarative/xml/xmlhttprequest-example/qmlapplicationviewer/qmlapplicationviewer.h index 143c17b802..f5b24b0199 100644 --- a/examples/declarative/xml/xmlhttprequest-example/qmlapplicationviewer/qmlapplicationviewer.h +++ b/examples/declarative/xml/xmlhttprequest-example/qmlapplicationviewer/qmlapplicationviewer.h @@ -1,3 +1,43 @@ +/**************************************************************************** +** +** 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 QtCore module 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$ +** +****************************************************************************/ + // checksum 0x5a59 version 0x2000a /* This file was generated by the Qt Quick Application wizard of Qt Creator. diff --git a/src/declarative/declarative.pro b/src/declarative/declarative.pro index bc3dbbb9c4..5cb1d9570c 100644 --- a/src/declarative/declarative.pro +++ b/src/declarative/declarative.pro @@ -19,7 +19,7 @@ exists("qdeclarative_enable_gcov") { LIBS += -lgcov } -include($$QT_SOURCE_TREE/src/qbase.pri) +load(qt_module_config) HEADERS += qtdeclarativeversion.h @@ -33,6 +33,7 @@ include(qml/qml.pri) include(debugger/debugger.pri) include(scenegraph/scenegraph.pri) include(items/items.pri) +include(particles/particles.pri) symbian: { TARGET.UID3=0x2001E623 diff --git a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp index b7fcbb546e..8787a5ed68 100644 --- a/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp +++ b/src/declarative/graphicsitems/qdeclarativeanimatedimage.cpp @@ -87,6 +87,32 @@ QT_BEGIN_NAMESPACE */ /*! + \qmlproperty url AnimatedImage::source + + This property holds the URL that refers to the source image. + + AnimatedImage can handle any image format supported by Qt, loaded from any + URL scheme supported by Qt. + + \sa QDeclarativeImageProvider +*/ + +/*! + \qmlproperty bool AnimatedImage::asynchronous + + Specifies that images on the local filesystem should be loaded + asynchronously in a separate thread. The default value is + false, causing the user interface thread to block while the + image is loaded. Setting \a asynchronous to true is useful where + maintaining a responsive user interface is more desirable + than having images immediately visible. + + Note that this property is only valid for images read from the + local filesystem. Images loaded via a network resource (e.g. HTTP) + are always loaded asynchonously. +*/ + +/*! \qmlproperty bool AnimatedImage::cache \since Quick 1.1 diff --git a/src/declarative/items/items.pri b/src/declarative/items/items.pri index d6942973cd..f29a82e77e 100644 --- a/src/declarative/items/items.pri +++ b/src/declarative/items/items.pri @@ -61,6 +61,9 @@ HEADERS += \ $$PWD/qsgcanvasitem_p.h \ $$PWD/qsgcontext2d_p.h \ $$PWD/qsgcontext2d_p_p.h \ + $$PWD/qsgspriteengine_p.h \ + $$PWD/qsgsprite_p.h \ + $$PWD/qsgspriteimage_p.h \ SOURCES += \ $$PWD/qsgevents.cpp \ @@ -100,6 +103,9 @@ SOURCES += \ $$PWD/qsgimplicitsizeitem.cpp \ $$PWD/qsgcanvasitem.cpp \ $$PWD/qsgcontext2d.cpp \ + $$PWD/qsgspriteengine.cpp \ + $$PWD/qsgsprite.cpp \ + $$PWD/qsgspriteimage.cpp \ SOURCES += \ $$PWD/qsgshadereffectitem.cpp \ diff --git a/src/declarative/items/qsgcanvas.cpp b/src/declarative/items/qsgcanvas.cpp index 16bd8ce44c..dce5fe0888 100644 --- a/src/declarative/items/qsgcanvas.cpp +++ b/src/declarative/items/qsgcanvas.cpp @@ -64,6 +64,8 @@ QT_BEGIN_NAMESPACE DEFINE_BOOL_CONFIG_OPTION(qmlNoThreadedRenderer, QML_NO_THREADED_RENDERER) DEFINE_BOOL_CONFIG_OPTION(qmlFixedAnimationStep, QML_FIXED_ANIMATION_STEP) +extern Q_OPENGL_EXPORT QImage qt_gl_read_framebuffer(const QSize &size, bool alpha_format, bool include_alpha); + /* Focus behavior ============== @@ -79,10 +81,65 @@ a scope focused item that takes precedence over the item being added. Otherwise the focus of the added tree is used. In the case of of a tree of items being added to a canvas for the first time, which may have a conflicted focus state (two or more items in one scope having focus set), the same rule is applied item by item - -thus the first item that has focus will get it (assuming the scope doesn't already +thus the first item that has focus will get it (assuming the scope doesn't already have a scope focused item), and the other items will have their focus cleared. */ +/* + Threaded Rendering + ================== + + The threaded rendering uses a number of different variables to track potential + states used to handle resizing, initial paint, grabbing and driving animations + while ALWAYS keeping the GL context in the rendering thread and keeping the + overhead of normal one-shot paints and vblank driven animations at a minimum. + + Resize, initial show and grab suffer slightly in this model as they are locked + to the rendering in the rendering thread, but this is a necessary evil for + the system to work. + + Variables that are used: + + Private::animationRunning: This is true while the animations are running, and only + written to inside locks. + + RenderThread::isGuiBlocked: This is used to indicate that the GUI thread owns the + lock. This variable is an integer to allow for recursive calls to lockInGui() + without using a recursive mutex. See isGuiBlockPending. + + RenderThread::isPaintComplete: This variable is cleared when rendering starts and + set once rendering is complete. It is monitored in the paintEvent(), + resizeEvent() and grab() functions to force them to wait for rendering to + complete. + + RenderThread::isGuiBlockPending: This variable is set in the render thread just + before the sync event is sent to the GUI thread. It is used to avoid deadlocks + in the case where render thread waits while waiting for GUI to pick up the sync + event and GUI thread gets a resizeEvent, the initial paintEvent or a grab. + When this happens, we use the + exhaustSyncEvent() function to do the sync right there and mark the coming + sync event to be discarded. There can only ever be one sync incoming. + + RenderThread::isRenderBlock: This variable is true when animations are not + running and the render thread has gone to sleep, waiting for more to do. + + RenderThread::isExternalUpdatePending: This variable is set to false during + the sync phase in the GUI thread and to true in maybeUpdate(). It is an + indication to the render thread that another render pass needs to take + place, rather than the render thread going to sleep after completing its swap. + + RenderThread::doGrab: This variable is set by the grab() function and + tells the renderer to do a grab after rendering is complete and before + swapping happens. + + RenderThread::shouldExit: This variable is used to determine if the render + thread should do a nother pass. It is typically set as a result of show() + and unset as a result of hide() or during shutdown() + + RenderThread::hasExited: Used by the GUI thread to synchronize the shutdown + after shouldExit has been set to true. + */ + // #define FOCUS_DEBUG // #define MOUSE_DEBUG // #define TOUCH_DEBUG @@ -106,41 +163,6 @@ QSGRootItem::QSGRootItem() { } -void QSGCanvasPrivate::stopRenderingThread() -{ - if (thread->isRunning()) { - mutex.lock(); - exitThread = true; - wait.wakeOne(); - wait.wait(&mutex); - exitThread = false; - mutex.unlock(); - thread->wait(); - } -} - -void QSGCanvasPrivate::_q_animationStarted() -{ -#ifdef THREAD_DEBUG - qWarning("AnimationDriver: Main Thread: started"); -#endif - mutex.lock(); - animationRunning = true; - if (idle) - wait.wakeOne(); - mutex.unlock(); -} - -void QSGCanvasPrivate::_q_animationStopped() -{ -#ifdef THREAD_DEBUG - qWarning("AnimationDriver: Main Thread: stopped"); -#endif - mutex.lock(); - animationRunning = false; - mutex.unlock(); -} - void QSGCanvas::paintEvent(QPaintEvent *) { Q_D(QSGCanvas); @@ -180,7 +202,9 @@ void QSGCanvas::paintEvent(QPaintEvent *) int syncTime = frameTimer.elapsed(); #endif - d->renderSceneGraph(); + d->renderSceneGraph(d->widgetSize); + + swapBuffers(); #ifdef FRAME_TIMING printf("FrameTimes, last=%d, animations=%d, polish=%d, makeCurrent=%d, sync=%d, sgrender=%d, readback=%d, total=%d\n", @@ -198,6 +222,11 @@ void QSGCanvas::paintEvent(QPaintEvent *) if (d->animationDriver->isRunning()) update(); + } else { + if (isUpdatesEnabled()) { + d->thread->paint(); + setUpdatesEnabled(false); + } } } @@ -205,10 +234,7 @@ void QSGCanvas::resizeEvent(QResizeEvent *e) { Q_D(QSGCanvas); if (d->threadedRendering) { - d->mutex.lock(); - QGLWidget::resizeEvent(e); - d->widgetSize = e->size(); - d->mutex.unlock(); + d->thread->resize(e->size()); } else { d->widgetSize = e->size(); d->viewportSize = d->widgetSize; @@ -222,29 +248,27 @@ void QSGCanvas::showEvent(QShowEvent *e) QGLWidget::showEvent(e); - if (d->threadedRendering) { - d->contextInThread = true; - doneCurrent(); - if (!d->animationDriver) { - d->animationDriver = d->context->createAnimationDriver(this); - connect(d->animationDriver, SIGNAL(started()), this, SLOT(_q_animationStarted()), Qt::DirectConnection); - connect(d->animationDriver, SIGNAL(stopped()), this, SLOT(_q_animationStopped()), Qt::DirectConnection); - } - d->animationDriver->install(); - d->mutex.lock(); - d->thread->start(); - d->wait.wait(&d->mutex); - d->mutex.unlock(); - } else { - makeCurrent(); + if (!d->contextFailed) { + if (d->threadedRendering) { + if (!d->animationDriver) { + d->animationDriver = d->context->createAnimationDriver(this); + connect(d->animationDriver, SIGNAL(started()), d->thread, SLOT(animationStarted()), Qt::DirectConnection); + connect(d->animationDriver, SIGNAL(stopped()), d->thread, SLOT(animationStopped()), Qt::DirectConnection); + } + d->animationDriver->install(); + d->thread->startRenderThread(); + setUpdatesEnabled(true); + } else { + makeCurrent(); - if (!d->context || !d->context->isReady()) { - d->initializeSceneGraph(); - d->animationDriver = d->context->createAnimationDriver(this); - connect(d->animationDriver, SIGNAL(started()), this, SLOT(update())); - } + if (!d->context || !d->context->isReady()) { + d->initializeSceneGraph(); + d->animationDriver = d->context->createAnimationDriver(this); + connect(d->animationDriver, SIGNAL(started()), this, SLOT(update())); + } - d->animationDriver->install(); + d->animationDriver->install(); + } } } @@ -252,10 +276,13 @@ void QSGCanvas::hideEvent(QHideEvent *e) { Q_D(QSGCanvas); - if (d->threadedRendering) - d->stopRenderingThread(); + if (!d->contextFailed) { + if (d->threadedRendering) { + d->thread->stopRenderThread(); + } - d->animationDriver->uninstall(); + d->animationDriver->uninstall(); + } QGLWidget::hideEvent(e); } @@ -312,18 +339,14 @@ void QSGCanvasPrivate::polishItems() void QSGCanvasPrivate::syncSceneGraph() { - inSync = true; updateDirtyNodes(); - inSync = false; } -void QSGCanvasPrivate::renderSceneGraph() +void QSGCanvasPrivate::renderSceneGraph(const QSize &size) { - QGLContext *glctx = const_cast<QGLContext *>(QGLContext::currentContext()); - - context->renderer()->setDeviceRect(QRect(QPoint(0, 0), viewportSize)); - context->renderer()->setViewportRect(QRect(QPoint(0, 0), viewportSize)); + context->renderer()->setDeviceRect(QRect(QPoint(0, 0), size)); + context->renderer()->setViewportRect(QRect(QPoint(0, 0), size)); context->renderer()->setProjectMatrixToDeviceRect(); context->renderNextFrame(); @@ -332,127 +355,22 @@ void QSGCanvasPrivate::renderSceneGraph() sceneGraphRenderTime = frameTimer.elapsed(); #endif - #ifdef FRAME_TIMING // int pixel; // glReadPixels(0, 0, 1, 1, GL_RGBA, GL_UNSIGNED_BYTE, &pixel); readbackTime = frameTimer.elapsed(); #endif - - glctx->swapBuffers(); } +// ### Do we need this? void QSGCanvas::sceneGraphChanged() { - Q_D(QSGCanvas); - d->needsRepaint = true; +// Q_D(QSGCanvas); +// d->needsRepaint = true; } -void QSGCanvasPrivate::runThread() -{ -#ifdef THREAD_DEBUG - qWarning("QSGRenderer: Render thread running"); -#endif - Q_Q(QSGCanvas); - - printf("QSGCanvas::runThread(), rendering in a thread...\n"); - - q->makeCurrent(); - initializeSceneGraph(); - - QObject::connect(context->renderer(), SIGNAL(sceneGraphChanged()), - q, SLOT(sceneGraphChanged()), - Qt::DirectConnection); - - mutex.lock(); - wait.wakeOne(); // Wake the main thread waiting for us to start - - while (true) { - QSize s; - s = widgetSize; - - if (exitThread) - break; - - if (s != viewportSize) { - glViewport(0, 0, s.width(), s.height()); - viewportSize = s; - } - -#ifdef THREAD_DEBUG - qWarning("QSGRenderer: Render Thread: Waiting for main thread to stop"); -#endif - QCoreApplication::postEvent(q, new QEvent(QEvent::User)); - wait.wait(&mutex); - - if (exitThread) { -#ifdef THREAD_DEBUG - qWarning("QSGRenderer: Render Thread: Shutting down..."); -#endif - break; - } - -#ifdef THREAD_DEBUG - qWarning("QSGRenderer: Render Thread: Main thread has stopped, syncing scene"); -#endif - - // Do processing while main thread is frozen - syncSceneGraph(); - -#ifdef THREAD_DEBUG - qWarning("QSGRenderer: Render Thread: Resuming main thread"); -#endif - - // Read animationRunning while inside the locked section - bool continous = animationRunning; - - wait.wakeOne(); - mutex.unlock(); - - bool enterIdle = false; - if (needsRepaint) { -#ifdef THREAD_DEBUG - qWarning("QSGRenderer: Render Thread: rendering scene"); -#endif - renderSceneGraph(); - needsRepaint = false; - } else if (continous) { -#ifdef THREAD_DEBUG - qWarning("QSGRenderer: Render Thread: waiting a while..."); -#endif - MyThread::doWait(); - } else { - enterIdle = true; - } - - mutex.lock(); - - if (enterIdle) { -#ifdef THREAD_DEBUG - qWarning("QSGRenderer: Render Thread: Nothing has changed, going idle..."); -#endif - idle = true; - wait.wait(&mutex); - idle = false; -#ifdef THREAD_DEBUG - qWarning("QSGRenderer: Render Thread: waking up from idle"); -#endif - } - - } - - -#ifdef THREAD_DEBUG - qWarning("QSGRenderer: Render Thread: shutting down, waking up main thread"); -#endif - wait.wakeOne(); - mutex.unlock(); - - q->doneCurrent(); -} - QSGCanvasPrivate::QSGCanvasPrivate() : rootItem(0) , activeFocusItem(0) @@ -460,15 +378,11 @@ QSGCanvasPrivate::QSGCanvasPrivate() , hoverItem(0) , dirtyItemList(0) , context(0) - , contextInThread(false) + , contextFailed(false) , threadedRendering(false) - , exitThread(false) , animationRunning(false) - , idle(false) - , needsRepaint(true) , renderThreadAwakened(false) - , inSync(false) - , thread(new MyThread(this)) + , thread(0) , animationDriver(0) { threadedRendering = !qmlNoThreadedRenderer(); @@ -482,6 +396,11 @@ void QSGCanvasPrivate::init(QSGCanvas *c) { QUnifiedTimer::instance(true)->setConsistentTiming(qmlFixedAnimationStep()); + if (!c->context() || !c->context()->isValid()) { + contextFailed = true; + qWarning("QSGCanvas: Couldn't acquire a GL context."); + } + q_ptr = c; Q_Q(QSGCanvas); @@ -495,6 +414,13 @@ void QSGCanvasPrivate::init(QSGCanvas *c) rootItemPrivate->flags |= QSGItem::ItemIsFocusScope; context = QSGContext::createDefaultContext(); + + if (threadedRendering) { + thread = new QSGCanvasRenderThread; + thread->renderer = q; + thread->d = this; + } + } void QSGCanvasPrivate::sceneMouseEventForTransform(QGraphicsSceneMouseEvent &sceneEvent, @@ -945,9 +871,10 @@ QSGCanvas::~QSGCanvas() { Q_D(QSGCanvas); - if (d->threadedRendering) { - d->stopRenderingThread(); + if (d->threadedRendering && d->thread->isRunning()) { + d->thread->stopRenderThread(); delete d->thread; + d->thread = 0; } // ### should we change ~QSGItem to handle this better? @@ -960,18 +887,20 @@ QSGCanvas::~QSGCanvas() d->cleanupNodes(); - // We need to remove all references to textures pointing to "our" QSGContext - // from the QDeclarativePixmapCache. Call into the cache to remove the GL / Scene Graph - // part of those cache entries. - // To "play nice" with other GL apps that are potentially running in the GUI thread, - // We get the current context and only temporarily make our own current - QGLContext *currentContext = const_cast<QGLContext *>(QGLContext::currentContext()); - makeCurrent(); - extern void qt_declarative_pixmapstore_clean(QSGContext *context); - qt_declarative_pixmapstore_clean(d->context); - delete d->context; - if (currentContext) - currentContext->makeCurrent(); + if (!d->contextFailed) { + // We need to remove all references to textures pointing to "our" QSGContext + // from the QDeclarativePixmapCache. Call into the cache to remove the GL / Scene Graph + // part of those cache entries. + // To "play nice" with other GL apps that are potentially running in the GUI thread, + // We get the current context and only temporarily make our own current + QGLContext *currentContext = const_cast<QGLContext *>(QGLContext::currentContext()); + makeCurrent(); + extern void qt_declarative_pixmapstore_clean(QSGContext *context); + qt_declarative_pixmapstore_clean(d->context); + delete d->context; + if (currentContext) + currentContext->makeCurrent(); + } } QSGItem *QSGCanvas::rootItem() const @@ -1022,31 +951,24 @@ bool QSGCanvas::event(QEvent *e) Q_D(QSGCanvas); if (e->type() == QEvent::User) { - Q_ASSERT(d->threadedRendering); + if (!d->thread->syncAlreadyHappened) + d->thread->sync(false); + + d->thread->syncAlreadyHappened = false; - d->mutex.lock(); + if (d->animationRunning) { #ifdef THREAD_DEBUG - qWarning("QSGRenderer: Main Thread: Stopped"); + qDebug("GUI: Advancing animations...\n"); #endif - d->polishItems(); - - d->renderThreadAwakened = false; - - d->wait.wakeOne(); + d->animationDriver->advance(); - // The thread is exited when the widget has been hidden. We then need to - // skip the waiting, otherwise we would be waiting for a wakeup that never - // comes. - if (d->thread->isRunning()) - d->wait.wait(&d->mutex); #ifdef THREAD_DEBUG - qWarning("QSGRenderer: Main Thread: Resumed"); + qDebug("GUI: Animations advanced...\n"); #endif - d->mutex.unlock(); + } - if (d->animationRunning) - d->animationDriver->advance(); + return true; } switch (e->type()) { @@ -1881,24 +1803,17 @@ void QSGCanvas::maybeUpdate() { Q_D(QSGCanvas); - if (d->threadedRendering) { + if (d->threadedRendering && d->thread && d->thread->isRunning()) { if (!d->renderThreadAwakened) { - d->renderThreadAwakened = true; - bool locked = d->mutex.tryLock(); - if (d->idle && locked) { #ifdef THREAD_DEBUG - qWarning("QSGRenderer: now maybe I should update..."); + printf("GUI: doing update...\n"); #endif - d->wait.wakeOne(); - } else if (d->inSync) { - // If we are in sync (on scene graph thread) someone has explicitely asked us - // to redraw, hence we tell the render loop to not go idle. - // The primary usecase for this is updatePaintNode() calling update() without - // changing the scene graph. - d->needsRepaint = true; - } - if (locked) - d->mutex.unlock(); + d->renderThreadAwakened = true; + d->thread->lockInGui(); + d->thread->isExternalUpdatePending = true; + if (d->thread->isRenderBlocked) + d->thread->wake(); + d->thread->unlockInGui(); } } else if (!d->animationDriver || !d->animationDriver->isRunning()) { update(); @@ -1929,6 +1844,373 @@ QSGEngine *QSGCanvas::sceneGraphEngine() const return 0; } + +/*! + Grabs the contents of the framebuffer and returns it as an image. + + This function might not work if the view is not visible. + + \warning Calling this function will cause performance problems. + */ +QImage QSGCanvas::grabFrameBuffer() +{ + Q_D(QSGCanvas); + if (d->threadedRendering) + return d->thread ? d->thread->grab() : QImage(); + else { + // render a fresh copy of the scene graph in the current thread. + d->renderSceneGraph(size()); + return QGLWidget::grabFrameBuffer(false); + } +} + + +void QSGCanvasRenderThread::run() +{ + qDebug("QML Rendering Thread Started"); + + renderer->makeCurrent(); + + if (!d->context->isReady()) + d->initializeSceneGraph(); + + + while (!shouldExit) { + lock(); + + bool sizeChanged = false; + isExternalUpdatePending = false; + + if (renderedSize != windowSize) { +#ifdef THREAD_DEBUG + printf(" RenderThread: window has changed size...\n"); +#endif + glViewport(0, 0, windowSize.width(), windowSize.height()); + sizeChanged = true; + } + +#ifdef THREAD_DEBUG + printf(" RenderThread: preparing to sync...\n"); +#endif + + if (!isGuiBlocked) { + isGuiBlockPending = true; + +#ifdef THREAD_DEBUG + printf(" RenderThread: aquired sync lock...\n"); +#endif + QApplication::postEvent(renderer, new QEvent(QEvent::User)); +#ifdef THREAD_DEBUG + printf(" RenderThread: going to sleep...\n"); +#endif + wait(); + + isGuiBlockPending = false; + } + +#ifdef THREAD_DEBUG + printf(" RenderThread: Doing locked sync\n"); +#endif + d->syncSceneGraph(); + + // Wake GUI after sync to let it continue animating and event processing. + wake(); + unlock(); +#ifdef THREAD_DEBUG + printf(" RenderThread: sync done\n"); +#endif + + + +#ifdef THREAD_DEBUG + printf(" RenderThread: rendering... %d x %d\n", windowSize.width(), windowSize.height()); +#endif + + d->renderSceneGraph(windowSize); + + // The content of the target buffer is undefined after swap() so grab needs + // to happen before swap(); + if (doGrab) { +#ifdef THREAD_DEBUG + printf(" RenderThread: doing a grab...\n"); +#endif + grabContent = qt_gl_read_framebuffer(windowSize, false, false); + doGrab = false; + } + +#ifdef THREAD_DEBUG + printf(" RenderThread: wait for swap...\n"); +#endif + + renderer->swapBuffers(); +#ifdef THREAD_DEBUG + printf(" RenderThread: swap complete...\n"); +#endif + + lock(); + isPaintCompleted = true; + if (sizeChanged) + renderedSize = windowSize; + + // Wake the GUI thread now that rendering is complete, to signal that painting + // is done, resizing is done or grabbing is completed. For grabbing, we're + // signalling this much later than needed (we could have done it before swap) + // but we don't want to lock an extra time. + wake(); + + if (!d->animationRunning && !isExternalUpdatePending) { +#ifdef THREAD_DEBUG + printf(" RenderThread: nothing to do, going to sleep...\n"); +#endif + isRenderBlocked = true; + wait(); + isRenderBlocked = false; + } + + unlock(); + } + +#ifdef THREAD_DEBUG + printf(" RenderThread: exited... Good Night!\n"); +#endif + + renderer->doneCurrent(); + + lock(); + hasExited = true; +#ifdef THREAD_DEBUG + printf(" RenderThread: waking GUI for final sleep..\n"); +#endif + wake(); + unlock(); +} + + + +void QSGCanvasRenderThread::exhaustSyncEvent() +{ + if (isGuiBlockPending) { + sync(true); + syncAlreadyHappened = true; + } +} + + + +void QSGCanvasRenderThread::sync(bool guiAlreadyLocked) +{ +#ifdef THREAD_DEBUG + printf("GUI: sync - %s\n", guiAlreadyLocked ? "outside event" : "inside event"); +#endif + Q_ASSERT(d->threadedRendering); + + if (!guiAlreadyLocked) + d->thread->lockInGui(); + + d->renderThreadAwakened = false; + + d->polishItems(); + + d->thread->wake(); + d->thread->wait(); + + if (!guiAlreadyLocked) + d->thread->unlockInGui(); +} + + + + +/*! + Acquires the mutex for the GUI thread. The function uses the isGuiBlocked + variable to keep track of how many recursion levels the gui is locket with. + We only actually acquire the mutex for the first level to avoid deadlocking + ourselves. + */ + +void QSGCanvasRenderThread::lockInGui() +{ + // We must avoid recursive locking in the GUI thread, hence we + // only lock when we are the first one to try to block. + if (!isGuiBlocked) + lock(); + + isGuiBlocked++; + +#ifdef THREAD_DEBUG + printf("GUI: aquired lock... %d\n", isGuiBlocked); +#endif +} + + + +void QSGCanvasRenderThread::unlockInGui() +{ +#ifdef THREAD_DEBUG + printf("GUI: releasing lock... %d\n", isGuiBlocked); +#endif + --isGuiBlocked; + if (!isGuiBlocked) + unlock(); +} + + + + +void QSGCanvasRenderThread::animationStarted() +{ +#ifdef THREAD_DEBUG + printf("GUI: animationStarted()\n"); +#endif + + lockInGui(); + + d->animationRunning = true; + + if (isRenderBlocked) + wake(); + + unlockInGui(); +} + + + +void QSGCanvasRenderThread::animationStopped() +{ +#ifdef THREAD_DEBUG + printf("GUI: animationStopped()...\n"); +#endif + + lockInGui(); + d->animationRunning = false; + unlockInGui(); +} + + +void QSGCanvasRenderThread::paint() +{ +#ifdef THREAD_DEBUG + printf("GUI: paint called..\n"); +#endif + + lockInGui(); + exhaustSyncEvent(); + + isPaintCompleted = false; + while (isRunning() && !isPaintCompleted) { + if (isRenderBlocked) + wake(); + wait(); + } + unlockInGui(); + + // paint is only called for the inital show. After that we will do all + // drawing ourselves, so block future updates.. + renderer->setUpdatesEnabled(false); +} + + + +void QSGCanvasRenderThread::resize(const QSize &size) +{ +#ifdef THREAD_DEBUG + printf("GUI: Resize Event: %dx%d\n", size.width(), size.height()); +#endif + + if (!isRunning()) { + windowSize = size; + return; + } + + lockInGui(); + exhaustSyncEvent(); + + windowSize = size; + + while (isRunning() && renderedSize != windowSize) { + if (isRenderBlocked) + wake(); + wait(); + } + unlockInGui(); +} + + + +void QSGCanvasRenderThread::startRenderThread() +{ +#ifdef THREAD_DEBUG + printf("GUI: Starting Render Thread\n"); +#endif + hasExited = false; + shouldExit = false; + isGuiBlocked = 0; + isGuiBlockPending = false; + + renderer->doneCurrent(); + start(); +} + + + +void QSGCanvasRenderThread::stopRenderThread() +{ +#ifdef THREAD_DEBUG + printf("GUI: stopping render thread\n"); +#endif + + lockInGui(); + exhaustSyncEvent(); + shouldExit = true; + + if (isRenderBlocked) { +#ifdef THREAD_DEBUG + printf("GUI: waking up render thread\n"); +#endif + wake(); + } + + while (!hasExited) { +#ifdef THREAD_DEBUG + printf("GUI: waiting for render thread to have exited..\n"); +#endif + wait(); + } + + unlockInGui(); +} + + + +QImage QSGCanvasRenderThread::grab() +{ + if (!isRunning()) + return QImage(); + +#ifdef THREAD_DEBUG + printf("GUI: doing a pixelwise grab..\n"); +#endif + + lockInGui(); + exhaustSyncEvent(); + + doGrab = true; + isPaintCompleted = false; + while (isRunning() && !isPaintCompleted) { + if (!isRenderBlocked) + wake(); + wait(); + } + + QImage grabbed = grabContent; + grabContent = QImage(); + + unlockInGui(); + + return grabbed; +} + + #include "moc_qsgcanvas.cpp" QT_END_NAMESPACE diff --git a/src/declarative/items/qsgcanvas.h b/src/declarative/items/qsgcanvas.h index 6707d24b30..d0d0c79d5e 100644 --- a/src/declarative/items/qsgcanvas.h +++ b/src/declarative/items/qsgcanvas.h @@ -75,6 +75,8 @@ public: QSGEngine *sceneGraphEngine() const; + QImage grabFrameBuffer(); + Q_SIGNALS: void sceneGraphInitialized(); @@ -109,8 +111,6 @@ private Q_SLOTS: private: Q_DISABLE_COPY(QSGCanvas) - Q_PRIVATE_SLOT(d_func(), void _q_animationStarted()) - Q_PRIVATE_SLOT(d_func(), void _q_animationStopped()) }; QT_END_NAMESPACE diff --git a/src/declarative/items/qsgcanvas_p.h b/src/declarative/items/qsgcanvas_p.h index 6b8034f922..87fae1c31a 100644 --- a/src/declarative/items/qsgcanvas_p.h +++ b/src/declarative/items/qsgcanvas_p.h @@ -78,6 +78,8 @@ public: class QSGCanvasPrivate; class QTouchEvent; +class QSGCanvasRenderThread; + class QSGCanvasPrivate : public QGLWidgetPrivate { public: @@ -115,8 +117,6 @@ public: void sendHoverEvent(QEvent::Type, QSGItem *, QGraphicsSceneHoverEvent *); void clearHover(); - void stopRenderingThread(); - QDeclarativeGuard<QSGItem> hoverItem; enum FocusOption { DontChangeFocusProperty = 0x01, @@ -135,11 +135,7 @@ public: void initializeSceneGraph(); void polishItems(); void syncSceneGraph(); - void renderSceneGraph(); - void runThread(); - - void _q_animationStarted(); - void _q_animationStopped(); + void renderSceneGraph(const QSize &size); QSGItem::UpdatePaintNodeData updatePaintNodeData; @@ -156,24 +152,12 @@ public: QSGContext *context; - uint contextInThread : 1; + uint contextFailed : 1; uint threadedRendering : 1; - uint exitThread : 1; uint animationRunning: 1; - uint idle : 1; // Set to true when render thread sees no change and enters a wait() - uint needsRepaint : 1; // Set by callback from render if scene needs repainting. uint renderThreadAwakened : 1; - uint inSync: 1; - struct MyThread : public QThread { - MyThread(QSGCanvasPrivate *r) : renderer(r) {} - virtual void run() { renderer->runThread(); } - static void doWait() { QThread::msleep(16); } - QSGCanvasPrivate *renderer; - }; - MyThread *thread; - QMutex mutex; - QWaitCondition wait; + QSGCanvasRenderThread *thread; QSize widgetSize; QSize viewportSize; @@ -182,6 +166,73 @@ public: QHash<int, QSGItem *> itemForTouchPointId; }; + + +class QSGCanvasRenderThread : public QThread +{ + Q_OBJECT +public: + QSGCanvasRenderThread() + : mutex(QMutex::NonRecursive) + , isGuiBlocked(0) + , isPaintCompleted(false) + , isGuiBlockPending(false) + , isRenderBlocked(false) + , isExternalUpdatePending(false) + , syncAlreadyHappened(false) + , doGrab(false) + , shouldExit(false) + , hasExited(false) + {} + + inline void lock() { mutex.lock(); } + inline void unlock() { mutex.unlock(); } + inline void wait() { condition.wait(&mutex); } + inline void wake() { condition.wakeOne(); } + + void lockInGui(); + void unlockInGui(); + + void paint(); + void resize(const QSize &size); + void startRenderThread(); + void stopRenderThread(); + void exhaustSyncEvent(); + void sync(bool guiAlreadyLocked); + + QImage grab(); + +public slots: + void animationStarted(); + void animationStopped(); + +public: + QMutex mutex; + QWaitCondition condition; + + QSize windowSize; + QSize renderedSize; + + QSGCanvas *renderer; + QSGCanvasPrivate *d; + + int isGuiBlocked; + uint isPaintCompleted : 1; + uint isGuiBlockPending : 1; + uint isRenderBlocked : 1; + uint isExternalUpdatePending : 1; + uint syncAlreadyHappened : 1; + + uint doGrab : 1; + uint shouldExit : 1; + uint hasExited : 1; + + QImage grabContent; + + void run(); +}; + + Q_DECLARE_OPERATORS_FOR_FLAGS(QSGCanvasPrivate::FocusOptions) QT_END_NAMESPACE diff --git a/src/declarative/items/qsgcanvasitem.cpp b/src/declarative/items/qsgcanvasitem.cpp index 2ceb118465..eddaf955a3 100644 --- a/src/declarative/items/qsgcanvasitem.cpp +++ b/src/declarative/items/qsgcanvasitem.cpp @@ -117,7 +117,6 @@ QDeclarativeV8Handle QSGCanvasItem::getContext(const QString &contextId) void QSGCanvasItem::requestPaint() { - //Q_D(QSGCanvasItem); //TODO:update(d->context->dirtyRect()); update(); } diff --git a/src/declarative/items/qsgitemsmodule.cpp b/src/declarative/items/qsgitemsmodule.cpp index 6ea20bb38b..a29776fc68 100644 --- a/src/declarative/items/qsgitemsmodule.cpp +++ b/src/declarative/items/qsgitemsmodule.cpp @@ -75,6 +75,8 @@ //#include "private/qsgpincharea_p.h" #include "qsgcanvasitem_p.h" #include "qsgcontext2d_p.h" +#include "qsgsprite_p.h" +#include "qsgspriteimage_p.h" static QDeclarativePrivate::AutoParentResult qsgitem_autoParent(QObject *obj, QObject *parent) { @@ -179,6 +181,8 @@ static void qt_sgitems_defineModule(const char *uri, int major, int minor) qmlRegisterType<QSGContext2D>(); qmlRegisterType<QSGCanvasGradient>(); + qmlRegisterType<QSGSprite>("QtQuick", 2, 0, "Sprite"); + qmlRegisterType<QSGSpriteImage>("QtQuick", 2, 0, "SpriteImage"); qmlRegisterType<QSGParentChange>(uri, major, minor,"ParentChange"); qmlRegisterType<QSGAnchorChanges>(uri, major, minor,"AnchorChanges"); diff --git a/src/imports/particles/spritestate.cpp b/src/declarative/items/qsgsprite.cpp index 72535c0e73..694976a540 100644 --- a/src/imports/particles/spritestate.cpp +++ b/src/declarative/items/qsgsprite.cpp @@ -39,11 +39,11 @@ ** ****************************************************************************/ -#include "spritestate.h" +#include "qsgsprite_p.h" QT_BEGIN_NAMESPACE -SpriteState::SpriteState(QObject *parent) : +QSGSprite::QSGSprite(QObject *parent) : QObject(parent) , m_generatedCount(0) , m_framesPerRow(0) diff --git a/src/imports/particles/spritestate.h b/src/declarative/items/qsgsprite_p.h index 5157a8bb31..652a4cd482 100644 --- a/src/imports/particles/spritestate.h +++ b/src/declarative/items/qsgsprite_p.h @@ -53,7 +53,7 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class SpriteState : public QObject +class QSGSprite : public QObject { Q_OBJECT Q_PROPERTY(QString name READ name WRITE setName NOTIFY nameChanged) @@ -69,7 +69,7 @@ class SpriteState : public QObject Q_PROPERTY(QVariantMap to READ to WRITE setTo NOTIFY toChanged) public: - explicit SpriteState(QObject *parent = 0); + explicit QSGSprite(QObject *parent = 0); QUrl source() const { @@ -211,8 +211,8 @@ public slots: } private: - friend class SpriteParticle; - friend class SpriteEngine; + friend class QSGImageParticle; + friend class QSGSpriteEngine; int m_generatedCount; int m_framesPerRow; QUrl m_source; diff --git a/src/imports/particles/spriteengine.cpp b/src/declarative/items/qsgspriteengine.cpp index 7676d9ed46..27de0d94f6 100644 --- a/src/imports/particles/spriteengine.cpp +++ b/src/declarative/items/qsgspriteengine.cpp @@ -39,8 +39,8 @@ ** ****************************************************************************/ -#include "spriteengine.h" -#include "spritestate.h" +#include "qsgspriteengine_p.h" +#include "qsgsprite_p.h" #include <QDebug> #include <QPainter> #include <QSet> @@ -48,7 +48,7 @@ QT_BEGIN_NAMESPACE -SpriteEngine::SpriteEngine(QObject *parent) : +QSGSpriteEngine::QSGSpriteEngine(QObject *parent) : QObject(parent), m_timeOffset(0) { //Default size 1 @@ -56,7 +56,7 @@ SpriteEngine::SpriteEngine(QObject *parent) : m_advanceTime.start(); } -SpriteEngine::SpriteEngine(QList<SpriteState*> states, QObject *parent) : +QSGSpriteEngine::QSGSpriteEngine(QList<QSGSprite*> states, QObject *parent) : QObject(parent), m_states(states), m_timeOffset(0) { //Default size 1 @@ -64,11 +64,11 @@ SpriteEngine::SpriteEngine(QList<SpriteState*> states, QObject *parent) : m_advanceTime.start(); } -SpriteEngine::~SpriteEngine() +QSGSpriteEngine::~QSGSpriteEngine() { } -int SpriteEngine::maxFrames() +int QSGSpriteEngine::maxFrames() { return m_maxFrames; } @@ -79,7 +79,7 @@ int SpriteEngine::maxFrames() But States maintain their listed index for internal structures TODO: All these calculations should be pre-calculated and cached during initialization for a significant performance boost */ -int SpriteEngine::spriteState(int sprite) +int QSGSpriteEngine::spriteState(int sprite) { int state = m_sprites[sprite]; if(!m_states[state]->m_generatedCount) @@ -89,7 +89,7 @@ int SpriteEngine::spriteState(int sprite) return state + extra; } -int SpriteEngine::spriteStart(int sprite) +int QSGSpriteEngine::spriteStart(int sprite) { int state = m_sprites[sprite]; if(!m_states[state]->m_generatedCount) @@ -99,7 +99,7 @@ int SpriteEngine::spriteStart(int sprite) return state + extra*rowDuration; } -int SpriteEngine::spriteFrames(int sprite) +int QSGSpriteEngine::spriteFrames(int sprite) { int state = m_sprites[sprite]; if(!m_states[state]->m_generatedCount) @@ -112,7 +112,7 @@ int SpriteEngine::spriteFrames(int sprite) return m_states[state]->m_framesPerRow; } -int SpriteEngine::spriteDuration(int sprite) +int QSGSpriteEngine::spriteDuration(int sprite) { int state = m_sprites[sprite]; if(!m_states[state]->m_generatedCount) @@ -125,12 +125,12 @@ int SpriteEngine::spriteDuration(int sprite) return rowDuration; } -int SpriteEngine::spriteCount()//TODO: Actually image state count, need to rename these things to make sense together +int QSGSpriteEngine::spriteCount()//TODO: Actually image state count, need to rename these things to make sense together { return m_imageStateCount; } -void SpriteEngine::setGoal(int state, int sprite, bool jump) +void QSGSpriteEngine::setGoal(int state, int sprite, bool jump) { if(sprite >= m_sprites.count() || state >= m_states.count()) return; @@ -147,7 +147,7 @@ void SpriteEngine::setGoal(int state, int sprite, bool jump) return; } -QImage SpriteEngine::assembledImage() +QImage QSGSpriteEngine::assembledImage() { int frameHeight = 0; int frameWidth = 0; @@ -157,7 +157,7 @@ QImage SpriteEngine::assembledImage() int maxSize; glGetIntegerv(GL_MAX_TEXTURE_SIZE, &maxSize); - foreach(SpriteState* state, m_states){ + foreach(QSGSprite* state, m_states){ if(state->frames() > m_maxFrames) m_maxFrames = state->frames(); @@ -215,7 +215,7 @@ QImage SpriteEngine::assembledImage() image.fill(0); QPainter p(&image); int y = 0; - foreach(SpriteState* state, m_states){ + foreach(QSGSprite* state, m_states){ QImage img(state->source().toLocalFile()); if(img.height() == frameHeight && img.width() < maxSize){//Simple case p.drawImage(0,y,img); @@ -262,14 +262,14 @@ QImage SpriteEngine::assembledImage() return image; } -void SpriteEngine::setCount(int c) +void QSGSpriteEngine::setCount(int c) { m_sprites.resize(c); m_goals.resize(c); m_startTimes.resize(c); } -void SpriteEngine::startSprite(int index) +void QSGSpriteEngine::startSprite(int index) { if(index >= m_sprites.count()) return; @@ -278,7 +278,7 @@ void SpriteEngine::startSprite(int index) restartSprite(index); } -void SpriteEngine::restartSprite(int index) +void QSGSpriteEngine::restartSprite(int index) { m_startTimes[index] = m_timeOffset + m_advanceTime.elapsed(); int time = m_states[m_sprites[index]]->duration() * m_states[m_sprites[index]]->frames() + m_startTimes[index]; @@ -287,7 +287,7 @@ void SpriteEngine::restartSprite(int index) addToUpdateList(time, index); } -uint SpriteEngine::updateSprites(uint time) +uint QSGSpriteEngine::updateSprites(uint time) { //Sprite State Update; while(!m_stateUpdates.isEmpty() && time >= m_stateUpdates.first().first){ @@ -341,7 +341,7 @@ uint SpriteEngine::updateSprites(uint time) return m_stateUpdates.first().first; } -int SpriteEngine::goalSeek(int curIdx, int spriteIdx, int dist) +int QSGSpriteEngine::goalSeek(int curIdx, int spriteIdx, int dist) { QString goalName; if(m_goals[spriteIdx] != -1) @@ -357,7 +357,7 @@ int SpriteEngine::goalSeek(int curIdx, int spriteIdx, int dist) return curIdx; if(dist < 0) dist = m_states.count(); - SpriteState* curState = m_states[curIdx]; + QSGSprite* curState = m_states[curIdx]; for(QVariantMap::const_iterator iter = curState->m_to.constBegin(); iter!=curState->m_to.constEnd(); iter++){ if(iter.key() == goalName) @@ -416,7 +416,7 @@ int SpriteEngine::goalSeek(int curIdx, int spriteIdx, int dist) return -1; } -void SpriteEngine::addToUpdateList(uint t, int idx) +void QSGSpriteEngine::addToUpdateList(uint t, int idx) { for(int i=0; i<m_stateUpdates.count(); i++){ if(m_stateUpdates[i].first==t){ diff --git a/src/imports/particles/spriteengine.h b/src/declarative/items/qsgspriteengine_p.h index 0180245685..8ab6e3a30a 100644 --- a/src/imports/particles/spriteengine.h +++ b/src/declarative/items/qsgspriteengine_p.h @@ -57,22 +57,22 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class SpriteState; +class QSGSprite; -class SpriteEngine : public QObject +class QSGSpriteEngine : public QObject { Q_OBJECT //TODO: Optimize single sprite case - Q_PROPERTY(QDeclarativeListProperty<SpriteState> sprites READ sprites) + Q_PROPERTY(QDeclarativeListProperty<QSGSprite> sprites READ sprites) Q_PROPERTY(QString globalGoal READ globalGoal WRITE setGlobalGoal NOTIFY globalGoalChanged) public: - explicit SpriteEngine(QObject *parent = 0); - SpriteEngine(QList<SpriteState*> sprites, QObject *parent=0); - ~SpriteEngine(); + explicit QSGSpriteEngine(QObject *parent = 0); + QSGSpriteEngine(QList<QSGSprite*> sprites, QObject *parent=0); + ~QSGSpriteEngine(); - QDeclarativeListProperty<SpriteState> sprites() + QDeclarativeListProperty<QSGSprite> sprites() { - return QDeclarativeListProperty<SpriteState>(this, m_states); + return QDeclarativeListProperty<QSGSprite>(this, m_states); } QString globalGoal() const { @@ -95,10 +95,10 @@ public: void startSprite(int index=0); private://Nothing outside should use this? - friend class SpriteGoalAffector;//XXX: Fix interface + friend class QSGSpriteGoalAffector;//XXX: Fix interface int stateCount() {return m_states.count();} - int stateIndex(SpriteState* s){return m_states.indexOf(s);}//TODO: Does this need to be hidden? - SpriteState* state(int idx){return m_states[idx];}//Used by spritegoal affector + int stateIndex(QSGSprite* s){return m_states.indexOf(s);}//TODO: Does this need to be hidden? + QSGSprite* state(int idx){return m_states[idx];}//Used by spritegoal affector signals: void globalGoalChanged(QString arg); @@ -118,7 +118,7 @@ private: void restartSprite(int sprite); void addToUpdateList(uint t, int idx); int goalSeek(int curState, int spriteIdx, int dist=-1); - QList<SpriteState*> m_states; + QList<QSGSprite*> m_states; QVector<int> m_sprites;//int is the index in m_states of the current state QVector<int> m_goals; QVector<int> m_startTimes; @@ -132,26 +132,26 @@ private: }; //Common use is to have your own list property which is transparently an engine -inline void spriteAppend(QDeclarativeListProperty<SpriteState> *p, SpriteState* s) +inline void spriteAppend(QDeclarativeListProperty<QSGSprite> *p, QSGSprite* s) { - reinterpret_cast<QList<SpriteState *> *>(p->data)->append(s); + reinterpret_cast<QList<QSGSprite *> *>(p->data)->append(s); p->object->metaObject()->invokeMethod(p->object, "createEngine"); } -inline SpriteState* spriteAt(QDeclarativeListProperty<SpriteState> *p, int idx) +inline QSGSprite* spriteAt(QDeclarativeListProperty<QSGSprite> *p, int idx) { - return reinterpret_cast<QList<SpriteState *> *>(p->data)->at(idx); + return reinterpret_cast<QList<QSGSprite *> *>(p->data)->at(idx); } -inline void spriteClear(QDeclarativeListProperty<SpriteState> *p) +inline void spriteClear(QDeclarativeListProperty<QSGSprite> *p) { - reinterpret_cast<QList<SpriteState *> *>(p->data)->clear(); + reinterpret_cast<QList<QSGSprite *> *>(p->data)->clear(); p->object->metaObject()->invokeMethod(p->object, "createEngine"); } -inline int spriteCount(QDeclarativeListProperty<SpriteState> *p) +inline int spriteCount(QDeclarativeListProperty<QSGSprite> *p) { - return reinterpret_cast<QList<SpriteState *> *>(p->data)->count(); + return reinterpret_cast<QList<QSGSprite *> *>(p->data)->count(); } QT_END_NAMESPACE diff --git a/src/imports/particles/spriteimage.cpp b/src/declarative/items/qsgspriteimage.cpp index ea08ae4ea0..8cc0dc5b76 100644 --- a/src/imports/particles/spriteimage.cpp +++ b/src/declarative/items/qsgspriteimage.cpp @@ -39,9 +39,9 @@ ** ****************************************************************************/ -#include "spriteimage.h" -#include "spritestate.h" -#include "spriteengine.h" +#include "qsgspriteimage_p.h" +#include "qsgsprite_p.h" +#include "qsgspriteengine_p.h" #include <private/qsgcontext_p.h> #include <private/qsgadaptationlayer_p.h> #include <qsgnode.h> @@ -55,16 +55,16 @@ QT_BEGIN_NAMESPACE -class SpriteMaterial : public QSGMaterial +class QSGSpriteMaterial : public QSGMaterial { public: - SpriteMaterial(); - virtual ~SpriteMaterial(); + QSGSpriteMaterial(); + virtual ~QSGSpriteMaterial(); virtual QSGMaterialType *type() const { static QSGMaterialType type; return &type; } virtual QSGMaterialShader *createShader() const; virtual int compare(const QSGMaterial *other) const { - return this - static_cast<const SpriteMaterial *>(other); + return this - static_cast<const QSGSpriteMaterial *>(other); } QSGTexture *texture; @@ -77,7 +77,7 @@ public: int height; }; -SpriteMaterial::SpriteMaterial() +QSGSpriteMaterial::QSGSpriteMaterial() : timestamp(0) , timelength(1) , framecount(1) @@ -88,7 +88,7 @@ SpriteMaterial::SpriteMaterial() setFlag(Blending, true); } -SpriteMaterial::~SpriteMaterial() +QSGSpriteMaterial::~QSGSpriteMaterial() { delete texture; } @@ -98,11 +98,11 @@ class SpriteMaterialData : public QSGMaterialShader public: SpriteMaterialData(const char *vertexFile = 0, const char *fragmentFile = 0) { - QFile vf(vertexFile ? vertexFile : ":resources/spriteimagevertex.shader"); + QFile vf(vertexFile ? vertexFile : ":defaultshaders/spriteimagevertex.shader"); vf.open(QFile::ReadOnly); m_vertex_code = vf.readAll(); - QFile ff(fragmentFile ? fragmentFile : ":resources/spriteimagefragment.shader"); + QFile ff(fragmentFile ? fragmentFile : ":defaultshaders/spriteimagefragment.shader"); ff.open(QFile::ReadOnly); m_fragment_code = ff.readAll(); @@ -120,7 +120,7 @@ public: virtual void updateState(const RenderState &state, QSGMaterial *newEffect, QSGMaterial *) { - SpriteMaterial *m = static_cast<SpriteMaterial *>(newEffect); + QSGSpriteMaterial *m = static_cast<QSGSpriteMaterial *>(newEffect); m->texture->bind(); program()->setUniformValue(m_opacity_id, state.opacity()); @@ -173,7 +173,7 @@ public: }; float SpriteMaterialData::chunkOfBytes[1024]; -QSGMaterialShader *SpriteMaterial::createShader() const +QSGMaterialShader *QSGSpriteMaterial::createShader() const { return new SpriteMaterialData; } @@ -194,7 +194,7 @@ struct SpriteVertices { SpriteVertex v4; }; -SpriteImage::SpriteImage(QSGItem *parent) : +QSGSpriteImage::QSGSpriteImage(QSGItem *parent) : QSGItem(parent) , m_node(0) , m_material(0) @@ -207,18 +207,18 @@ SpriteImage::SpriteImage(QSGItem *parent) : this, SLOT(update())); } -QDeclarativeListProperty<SpriteState> SpriteImage::sprites() +QDeclarativeListProperty<QSGSprite> QSGSpriteImage::sprites() { - return QDeclarativeListProperty<SpriteState>(this, &m_sprites, spriteAppend, spriteCount, spriteAt, spriteClear); + return QDeclarativeListProperty<QSGSprite>(this, &m_sprites, spriteAppend, spriteCount, spriteAt, spriteClear); } -void SpriteImage::createEngine() +void QSGSpriteImage::createEngine() { //TODO: delay until component complete if(m_spriteEngine) delete m_spriteEngine; if(m_sprites.count()) - m_spriteEngine = new SpriteEngine(m_sprites, this); + m_spriteEngine = new QSGSpriteEngine(m_sprites, this); else m_spriteEngine = 0; reset(); @@ -236,7 +236,7 @@ static QSGGeometry::AttributeSet SpriteImage_AttributeSet = SpriteImage_Attributes }; -QSGGeometryNode* SpriteImage::buildNode() +QSGGeometryNode* QSGSpriteImage::buildNode() { if (!m_spriteEngine) { qWarning() << "SpriteImage: No sprite engine..."; @@ -248,7 +248,7 @@ QSGGeometryNode* SpriteImage::buildNode() m_material = 0; } - m_material = new SpriteMaterial(); + m_material = new QSGSpriteMaterial(); QImage image = m_spriteEngine->assembledImage(); if(image.isNull()) @@ -297,12 +297,12 @@ QSGGeometryNode* SpriteImage::buildNode() return m_node; } -void SpriteImage::reset() +void QSGSpriteImage::reset() { m_pleaseReset = true; } -QSGNode *SpriteImage::updatePaintNode(QSGNode *, UpdatePaintNodeData *) +QSGNode *QSGSpriteImage::updatePaintNode(QSGNode *, UpdatePaintNodeData *) { if(m_pleaseReset){ delete m_node; @@ -324,7 +324,7 @@ QSGNode *SpriteImage::updatePaintNode(QSGNode *, UpdatePaintNodeData *) return m_node; } -void SpriteImage::prepareNextFrame() +void QSGSpriteImage::prepareNextFrame() { if (m_node == 0) m_node = buildNode(); diff --git a/src/imports/particles/spriteimage.h b/src/declarative/items/qsgspriteimage_p.h index cd73c97333..f03fd869f0 100644 --- a/src/imports/particles/spriteimage.h +++ b/src/declarative/items/qsgspriteimage_p.h @@ -52,22 +52,22 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) class QSGContext; -class SpriteState; -class SpriteEngine; +class QSGSprite; +class QSGSpriteEngine; class QSGGeometryNode; -class SpriteMaterial; -class SpriteImage : public QSGItem +class QSGSpriteMaterial; +class QSGSpriteImage : public QSGItem { Q_OBJECT Q_PROPERTY(bool running READ running WRITE setRunning NOTIFY runningChanged) //###try to share similar spriteEngines for less overhead? - Q_PROPERTY(QDeclarativeListProperty<SpriteState> sprites READ sprites) + Q_PROPERTY(QDeclarativeListProperty<QSGSprite> sprites READ sprites) Q_CLASSINFO("DefaultProperty", "sprites") public: - explicit SpriteImage(QSGItem *parent = 0); + explicit QSGSpriteImage(QSGItem *parent = 0); - QDeclarativeListProperty<SpriteState> sprites(); + QDeclarativeListProperty<QSGSprite> sprites(); bool running() const { @@ -98,9 +98,9 @@ private: void prepareNextFrame(); QSGGeometryNode* buildNode(); QSGGeometryNode *m_node; - SpriteMaterial *m_material; - QList<SpriteState*> m_sprites; - SpriteEngine* m_spriteEngine; + QSGSpriteMaterial *m_material; + QList<QSGSprite*> m_sprites; + QSGSpriteEngine* m_spriteEngine; QTime m_timestamp; int m_maxFrames; bool m_pleaseReset; diff --git a/src/imports/particles/resources/ctfragment.shader b/src/declarative/particles/defaultshaders/ctfragment.shader index a17f5841ca..a17f5841ca 100644 --- a/src/imports/particles/resources/ctfragment.shader +++ b/src/declarative/particles/defaultshaders/ctfragment.shader diff --git a/src/imports/particles/resources/ctvertex.shader b/src/declarative/particles/defaultshaders/ctvertex.shader index b20676cc49..b20676cc49 100644 --- a/src/imports/particles/resources/ctvertex.shader +++ b/src/declarative/particles/defaultshaders/ctvertex.shader diff --git a/src/imports/particles/resources/defaultFadeInOut.png b/src/declarative/particles/defaultshaders/defaultFadeInOut.png Binary files differindex 89c04eaefe..89c04eaefe 100644 --- a/src/imports/particles/resources/defaultFadeInOut.png +++ b/src/declarative/particles/defaultshaders/defaultFadeInOut.png diff --git a/src/imports/particles/resources/deformablefragment.shader b/src/declarative/particles/defaultshaders/deformablefragment.shader index 494053e319..494053e319 100644 --- a/src/imports/particles/resources/deformablefragment.shader +++ b/src/declarative/particles/defaultshaders/deformablefragment.shader diff --git a/src/imports/particles/resources/deformablevertex.shader b/src/declarative/particles/defaultshaders/deformablevertex.shader index 01570950b1..01570950b1 100644 --- a/src/imports/particles/resources/deformablevertex.shader +++ b/src/declarative/particles/defaultshaders/deformablevertex.shader diff --git a/src/imports/particles/resources/identitytable.png b/src/declarative/particles/defaultshaders/identitytable.png Binary files differindex 2cada1bfad..2cada1bfad 100644 --- a/src/imports/particles/resources/identitytable.png +++ b/src/declarative/particles/defaultshaders/identitytable.png diff --git a/src/imports/particles/resources/simplefragment.shader b/src/declarative/particles/defaultshaders/simplefragment.shader index 494053e319..494053e319 100644 --- a/src/imports/particles/resources/simplefragment.shader +++ b/src/declarative/particles/defaultshaders/simplefragment.shader diff --git a/src/imports/particles/resources/simplevertex.shader b/src/declarative/particles/defaultshaders/simplevertex.shader index f185ef0700..f185ef0700 100644 --- a/src/imports/particles/resources/simplevertex.shader +++ b/src/declarative/particles/defaultshaders/simplevertex.shader diff --git a/src/imports/particles/resources/spritefragment.shader b/src/declarative/particles/defaultshaders/spritefragment.shader index 4d89d69c6a..4d89d69c6a 100644 --- a/src/imports/particles/resources/spritefragment.shader +++ b/src/declarative/particles/defaultshaders/spritefragment.shader diff --git a/src/imports/particles/resources/spriteimagefragment.shader b/src/declarative/particles/defaultshaders/spriteimagefragment.shader index ecd62cf390..ecd62cf390 100644 --- a/src/imports/particles/resources/spriteimagefragment.shader +++ b/src/declarative/particles/defaultshaders/spriteimagefragment.shader diff --git a/src/imports/particles/resources/spriteimagevertex.shader b/src/declarative/particles/defaultshaders/spriteimagevertex.shader index 27de2ada6a..27de2ada6a 100644 --- a/src/imports/particles/resources/spriteimagevertex.shader +++ b/src/declarative/particles/defaultshaders/spriteimagevertex.shader diff --git a/src/imports/particles/resources/spritevertex.shader b/src/declarative/particles/defaultshaders/spritevertex.shader index 78b8e36b3b..78b8e36b3b 100644 --- a/src/imports/particles/resources/spritevertex.shader +++ b/src/declarative/particles/defaultshaders/spritevertex.shader diff --git a/src/imports/particles/resources/superfragment.shader b/src/declarative/particles/defaultshaders/superfragment.shader index a17f5841ca..a17f5841ca 100644 --- a/src/imports/particles/resources/superfragment.shader +++ b/src/declarative/particles/defaultshaders/superfragment.shader diff --git a/src/imports/particles/resources/supervertex.shader b/src/declarative/particles/defaultshaders/supervertex.shader index 432a23ce05..432a23ce05 100644 --- a/src/imports/particles/resources/supervertex.shader +++ b/src/declarative/particles/defaultshaders/supervertex.shader diff --git a/src/imports/particles/resources/trailsfragment.shader b/src/declarative/particles/defaultshaders/trailsfragment.shader index d3db87fa30..d3db87fa30 100644 --- a/src/imports/particles/resources/trailsfragment.shader +++ b/src/declarative/particles/defaultshaders/trailsfragment.shader diff --git a/src/imports/particles/resources/trailsvertex.shader b/src/declarative/particles/defaultshaders/trailsvertex.shader index 7bc1d66b71..7bc1d66b71 100644 --- a/src/imports/particles/resources/trailsvertex.shader +++ b/src/declarative/particles/defaultshaders/trailsvertex.shader diff --git a/src/imports/particles/resources/ultrafragment.shader b/src/declarative/particles/defaultshaders/ultrafragment.shader index 0627d0f1e8..0627d0f1e8 100644 --- a/src/imports/particles/resources/ultrafragment.shader +++ b/src/declarative/particles/defaultshaders/ultrafragment.shader diff --git a/src/imports/particles/resources/ultravertex.shader b/src/declarative/particles/defaultshaders/ultravertex.shader index 65a1a3077a..65a1a3077a 100644 --- a/src/imports/particles/resources/ultravertex.shader +++ b/src/declarative/particles/defaultshaders/ultravertex.shader diff --git a/src/declarative/particles/particles.pri b/src/declarative/particles/particles.pri new file mode 100644 index 0000000000..04200a380e --- /dev/null +++ b/src/declarative/particles/particles.pri @@ -0,0 +1,60 @@ +INCLUDEPATH += $$PWD + +HEADERS += \ + $$PWD/qsgangleddirection_p.h \ + $$PWD/qsgcustomparticle_p.h \ + $$PWD/qsgellipseextruder_p.h \ + $$PWD/qsgemitter_p.h \ + $$PWD/qsgfollowemitter_p.h \ + $$PWD/qsgfriction_p.h \ + $$PWD/qsggravity_p.h \ + $$PWD/qsgimageparticle_p.h \ + $$PWD/qsgitemparticle_p.h \ + $$PWD/qsgkill_p.h \ + $$PWD/qsglineextruder_p.h \ + $$PWD/qsgmaskextruder_p.h \ + $$PWD/qsgmodelparticle_p.h \ + $$PWD/qsgparticleaffector_p.h \ + $$PWD/qsgparticleemitter_p.h \ + $$PWD/qsgparticleextruder_p.h \ + $$PWD/qsgparticlepainter_p.h \ + $$PWD/qsgparticlesmodule_p.h \ + $$PWD/qsgparticlesystem_p.h \ + $$PWD/qsgpointattractor_p.h \ + $$PWD/qsgpointdirection_p.h \ + $$PWD/qsgspritegoal_p.h \ + $$PWD/qsgstochasticdirection_p.h \ + $$PWD/qsgtargeteddirection_p.h \ + $$PWD/qsgturbulence_p.h \ + $$PWD/qsgwander_p.h + +SOURCES += \ + $$PWD/qsgangleddirection.cpp \ + $$PWD/qsgcustomparticle.cpp \ + $$PWD/qsgellipseextruder.cpp \ + $$PWD/qsgemitter.cpp \ + $$PWD/qsgfollowemitter.cpp \ + $$PWD/qsgfriction.cpp \ + $$PWD/qsggravity.cpp \ + $$PWD/qsgimageparticle.cpp \ + $$PWD/qsgitemparticle.cpp \ + $$PWD/qsgkill.cpp \ + $$PWD/qsglineextruder.cpp \ + $$PWD/qsgmaskextruder.cpp \ + $$PWD/qsgmodelparticle.cpp \ + $$PWD/qsgparticleaffector.cpp \ + $$PWD/qsgparticleemitter.cpp \ + $$PWD/qsgparticleextruder.cpp \ + $$PWD/qsgparticlepainter.cpp \ + $$PWD/qsgparticlesmodule.cpp \ + $$PWD/qsgparticlesystem.cpp \ + $$PWD/qsgpointattractor.cpp \ + $$PWD/qsgpointdirection.cpp \ + $$PWD/qsgspritegoal.cpp \ + $$PWD/qsgstochasticdirection.cpp \ + $$PWD/qsgtargeteddirection.cpp \ + $$PWD/qsgturbulence.cpp \ + $$PWD/qsgwander.cpp + +RESOURCES += \ + $$PWD/particles.qrc diff --git a/src/declarative/particles/particles.qrc b/src/declarative/particles/particles.qrc new file mode 100644 index 0000000000..85931ec9ce --- /dev/null +++ b/src/declarative/particles/particles.qrc @@ -0,0 +1,22 @@ +<RCC> + <qresource prefix="/"> + <file>defaultshaders/spritefragment.shader</file> + <file>defaultshaders/spritevertex.shader</file> + <file>defaultshaders/ctfragment.shader</file> + <file>defaultshaders/ctvertex.shader</file> + <file>defaultshaders/trailsfragment.shader</file> + <file>defaultshaders/trailsvertex.shader</file> + <file>defaultshaders/spriteimagefragment.shader</file> + <file>defaultshaders/spriteimagevertex.shader</file> + <file>defaultshaders/identitytable.png</file> + <file>defaultshaders/defaultFadeInOut.png</file> + <file>defaultshaders/deformablefragment.shader</file> + <file>defaultshaders/deformablevertex.shader</file> + <file>defaultshaders/ultravertex.shader</file> + <file>defaultshaders/ultrafragment.shader</file> + <file>defaultshaders/supervertex.shader</file> + <file>defaultshaders/superfragment.shader</file> + <file>defaultshaders/simplevertex.shader</file> + <file>defaultshaders/simplefragment.shader</file> + </qresource> +</RCC> diff --git a/src/imports/particles/angledvector.cpp b/src/declarative/particles/qsgangleddirection.cpp index 85b5ed7472..5c32b53e3e 100644 --- a/src/imports/particles/angledvector.cpp +++ b/src/declarative/particles/qsgangleddirection.cpp @@ -39,12 +39,12 @@ ** ****************************************************************************/ -#include "angledvector.h" +#include "qsgangleddirection_p.h" #include <cmath> QT_BEGIN_NAMESPACE const qreal CONV = 0.017453292519943295; -AngledVector::AngledVector(QObject *parent) : - VaryingVector(parent) +QSGAngledDirection::QSGAngledDirection(QObject *parent) : + QSGStochasticDirection(parent) , m_angle(0) , m_magnitude(0) , m_angleVariation(0) @@ -53,7 +53,7 @@ AngledVector::AngledVector(QObject *parent) : } -const QPointF &AngledVector::sample(const QPointF &from) +const QPointF &QSGAngledDirection::sample(const QPointF &from) { //TODO: Faster qreal theta = m_angle*CONV - m_angleVariation*CONV + rand()/float(RAND_MAX) * m_angleVariation*CONV * 2; diff --git a/src/imports/particles/angledvector.h b/src/declarative/particles/qsgangleddirection_p.h index ac78059e43..76262453a9 100644 --- a/src/imports/particles/angledvector.h +++ b/src/declarative/particles/qsgangleddirection_p.h @@ -39,16 +39,16 @@ ** ****************************************************************************/ -#ifndef ANGLEDVECTOR_H -#define ANGLEDVECTOR_H -#include "varyingvector.h" +#ifndef QSGANGLEDDIRECTION_H +#define QSGANGLEDDIRECTION_H +#include "qsgstochasticdirection_p.h" QT_BEGIN_HEADER QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class AngledVector : public VaryingVector +class QSGAngledDirection : public QSGStochasticDirection { Q_OBJECT Q_PROPERTY(qreal angle READ angle WRITE setAngle NOTIFY angleChanged) @@ -56,7 +56,7 @@ class AngledVector : public VaryingVector Q_PROPERTY(qreal angleVariation READ angleVariation WRITE setAngleVariation NOTIFY angleVariationChanged) Q_PROPERTY(qreal magnitudeVariation READ magnitudeVariation WRITE setMagnitudeVariation NOTIFY magnitudeVariationChanged) public: - explicit AngledVector(QObject *parent = 0); + explicit QSGAngledDirection(QObject *parent = 0); const QPointF &sample(const QPointF &from); qreal angle() const { @@ -130,4 +130,4 @@ qreal m_magnitudeVariation; QT_END_NAMESPACE QT_END_HEADER -#endif // ANGLEDVECTOR_H +#endif // QSGANGLEDDIRECTION_H diff --git a/src/declarative/particles/qsgcustomparticle.cpp b/src/declarative/particles/qsgcustomparticle.cpp new file mode 100644 index 0000000000..808ff1c427 --- /dev/null +++ b/src/declarative/particles/qsgcustomparticle.cpp @@ -0,0 +1,581 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qsgcustomparticle_p.h" +#include <private/qsgshadereffectmesh_p.h> +#include <cstdlib> + +QT_BEGIN_NAMESPACE +/* + "uniform highp mat4 qt_ModelViewProjectionMatrix; \n" + "attribute highp vec4 qt_Vertex; \n" + "attribute highp vec2 qt_MultiTexCoord0; \n" + "varying highp vec2 qt_TexCoord0; \n" + "void main() { \n" + " qt_TexCoord0 = qt_MultiTexCoord0; \n" + " gl_Position = qt_ModelViewProjectionMatrix * qt_Vertex; \n" + "}"; +*/ +//Includes comments because the code isn't self explanatory +static const char qt_particles_default_vertex_code[] = + "attribute highp vec2 vPos; \n" + "attribute highp vec2 vTex; \n" + "attribute highp vec4 vData; // x = time, y = lifeSpan, z = size, w = endSize \n" + "attribute highp vec4 vVec; // x,y = constant speed, z,w = acceleration \n" + "uniform highp mat4 qt_ModelViewProjectionMatrix; \n" + "uniform highp float timestamp; \n" + "varying highp vec2 fTex; \n" + "void main() { \n" + " fTex = vTex; \n" + " highp float size = vData.z; \n" + " highp float endSize = vData.w; \n" + " highp float t = (timestamp - vData.x) / vData.y; \n" + " highp float currentSize = mix(size, endSize, t * t); \n" + " if (t < 0. || t > 1.) \n" + " currentSize = 0.; \n" + " highp vec2 pos = vPos \n" + " - currentSize / 2. + currentSize * vTex // adjust size \n" + " + vVec.xy * t * vData.y // apply speed vector.. \n" + " + 0.5 * vVec.zw * pow(t * vData.y, 2.); \n" + " gl_Position = qt_ModelViewProjectionMatrix * vec4(pos.x, pos.y, 0, 1); \n" + "}"; + +static const char qt_particles_default_fragment_code[] =//TODO: Default frag requires source? + "uniform sampler2D source; \n" + "varying highp vec2 fTex; \n" + "uniform lowp float qt_Opacity; \n" + "void main() { \n" + " gl_FragColor = texture2D(source, fTex) * qt_Opacity; \n" + "}"; + +/* +static const char qt_particles_default_vertex_code[] = + "attribute highp vec2 vPos; \n" + "attribute highp vec2 vTex; \n" + "uniform highp mat4 qt_ModelViewProjectionMatrix; \n" + "void main() { \n" + " highp float currentSize = 1000.0; \n" + " highp vec2 pos = vec2(100.0,100.0) \n" + " - currentSize / 2. + currentSize * vTex; // adjust size \n" + " gl_Position = qt_ModelViewProjectionMatrix * vec4(pos.x, pos.y, 0, 1); \n" + "}"; +static const char qt_particles_default_fragment_code[] =//TODO: Default frag requires source? + "void main() { \n" + " gl_FragColor = vec4(0,255,0,255); \n" + "}"; +*/ + +static const char qt_position_attribute_name[] = "qt_Vertex"; +static const char qt_texcoord_attribute_name[] = "qt_MultiTexCoord0"; + +static QSGGeometry::Attribute PlainParticle_Attributes[] = { + { 0, 2, GL_FLOAT }, // Position + { 1, 2, GL_FLOAT }, // TexCoord + { 2, 4, GL_FLOAT }, // Data + { 3, 4, GL_FLOAT }, // Vectors + { 4, 1, GL_FLOAT } // r +}; + +static QSGGeometry::AttributeSet PlainParticle_AttributeSet = +{ + 5, // Attribute Count + (2 + 2 + 4 + 4 + 1) * sizeof(float), + PlainParticle_Attributes +}; + +struct PlainVertex { + float x; + float y; + float tx; + float ty; + float t; + float lifeSpan; + float size; + float endSize; + float sx; + float sy; + float ax; + float ay; + float r; +}; + +struct PlainVertices { + PlainVertex v1; + PlainVertex v2; + PlainVertex v3; + PlainVertex v4; +}; + +QSGCustomParticle::QSGCustomParticle(QSGItem* parent) + : QSGParticlePainter(parent) + , m_pleaseReset(true) + , m_dirtyData(true) +{ + setFlag(QSGItem::ItemHasContents); +} + +void QSGCustomParticle::componentComplete() +{ + reset(); + QSGParticlePainter::componentComplete(); +} + + +//Trying to keep the shader conventions the same as in qsgshadereffectitem +/*! + \qmlproperty string CustomParticle::fragmentShader + + This property holds the fragment shader's GLSL source code. + The default shader passes the texture coordinate along to the fragment + shader as "varying highp vec2 qt_TexCoord0". +*/ + +void QSGCustomParticle::setFragmentShader(const QByteArray &code) +{ + if (m_source.fragmentCode.constData() == code.constData()) + return; + m_source.fragmentCode = code; + if (isComponentComplete()) { + reset(); + } + emit fragmentShaderChanged(); +} + +/*! + \qmlproperty string CustomParticle::vertexShader + + This property holds the vertex shader's GLSL source code. + The default shader expects the texture coordinate to be passed from the + vertex shader as "varying highp vec2 qt_TexCoord0", and it samples from a + sampler2D named "source". +*/ + +void QSGCustomParticle::setVertexShader(const QByteArray &code) +{ + if (m_source.vertexCode.constData() == code.constData()) + return; + m_source.vertexCode = code; + if (isComponentComplete()) { + reset(); + } + emit vertexShaderChanged(); +} + +void QSGCustomParticle::setCount(int c) +{ + QSGParticlePainter::setCount(c); + m_pleaseReset = true; +} + +void QSGCustomParticle::reset() +{ + disconnectPropertySignals(); + + m_source.attributeNames.clear(); + m_source.uniformNames.clear(); + m_source.respectsOpacity = false; + m_source.respectsMatrix = false; + m_source.className = metaObject()->className(); + + for (int i = 0; i < m_sources.size(); ++i) { + const SourceData &source = m_sources.at(i); + delete source.mapper; + if (source.item && source.item->parentItem() == this) + source.item->setParentItem(0); + } + m_sources.clear(); + + QSGParticlePainter::reset(); + m_pleaseReset = true; +} + + +void QSGCustomParticle::changeSource(int index) +{ + Q_ASSERT(index >= 0 && index < m_sources.size()); + QVariant v = property(m_sources.at(index).name.constData()); + setSource(v, index); +} + +void QSGCustomParticle::updateData() +{ + m_dirtyData = true; + update(); +} + +void QSGCustomParticle::setSource(const QVariant &var, int index) +{ + Q_ASSERT(index >= 0 && index < m_sources.size()); + + SourceData &source = m_sources[index]; + + source.item = 0; + if (var.isNull()) { + return; + } else if (!qVariantCanConvert<QObject *>(var)) { + qWarning("Could not assign source of type '%s' to property '%s'.", var.typeName(), source.name.constData()); + return; + } + + QObject *obj = qVariantValue<QObject *>(var); + + QSGTextureProvider *int3rface = QSGTextureProvider::from(obj); + if (!int3rface) { + qWarning("Could not assign property '%s', did not implement QSGTextureProvider.", source.name.constData()); + } + + source.item = qobject_cast<QSGItem *>(obj); + + // TODO: Copy better solution in QSGShaderEffectItem when they find it. + // 'source.item' needs a canvas to get a scenegraph node. + // The easiest way to make sure it gets a canvas is to + // make it a part of the same item tree as 'this'. + if (source.item && source.item->parentItem() == 0) { + source.item->setParentItem(this); + source.item->setVisible(false); + } +} + +void QSGCustomParticle::disconnectPropertySignals() +{ + disconnect(this, 0, this, SLOT(updateData())); + for (int i = 0; i < m_sources.size(); ++i) { + SourceData &source = m_sources[i]; + disconnect(this, 0, source.mapper, 0); + disconnect(source.mapper, 0, this, 0); + } +} + +void QSGCustomParticle::connectPropertySignals() +{ + QSet<QByteArray>::const_iterator it; + for (it = m_source.uniformNames.begin(); it != m_source.uniformNames.end(); ++it) { + int pi = metaObject()->indexOfProperty(it->constData()); + if (pi >= 0) { + QMetaProperty mp = metaObject()->property(pi); + if (!mp.hasNotifySignal()) + qWarning("QSGShaderEffectItem: property '%s' does not have notification method!", it->constData()); + QByteArray signalName("2"); + signalName.append(mp.notifySignal().signature()); + connect(this, signalName, this, SLOT(updateData())); + } else { + qWarning("QSGShaderEffectItem: '%s' does not have a matching property!", it->constData()); + } + } + for (int i = 0; i < m_sources.size(); ++i) { + SourceData &source = m_sources[i]; + int pi = metaObject()->indexOfProperty(source.name.constData()); + if (pi >= 0) { + QMetaProperty mp = metaObject()->property(pi); + QByteArray signalName("2"); + signalName.append(mp.notifySignal().signature()); + connect(this, signalName, source.mapper, SLOT(map())); + source.mapper->setMapping(this, i); + connect(source.mapper, SIGNAL(mapped(int)), this, SLOT(changeSource(int))); + } else { + qWarning("QSGShaderEffectItem: '%s' does not have a matching source!", source.name.constData()); + } + } +} + +void QSGCustomParticle::updateProperties() +{ + QByteArray vertexCode = m_source.vertexCode; + QByteArray fragmentCode = m_source.fragmentCode; + if (vertexCode.isEmpty()) + vertexCode = qt_particles_default_vertex_code; + if (fragmentCode.isEmpty()) + fragmentCode = qt_particles_default_fragment_code; + + m_source.attributeNames.clear(); + m_source.attributeNames << "vPos" << "vTex" << "vData" << "vVec" << "r"; + + lookThroughShaderCode(vertexCode); + lookThroughShaderCode(fragmentCode); + + if (!m_source.attributeNames.contains(qt_position_attribute_name)) + qWarning("QSGShaderEffectItem: Missing reference to \'%s\'.", qt_position_attribute_name); + if (!m_source.attributeNames.contains(qt_texcoord_attribute_name)) + qWarning("QSGShaderEffectItem: Missing reference to \'%s\'.", qt_texcoord_attribute_name); + if (!m_source.respectsMatrix) + qWarning("QSGShaderEffectItem: Missing reference to \'qt_ModelViewProjectionMatrix\'."); + if (!m_source.respectsOpacity) + qWarning("QSGShaderEffectItem: Missing reference to \'qt_Opacity\'."); + + for (int i = 0; i < m_sources.size(); ++i) { + QVariant v = property(m_sources.at(i).name); + setSource(v, i); + } + + connectPropertySignals(); +} + +void QSGCustomParticle::lookThroughShaderCode(const QByteArray &code) +{ + // Regexp for matching attributes and uniforms. + // In human readable form: attribute|uniform [lowp|mediump|highp] <type> <name> + static QRegExp re(QLatin1String("\\b(attribute|uniform)\\b\\s*\\b(?:lowp|mediump|highp)?\\b\\s*\\b(\\w+)\\b\\s*\\b(\\w+)")); + Q_ASSERT(re.isValid()); + + int pos = -1; + + QString wideCode = QString::fromLatin1(code.constData(), code.size()); + + while ((pos = re.indexIn(wideCode, pos + 1)) != -1) { + QByteArray decl = re.cap(1).toLatin1(); // uniform or attribute + QByteArray type = re.cap(2).toLatin1(); // type + QByteArray name = re.cap(3).toLatin1(); // variable name + + if (decl == "attribute") { + if(!m_source.attributeNames.contains(name))//TODO: Can they add custom attributes? + qWarning() << "Custom Particle: Unknown attribute " << name; + } else { + Q_ASSERT(decl == "uniform");//TODO: Shouldn't assert + + if (name == "qt_ModelViewProjectionMatrix") { + m_source.respectsMatrix = true; + } else if (name == "qt_Opacity") { + m_source.respectsOpacity = true; + } else if (name == "timestamp") { + //TODO: Copy the whole thing just because I have one more uniform? + } else { + m_source.uniformNames.insert(name); + if (type == "sampler2D") { + SourceData d; + d.mapper = new QSignalMapper; + d.name = name; + d.item = 0; + m_sources.append(d); + } + } + } + } +} + +QSGNode *QSGCustomParticle::updatePaintNode(QSGNode *oldNode, UpdatePaintNodeData *) +{ + if(m_pleaseReset){ + if(m_node) + delete m_node; + //delete m_material;//Shader effect item doesn't regen material? + + m_node = 0; + m_pleaseReset = false; + m_dirtyData = false; + } + + if(m_system && m_system->isRunning()) + prepareNextFrame(); + if (m_node){ + if(oldNode) + Q_ASSERT(oldNode == m_node); + update(); + m_node->markDirty(QSGNode::DirtyMaterial); //done in buildData? + } + + return m_node; +} + +void QSGCustomParticle::prepareNextFrame(){ + if(!m_node) + m_node = buildCustomNode(); + if(!m_node) + return; + + m_lastTime = m_system->systemSync(this) / 1000.; + if(m_dirtyData || true)//Currently this is how we update timestamp... potentially over expensive. + buildData(); +} + +QSGShaderEffectNode* QSGCustomParticle::buildCustomNode() +{ + if (m_count * 4 > 0xffff) { + printf("CustomParticle: Too many particles... \n");//####Why is this here? + return 0; + } + + if(m_count <= 0) { + printf("CustomParticle: Too few particles... \n"); + return 0; + } + + + //Create Particle Geometry + int vCount = m_count * 4; + int iCount = m_count * 6; + QSGGeometry *g = new QSGGeometry(PlainParticle_AttributeSet, vCount, iCount); + g->setDrawingMode(GL_TRIANGLES); + PlainVertex *vertices = (PlainVertex *) g->vertexData(); + for (int p=0; p<m_count; ++p) { + double r = rand()/(double)RAND_MAX;//TODO: Seed? + for (int i=0; i<4; ++i) { + vertices[i].x = 0; + vertices[i].y = 0; + vertices[i].t = -1; + vertices[i].lifeSpan = 0; + vertices[i].size = 0; + vertices[i].endSize = 0; + vertices[i].sx = 0; + vertices[i].sy = 0; + vertices[i].ax = 0; + vertices[i].ay = 0; + vertices[i].r = r; + } + + vertices[0].tx = 0; + vertices[0].ty = 0; + + vertices[1].tx = 1; + vertices[1].ty = 0; + + vertices[2].tx = 0; + vertices[2].ty = 1; + + vertices[3].tx = 1; + vertices[3].ty = 1; + + vertices += 4; + } + quint16 *indices = g->indexDataAsUShort(); + for (int i=0; i<m_count; ++i) { + int o = i * 4; + indices[0] = o; + indices[1] = o + 1; + indices[2] = o + 2; + indices[3] = o + 1; + indices[4] = o + 3; + indices[5] = o + 2; + indices += 6; + } + + updateProperties(); + QSGShaderEffectNode* node = new QSGShaderEffectNode(); + + + node->setGeometry(g); + node->setMaterial(&m_material); + + /* + //For debugging, just use grid vertices like ShaderEffect + node->setGeometry(0); + QSGShaderEffectMesh* mesh = new QSGGridMesh(); + node->setFlag(QSGNode::OwnsGeometry, false); + + qDebug() << m_source.attributeNames; + QSGGeometry* geometry = node->geometry(); + geometry = mesh->updateGeometry(geometry, m_source.attributeNames, QRectF(0,0,width(),height())); + if(!geometry) + qDebug() << "Should have written the error handling"; + else + qDebug() << "Mesh Loaded"; + node->setGeometry(geometry); + qDebug() << QString("INIT") << geometry << (QObject*)node; + node->setFlag(QSGNode::OwnsGeometry, true); + */ + QSGShaderEffectProgram s = m_source; + if (s.fragmentCode.isEmpty()) + s.fragmentCode = qt_particles_default_fragment_code; + if (s.vertexCode.isEmpty()) + s.vertexCode = qt_particles_default_vertex_code; + m_material.setProgramSource(s); + node->markDirty(QSGNode::DirtyMaterial); + node->markDirty(QSGNode::DirtyAll); + return node; +} + +static const QByteArray timestampName("timestamp"); + +void QSGCustomParticle::buildData() +{ + if(!m_node)//Operates on m_node + return; + QVector<QPair<QByteArray, QVariant> > values; + QVector<QPair<QByteArray, QPointer<QSGItem> > > textures; + const QVector<QPair<QByteArray, QPointer<QSGItem> > > &oldTextures = m_material.textureProviders(); + + for (QSet<QByteArray>::const_iterator it = m_source.uniformNames.begin(); + it != m_source.uniformNames.end(); ++it) { + values.append(qMakePair(*it, property(*it))); + } + for (int i = 0; i < oldTextures.size(); ++i) { + QSGTextureProvider *oldSource = QSGTextureProvider::from(oldTextures.at(i).second); + if (oldSource && oldSource->textureChangedSignal()) + disconnect(oldTextures.at(i).second, oldSource->textureChangedSignal(), m_node, SLOT(markDirtyTexture())); + } + for (int i = 0; i < m_sources.size(); ++i) { + const SourceData &source = m_sources.at(i); + textures.append(qMakePair(source.name, source.item)); + QSGTextureProvider *t = QSGTextureProvider::from(source.item); + if (t && t->textureChangedSignal()) + connect(source.item, t->textureChangedSignal(), m_node, SLOT(markDirtyTexture()), Qt::DirectConnection); + } + values.append(qMakePair(timestampName, QVariant(m_lastTime))); + m_material.setUniforms(values); + m_material.setTextureProviders(textures); + m_node->markDirty(QSGNode::DirtyMaterial); + m_dirtyData = false; +} + +void QSGCustomParticle::load(QSGParticleData *d) +{ + reload(d);//We don't do anything special in C++ here. +} + +void QSGCustomParticle::reload(QSGParticleData *d) +{ + if (m_node == 0) + return; + + PlainVertices *particles = (PlainVertices *) m_node->geometry()->vertexData(); + + int pos = particleTypeIndex(d); + + PlainVertices &p = particles[pos]; + + //Perhaps we could be more efficient? + vertexCopy(p.v1, d->pv); + vertexCopy(p.v2, d->pv); + vertexCopy(p.v3, d->pv); + vertexCopy(p.v4, d->pv); + +} + +QT_END_NAMESPACE diff --git a/src/declarative/particles/qsgcustomparticle_p.h b/src/declarative/particles/qsgcustomparticle_p.h new file mode 100644 index 0000000000..95144ef638 --- /dev/null +++ b/src/declarative/particles/qsgcustomparticle_p.h @@ -0,0 +1,114 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef CUSTOM_PARTICLE_H +#define CUSTOM_PARTICLE_H +#include "qsgparticlepainter_p.h" +#include <QtDeclarative/private/qsgshadereffectnode_p.h> +#include <QSignalMapper> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +class QSGNode; + +//Genealogy: Hybrid of UltraParticle and ShaderEffectItem +class QSGCustomParticle : public QSGParticlePainter +{ + Q_OBJECT + Q_PROPERTY(QByteArray fragmentShader READ fragmentShader WRITE setFragmentShader NOTIFY fragmentShaderChanged) + Q_PROPERTY(QByteArray vertexShader READ vertexShader WRITE setVertexShader NOTIFY vertexShaderChanged) + +public: + explicit QSGCustomParticle(QSGItem* parent=0); + virtual void load(QSGParticleData*); + virtual void reload(QSGParticleData*); + virtual void setCount(int c); + + QByteArray fragmentShader() const { return m_source.fragmentCode; } + void setFragmentShader(const QByteArray &code); + + QByteArray vertexShader() const { return m_source.vertexCode; } + void setVertexShader(const QByteArray &code); +public Q_SLOTS: + void updateData(); + void changeSource(int); +Q_SIGNALS: + void fragmentShaderChanged(); + void vertexShaderChanged(); +protected: + QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *); + void prepareNextFrame(); + void setSource(const QVariant &var, int index); + void disconnectPropertySignals(); + void connectPropertySignals(); + void reset(); + void updateProperties(); + void lookThroughShaderCode(const QByteArray &code); + virtual void componentComplete(); + QSGShaderEffectNode *buildCustomNode(); + +private: + void buildData(); + + bool m_pleaseReset; + bool m_dirtyData; + QSGShaderEffectProgram m_source; + struct SourceData + { + QSignalMapper *mapper; + QPointer<QSGItem> item; + QByteArray name; + }; + QVector<SourceData> m_sources; + QSGShaderEffectMaterial m_material; + QSGShaderEffectNode* m_node; + qreal m_lastTime; +}; + +QT_END_NAMESPACE + +QT_END_HEADER + +#endif //HEADER_GUARD diff --git a/src/imports/particles/ellipseextruder.cpp b/src/declarative/particles/qsgellipseextruder.cpp index 1a0d70594b..76925895b9 100644 --- a/src/imports/particles/ellipseextruder.cpp +++ b/src/declarative/particles/qsgellipseextruder.cpp @@ -39,16 +39,16 @@ ** ****************************************************************************/ -#include "ellipseextruder.h" +#include "qsgellipseextruder_p.h" #include <cmath> QT_BEGIN_NAMESPACE -EllipseExtruder::EllipseExtruder(QObject *parent) : - ParticleExtruder(parent) +QSGEllipseExtruder::QSGEllipseExtruder(QObject *parent) : + QSGParticleExtruder(parent) , m_fill(true) { } -QPointF EllipseExtruder::extrude(const QRectF & r) +QPointF QSGEllipseExtruder::extrude(const QRectF & r) { qreal theta = ((qreal)rand()/RAND_MAX) * 6.2831853071795862; qreal mag = m_fill ? ((qreal)rand()/RAND_MAX) : 1; @@ -56,7 +56,7 @@ QPointF EllipseExtruder::extrude(const QRectF & r) r.y() + r.height()/2 + mag * (r.height()/2) * sin(theta)); } -bool EllipseExtruder::contains(const QRectF &bounds, const QPointF &point) +bool QSGEllipseExtruder::contains(const QRectF &bounds, const QPointF &point) { return bounds.contains(point);//TODO: Ellipse } diff --git a/src/imports/particles/ellipseextruder.h b/src/declarative/particles/qsgellipseextruder_p.h index 25cc9bc16a..9f770a7ee6 100644 --- a/src/imports/particles/ellipseextruder.h +++ b/src/declarative/particles/qsgellipseextruder_p.h @@ -41,7 +41,7 @@ #ifndef ELLIPSEEXTRUDER_H #define ELLIPSEEXTRUDER_H -#include "particleextruder.h" +#include "qsgparticleextruder_p.h" QT_BEGIN_HEADER @@ -50,12 +50,12 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class EllipseExtruder : public ParticleExtruder +class QSGEllipseExtruder : public QSGParticleExtruder { Q_OBJECT Q_PROPERTY(bool fill READ fill WRITE setFill NOTIFY fillChanged)//###Use base class? If it's still box public: - explicit EllipseExtruder(QObject *parent = 0); + explicit QSGEllipseExtruder(QObject *parent = 0); virtual QPointF extrude(const QRectF &); virtual bool contains(const QRectF &bounds, const QPointF &point); diff --git a/src/imports/particles/trailsemitter.cpp b/src/declarative/particles/qsgemitter.cpp index 41635a4299..081dd8dec5 100644 --- a/src/imports/particles/trailsemitter.cpp +++ b/src/declarative/particles/qsgemitter.cpp @@ -39,13 +39,13 @@ ** ****************************************************************************/ -#include "trailsemitter.h" -#include "particlesystem.h" -#include "particle.h" +#include "qsgemitter_p.h" +#include "qsgparticlesystem_p.h" +#include "qsgparticlepainter_p.h"//TODO: What was this for again? QT_BEGIN_NAMESPACE -TrailsEmitter::TrailsEmitter(QSGItem* parent) - : ParticleEmitter(parent) +QSGBasicEmitter::QSGBasicEmitter(QSGItem* parent) + : QSGParticleEmitter(parent) , m_speed_from_movement(0) , m_particle_count(0) , m_reset_last(true) @@ -55,7 +55,7 @@ TrailsEmitter::TrailsEmitter(QSGItem* parent) // setFlag(ItemHasContents); } -void TrailsEmitter::setSpeedFromMovement(qreal t) +void QSGBasicEmitter::setSpeedFromMovement(qreal t) { if (t == m_speed_from_movement) return; @@ -63,12 +63,12 @@ void TrailsEmitter::setSpeedFromMovement(qreal t) emit speedFromMovementChanged(); } -void TrailsEmitter::reset() +void QSGBasicEmitter::reset() { m_reset_last = true; } -void TrailsEmitter::emitWindow(int timeStamp) +void QSGBasicEmitter::emitWindow(int timeStamp) { if (m_system == 0) return; @@ -121,7 +121,7 @@ void TrailsEmitter::emitWindow(int timeStamp) pt = time; while (pt < time || !m_burstQueue.isEmpty()) { //int pos = m_last_particle % m_particle_count; - ParticleData* datum = m_system->newDatum(m_system->m_groupIds[m_particle]); + QSGParticleData* datum = m_system->newDatum(m_system->m_groupIds[m_particle]); if(datum){//actually emit(otherwise we've been asked to skip this one) datum->e = this;//###useful? ParticleVertex &p = datum->pv; diff --git a/src/imports/particles/trailsemitter.h b/src/declarative/particles/qsgemitter_p.h index 1ae150c0d2..3988c71cdf 100644 --- a/src/imports/particles/trailsemitter.h +++ b/src/declarative/particles/qsgemitter_p.h @@ -45,7 +45,7 @@ #include <QtCore> #include <QtGui> -#include "particleemitter.h" +#include "qsgparticleemitter_p.h" QT_BEGIN_HEADER @@ -54,18 +54,17 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class ParticleTrailsMaterial; class QSGGeometryNode; -class TrailsEmitter : public ParticleEmitter +class QSGBasicEmitter : public QSGParticleEmitter { Q_OBJECT Q_PROPERTY(qreal speedFromMovement READ speedFromMovement WRITE setSpeedFromMovement NOTIFY speedFromMovementChanged) public: - explicit TrailsEmitter(QSGItem* parent=0); - virtual ~TrailsEmitter(){} + explicit QSGBasicEmitter(QSGItem* parent=0); + virtual ~QSGBasicEmitter(){} virtual void emitWindow(int timeStamp); diff --git a/src/imports/particles/followemitter.cpp b/src/declarative/particles/qsgfollowemitter.cpp index 17a544f62d..442cff9ec8 100644 --- a/src/imports/particles/followemitter.cpp +++ b/src/declarative/particles/qsgfollowemitter.cpp @@ -39,20 +39,20 @@ ** ****************************************************************************/ -#include "followemitter.h" -#include "particle.h" +#include "qsgfollowemitter_p.h" +#include "qsgparticlepainter_p.h"//TODO: What was this for again? #include <cmath> QT_BEGIN_NAMESPACE -FollowEmitter::FollowEmitter(QSGItem *parent) : - ParticleEmitter(parent) +QSGFollowEmitter::QSGFollowEmitter(QSGItem *parent) : + QSGParticleEmitter(parent) , m_particlesPerParticlePerSecond(0) , m_lastTimeStamp(0) , m_emitterXVariation(0) , m_emitterYVariation(0) , m_followCount(0) , m_emissionExtruder(0) - , m_defaultEmissionExtruder(new ParticleExtruder(this)) + , m_defaultEmissionExtruder(new QSGParticleExtruder(this)) { connect(this, SIGNAL(followChanged(QString)), this, SLOT(recalcParticlesPerSecond())); @@ -62,7 +62,7 @@ FollowEmitter::FollowEmitter(QSGItem *parent) : this, SLOT(recalcParticlesPerSecond())); } -void FollowEmitter::recalcParticlesPerSecond(){ +void QSGFollowEmitter::recalcParticlesPerSecond(){ if(!m_system) return; m_followCount = m_system->m_groupData[m_system->m_groupIds[m_follow]]->size; @@ -75,12 +75,12 @@ void FollowEmitter::recalcParticlesPerSecond(){ } } -void FollowEmitter::reset() +void QSGFollowEmitter::reset() { m_followCount = 0; } -void FollowEmitter::emitWindow(int timeStamp) +void QSGFollowEmitter::emitWindow(int timeStamp) { if (m_system == 0) return; @@ -113,7 +113,7 @@ void FollowEmitter::emitWindow(int timeStamp) int gId2 = m_system->m_groupIds[m_particle]; for(int i=0; i<m_system->m_groupData[gId]->size; i++){ pt = m_lastEmission[i]; - ParticleData* d = m_system->m_data[i + m_system->m_groupData[gId]->start]; + QSGParticleData* d = m_system->m_data[i + m_system->m_groupData[gId]->start]; if(!d || !d->stillAlive()) continue; if(pt < d->pv.t) @@ -124,7 +124,7 @@ void FollowEmitter::emitWindow(int timeStamp) continue; } while(pt < time || !m_burstQueue.isEmpty()){ - ParticleData* datum = m_system->newDatum(gId2); + QSGParticleData* datum = m_system->newDatum(gId2); if(datum){//else, skip this emission datum->e = this;//###useful? ParticleVertex &p = datum->pv; @@ -152,7 +152,7 @@ void FollowEmitter::emitWindow(int timeStamp) // sizeOffset*2, // sizeOffset*2); - ParticleExtruder* effectiveEmissionExtruder = m_emissionExtruder ? m_emissionExtruder : m_defaultEmissionExtruder; + QSGParticleExtruder* effectiveEmissionExtruder = m_emissionExtruder ? m_emissionExtruder : m_defaultEmissionExtruder; const QPointF &newPos = effectiveEmissionExtruder->extrude(boundsRect); p.x = newPos.x(); p.y = newPos.y(); diff --git a/src/imports/particles/followemitter.h b/src/declarative/particles/qsgfollowemitter_p.h index 6df293e2e1..bf5d2fe8ef 100644 --- a/src/imports/particles/followemitter.h +++ b/src/declarative/particles/qsgfollowemitter_p.h @@ -41,8 +41,8 @@ #ifndef FOLLOWEMITTER_H #define FOLLOWEMITTER_H -#include "particleemitter.h" -#include "particleaffector.h" +#include "qsgparticleemitter_p.h" +#include "qsgparticleaffector_p.h" QT_BEGIN_HEADER @@ -51,21 +51,21 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class FollowEmitter : public ParticleEmitter +class QSGFollowEmitter : public QSGParticleEmitter { Q_OBJECT Q_PROPERTY(QString follow READ follow WRITE setFollow NOTIFY followChanged) //### Remove, and just document that particles per second is per particle? But has count issues - Q_PROPERTY(int particlesPerParticlePerSecond READ particlesPerParticlePerSecond WRITE setParticlesPerParticlePerSecond NOTIFY particlesPerParticlePerSecondChanged) + Q_PROPERTY(int emitRatePerParticle READ particlesPerParticlePerSecond WRITE setParticlesPerParticlePerSecond NOTIFY particlesPerParticlePerSecondChanged) //TODO: Document that FollowEmitter's box is where it follows. It emits in a rect centered on the followed particle //TODO: A set of properties that can involve the particle size of the followed - Q_PROPERTY(ParticleExtruder* emissionShape READ emissonShape WRITE setEmissionShape NOTIFY emissionShapeChanged) - Q_PROPERTY(qreal emissionHeight READ emitterYVariation WRITE setEmitterYVariation NOTIFY emitterYVariationChanged) - Q_PROPERTY(qreal emissionWidth READ emitterXVariation WRITE setEmitterXVariation NOTIFY emitterXVariationChanged) + Q_PROPERTY(QSGParticleExtruder* emitShape READ emissonShape WRITE setEmissionShape NOTIFY emissionShapeChanged) + Q_PROPERTY(qreal emitHeight READ emitterYVariation WRITE setEmitterYVariation NOTIFY emitterYVariationChanged) + Q_PROPERTY(qreal emitWidth READ emitterXVariation WRITE setEmitterXVariation NOTIFY emitterXVariationChanged) public: - explicit FollowEmitter(QSGItem *parent = 0); + explicit QSGFollowEmitter(QSGItem *parent = 0); virtual void emitWindow(int timeStamp); virtual void reset(); @@ -89,7 +89,7 @@ public: return m_follow; } - ParticleExtruder* emissonShape() const + QSGParticleExtruder* emissonShape() const { return m_emissionExtruder; } @@ -104,7 +104,7 @@ signals: void followChanged(QString arg); - void emissionShapeChanged(ParticleExtruder* arg); + void emissionShapeChanged(QSGParticleExtruder* arg); public slots: @@ -139,7 +139,7 @@ public slots: } } - void setEmissionShape(ParticleExtruder* arg) + void setEmissionShape(QSGParticleExtruder* arg) { if (m_emissionExtruder != arg) { m_emissionExtruder = arg; @@ -151,7 +151,7 @@ private slots: void recalcParticlesPerSecond(); private: - QSet<ParticleData*> m_pending; + QSet<QSGParticleData*> m_pending; QVector<qreal> m_lastEmission; int m_particlesPerParticlePerSecond; qreal m_lastTimeStamp; @@ -159,8 +159,8 @@ private: qreal m_emitterYVariation; QString m_follow; int m_followCount; - ParticleExtruder* m_emissionExtruder; - ParticleExtruder* m_defaultEmissionExtruder; + QSGParticleExtruder* m_emissionExtruder; + QSGParticleExtruder* m_defaultEmissionExtruder; }; QT_END_NAMESPACE diff --git a/src/imports/particles/frictionaffector.cpp b/src/declarative/particles/qsgfriction.cpp index 057bb20958..828d20556d 100644 --- a/src/imports/particles/frictionaffector.cpp +++ b/src/declarative/particles/qsgfriction.cpp @@ -39,14 +39,14 @@ ** ****************************************************************************/ -#include "frictionaffector.h" +#include "qsgfriction_p.h" QT_BEGIN_NAMESPACE -FrictionAffector::FrictionAffector(QSGItem *parent) : - ParticleAffector(parent), m_factor(0.0) +QSGFrictionAffector::QSGFrictionAffector(QSGItem *parent) : + QSGParticleAffector(parent), m_factor(0.0) { } -bool FrictionAffector::affectParticle(ParticleData *d, qreal dt) +bool QSGFrictionAffector::affectParticle(QSGParticleData *d, qreal dt) { if(!m_factor) return false; diff --git a/src/imports/particles/frictionaffector.h b/src/declarative/particles/qsgfriction_p.h index 67b5f1029c..6b5a86f3f2 100644 --- a/src/imports/particles/frictionaffector.h +++ b/src/declarative/particles/qsgfriction_p.h @@ -41,7 +41,7 @@ #ifndef FRICTIONAFFECTOR_H #define FRICTIONAFFECTOR_H -#include "particleaffector.h" +#include "qsgparticleaffector_p.h" QT_BEGIN_HEADER @@ -50,19 +50,19 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class FrictionAffector : public ParticleAffector +class QSGFrictionAffector : public QSGParticleAffector { Q_OBJECT Q_PROPERTY(qreal factor READ factor WRITE setFactor NOTIFY factorChanged) public: - explicit FrictionAffector(QSGItem *parent = 0); + explicit QSGFrictionAffector(QSGItem *parent = 0); qreal factor() const { return m_factor; } protected: - virtual bool affectParticle(ParticleData *d, qreal dt); + virtual bool affectParticle(QSGParticleData *d, qreal dt); signals: void factorChanged(qreal arg); diff --git a/src/imports/particles/gravityaffector.cpp b/src/declarative/particles/qsggravity.cpp index 02edbacd68..de735da5ad 100644 --- a/src/imports/particles/gravityaffector.cpp +++ b/src/declarative/particles/qsggravity.cpp @@ -39,12 +39,12 @@ ** ****************************************************************************/ -#include "gravityaffector.h" +#include "qsggravity_p.h" #include <cmath> QT_BEGIN_NAMESPACE const qreal CONV = 0.017453292520444443; -GravityAffector::GravityAffector(QSGItem *parent) : - ParticleAffector(parent), m_acceleration(-10), m_angle(90), m_xAcc(0), m_yAcc(0) +QSGGravityAffector::QSGGravityAffector(QSGItem *parent) : + QSGParticleAffector(parent), m_acceleration(-10), m_angle(90), m_xAcc(0), m_yAcc(0) { connect(this, SIGNAL(accelerationChanged(qreal)), this, SLOT(recalc())); @@ -53,14 +53,14 @@ GravityAffector::GravityAffector(QSGItem *parent) : recalc(); } -void GravityAffector::recalc() +void QSGGravityAffector::recalc() { qreal theta = m_angle * CONV; m_xAcc = m_acceleration * cos(theta); m_yAcc = m_acceleration * sin(theta); } -bool GravityAffector::affectParticle(ParticleData *d, qreal dt) +bool QSGGravityAffector::affectParticle(QSGParticleData *d, qreal dt) { Q_UNUSED(dt); bool changed = false; diff --git a/src/imports/particles/gravityaffector.h b/src/declarative/particles/qsggravity_p.h index 004b59e182..57b2511911 100644 --- a/src/imports/particles/gravityaffector.h +++ b/src/declarative/particles/qsggravity_p.h @@ -41,7 +41,7 @@ #ifndef GRAVITYAFFECTOR_H #define GRAVITYAFFECTOR_H -#include "particleaffector.h" +#include "qsgparticleaffector_p.h" QT_BEGIN_HEADER @@ -50,13 +50,13 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class GravityAffector : public ParticleAffector +class QSGGravityAffector : public QSGParticleAffector { Q_OBJECT Q_PROPERTY(qreal acceleration READ acceleration WRITE setAcceleration NOTIFY accelerationChanged) Q_PROPERTY(qreal angle READ angle WRITE setAngle NOTIFY angleChanged) public: - explicit GravityAffector(QSGItem *parent = 0); + explicit QSGGravityAffector(QSGItem *parent = 0); qreal acceleration() const { return m_acceleration; @@ -67,7 +67,7 @@ public: return m_angle; } protected: - virtual bool affectParticle(ParticleData *d, qreal dt); + virtual bool affectParticle(QSGParticleData *d, qreal dt); signals: void accelerationChanged(qreal arg); diff --git a/src/imports/particles/ultraparticle.cpp b/src/declarative/particles/qsgimageparticle.cpp index fd49523aff..c9df5f4dbd 100644 --- a/src/imports/particles/ultraparticle.cpp +++ b/src/declarative/particles/qsgimageparticle.cpp @@ -45,10 +45,10 @@ #include <qsgtexturematerial.h> #include <qsgtexture.h> #include <QFile> -#include "ultraparticle.h" -#include "particleemitter.h" -#include "spritestate.h" -#include "spriteengine.h" +#include "qsgimageparticle_p.h" +#include "qsgparticleemitter_p.h" +#include "qsgsprite_p.h" +#include "qsgspriteengine_p.h" #include <QGLFunctions> #include <qsgengine.h> @@ -97,11 +97,11 @@ class UltraMaterialData : public QSGMaterialShader public: UltraMaterialData(const char *vertexFile = 0, const char *fragmentFile = 0) { - QFile vf(vertexFile ? vertexFile : ":resources/ultravertex.shader"); + QFile vf(vertexFile ? vertexFile : ":defaultshaders/ultravertex.shader"); vf.open(QFile::ReadOnly); m_vertex_code = vf.readAll(); - QFile ff(fragmentFile ? fragmentFile : ":resources/ultrafragment.shader"); + QFile ff(fragmentFile ? fragmentFile : ":defaultshaders/ultrafragment.shader"); ff.open(QFile::ReadOnly); m_fragment_code = ff.readAll(); @@ -211,11 +211,11 @@ class SimpleMaterialData : public QSGMaterialShader public: SimpleMaterialData(const char *vertexFile = 0, const char *fragmentFile = 0) { - QFile vf(vertexFile ? vertexFile : ":resources/simplevertex.shader"); + QFile vf(vertexFile ? vertexFile : ":defaultshaders/simplevertex.shader"); vf.open(QFile::ReadOnly); m_vertex_code = vf.readAll(); - QFile ff(fragmentFile ? fragmentFile : ":resources/simplefragment.shader"); + QFile ff(fragmentFile ? fragmentFile : ":defaultshaders/simplefragment.shader"); ff.open(QFile::ReadOnly); m_fragment_code = ff.readAll(); @@ -281,8 +281,8 @@ QSGMaterialShader *SimpleMaterial::createShader() const { return new SimpleMaterialData; } -UltraParticle::UltraParticle(QSGItem* parent) - : ParticleType(parent) +QSGImageParticle::QSGImageParticle(QSGItem* parent) + : QSGParticlePainter(parent) , m_do_reset(false) , m_color_variation(0.0) , m_node(0) @@ -307,12 +307,12 @@ UltraParticle::UltraParticle(QSGItem* parent) setFlag(ItemHasContents); } -QDeclarativeListProperty<SpriteState> UltraParticle::sprites() +QDeclarativeListProperty<QSGSprite> QSGImageParticle::sprites() { - return QDeclarativeListProperty<SpriteState>(this, &m_sprites, spriteAppend, spriteCount, spriteAt, spriteClear); + return QDeclarativeListProperty<QSGSprite>(this, &m_sprites, spriteAppend, spriteCount, spriteAt, spriteClear); } -void UltraParticle::setImage(const QUrl &image) +void QSGImageParticle::setImage(const QUrl &image) { if (image == m_image_name) return; @@ -322,7 +322,7 @@ void UltraParticle::setImage(const QUrl &image) } -void UltraParticle::setColortable(const QUrl &table) +void QSGImageParticle::setColortable(const QUrl &table) { if (table == m_colortable_name) return; @@ -331,7 +331,7 @@ void UltraParticle::setColortable(const QUrl &table) reset(); } -void UltraParticle::setSizetable(const QUrl &table) +void QSGImageParticle::setSizetable(const QUrl &table) { if (table == m_sizetable_name) return; @@ -340,7 +340,7 @@ void UltraParticle::setSizetable(const QUrl &table) reset(); } -void UltraParticle::setOpacitytable(const QUrl &table) +void QSGImageParticle::setOpacitytable(const QUrl &table) { if (table == m_opacitytable_name) return; @@ -349,7 +349,7 @@ void UltraParticle::setOpacitytable(const QUrl &table) reset(); } -void UltraParticle::setColor(const QColor &color) +void QSGImageParticle::setColor(const QColor &color) { if (color == m_color) return; @@ -359,7 +359,7 @@ void UltraParticle::setColor(const QColor &color) reset(); } -void UltraParticle::setColorVariation(qreal var) +void QSGImageParticle::setColorVariation(qreal var) { if (var == m_color_variation) return; @@ -369,7 +369,7 @@ void UltraParticle::setColorVariation(qreal var) reset(); } -void UltraParticle::setAlphaVariation(qreal arg) +void QSGImageParticle::setAlphaVariation(qreal arg) { if (m_alphaVariation != arg) { m_alphaVariation = arg; @@ -379,7 +379,7 @@ void UltraParticle::setAlphaVariation(qreal arg) reset(); } -void UltraParticle::setAlpha(qreal arg) +void QSGImageParticle::setAlpha(qreal arg) { if (m_alpha != arg) { m_alpha = arg; @@ -389,7 +389,7 @@ void UltraParticle::setAlpha(qreal arg) reset(); } -void UltraParticle::setRedVariation(qreal arg) +void QSGImageParticle::setRedVariation(qreal arg) { if (m_redVariation != arg) { m_redVariation = arg; @@ -399,7 +399,7 @@ void UltraParticle::setRedVariation(qreal arg) reset(); } -void UltraParticle::setGreenVariation(qreal arg) +void QSGImageParticle::setGreenVariation(qreal arg) { if (m_greenVariation != arg) { m_greenVariation = arg; @@ -409,7 +409,7 @@ void UltraParticle::setGreenVariation(qreal arg) reset(); } -void UltraParticle::setBlueVariation(qreal arg) +void QSGImageParticle::setBlueVariation(qreal arg) { if (m_blueVariation != arg) { m_blueVariation = arg; @@ -419,7 +419,7 @@ void UltraParticle::setBlueVariation(qreal arg) reset(); } -void UltraParticle::setRotation(qreal arg) +void QSGImageParticle::setRotation(qreal arg) { if (m_rotation != arg) { m_rotation = arg; @@ -429,7 +429,7 @@ void UltraParticle::setRotation(qreal arg) reset(); } -void UltraParticle::setRotationVariation(qreal arg) +void QSGImageParticle::setRotationVariation(qreal arg) { if (m_rotationVariation != arg) { m_rotationVariation = arg; @@ -439,7 +439,7 @@ void UltraParticle::setRotationVariation(qreal arg) reset(); } -void UltraParticle::setRotationSpeed(qreal arg) +void QSGImageParticle::setRotationSpeed(qreal arg) { if (m_rotationSpeed != arg) { m_rotationSpeed = arg; @@ -449,7 +449,7 @@ void UltraParticle::setRotationSpeed(qreal arg) reset(); } -void UltraParticle::setRotationSpeedVariation(qreal arg) +void QSGImageParticle::setRotationSpeedVariation(qreal arg) { if (m_rotationSpeedVariation != arg) { m_rotationSpeedVariation = arg; @@ -459,7 +459,7 @@ void UltraParticle::setRotationSpeedVariation(qreal arg) reset(); } -void UltraParticle::setAutoRotation(bool arg) +void QSGImageParticle::setAutoRotation(bool arg) { if (m_autoRotation != arg) { m_autoRotation = arg; @@ -469,7 +469,7 @@ void UltraParticle::setAutoRotation(bool arg) reset(); } -void UltraParticle::setXVector(VaryingVector* arg) +void QSGImageParticle::setXVector(QSGStochasticDirection* arg) { if (m_xVector != arg) { m_xVector = arg; @@ -479,7 +479,7 @@ void UltraParticle::setXVector(VaryingVector* arg) reset(); } -void UltraParticle::setYVector(VaryingVector* arg) +void QSGImageParticle::setYVector(QSGStochasticDirection* arg) { if (m_yVector != arg) { m_yVector = arg; @@ -489,7 +489,7 @@ void UltraParticle::setYVector(VaryingVector* arg) reset(); } -void UltraParticle::setBloat(bool arg) +void QSGImageParticle::setBloat(bool arg) { if (m_bloat != arg) { m_bloat = arg; @@ -498,24 +498,24 @@ void UltraParticle::setBloat(bool arg) if(perfLevel < 9999) reset(); } -void UltraParticle::setCount(int c) +void QSGImageParticle::setCount(int c) { - ParticleType::setCount(c); + QSGParticlePainter::setCount(c); m_pleaseReset = true; } -void UltraParticle::reset() +void QSGImageParticle::reset() { - ParticleType::reset(); + QSGParticlePainter::reset(); m_pleaseReset = true; } -void UltraParticle::createEngine() +void QSGImageParticle::createEngine() { if(m_spriteEngine) delete m_spriteEngine; if(m_sprites.count()) - m_spriteEngine = new SpriteEngine(m_sprites, this); + m_spriteEngine = new QSGSpriteEngine(m_sprites, this); else m_spriteEngine = 0; reset(); @@ -553,7 +553,7 @@ static QSGGeometry::AttributeSet UltraParticle_AttributeSet = UltraParticle_Attributes }; -QSGGeometryNode* UltraParticle::buildSimpleParticleNode() +QSGGeometryNode* QSGImageParticle::buildSimpleParticleNode() { perfLevel = Simple;//TODO: Intermediate levels QImage image = QImage(m_image_name.toLocalFile()); @@ -628,7 +628,7 @@ QSGGeometryNode* UltraParticle::buildSimpleParticleNode() return m_node; } -QSGGeometryNode* UltraParticle::buildParticleNode() +QSGGeometryNode* QSGImageParticle::buildParticleNode() { if (m_count * 4 > 0xffff) { printf("UltraParticle: Too many particles... \n");//####Why is this here? @@ -783,11 +783,11 @@ QSGGeometryNode* UltraParticle::buildParticleNode() QImage opacitytable(m_opacitytable_name.toLocalFile()); m_material = new UltraMaterial(); if(colortable.isNull()) - colortable = QImage(":resources/identitytable.png"); + colortable = QImage(":defaultshaders/identitytable.png"); if(sizetable.isNull()) - sizetable = QImage(":resources/identitytable.png"); + sizetable = QImage(":defaultshaders/identitytable.png"); if(opacitytable.isNull()) - opacitytable = QImage(":resources/defaultFadeInOut.png"); + opacitytable = QImage(":defaultshaders/defaultFadeInOut.png"); Q_ASSERT(!colortable.isNull()); Q_ASSERT(!sizetable.isNull()); Q_ASSERT(!opacitytable.isNull()); @@ -813,7 +813,7 @@ QSGGeometryNode* UltraParticle::buildParticleNode() return m_node; } -QSGNode *UltraParticle::updatePaintNode(QSGNode *, UpdatePaintNodeData *) +QSGNode *QSGImageParticle::updatePaintNode(QSGNode *, UpdatePaintNodeData *) { if(m_pleaseReset){ if(m_node){ @@ -843,7 +843,7 @@ QSGNode *UltraParticle::updatePaintNode(QSGNode *, UpdatePaintNodeData *) return m_node; } -void UltraParticle::prepareNextFrame() +void QSGImageParticle::prepareNextFrame() { if (m_node == 0){ //TODO: Staggered loading (as emitted) m_node = buildParticleNode(); @@ -886,7 +886,7 @@ IntermediateVertices* transplant(IntermediateVertices* iv, VT &v) return iv; } -IntermediateVertices* UltraParticle::fetchIntermediateVertices(int pos) +IntermediateVertices* QSGImageParticle::fetchIntermediateVertices(int pos) { //Note that this class ruins typesafety for you. Maybe even thread safety. //TODO: Something better, possibly with templates or inheritance @@ -907,7 +907,7 @@ IntermediateVertices* UltraParticle::fetchIntermediateVertices(int pos) } } -void UltraParticle::reloadColor(const Color4ub &c, ParticleData* d) +void QSGImageParticle::reloadColor(const Color4ub &c, QSGParticleData* d) { UltraVertices *particles = (UltraVertices *) m_node->geometry()->vertexData(); int pos = particleTypeIndex(d); @@ -915,7 +915,7 @@ void UltraParticle::reloadColor(const Color4ub &c, ParticleData* d) p.v1.color = p.v2.color = p.v3.color = p.v4.color = c; } -void UltraParticle::reload(ParticleData *d) +void QSGImageParticle::reload(QSGParticleData *d) { if (m_node == 0) return; @@ -930,7 +930,7 @@ void UltraParticle::reload(ParticleData *d) vertexCopy(*p->v4, d->pv); } -void UltraParticle::load(ParticleData *d) +void QSGImageParticle::load(QSGParticleData *d) { if (m_node == 0) return; diff --git a/src/imports/particles/ultraparticle.h b/src/declarative/particles/qsgimageparticle_p.h index cb120f9273..c6ec4c2c6a 100644 --- a/src/imports/particles/ultraparticle.h +++ b/src/declarative/particles/qsgimageparticle_p.h @@ -41,12 +41,10 @@ #ifndef ULTRAPARTICLE_H #define ULTRAPARTICLE_H -#include "particle.h" -#include "varyingvector.h" +#include "qsgparticlepainter_p.h" +#include "qsgstochasticdirection_p.h" #include <QDeclarativeListProperty> -#include "coloredparticle.h" - QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -56,15 +54,15 @@ QT_MODULE(Declarative) class UltraMaterial; class QSGGeometryNode; -class SpriteState; -class SpriteEngine; +class QSGSprite; +class QSGSpriteEngine; -/*struct Color4ub {//in coloredparticle +struct Color4ub { uchar r; uchar g; uchar b; uchar a; -};*/ +}; struct SimpleVertex { float x; @@ -129,10 +127,10 @@ struct IntermediateVertices { UltraVertex* v4; }; -class UltraParticle : public ParticleType +class QSGImageParticle : public QSGParticlePainter { Q_OBJECT - Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) + Q_PROPERTY(QUrl source READ image WRITE setImage NOTIFY imageChanged) Q_PROPERTY(QUrl colorTable READ colortable WRITE setColortable NOTIFY colortableChanged) Q_PROPERTY(QUrl sizeTable READ sizetable WRITE setSizetable NOTIFY sizetableChanged) Q_PROPERTY(QUrl opacityTable READ opacitytable WRITE setOpacitytable NOTIFY opacitytableChanged) @@ -158,21 +156,21 @@ class UltraParticle : public ParticleType //###Call i/j? Makes more sense to those with vector calculus experience, and I could even add the cirumflex in QML? //xVector is the vector from the top-left point to the top-right point, and is multiplied by current size - Q_PROPERTY(VaryingVector* xVector READ xVector WRITE setXVector NOTIFY xVectorChanged) + Q_PROPERTY(QSGStochasticDirection* xVector READ xVector WRITE setXVector NOTIFY xVectorChanged) //yVector is the same, but top-left to bottom-left. The particle is always a parallelogram. - Q_PROPERTY(VaryingVector* yVector READ yVector WRITE setYVector NOTIFY yVectorChanged) - Q_PROPERTY(QDeclarativeListProperty<SpriteState> sprites READ sprites) + Q_PROPERTY(QSGStochasticDirection* yVector READ yVector WRITE setYVector NOTIFY yVectorChanged) + Q_PROPERTY(QDeclarativeListProperty<QSGSprite> sprites READ sprites) Q_PROPERTY(bool bloat READ bloat WRITE setBloat NOTIFY bloatChanged)//Just a debugging property to bypass optimizations public: - explicit UltraParticle(QSGItem *parent = 0); - virtual ~UltraParticle(){} + explicit QSGImageParticle(QSGItem *parent = 0); + virtual ~QSGImageParticle(){} - virtual void load(ParticleData*); - virtual void reload(ParticleData*); + virtual void load(QSGParticleData*); + virtual void reload(QSGParticleData*); virtual void setCount(int c); - QDeclarativeListProperty<SpriteState> sprites(); - SpriteEngine* spriteEngine() {return m_spriteEngine;} + QDeclarativeListProperty<QSGSprite> sprites(); + QSGSpriteEngine* spriteEngine() {return m_spriteEngine;} enum PerformanceLevel{//TODO: Expose? Unknown = 0, @@ -223,9 +221,9 @@ public: bool autoRotation() const { return m_autoRotation; } - VaryingVector* xVector() const { return m_xVector; } + QSGStochasticDirection* xVector() const { return m_xVector; } - VaryingVector* yVector() const { return m_yVector; } + QSGStochasticDirection* yVector() const { return m_yVector; } bool bloat() const { return m_bloat; } @@ -260,14 +258,14 @@ signals: void autoRotationChanged(bool arg); - void xVectorChanged(VaryingVector* arg); + void xVectorChanged(QSGStochasticDirection* arg); - void yVectorChanged(VaryingVector* arg); + void yVectorChanged(QSGStochasticDirection* arg); void bloatChanged(bool arg); public slots: - void reloadColor(const Color4ub &c, ParticleData* d); + void reloadColor(const Color4ub &c, QSGParticleData* d); void setAlphaVariation(qreal arg); void setAlpha(qreal arg); @@ -288,9 +286,9 @@ public slots: void setAutoRotation(bool arg); - void setXVector(VaryingVector* arg); + void setXVector(QSGStochasticDirection* arg); - void setYVector(VaryingVector* arg); + void setYVector(QSGStochasticDirection* arg); void setBloat(bool arg); @@ -336,11 +334,11 @@ private: qreal m_rotationSpeed; qreal m_rotationSpeedVariation; bool m_autoRotation; - VaryingVector* m_xVector; - VaryingVector* m_yVector; + QSGStochasticDirection* m_xVector; + QSGStochasticDirection* m_yVector; - QList<SpriteState*> m_sprites; - SpriteEngine* m_spriteEngine; + QList<QSGSprite*> m_sprites; + QSGSpriteEngine* m_spriteEngine; bool m_bloat; PerformanceLevel perfLevel; diff --git a/src/imports/particles/itemparticle.cpp b/src/declarative/particles/qsgitemparticle.cpp index e31309cf21..819c823155 100644 --- a/src/imports/particles/itemparticle.cpp +++ b/src/declarative/particles/qsgitemparticle.cpp @@ -39,32 +39,32 @@ ** ****************************************************************************/ -#include "itemparticle.h" +#include "qsgitemparticle_p.h" #include <QtDeclarative/private/qsgvisualitemmodel_p.h> #include <qsgnode.h> #include <QDebug> QT_BEGIN_NAMESPACE -ItemParticle::ItemParticle(QSGItem *parent) : - ParticleType(parent), m_fade(true) +QSGItemParticle::QSGItemParticle(QSGItem *parent) : + QSGParticlePainter(parent), m_fade(true) { setFlag(QSGItem::ItemHasContents); } -void ItemParticle::freeze(QSGItem* item) +void QSGItemParticle::freeze(QSGItem* item) { m_stasis << item; } -void ItemParticle::unfreeze(QSGItem* item) +void QSGItemParticle::unfreeze(QSGItem* item) { m_stasis.remove(item); } -void ItemParticle::take(QSGItem *item, bool prioritize) +void QSGItemParticle::take(QSGItem *item, bool prioritize) { if(prioritize) m_pendingItems.push_front(item); @@ -72,12 +72,12 @@ void ItemParticle::take(QSGItem *item, bool prioritize) m_pendingItems.push_back(item); } -void ItemParticle::give(QSGItem *item) +void QSGItemParticle::give(QSGItem *item) { //TODO: This } -void ItemParticle::load(ParticleData* d) +void QSGItemParticle::load(QSGParticleData* d) { if(m_pendingItems.isEmpty()) return; @@ -87,8 +87,8 @@ void ItemParticle::load(ParticleData* d) qWarning() << "Current model particles prefers overwrite:false"; //remove old item from the particle that is dying to make room for this one m_items[pos]->setOpacity(0.); - ItemParticleAttached* mpa; - if((mpa = qobject_cast<ItemParticleAttached*>(qmlAttachedPropertiesObject<ItemParticle>(m_items[pos], false)))) + QSGItemParticleAttached* mpa; + if((mpa = qobject_cast<QSGItemParticleAttached*>(qmlAttachedPropertiesObject<QSGItemParticle>(m_items[pos], false)))) mpa->detach();//reparent as well? m_items[pos] = 0; m_data[pos] = 0; @@ -98,7 +98,7 @@ void ItemParticle::load(ParticleData* d) m_pendingItems.pop_front(); m_items[pos]->setX(d->curX() - m_items[pos]->width()/2); m_items[pos]->setY(d->curY() - m_items[pos]->height()/2); - ItemParticleAttached* mpa = qobject_cast<ItemParticleAttached*>(qmlAttachedPropertiesObject<ItemParticle>(m_items[pos])); + QSGItemParticleAttached* mpa = qobject_cast<QSGItemParticleAttached*>(qmlAttachedPropertiesObject<QSGItemParticle>(m_items[pos])); if(mpa){ mpa->m_mp = this; mpa->attach(); @@ -108,26 +108,26 @@ void ItemParticle::load(ParticleData* d) m_activeCount++; } -void ItemParticle::reload(ParticleData* d) +void QSGItemParticle::reload(QSGParticleData* d) { //No-op unless we start copying the data. } -void ItemParticle::setCount(int c) +void QSGItemParticle::setCount(int c) { - ParticleType::setCount(c);//###Do we need our own? + QSGParticlePainter::setCount(c);//###Do we need our own? m_particleCount = c; reset(); } -int ItemParticle::count() +int QSGItemParticle::count() { return m_particleCount; } -void ItemParticle::reset() +void QSGItemParticle::reset() { - ParticleType::reset(); + QSGParticlePainter::reset(); //TODO: Cleanup items? m_items.resize(m_particleCount); m_data.resize(m_particleCount); @@ -137,7 +137,7 @@ void ItemParticle::reset() } -QSGNode* ItemParticle::updatePaintNode(QSGNode* n, UpdatePaintNodeData* d) +QSGNode* QSGItemParticle::updatePaintNode(QSGNode* n, UpdatePaintNodeData* d) { //Dummy update just to get painting tick if(m_pleaseReset){ @@ -152,7 +152,7 @@ QSGNode* ItemParticle::updatePaintNode(QSGNode* n, UpdatePaintNodeData* d) return QSGItem::updatePaintNode(n,d); } -void ItemParticle::prepareNextFrame() +void QSGItemParticle::prepareNextFrame() { qint64 timeStamp = m_system->systemSync(this); qreal curT = timeStamp/1000.0; @@ -164,7 +164,7 @@ void ItemParticle::prepareNextFrame() //TODO: Size, better fade? for(int i=0; i<m_particleCount; i++){ QSGItem* item = m_items[i]; - ParticleData* data = m_data[i]; + QSGParticleData* data = m_data[i]; if(!item || !data) continue; qreal t = ((timeStamp/1000.0) - data->pv.t) / data->pv.lifeSpan; @@ -174,8 +174,8 @@ void ItemParticle::prepareNextFrame() } if(t >= 1.0){//Usually happens from load item->setOpacity(0.); - ItemParticleAttached* mpa; - if((mpa = qobject_cast<ItemParticleAttached*>(qmlAttachedPropertiesObject<ItemParticle>(m_items[i])))) + QSGItemParticleAttached* mpa; + if((mpa = qobject_cast<QSGItemParticleAttached*>(qmlAttachedPropertiesObject<QSGItemParticle>(m_items[i])))) mpa->detach();//reparent as well? m_items[i] = 0; m_data[i] = 0; @@ -197,9 +197,9 @@ void ItemParticle::prepareNextFrame() } } -ItemParticleAttached *ItemParticle::qmlAttachedProperties(QObject *object) +QSGItemParticleAttached *QSGItemParticle::qmlAttachedProperties(QObject *object) { - return new ItemParticleAttached(object); + return new QSGItemParticleAttached(object); } QT_END_NAMESPACE diff --git a/src/imports/particles/itemparticle.h b/src/declarative/particles/qsgitemparticle_p.h index 50414c77b6..fa3516b631 100644 --- a/src/imports/particles/itemparticle.h +++ b/src/declarative/particles/qsgitemparticle_p.h @@ -41,7 +41,7 @@ #ifndef ITEMPARTICLE_H #define ITEMPARTICLE_H -#include "particle.h" +#include "qsgparticlepainter_p.h" #include <QPointer> #include <QSet> QT_BEGIN_HEADER @@ -50,25 +50,25 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) class QSGVisualDataModel; -class ItemParticleAttached; +class QSGItemParticleAttached; -class ItemParticle : public ParticleType +class QSGItemParticle : public QSGParticlePainter { Q_OBJECT Q_PROPERTY(bool fade READ fade WRITE setFade NOTIFY fadeChanged) public: - explicit ItemParticle(QSGItem *parent = 0); + explicit QSGItemParticle(QSGItem *parent = 0); bool fade() const { return m_fade; } virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *); - virtual void load(ParticleData*); - virtual void reload(ParticleData*); + virtual void load(QSGParticleData*); + virtual void reload(QSGParticleData*); virtual void setCount(int c); virtual int count(); - static ItemParticleAttached *qmlAttachedProperties(QObject *object); + static QSGItemParticleAttached *qmlAttachedProperties(QObject *object); signals: void fadeChanged(); @@ -90,7 +90,7 @@ private: QList<QSGItem*> m_pendingItems; QVector<QSGItem*> m_items; - QVector<ParticleData*> m_data; + QVector<QSGParticleData*> m_data; QVector<int> m_idx; QList<int> m_available; QSet<QSGItem*> m_stasis; @@ -98,20 +98,20 @@ private: int m_activeCount; }; -class ItemParticleAttached : public QObject +class QSGItemParticleAttached : public QObject { Q_OBJECT - Q_PROPERTY(ItemParticle* particle READ particle CONSTANT); + Q_PROPERTY(QSGItemParticle* particle READ particle CONSTANT); public: - ItemParticleAttached(QObject* parent) + QSGItemParticleAttached(QObject* parent) : QObject(parent), m_mp(0) {;} - ItemParticle* particle() {return m_mp;} + QSGItemParticle* particle() {return m_mp;} void detach(){emit detached();} void attach(){emit attached();} private: - ItemParticle* m_mp; - friend class ItemParticle; + QSGItemParticle* m_mp; + friend class QSGItemParticle; Q_SIGNALS: void detached(); void attached(); @@ -119,7 +119,7 @@ Q_SIGNALS: QT_END_NAMESPACE -QML_DECLARE_TYPEINFO(ItemParticle, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPEINFO(QSGItemParticle, QML_HAS_ATTACHED_PROPERTIES) QT_END_HEADER #endif // ITEMPARTICLE_H diff --git a/src/imports/particles/killaffector.cpp b/src/declarative/particles/qsgkill.cpp index c98a2f44e2..1321898dc9 100644 --- a/src/imports/particles/killaffector.cpp +++ b/src/declarative/particles/qsgkill.cpp @@ -39,16 +39,16 @@ ** ****************************************************************************/ -#include "killaffector.h" -#include "particleemitter.h" +#include "qsgkill_p.h" +#include "qsgparticleemitter_p.h" QT_BEGIN_NAMESPACE -KillAffector::KillAffector(QSGItem *parent) : - ParticleAffector(parent) +QSGKillAffector::QSGKillAffector(QSGItem *parent) : + QSGParticleAffector(parent) { } -bool KillAffector::affectParticle(ParticleData *d, qreal dt) +bool QSGKillAffector::affectParticle(QSGParticleData *d, qreal dt) { Q_UNUSED(dt); if(d->stillAlive()){ diff --git a/src/imports/particles/killaffector.h b/src/declarative/particles/qsgkill_p.h index 937ef321a3..1b24b2fb40 100644 --- a/src/imports/particles/killaffector.h +++ b/src/declarative/particles/qsgkill_p.h @@ -41,7 +41,7 @@ #ifndef KILLAFFECTOR_H #define KILLAFFECTOR_H -#include "particleaffector.h" +#include "qsgparticleaffector_p.h" QT_BEGIN_HEADER @@ -50,13 +50,13 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class KillAffector : public ParticleAffector +class QSGKillAffector : public QSGParticleAffector { Q_OBJECT public: - explicit KillAffector(QSGItem *parent = 0); + explicit QSGKillAffector(QSGItem *parent = 0); protected: - virtual bool affectParticle(ParticleData *d, qreal dt); + virtual bool affectParticle(QSGParticleData *d, qreal dt); signals: public slots: diff --git a/src/imports/particles/lineextruder.cpp b/src/declarative/particles/qsglineextruder.cpp index 399bdae046..f32b01402a 100644 --- a/src/imports/particles/lineextruder.cpp +++ b/src/declarative/particles/qsglineextruder.cpp @@ -38,15 +38,15 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "lineextruder.h" +#include "qsglineextruder_p.h" #include <cmath> -LineExtruder::LineExtruder(QObject *parent) : - ParticleExtruder(parent), m_mirrored(false) +QSGLineExtruder::QSGLineExtruder(QObject *parent) : + QSGParticleExtruder(parent), m_mirrored(false) { } -QPointF LineExtruder::extrude(const QRectF &r) +QPointF QSGLineExtruder::extrude(const QRectF &r) { qreal x,y; if(!r.height()){ diff --git a/src/imports/particles/lineextruder.h b/src/declarative/particles/qsglineextruder_p.h index 925f1b3361..f356ca332a 100644 --- a/src/imports/particles/lineextruder.h +++ b/src/declarative/particles/qsglineextruder_p.h @@ -41,16 +41,16 @@ #ifndef LINEEXTRUDER_H #define LINEEXTRUDER_H -#include "particleextruder.h" +#include "qsgparticleextruder_p.h" -class LineExtruder : public ParticleExtruder +class QSGLineExtruder : public QSGParticleExtruder { Q_OBJECT //Default is topleft to bottom right. Flipped makes it topright to bottom left Q_PROPERTY(bool mirrored READ mirrored WRITE setmirrored NOTIFY mirroredChanged) public: - explicit LineExtruder(QObject *parent = 0); + explicit QSGLineExtruder(QObject *parent = 0); virtual QPointF extrude(const QRectF &); bool mirrored() const { diff --git a/src/imports/particles/maskextruder.cpp b/src/declarative/particles/qsgmaskextruder.cpp index 53dacf4214..d9a463910d 100644 --- a/src/imports/particles/maskextruder.cpp +++ b/src/declarative/particles/qsgmaskextruder.cpp @@ -39,45 +39,52 @@ ** ****************************************************************************/ -#include "maskextruder.h" +#include "qsgmaskextruder_p.h" #include <QImage> #include <QDebug> QT_BEGIN_NAMESPACE -MaskExtruder::MaskExtruder(QObject *parent) : - ParticleExtruder(parent) +QSGMaskExtruder::QSGMaskExtruder(QObject *parent) : + QSGParticleExtruder(parent) , m_lastWidth(-1) , m_lastHeight(-1) { } -QPointF MaskExtruder::extrude(const QRectF &r) +QPointF QSGMaskExtruder::extrude(const QRectF &r) { ensureInitialized(r); - if(!m_mask.count()) + if(!m_mask.count() || m_img.isNull()) return r.topLeft(); const QPointF p = m_mask[rand() % m_mask.count()]; //### Should random sub-pixel positioning be added? return p + r.topLeft(); } -bool MaskExtruder::contains(const QRectF &bounds, const QPointF &point) +bool QSGMaskExtruder::contains(const QRectF &bounds, const QPointF &point) { ensureInitialized(bounds);//###Current usage patterns WILL lead to different bounds/r calls. Separate list? + if(m_img.isNull()) + return false; QPoint p = point.toPoint() - bounds.topLeft().toPoint(); return m_img.rect().contains(p) && (bool)m_img.pixelIndex(p); } -void MaskExtruder::ensureInitialized(const QRectF &r) +void QSGMaskExtruder::ensureInitialized(const QRectF &r) { if(m_lastWidth == r.width() && m_lastHeight == r.height()) - return; + return;//Same as before m_lastWidth = r.width(); m_lastHeight = r.height(); + m_img = QImage(); m_mask.clear(); if(m_source.isEmpty()) return; m_img = QImage(m_source.toLocalFile()); + if(m_img.isNull()){ + qWarning() << "MaskShape: Cannot load" << qPrintable(m_source.toLocalFile()); + return; + } m_img = m_img.createAlphaMask(); m_img = m_img.convertToFormat(QImage::Format_Mono);//Else LSB, but I think that's easier m_img = m_img.scaled(r.size().toSize());//TODO: Do they need aspect ratio stuff? Or tiling? diff --git a/src/imports/particles/maskextruder.h b/src/declarative/particles/qsgmaskextruder_p.h index 6aaa79a0f9..b564efa6dc 100644 --- a/src/imports/particles/maskextruder.h +++ b/src/declarative/particles/qsgmaskextruder_p.h @@ -41,7 +41,7 @@ #ifndef MASKEXTRUDER_H #define MASKEXTRUDER_H -#include "particleextruder.h" +#include "qsgparticleextruder_p.h" #include <QUrl> #include <QImage> @@ -51,12 +51,12 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class MaskExtruder : public ParticleExtruder +class QSGMaskExtruder : public QSGParticleExtruder { Q_OBJECT Q_PROPERTY(QUrl source READ source WRITE setSource NOTIFY sourceChanged) public: - explicit MaskExtruder(QObject *parent = 0); + explicit QSGMaskExtruder(QObject *parent = 0); virtual QPointF extrude(const QRectF &); virtual bool contains(const QRectF &bounds, const QPointF &point); diff --git a/src/imports/particles/dataparticle.cpp b/src/declarative/particles/qsgmodelparticle.cpp index a2965e8c71..94ce082c9d 100644 --- a/src/imports/particles/dataparticle.cpp +++ b/src/declarative/particles/qsgmodelparticle.cpp @@ -39,25 +39,25 @@ ** ****************************************************************************/ -#include "dataparticle.h" +#include "qsgmodelparticle_p.h" #include <QtDeclarative/private/qsgvisualitemmodel_p.h> #include <qsgnode.h> #include <QDebug> QT_BEGIN_NAMESPACE -DataParticle::DataParticle(QSGItem *parent) : - ParticleType(parent), m_ownModel(false), m_comp(0), m_model(0), m_fade(true), m_modelCount(0) +QSGModelParticle::QSGModelParticle(QSGItem *parent) : + QSGParticlePainter(parent), m_ownModel(false), m_comp(0), m_model(0), m_fade(true), m_modelCount(0) { setFlag(QSGItem::ItemHasContents); } -QVariant DataParticle::model() const +QVariant QSGModelParticle::model() const { return m_dataSource; } -void DataParticle::setModel(const QVariant &arg) +void QSGModelParticle::setModel(const QVariant &arg) { if(arg == m_dataSource) return; @@ -84,7 +84,7 @@ void DataParticle::setModel(const QVariant &arg) updateCount(); } -void DataParticle::updateCount() +void QSGModelParticle::updateCount() { int newCount = 0; if(m_model) @@ -105,14 +105,14 @@ void DataParticle::updateCount() m_modelCount = newCount; } -QDeclarativeComponent *DataParticle::delegate() const +QDeclarativeComponent *QSGModelParticle::delegate() const { if(m_model) return m_model->delegate(); return 0; } -void DataParticle::setDelegate(QDeclarativeComponent *comp) +void QSGModelParticle::setDelegate(QDeclarativeComponent *comp) { if (QSGVisualDataModel *dataModel = qobject_cast<QSGVisualDataModel*>(m_model)) if (comp == dataModel->delegate()) @@ -123,26 +123,26 @@ void DataParticle::setDelegate(QDeclarativeComponent *comp) emit delegateChanged(); } -int DataParticle::modelCount() const +int QSGModelParticle::modelCount() const { if(m_model) - const_cast<DataParticle*>(this)->updateCount();//TODO: Investigate why this doesn't get called properly + const_cast<QSGModelParticle*>(this)->updateCount();//TODO: Investigate why this doesn't get called properly return m_modelCount; } -void DataParticle::freeze(QSGItem* item) +void QSGModelParticle::freeze(QSGItem* item) { m_stasis << item; } -void DataParticle::unfreeze(QSGItem* item) +void QSGModelParticle::unfreeze(QSGItem* item) { m_stasis.remove(item); } -void DataParticle::load(ParticleData* d) +void QSGModelParticle::load(QSGParticleData* d) { if(!m_model || !m_model->count()) return; @@ -164,7 +164,7 @@ void DataParticle::load(ParticleData* d) m_items[pos] = m_model->item(m_available.first()); m_idx[pos] = m_available.first(); m_available.pop_front(); - DataParticleAttached* mpa = qobject_cast<DataParticleAttached*>(qmlAttachedPropertiesObject<DataParticle>(m_items[pos])); + QSGModelParticleAttached* mpa = qobject_cast<QSGModelParticleAttached*>(qmlAttachedPropertiesObject<QSGModelParticle>(m_items[pos])); if(mpa){ mpa->m_mp = this; mpa->attach(); @@ -174,26 +174,26 @@ void DataParticle::load(ParticleData* d) m_activeCount++; } -void DataParticle::reload(ParticleData* d) +void QSGModelParticle::reload(QSGParticleData* d) { //No-op unless we start copying the data. } -void DataParticle::setCount(int c) +void QSGModelParticle::setCount(int c) { - ParticleType::setCount(c);//###Do we need our own? + QSGParticlePainter::setCount(c);//###Do we need our own? m_particleCount = c; reset(); } -int DataParticle::count() +int QSGModelParticle::count() { return m_particleCount; } -void DataParticle::reset() +void QSGModelParticle::reset() { - ParticleType::reset(); + QSGParticlePainter::reset(); //TODO: Cleanup items? m_items.resize(m_particleCount); m_data.resize(m_particleCount); @@ -206,7 +206,7 @@ void DataParticle::reset() } -QSGNode* DataParticle::updatePaintNode(QSGNode* n, UpdatePaintNodeData* d) +QSGNode* QSGModelParticle::updatePaintNode(QSGNode* n, UpdatePaintNodeData* d) { //Dummy update just to get painting tick if(m_pleaseReset){ @@ -221,7 +221,7 @@ QSGNode* DataParticle::updatePaintNode(QSGNode* n, UpdatePaintNodeData* d) return QSGItem::updatePaintNode(n,d); } -void DataParticle::prepareNextFrame() +void QSGModelParticle::prepareNextFrame() { qint64 timeStamp = m_system->systemSync(this); qreal curT = timeStamp/1000.0; @@ -233,7 +233,7 @@ void DataParticle::prepareNextFrame() //TODO: Size, better fade? for(int i=0; i<m_particleCount; i++){ QSGItem* item = m_items[i]; - ParticleData* data = m_data[i]; + QSGParticleData* data = m_data[i]; if(!item || !data) continue; qreal t = ((timeStamp/1000.0) - data->pv.t) / data->pv.lifeSpan; @@ -266,9 +266,9 @@ void DataParticle::prepareNextFrame() } } -DataParticleAttached *DataParticle::qmlAttachedProperties(QObject *object) +QSGModelParticleAttached *QSGModelParticle::qmlAttachedProperties(QObject *object) { - return new DataParticleAttached(object); + return new QSGModelParticleAttached(object); } QT_END_NAMESPACE diff --git a/src/imports/particles/dataparticle.h b/src/declarative/particles/qsgmodelparticle_p.h index 84422e70c3..4dd8bfa710 100644 --- a/src/imports/particles/dataparticle.h +++ b/src/declarative/particles/qsgmodelparticle_p.h @@ -41,7 +41,7 @@ #ifndef DATAPARTICLE_H #define DATAPARTICLE_H -#include "particle.h" +#include "qsgparticlepainter_p.h" #include <QPointer> #include <QSet> QT_BEGIN_HEADER @@ -50,9 +50,9 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) class QSGVisualDataModel; -class DataParticleAttached; +class QSGModelParticleAttached; -class DataParticle : public ParticleType +class QSGModelParticle : public QSGParticlePainter { Q_OBJECT @@ -62,7 +62,7 @@ class DataParticle : public ParticleType Q_PROPERTY(bool fade READ fade WRITE setFade NOTIFY fadeChanged) Q_CLASSINFO("DefaultProperty", "delegate") public: - explicit DataParticle(QSGItem *parent = 0); + explicit QSGModelParticle(QSGItem *parent = 0); QVariant model() const; void setModel(const QVariant &); @@ -74,12 +74,12 @@ public: bool fade() const { return m_fade; } virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *); - virtual void load(ParticleData*); - virtual void reload(ParticleData*); + virtual void load(QSGParticleData*); + virtual void reload(QSGParticleData*); virtual void setCount(int c); virtual int count(); - static DataParticleAttached *qmlAttachedProperties(QObject *object); + static QSGModelParticleAttached *qmlAttachedProperties(QObject *object); signals: void modelChanged(); void delegateChanged(); @@ -107,7 +107,7 @@ private: QList<QSGItem*> m_pendingItems; QVector<QSGItem*> m_items; - QVector<ParticleData*> m_data; + QVector<QSGParticleData*> m_data; QVector<int> m_idx; QList<int> m_available; QSet<QSGItem*> m_stasis; @@ -116,20 +116,20 @@ private: int m_modelCount; }; -class DataParticleAttached : public QObject +class QSGModelParticleAttached : public QObject { Q_OBJECT - Q_PROPERTY(DataParticle* particle READ particle CONSTANT); + Q_PROPERTY(QSGModelParticle* particle READ particle CONSTANT); public: - DataParticleAttached(QObject* parent) + QSGModelParticleAttached(QObject* parent) : QObject(parent), m_mp(0) {;} - DataParticle* particle() {return m_mp;} + QSGModelParticle* particle() {return m_mp;} void detach(){emit detached();} void attach(){emit attached();} private: - DataParticle* m_mp; - friend class DataParticle; + QSGModelParticle* m_mp; + friend class QSGModelParticle; Q_SIGNALS: void detached(); void attached(); @@ -137,7 +137,7 @@ Q_SIGNALS: QT_END_NAMESPACE -QML_DECLARE_TYPEINFO(DataParticle, QML_HAS_ATTACHED_PROPERTIES) +QML_DECLARE_TYPEINFO(QSGModelParticle, QML_HAS_ATTACHED_PROPERTIES) QT_END_HEADER #endif // DATAPARTICLE_H diff --git a/src/imports/particles/particleaffector.cpp b/src/declarative/particles/qsgparticleaffector.cpp index 73564a940a..96c5cfb25b 100644 --- a/src/imports/particles/particleaffector.cpp +++ b/src/declarative/particles/qsgparticleaffector.cpp @@ -39,14 +39,14 @@ ** ****************************************************************************/ -#include "particleaffector.h" +#include "qsgparticleaffector_p.h" #include <QDebug> QT_BEGIN_NAMESPACE -ParticleAffector::ParticleAffector(QSGItem *parent) : +QSGParticleAffector::QSGParticleAffector(QSGItem *parent) : QSGItem(parent), m_needsReset(false), m_system(0), m_active(true) - , m_updateIntSet(false), m_shape(new ParticleExtruder(this)), m_signal(false) + , m_updateIntSet(false), m_shape(new QSGParticleExtruder(this)), m_signal(false) { - connect(this, SIGNAL(systemChanged(ParticleSystem*)), + connect(this, SIGNAL(systemChanged(QSGParticleSystem*)), this, SLOT(updateOffsets())); connect(this, SIGNAL(xChanged()), this, SLOT(updateOffsets())); @@ -54,14 +54,16 @@ ParticleAffector::ParticleAffector(QSGItem *parent) : this, SLOT(updateOffsets()));//TODO: in componentComplete and all relevant signals } -void ParticleAffector::componentComplete() +void QSGParticleAffector::componentComplete() { + if(!m_system && qobject_cast<QSGParticleSystem*>(parentItem())) + setSystem(qobject_cast<QSGParticleSystem*>(parentItem())); if(!m_system) qWarning() << "Affector created without a particle system specified";//TODO: useful QML warnings, like line number? QSGItem::componentComplete(); } -void ParticleAffector::affectSystem(qreal dt) +void QSGParticleAffector::affectSystem(qreal dt) { if(!m_active) return; @@ -79,7 +81,7 @@ void ParticleAffector::affectSystem(qreal dt) } //foreach(ParticleData* d, m_system->m_data){ for(int i=0; i<m_system->m_particle_count; i++){ - ParticleData* d = m_system->m_data[i]; + QSGParticleData* d = m_system->m_data[i]; if(!d || (m_onceOff && m_onceOffed.contains(d->systemIndex))) continue; if(m_groups.isEmpty() || m_groups.contains(d->group)){ @@ -99,20 +101,20 @@ void ParticleAffector::affectSystem(qreal dt) } } -bool ParticleAffector::affectParticle(ParticleData *d, qreal dt) +bool QSGParticleAffector::affectParticle(QSGParticleData *d, qreal dt) { Q_UNUSED(d); Q_UNUSED(dt); return false; } -void ParticleAffector::reset(int idx) +void QSGParticleAffector::reset(int idx) {//TODO: This, among other ones, should be restructured so they don't all need to remember to call the superclass if(m_onceOff) m_onceOffed.remove(idx); } -void ParticleAffector::updateOffsets() +void QSGParticleAffector::updateOffsets() { if(m_system) m_offset = m_system->mapFromItem(this, QPointF(0, 0)); diff --git a/src/imports/particles/particleaffector.h b/src/declarative/particles/qsgparticleaffector_p.h index 3a92263092..b299158069 100644 --- a/src/imports/particles/particleaffector.h +++ b/src/declarative/particles/qsgparticleaffector_p.h @@ -43,8 +43,8 @@ #define PARTICLEAFFECTOR_H #include <QObject> -#include "particlesystem.h" -#include "particleextruder.h" +#include "qsgparticlesystem_p.h" +#include "qsgparticleextruder_p.h" QT_BEGIN_HEADER @@ -52,22 +52,21 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) - -class ParticleAffector : public QSGItem +class QSGParticleAffector : public QSGItem { Q_OBJECT - Q_PROPERTY(ParticleSystem* system READ system WRITE setSystem NOTIFY systemChanged) + Q_PROPERTY(QSGParticleSystem* system READ system WRITE setSystem NOTIFY systemChanged) Q_PROPERTY(QStringList particles READ particles WRITE setParticles NOTIFY particlesChanged) Q_PROPERTY(bool active READ active WRITE setActive NOTIFY activeChanged) Q_PROPERTY(bool onceOff READ onceOff WRITE setOnceOff NOTIFY onceOffChanged) - Q_PROPERTY(ParticleExtruder* shape READ shape WRITE setShape NOTIFY shapeChanged) + Q_PROPERTY(QSGParticleExtruder* shape READ shape WRITE setShape NOTIFY shapeChanged) Q_PROPERTY(bool signal READ signal WRITE setSignal NOTIFY signalChanged) public: - explicit ParticleAffector(QSGItem *parent = 0); + explicit QSGParticleAffector(QSGItem *parent = 0); virtual void affectSystem(qreal dt); virtual void reset(int systemIdx);//As some store their own data per idx? - ParticleSystem* system() const + QSGParticleSystem* system() const { return m_system; } @@ -87,7 +86,7 @@ public: return m_onceOff; } - ParticleExtruder* shape() const + QSGParticleExtruder* shape() const { return m_shape; } @@ -99,7 +98,7 @@ public: signals: - void systemChanged(ParticleSystem* arg); + void systemChanged(QSGParticleSystem* arg); void particlesChanged(QStringList arg); @@ -107,13 +106,13 @@ signals: void onceOffChanged(bool arg); - void shapeChanged(ParticleExtruder* arg); + void shapeChanged(QSGParticleExtruder* arg); void affected(qreal x, qreal y);//###Idx too? void signalChanged(bool arg); public slots: -void setSystem(ParticleSystem* arg) +void setSystem(QSGParticleSystem* arg) { if (m_system != arg) { m_system = arg; @@ -147,7 +146,7 @@ void setOnceOff(bool arg) } } -void setShape(ParticleExtruder* arg) +void setShape(QSGParticleExtruder* arg) { if (m_shape != arg) { m_shape = arg; @@ -164,10 +163,10 @@ void setSignal(bool arg) } protected: - friend class ParticleSystem; - virtual bool affectParticle(ParticleData *d, qreal dt); + friend class QSGParticleSystem; + virtual bool affectParticle(QSGParticleData *d, qreal dt); bool m_needsReset;//### What is this really saving? - ParticleSystem* m_system; + QSGParticleSystem* m_system; QStringList m_particles; bool activeGroup(int g) {return m_groups.isEmpty() || m_groups.contains(g);} bool m_active; @@ -180,7 +179,7 @@ private: bool m_onceOff; - ParticleExtruder* m_shape; + QSGParticleExtruder* m_shape; bool m_signal; diff --git a/src/imports/particles/particleemitter.cpp b/src/declarative/particles/qsgparticleemitter.cpp index dd7d73749b..20f3c6bb4b 100644 --- a/src/imports/particles/particleemitter.cpp +++ b/src/declarative/particles/qsgparticleemitter.cpp @@ -39,9 +39,9 @@ ** ****************************************************************************/ -#include "particleemitter.h" +#include "qsgparticleemitter_p.h" QT_BEGIN_NAMESPACE -ParticleEmitter::ParticleEmitter(QSGItem *parent) : +QSGParticleEmitter::QSGParticleEmitter(QSGItem *parent) : QSGItem(parent) , m_particlesPerSecond(10) , m_particleDuration(1000) @@ -68,25 +68,27 @@ ParticleEmitter::ParticleEmitter(QSGItem *parent) : this, SIGNAL(particleCountChanged())); } -ParticleEmitter::~ParticleEmitter() +QSGParticleEmitter::~QSGParticleEmitter() { if(m_defaultExtruder) delete m_defaultExtruder; } -void ParticleEmitter::componentComplete() +void QSGParticleEmitter::componentComplete() { + if(!m_system && qobject_cast<QSGParticleSystem*>(parentItem())) + setSystem(qobject_cast<QSGParticleSystem*>(parentItem())); if(!m_system) qWarning() << "Emitter created without a particle system specified";//TODO: useful QML warnings, like line number? QSGItem::componentComplete(); } -void ParticleEmitter::emitWindow(int timeStamp) +void QSGParticleEmitter::emitWindow(int timeStamp) { Q_UNUSED(timeStamp); } -void ParticleEmitter::setEmitting(bool arg) +void QSGParticleEmitter::setEmitting(bool arg) { if (m_emitting != arg) { m_emitting = arg; @@ -95,16 +97,16 @@ void ParticleEmitter::setEmitting(bool arg) } -ParticleExtruder* ParticleEmitter::effectiveExtruder() +QSGParticleExtruder* QSGParticleEmitter::effectiveExtruder() { if(m_extruder) return m_extruder; if(!m_defaultExtruder) - m_defaultExtruder = new ParticleExtruder; + m_defaultExtruder = new QSGParticleExtruder; return m_defaultExtruder; } -void ParticleEmitter::pulse(qreal seconds) +void QSGParticleEmitter::pulse(qreal seconds) { if(!particleCount()) qWarning() << "pulse called on an emitter with a particle count of zero"; @@ -112,14 +114,14 @@ void ParticleEmitter::pulse(qreal seconds) m_burstLeft = seconds*1000.0;//TODO: Change name to match } -void ParticleEmitter::burst(int num) +void QSGParticleEmitter::burst(int num) { if(!particleCount()) qWarning() << "burst called on an emitter with a particle count of zero"; m_burstQueue << qMakePair(num, QPointF(x(), y())); } -void ParticleEmitter::setMaxParticleCount(int arg) +void QSGParticleEmitter::setMaxParticleCount(int arg) { if (m_maxParticleCount != arg) { if(arg < 0 && m_maxParticleCount >= 0){ @@ -138,7 +140,7 @@ void ParticleEmitter::setMaxParticleCount(int arg) } } -int ParticleEmitter::particleCount() const +int QSGParticleEmitter::particleCount() const { if(m_maxParticleCount >= 0) return m_maxParticleCount; diff --git a/src/imports/particles/particleemitter.h b/src/declarative/particles/qsgparticleemitter_p.h index e272ae51ab..9fafd9d43d 100644 --- a/src/imports/particles/particleemitter.h +++ b/src/declarative/particles/qsgparticleemitter_p.h @@ -44,9 +44,9 @@ #include <QSGItem> #include <QDebug> -#include "particlesystem.h" -#include "particleextruder.h" -#include "varyingvector.h" +#include "qsgparticlesystem_p.h" +#include "qsgparticleextruder_p.h" +#include "qsgstochasticdirection_p.h" #include <QList> #include <QPair> @@ -57,29 +57,29 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class ParticleEmitter : public QSGItem +class QSGParticleEmitter : public QSGItem { Q_OBJECT //###currently goes in emitters OR sets system. Pick one? - Q_PROPERTY(ParticleSystem* system READ system WRITE setSystem NOTIFY systemChanged) + Q_PROPERTY(QSGParticleSystem* system READ system WRITE setSystem NOTIFY systemChanged) Q_PROPERTY(QString particle READ particle WRITE setParticle NOTIFY particleChanged) - Q_PROPERTY(ParticleExtruder* shape READ extruder WRITE setExtruder NOTIFY extruderChanged) + Q_PROPERTY(QSGParticleExtruder* shape READ extruder WRITE setExtruder NOTIFY extruderChanged) Q_PROPERTY(bool emitting READ emitting WRITE setEmitting NOTIFY emittingChanged) - Q_PROPERTY(qreal particlesPerSecond READ particlesPerSecond WRITE setParticlesPerSecond NOTIFY particlesPerSecondChanged) - Q_PROPERTY(int particleDuration READ particleDuration WRITE setParticleDuration NOTIFY particleDurationChanged) - Q_PROPERTY(int particleDurationVariation READ particleDurationVariation WRITE setParticleDurationVariation NOTIFY particleDurationVariationChanged) - Q_PROPERTY(int maxParticles READ maxParticleCount WRITE setMaxParticleCount NOTIFY maxParticleCountChanged) + Q_PROPERTY(qreal emitRate READ particlesPerSecond WRITE setParticlesPerSecond NOTIFY particlesPerSecondChanged) + Q_PROPERTY(int lifeSpan READ particleDuration WRITE setParticleDuration NOTIFY particleDurationChanged) + Q_PROPERTY(int lifeSpanVariation READ particleDurationVariation WRITE setParticleDurationVariation NOTIFY particleDurationVariationChanged) + Q_PROPERTY(int emitCap READ maxParticleCount WRITE setMaxParticleCount NOTIFY maxParticleCountChanged) - Q_PROPERTY(qreal particleSize READ particleSize WRITE setParticleSize NOTIFY particleSizeChanged) - Q_PROPERTY(qreal particleEndSize READ particleEndSize WRITE setParticleEndSize NOTIFY particleEndSizeChanged) - Q_PROPERTY(qreal particleSizeVariation READ particleSizeVariation WRITE setParticleSizeVariation NOTIFY particleSizeVariationChanged) + Q_PROPERTY(qreal size READ particleSize WRITE setParticleSize NOTIFY particleSizeChanged) + Q_PROPERTY(qreal endSize READ particleEndSize WRITE setParticleEndSize NOTIFY particleEndSizeChanged) + Q_PROPERTY(qreal sizeVariation READ particleSizeVariation WRITE setParticleSizeVariation NOTIFY particleSizeVariationChanged) - Q_PROPERTY(VaryingVector *speed READ speed WRITE setSpeed NOTIFY speedChanged) - Q_PROPERTY(VaryingVector *acceleration READ acceleration WRITE setAcceleration NOTIFY accelerationChanged) + Q_PROPERTY(QSGStochasticDirection *speed READ speed WRITE setSpeed NOTIFY speedChanged) + Q_PROPERTY(QSGStochasticDirection *acceleration READ acceleration WRITE setAcceleration NOTIFY accelerationChanged) public: - explicit ParticleEmitter(QSGItem *parent = 0); - virtual ~ParticleEmitter(); + explicit QSGParticleEmitter(QSGItem *parent = 0); + virtual ~QSGParticleEmitter(); virtual void emitWindow(int timeStamp); bool emitting() const @@ -97,7 +97,7 @@ public: return m_particleDuration; } - ParticleSystem* system() const + QSGParticleSystem* system() const { return m_system; } @@ -118,13 +118,13 @@ signals: void particleDurationChanged(int); void emittingChanged(bool); - void systemChanged(ParticleSystem* arg); + void systemChanged(QSGParticleSystem* arg); void particleChanged(QString arg); void particleDurationVariationChanged(int arg); - void extruderChanged(ParticleExtruder* arg); + void extruderChanged(QSGParticleExtruder* arg); void particleSizeChanged(qreal arg); @@ -132,9 +132,9 @@ signals: void particleSizeVariationChanged(qreal arg); - void speedChanged(VaryingVector * arg); + void speedChanged(QSGStochasticDirection * arg); - void accelerationChanged(VaryingVector * arg); + void accelerationChanged(QSGStochasticDirection * arg); void maxParticleCountChanged(int arg); void particleCountChanged(); @@ -161,7 +161,7 @@ public slots: } } - void setSystem(ParticleSystem* arg) + void setSystem(QSGParticleSystem* arg) { if (m_system != arg) { m_system = arg; @@ -185,7 +185,7 @@ public slots: emit particleDurationVariationChanged(arg); } } - void setExtruder(ParticleExtruder* arg) + void setExtruder(QSGParticleExtruder* arg) { if (m_extruder != arg) { m_extruder = arg; @@ -217,7 +217,7 @@ public slots: } } - void setSpeed(VaryingVector * arg) + void setSpeed(QSGStochasticDirection * arg) { if (m_speed != arg) { m_speed = arg; @@ -225,7 +225,7 @@ public slots: } } - void setAcceleration(VaryingVector * arg) + void setAcceleration(QSGStochasticDirection * arg) { if (m_acceleration != arg) { m_acceleration = arg; @@ -239,7 +239,7 @@ public: int particleCount() const; virtual void reset(){;} - ParticleExtruder* extruder() const + QSGParticleExtruder* extruder() const { return m_extruder; } @@ -259,12 +259,12 @@ public: return m_particleSizeVariation; } - VaryingVector * speed() const + QSGStochasticDirection * speed() const { return m_speed; } - VaryingVector * acceleration() const + QSGStochasticDirection * acceleration() const { return m_acceleration; } @@ -279,13 +279,13 @@ protected: int m_particleDuration; int m_particleDurationVariation; bool m_emitting; - ParticleSystem* m_system; + QSGParticleSystem* m_system; QString m_particle; - ParticleExtruder* m_extruder; - ParticleExtruder* m_defaultExtruder; - ParticleExtruder* effectiveExtruder(); - VaryingVector * m_speed; - VaryingVector * m_acceleration; + QSGParticleExtruder* m_extruder; + QSGParticleExtruder* m_defaultExtruder; + QSGParticleExtruder* effectiveExtruder(); + QSGStochasticDirection * m_speed; + QSGStochasticDirection * m_acceleration; qreal m_particleSize; qreal m_particleEndSize; qreal m_particleSizeVariation; @@ -294,7 +294,7 @@ protected: QList<QPair<int, QPointF > > m_burstQueue; int m_maxParticleCount; private: - VaryingVector m_nullVector; + QSGStochasticDirection m_nullVector; }; QT_END_NAMESPACE diff --git a/src/imports/particles/particleextruder.cpp b/src/declarative/particles/qsgparticleextruder.cpp index 3ff5abf996..91b968c8af 100644 --- a/src/imports/particles/particleextruder.cpp +++ b/src/declarative/particles/qsgparticleextruder.cpp @@ -39,16 +39,16 @@ ** ****************************************************************************/ -#include "particleextruder.h" +#include "qsgparticleextruder_p.h" QT_BEGIN_NAMESPACE -ParticleExtruder::ParticleExtruder(QObject *parent) : +QSGParticleExtruder::QSGParticleExtruder(QObject *parent) : QObject(parent), m_fill(true) { } -QPointF ParticleExtruder::extrude(const QRectF &rect) +QPointF QSGParticleExtruder::extrude(const QRectF &rect) { if(m_fill) return QPointF(((qreal)rand() / RAND_MAX) * rect.width() + rect.x(), @@ -70,7 +70,7 @@ QPointF ParticleExtruder::extrude(const QRectF &rect) } } -bool ParticleExtruder::contains(const QRectF &bounds, const QPointF &point) +bool QSGParticleExtruder::contains(const QRectF &bounds, const QPointF &point) { return bounds.contains(point); } diff --git a/src/imports/particles/particleextruder.h b/src/declarative/particles/qsgparticleextruder_p.h index 2c417d3f92..41e27eb2fa 100644 --- a/src/imports/particles/particleextruder.h +++ b/src/declarative/particles/qsgparticleextruder_p.h @@ -52,13 +52,13 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class ParticleExtruder : public QObject +class QSGParticleExtruder : public QObject { Q_OBJECT Q_PROPERTY(bool fill READ fill WRITE setFill NOTIFY fillChanged)//###Should this be base class, or a BoxExtruder? public: - explicit ParticleExtruder(QObject *parent = 0); + explicit QSGParticleExtruder(QObject *parent = 0); virtual QPointF extrude(const QRectF &); virtual bool contains(const QRectF &bounds, const QPointF &point);//###Needed for follow emitter, but does it belong? Only marginally conceptually valid, and that's from user's perspective bool fill() const diff --git a/src/imports/particles/particle.cpp b/src/declarative/particles/qsgparticlepainter.cpp index 8f4ecbf733..a5e8c0a3e6 100644 --- a/src/imports/particles/particle.cpp +++ b/src/declarative/particles/qsgparticlepainter.cpp @@ -39,10 +39,10 @@ ** ****************************************************************************/ -#include "particle.h" +#include "qsgparticlepainter_p.h" #include <QDebug> QT_BEGIN_NAMESPACE -ParticleType::ParticleType(QSGItem *parent) : +QSGParticlePainter::QSGParticlePainter(QSGItem *parent) : QSGItem(parent), m_system(0) { @@ -52,15 +52,17 @@ ParticleType::ParticleType(QSGItem *parent) : this, SLOT(calcSystemOffset())); } -void ParticleType::componentComplete() +void QSGParticlePainter::componentComplete() { + if(!m_system && qobject_cast<QSGParticleSystem*>(parentItem())) + setSystem(qobject_cast<QSGParticleSystem*>(parentItem())); if(!m_system) - qWarning() << "Particle created without a particle system specified";//TODO: useful QML warnings, like line number? + qWarning() << "ParticlePainter created without a particle system specified";//TODO: useful QML warnings, like line number? QSGItem::componentComplete(); } -void ParticleType::setSystem(ParticleSystem *arg) +void QSGParticlePainter::setSystem(QSGParticleSystem *arg) { if (m_system != arg) { m_system = arg; @@ -76,22 +78,22 @@ void ParticleType::setSystem(ParticleSystem *arg) } } -void ParticleType::load(ParticleData*) +void QSGParticlePainter::load(QSGParticleData*) { } -void ParticleType::reload(ParticleData*) +void QSGParticlePainter::reload(QSGParticleData*) { } -void ParticleType::reset() +void QSGParticlePainter::reset() { //Have to every time because what it's emitting may have changed and that affects particleTypeIndex m_particleStarts.clear(); m_lastStart = 0; } -void ParticleType::setCount(int c) +void QSGParticlePainter::setCount(int c) { if(c == m_count) return; @@ -99,13 +101,13 @@ void ParticleType::setCount(int c) emit countChanged(); } -int ParticleType::count() +int QSGParticlePainter::count() { return m_count; } -int ParticleType::particleTypeIndex(ParticleData* d) +int QSGParticlePainter::particleTypeIndex(QSGParticleData* d) { if(!m_particleStarts.contains(d->group)){ m_particleStarts.insert(d->group, m_lastStart); @@ -117,14 +119,14 @@ int ParticleType::particleTypeIndex(ParticleData* d) } -void ParticleType::calcSystemOffset() +void QSGParticlePainter::calcSystemOffset() { if(!m_system) return; QPointF lastOffset = m_systemOffset; - m_systemOffset = this->mapFromItem(m_system, QPointF()); + m_systemOffset = -1 * this->mapFromItem(m_system, QPointF()); if(lastOffset != m_systemOffset){ - //Reload all particles + //Reload all particles//TODO: Necessary? foreach(const QString &g, m_particles){ int gId = m_system->m_groupIds[g]; for(int i=0; i<m_system->m_groupData[gId]->size; i++) diff --git a/src/imports/particles/particle.h b/src/declarative/particles/qsgparticlepainter_p.h index fbb9665a64..8f1e13b70f 100644 --- a/src/imports/particles/particle.h +++ b/src/declarative/particles/qsgparticlepainter_p.h @@ -44,7 +44,7 @@ #include <QObject> #include <QDebug> -#include "particlesystem.h" +#include "qsgparticlesystem_p.h" QT_BEGIN_HEADER @@ -53,19 +53,19 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class ParticleType : public QSGItem +class QSGParticlePainter : public QSGItem { Q_OBJECT - Q_PROPERTY(ParticleSystem* system READ system WRITE setSystem NOTIFY systemChanged) + Q_PROPERTY(QSGParticleSystem* system READ system WRITE setSystem NOTIFY systemChanged) Q_PROPERTY(QStringList particles READ particles WRITE setParticles NOTIFY particlesChanged) public: - explicit ParticleType(QSGItem *parent = 0); - virtual void load(ParticleData*); - virtual void reload(ParticleData*); + explicit QSGParticlePainter(QSGItem *parent = 0); + virtual void load(QSGParticleData*); + virtual void reload(QSGParticleData*); virtual void setCount(int c); virtual int count(); - ParticleSystem* system() const + QSGParticleSystem* system() const { return m_system; } @@ -76,16 +76,15 @@ public: return m_particles; } - int particleTypeIndex(ParticleData*); - virtual void componentComplete(); + int particleTypeIndex(QSGParticleData*); signals: void countChanged(); - void systemChanged(ParticleSystem* arg); + void systemChanged(QSGParticleSystem* arg); void particlesChanged(QStringList arg); public slots: -void setSystem(ParticleSystem* arg); +void setSystem(QSGParticleSystem* arg); void setParticles(QStringList arg) { @@ -98,14 +97,15 @@ private slots: void calcSystemOffset(); protected: virtual void reset(); + virtual void componentComplete(); // virtual QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *){ // qDebug() << "Shouldn't be here..." << this; // return 0; // } - ParticleSystem* m_system; - friend class ParticleSystem; + QSGParticleSystem* m_system; + friend class QSGParticleSystem; int m_count; bool m_pleaseReset; QStringList m_particles; diff --git a/src/declarative/particles/qsgparticlesmodule.cpp b/src/declarative/particles/qsgparticlesmodule.cpp new file mode 100644 index 0000000000..a7a9a9253f --- /dev/null +++ b/src/declarative/particles/qsgparticlesmodule.cpp @@ -0,0 +1,111 @@ +/**************************************************************************** +** +** 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 Declarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include "qsgangleddirection_p.h" +#include "qsgcustomparticle_p.h" +#include "qsgellipseextruder_p.h" +#include "qsgemitter_p.h" +#include "qsgfollowemitter_p.h" +#include "qsgfriction_p.h" +#include "qsggravity_p.h" +#include "qsgimageparticle_p.h" +#include "qsgitemparticle_p.h" +#include "qsgkill_p.h" +#include "qsglineextruder_p.h" +#include "qsgmaskextruder_p.h" +#include "qsgmodelparticle_p.h" +#include "qsgparticleaffector_p.h" +#include "qsgparticleemitter_p.h" +#include "qsgparticleextruder_p.h" +#include "qsgparticlepainter_p.h" +#include "qsgparticlesmodule_p.h" +#include "qsgparticlesystem_p.h" +#include "qsgpointattractor_p.h" +#include "qsgpointdirection_p.h" +#include "qsgspritegoal_p.h" +#include "qsgstochasticdirection_p.h" +#include "qsgtargeteddirection_p.h" +#include "qsgturbulence_p.h" +#include "qsgwander_p.h" + +QT_BEGIN_NAMESPACE + +void QSGParticlesModule::defineModule() +{ + const char* uri = "QtQuick.Particles"; + //Debugging only exposition + qmlRegisterType<QSGParticlePainter>(uri, 2, 0, "ParticlePainter"); + qmlRegisterType<QSGParticleEmitter>(uri, 2, 0, "ParticleEmitter"); + qmlRegisterType<QSGParticleExtruder>(uri, 2, 0, "ParticleExtruder"); + qmlRegisterType<QSGStochasticDirection>(uri, 2, 0, "NullVector"); + //Probably should be nocreate types + + qmlRegisterType<QSGParticleSystem>(uri, 2, 0, "ParticleSystem"); + + qmlRegisterType<QSGImageParticle>(uri, 2, 0, "ImageParticle"); + qmlRegisterType<QSGCustomParticle>(uri, 2, 0, "CustomParticle"); + qmlRegisterType<QSGItemParticle>(uri, 2, 0, "ItemParticle"); + qmlRegisterType<QSGModelParticle>(uri, 2, 0, "ModelParticle"); + + qmlRegisterType<QSGBasicEmitter>(uri, 2, 0, "Emitter"); + qmlRegisterType<QSGFollowEmitter>(uri, 2, 0, "FollowEmitter"); + + qmlRegisterType<QSGEllipseExtruder>(uri, 2, 0, "EllipseShape"); + qmlRegisterType<QSGLineExtruder>(uri, 2, 0, "LineShape"); + qmlRegisterType<QSGMaskExtruder>(uri, 2, 0, "MaskShape"); + + qmlRegisterType<QSGPointDirection>(uri, 2, 0, "PointDirection"); + qmlRegisterType<QSGAngledDirection>(uri, 2, 0, "AngledDirection"); + qmlRegisterType<QSGTargetedDirection>(uri, 2, 0, "TargetedDirection"); + + qmlRegisterType<QSGParticleAffector>(uri, 2, 0, "ParticleAffector");//if it has a triggered signal, it's useful + qmlRegisterType<QSGWanderAffector>(uri, 2, 0, "Wander"); + qmlRegisterType<QSGFrictionAffector>(uri, 2, 0, "Friction"); + qmlRegisterType<QSGPointAttractorAffector>(uri, 2, 0, "PointAttractor"); + qmlRegisterType<QSGGravityAffector>(uri, 2, 0, "Gravity"); + qmlRegisterType<QSGKillAffector>(uri, 2, 0, "Kill"); + qmlRegisterType<QSGSpriteGoalAffector>(uri, 2, 0, "SpriteGoal"); + qmlRegisterType<QSGTurbulenceAffector>(uri, 2, 0 , "Turbulence"); +} + +QT_END_NAMESPACE + +//Q_EXPORT_PLUGIN2(Particles, QT_PREPEND_NAMESPACE(ParticlesModule)) diff --git a/src/imports/particles/burstemitter.cpp b/src/declarative/particles/qsgparticlesmodule_p.h index a817172486..1afe0654f6 100644 --- a/src/imports/particles/burstemitter.cpp +++ b/src/declarative/particles/qsgparticlesmodule_p.h @@ -38,18 +38,26 @@ ** $QT_END_LICENSE$ ** ****************************************************************************/ -#include "burstemitter.h" + +#ifndef QSGPARTICLESMODULE_H +#define QSGPARTICLESMODULE_H + +#include <qdeclarative.h> + +QT_BEGIN_HEADER + QT_BEGIN_NAMESPACE -void BurstEmitter::burst(int count, qreal x, qreal y) +QT_MODULE(Declarative) + +class QSGParticlesModule { - qreal oldX = QSGItem::x(); - qreal oldY = QSGItem::y(); - setX(x); - setY(y); - TrailsEmitter::burst(count); - setX(oldX); - setY(oldY); -} +public: + static void defineModule(); +}; QT_END_NAMESPACE + +QT_END_HEADER + +#endif // QSGPARTICLESMODULE_H diff --git a/src/imports/particles/particlesystem.cpp b/src/declarative/particles/qsgparticlesystem.cpp index 0c9180c2d8..4a8f75bb04 100644 --- a/src/imports/particles/particlesystem.cpp +++ b/src/declarative/particles/qsgparticlesystem.cpp @@ -39,17 +39,17 @@ ** ****************************************************************************/ -#include "particlesystem.h" +#include "qsgparticlesystem_p.h" #include <qsgnode.h> -#include "particleemitter.h" -#include "particleaffector.h" -#include "particle.h" +#include "qsgparticleemitter_p.h" +#include "qsgparticleaffector_p.h" +#include "qsgparticlepainter_p.h" #include <cmath> #include <QDebug> QT_BEGIN_NAMESPACE -ParticleData::ParticleData() +QSGParticleData::QSGParticleData() : group(0) , e(0) , particleIndex(0) @@ -66,21 +66,23 @@ ParticleData::ParticleData() pv.ay = 0; } -ParticleSystem::ParticleSystem(QSGItem *parent) : - QSGItem(parent), m_particle_count(0), m_running(true) , m_startTime(0), m_overwrite(false) +QSGParticleSystem::QSGParticleSystem(QSGItem *parent) : + QSGItem(parent), m_particle_count(0), m_running(true) + , m_startTime(0), m_overwrite(false) + , m_componentComplete(false) { m_groupIds = QHash<QString, int>(); } -void ParticleSystem::registerParticleType(ParticleType* p) +void QSGParticleSystem::registerParticleType(QSGParticlePainter* p) { - m_particles << QPointer<ParticleType>(p);//###Set or uniqueness checking? + m_particles << QPointer<QSGParticlePainter>(p);//###Set or uniqueness checking? reset(); } -void ParticleSystem::registerParticleEmitter(ParticleEmitter* e) +void QSGParticleSystem::registerParticleEmitter(QSGParticleEmitter* e) { - m_emitters << QPointer<ParticleEmitter>(e);//###How to get them out? + m_emitters << QPointer<QSGParticleEmitter>(e);//###How to get them out? connect(e, SIGNAL(particleCountChanged()), this, SLOT(countChanged())); connect(e, SIGNAL(particleChanged(QString)), @@ -88,18 +90,18 @@ void ParticleSystem::registerParticleEmitter(ParticleEmitter* e) reset(); } -void ParticleSystem::registerParticleAffector(ParticleAffector* a) +void QSGParticleSystem::registerParticleAffector(QSGParticleAffector* a) { - m_affectors << QPointer<ParticleAffector>(a); + m_affectors << QPointer<QSGParticleAffector>(a); //reset();//TODO: Slim down the huge batch of resets at the start } -void ParticleSystem::countChanged() +void QSGParticleSystem::countChanged() { reset();//Need to give Particles new Count } -void ParticleSystem::setRunning(bool arg) +void QSGParticleSystem::setRunning(bool arg) { if (m_running != arg) { m_running = arg; @@ -108,13 +110,15 @@ void ParticleSystem::setRunning(bool arg) } } -void ParticleSystem::componentComplete() +void QSGParticleSystem::componentComplete() { QSGItem::componentComplete(); - reset(); + m_componentComplete = true; + if(!m_emitters.isEmpty() && !m_particles.isEmpty()) + reset(); } -void ParticleSystem::initializeSystem() +void QSGParticleSystem::initializeSystem() { int oldCount = m_particle_count; m_particle_count = 0;//TODO: Only when changed? @@ -143,7 +147,7 @@ void ParticleSystem::initializeSystem() if(!m_emitters.count() || !m_particles.count()) return; - foreach(ParticleEmitter* e, m_emitters){ + foreach(QSGParticleEmitter* e, m_emitters){ if(!m_groupIds.contains(e->particle()) || (!e->particle().isEmpty() && !m_groupIds[e->particle()])){//or it was accidentally inserted by a failed lookup earlier GroupData* gd = new GroupData; @@ -168,7 +172,7 @@ void ParticleSystem::initializeSystem() if(m_particle_count > 16000) qWarning() << "Particle system contains a vast number of particles (>16000). Expect poor performance"; - foreach(ParticleType* particle, m_particles){ + foreach(QSGParticlePainter* particle, m_particles){ int particleCount = 0; if(particle->particles().isEmpty()){//Uses default particle particleCount += m_groupData[0]->size; @@ -189,28 +193,30 @@ void ParticleSystem::initializeSystem() qDebug() << "System Initialized. Size:" << m_particle_count; } -void ParticleSystem::reset() +void QSGParticleSystem::reset() { + if(!m_componentComplete) + return;//Batch starting reset()s a little //Clear guarded pointers which have been deleted int cleared = 0; cleared += m_emitters.removeAll(0); cleared += m_particles.removeAll(0); cleared += m_affectors.removeAll(0); //qDebug() << "Reset" << m_emitters.count() << m_particles.count() << "Cleared" << cleared; - foreach(ParticleType* p, m_particles) + foreach(QSGParticlePainter* p, m_particles) p->reset(); - foreach(ParticleEmitter* e, m_emitters) + foreach(QSGParticleEmitter* e, m_emitters) e->reset(); if(!m_running) return; initializeSystem(); - foreach(ParticleType* p, m_particles) + foreach(QSGParticlePainter* p, m_particles) p->update(); - foreach(ParticleEmitter* e, m_emitters) + foreach(QSGParticleEmitter* e, m_emitters) e->emitWindow(0);//Start, so that starttime factors appropriately } -ParticleData* ParticleSystem::newDatum(int groupId) +QSGParticleData* QSGParticleSystem::newDatum(int groupId) { Q_ASSERT(groupId < m_groupData.count());//XXX shouldn't really be an assert Q_ASSERT(m_groupData[groupId]->size); @@ -219,14 +225,14 @@ ParticleData* ParticleSystem::newDatum(int groupId) m_groupData[groupId]->nextIdx = 0; Q_ASSERT(nextIdx < m_data.size()); - ParticleData* ret; + QSGParticleData* ret; if(m_data[nextIdx]){//Recycle, it's faster. ret = m_data[nextIdx]; if(!m_overwrite && ret->stillAlive()){ return 0;//Artificial longevity (or too fast emission) means this guy hasn't died. To maintain count, don't emit a new one }//###Reset? }else{ - ret = new ParticleData; + ret = new QSGParticleData; m_data[nextIdx] = ret; } @@ -237,7 +243,7 @@ ParticleData* ParticleSystem::newDatum(int groupId) return ret; } -void ParticleSystem::emitParticle(ParticleData* pd) +void QSGParticleSystem::emitParticle(QSGParticleData* pd) {// called from prepareNextFrame()->emitWindow - enforce? //Account for relative emitter position QPointF offset = this->mapFromItem(pd->e, QPointF(0, 0)); @@ -246,17 +252,17 @@ void ParticleSystem::emitParticle(ParticleData* pd) pd->pv.y += offset.y(); } - foreach(ParticleAffector *a, m_affectors) + foreach(QSGParticleAffector *a, m_affectors) if(a && a->m_needsReset) a->reset(pd->systemIndex); - foreach(ParticleType* p, m_groupData[pd->group]->types) + foreach(QSGParticlePainter* p, m_groupData[pd->group]->types) if(p) p->load(pd); } -qint64 ParticleSystem::systemSync(ParticleType* p) +qint64 QSGParticleSystem::systemSync(QSGParticlePainter* p) { if (!m_running) return 0; @@ -272,14 +278,14 @@ qint64 ParticleSystem::systemSync(ParticleType* p) qreal time = m_timeInt / 1000.; dt = time - dt; m_needsReset.clear(); - foreach(ParticleEmitter* emitter, m_emitters) + foreach(QSGParticleEmitter* emitter, m_emitters) if(emitter) emitter->emitWindow(m_timeInt); - foreach(ParticleAffector* a, m_affectors) + foreach(QSGParticleAffector* a, m_affectors) if(a) a->affectSystem(dt); - foreach(ParticleData* d, m_needsReset) - foreach(ParticleType* p, m_groupData[d->group]->types) + foreach(QSGParticleData* d, m_needsReset) + foreach(QSGParticlePainter* p, m_groupData[d->group]->types) if(p && d) p->reload(d); } @@ -288,7 +294,7 @@ qint64 ParticleSystem::systemSync(ParticleType* p) } //sets the x accleration without affecting the instantaneous x velocity or position -void ParticleData::setInstantaneousAX(qreal ax) +void QSGParticleData::setInstantaneousAX(qreal ax) { qreal t = (system->m_timeInt / 1000.0) - pv.t; qreal sx = (pv.sx + t*pv.ax) - t*ax; @@ -301,7 +307,7 @@ void ParticleData::setInstantaneousAX(qreal ax) } //sets the x velocity without affecting the instantaneous x postion -void ParticleData::setInstantaneousSX(qreal vx) +void QSGParticleData::setInstantaneousSX(qreal vx) { qreal t = (system->m_timeInt / 1000.0) - pv.t; qreal sx = vx - t*pv.ax; @@ -313,14 +319,14 @@ void ParticleData::setInstantaneousSX(qreal vx) } //sets the instantaneous x postion -void ParticleData::setInstantaneousX(qreal x) +void QSGParticleData::setInstantaneousX(qreal x) { qreal t = (system->m_timeInt / 1000.0) - pv.t; pv.x = x - t*pv.sx - 0.5 * t*t*pv.ax; } //sets the y accleration without affecting the instantaneous y velocity or position -void ParticleData::setInstantaneousAY(qreal ay) +void QSGParticleData::setInstantaneousAY(qreal ay) { qreal t = (system->m_timeInt / 1000.0) - pv.t; qreal sy = (pv.sy + t*pv.ay) - t*ay; @@ -333,7 +339,7 @@ void ParticleData::setInstantaneousAY(qreal ay) } //sets the y velocity without affecting the instantaneous y position -void ParticleData::setInstantaneousSY(qreal vy) +void QSGParticleData::setInstantaneousSY(qreal vy) { qreal t = (system->m_timeInt / 1000.0) - pv.t; //qDebug() << t << (system->m_timeInt/1000.0) << pv.x << pv.sx << pv.ax << pv.x + pv.sx * t + 0.5 * pv.ax * t * t; @@ -346,37 +352,37 @@ void ParticleData::setInstantaneousSY(qreal vy) } //sets the instantaneous Y position -void ParticleData::setInstantaneousY(qreal y) +void QSGParticleData::setInstantaneousY(qreal y) { qreal t = (system->m_timeInt / 1000.0) - pv.t; pv.y = y - t*pv.sy - 0.5 * t*t*pv.ay; } -qreal ParticleData::curX() const +qreal QSGParticleData::curX() const { qreal t = (system->m_timeInt / 1000.0) - pv.t; return pv.x + pv.sx * t + 0.5 * pv.ax * t * t; } -qreal ParticleData::curSX() const +qreal QSGParticleData::curSX() const { qreal t = (system->m_timeInt / 1000.0) - pv.t; return pv.sx + t*pv.ax; } -qreal ParticleData::curY() const +qreal QSGParticleData::curY() const { qreal t = (system->m_timeInt / 1000.0) - pv.t; return pv.y + pv.sy * t + 0.5 * pv.ay * t * t; } -qreal ParticleData::curSY() const +qreal QSGParticleData::curSY() const { qreal t = (system->m_timeInt / 1000.0) - pv.t; return pv.sy + t*pv.ay; } -void ParticleData::debugDump() +void QSGParticleData::debugDump() { qDebug() << "Particle" << group << "Pos: " << pv.x << "," << pv.y @@ -386,7 +392,7 @@ void ParticleData::debugDump() << "Time: " << pv.t << "," <<pv.lifeSpan; } -bool ParticleData::stillAlive() +bool QSGParticleData::stillAlive() { if(!system) return false; diff --git a/src/imports/particles/particlesystem.h b/src/declarative/particles/qsgparticlesystem_p.h index fbb0e7424f..9730ff35e8 100644 --- a/src/imports/particles/particlesystem.h +++ b/src/declarative/particles/qsgparticlesystem_p.h @@ -55,20 +55,20 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class ParticleAffector; -class ParticleEmitter; -class ParticleType; -class ParticleData; +class QSGParticleAffector; +class QSGParticleEmitter; +class QSGParticlePainter; +class QSGParticleData; struct GroupData{ int size; int start; int nextIdx; - QList<ParticleType*> types; + QList<QSGParticlePainter*> types; }; -class ParticleSystem : public QSGItem +class QSGParticleSystem : public QSGItem { Q_OBJECT Q_PROPERTY(bool running READ isRunning WRITE setRunning NOTIFY runningChanged) @@ -80,7 +80,7 @@ class ParticleSystem : public QSGItem */ public: - explicit ParticleSystem(QSGItem *parent = 0); + explicit QSGParticleSystem(QSGItem *parent = 0); bool isRunning() const { @@ -133,20 +133,20 @@ protected: private slots: void countChanged(); public://but only really for related class usage. Perhaps we should all be friends? - void emitParticle(ParticleData* p); - ParticleData* newDatum(int groupId); - qint64 systemSync(ParticleType* p); + void emitParticle(QSGParticleData* p); + QSGParticleData* newDatum(int groupId); + qint64 systemSync(QSGParticlePainter* p); QElapsedTimer m_timestamp; - QVector<ParticleData*> m_data; - QSet<ParticleData*> m_needsReset; + QVector<QSGParticleData*> m_data; + QSet<QSGParticleData*> m_needsReset; QHash<QString, int> m_groupIds; QHash<int, GroupData*> m_groupData;//id, size, start qint64 m_timeInt; bool m_initialized; - void registerParticleType(ParticleType* p); - void registerParticleEmitter(ParticleEmitter* e); - void registerParticleAffector(ParticleAffector* a); + void registerParticleType(QSGParticlePainter* p); + void registerParticleEmitter(QSGParticleEmitter* e); + void registerParticleAffector(QSGParticleAffector* a); bool overwrite() const { return m_overwrite; @@ -156,13 +156,14 @@ public://but only really for related class usage. Perhaps we should all be frien private: void initializeSystem(); bool m_running; - QList<QPointer<ParticleEmitter> > m_emitters; - QList<QPointer<ParticleAffector> > m_affectors; - QList<QPointer<ParticleType> > m_particles; - QList<QPointer<ParticleType> > m_syncList; + QList<QPointer<QSGParticleEmitter> > m_emitters; + QList<QPointer<QSGParticleAffector> > m_affectors; + QList<QPointer<QSGParticlePainter> > m_particles; + QList<QPointer<QSGParticlePainter> > m_syncList; qint64 m_startTime; int m_nextGroupId; bool m_overwrite; + bool m_componentComplete; }; //TODO: Clean up all this into ParticleData @@ -181,9 +182,9 @@ struct ParticleVertex { //TODO: Need opacity over life control. More variable size over life? }; -class ParticleData{ +class QSGParticleData{ public: - ParticleData(); + QSGParticleData(); ParticleVertex pv; @@ -210,8 +211,8 @@ public: qreal curSY() const; int group; - ParticleEmitter* e; - ParticleSystem* system; + QSGParticleEmitter* e; + QSGParticleSystem* system; int particleIndex; int systemIndex; diff --git a/src/imports/particles/attractoraffector.cpp b/src/declarative/particles/qsgpointattractor.cpp index 847cb2c471..4c675237ba 100644 --- a/src/imports/particles/attractoraffector.cpp +++ b/src/declarative/particles/qsgpointattractor.cpp @@ -39,28 +39,50 @@ ** ****************************************************************************/ -#include "attractoraffector.h" +#include "qsgpointattractor_p.h" #include <cmath> #include <QDebug> QT_BEGIN_NAMESPACE -AttractorAffector::AttractorAffector(QSGItem *parent) : - ParticleAffector(parent), m_strength(0.0), m_x(0), m_y(0) +QSGPointAttractorAffector::QSGPointAttractorAffector(QSGItem *parent) : + QSGParticleAffector(parent), m_strength(0.0), m_x(0), m_y(0) + , m_physics(Velocity), m_proportionalToDistance(Linear) { } -bool AttractorAffector::affectParticle(ParticleData *d, qreal dt) +bool QSGPointAttractorAffector::affectParticle(QSGParticleData *d, qreal dt) { if(m_strength == 0.0) return false; - qreal dx = m_x - d->curX(); - qreal dy = m_y - d->curY(); + qreal dx = m_y - d->curX(); + qreal dy = m_x - d->curY(); qreal r = sqrt((dx*dx) + (dy*dy)); qreal theta = atan2(dy,dx); - qreal ds = (m_strength / r) * dt; + qreal ds = 0; + switch(m_proportionalToDistance){ + case Quadratic: + ds = (m_strength / qMax(1.,r*r)) * dt; + break; + case Linear://also default + default: + ds = (m_strength / qMax(1.,r)) * dt; + } dx = ds * cos(theta); dy = ds * sin(theta); - d->setInstantaneousSX(d->pv.sx + dx); - d->setInstantaneousSY(d->pv.sy + dy); + switch(m_physics){ + case Position: + d->pv.x = (d->pv.x + dx); + d->pv.y = (d->pv.y + dy); + break; + case Acceleration: + d->setInstantaneousAX(d->pv.ax + dx); + d->setInstantaneousAY(d->pv.ay + dy); + break; + case Velocity: //also default + default: + d->setInstantaneousSX(d->pv.sx + dx); + d->setInstantaneousSY(d->pv.sy + dy); + } + return true; } QT_END_NAMESPACE diff --git a/src/imports/particles/attractoraffector.h b/src/declarative/particles/qsgpointattractor_p.h index f41e9ad5e4..3ca29dfa96 100644 --- a/src/imports/particles/attractoraffector.h +++ b/src/declarative/particles/qsgpointattractor_p.h @@ -41,7 +41,7 @@ #ifndef ATTRACTORAFFECTOR_H #define ATTRACTORAFFECTOR_H -#include "particleaffector.h" +#include "qsgparticleaffector_p.h" QT_BEGIN_HEADER @@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class AttractorAffector : public ParticleAffector +class QSGPointAttractorAffector : public QSGParticleAffector { Q_OBJECT //Like Gravitational singularity, but linear to distance instead of quadratic @@ -57,8 +57,24 @@ class AttractorAffector : public ParticleAffector Q_PROPERTY(qreal strength READ strength WRITE setStrength NOTIFY strengthChanged) Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged) Q_PROPERTY(qreal y READ y WRITE setY NOTIFY yChanged) + Q_PROPERTY(PhysicsAffects physics READ physics WRITE setPhysics NOTIFY physicsChanged) + Q_PROPERTY(Proportion proportionalToDistance READ proportionalToDistance WRITE setProportionalToDistance NOTIFY proportionalToDistanceChanged) + Q_ENUMS(PhysicsAffects) + Q_ENUMS(Proportion) + public: - explicit AttractorAffector(QSGItem *parent = 0); + enum Proportion{ + Linear, + Quadratic + }; + + enum PhysicsAffects { + Position, + Velocity, + Acceleration + }; + + explicit QSGPointAttractorAffector(QSGItem *parent = 0); qreal strength() const { @@ -75,6 +91,16 @@ public: return m_y; } + PhysicsAffects physics() const + { + return m_physics; + } + + Proportion proportionalToDistance() const + { + return m_proportionalToDistance; + } + signals: void strengthChanged(qreal arg); @@ -83,6 +109,10 @@ signals: void yChanged(qreal arg); + void physicsChanged(PhysicsAffects arg); + + void proportionalToDistanceChanged(Proportion arg); + public slots: void setStrength(qreal arg) { @@ -107,12 +137,30 @@ void setY(qreal arg) emit yChanged(arg); } } +void setPhysics(PhysicsAffects arg) +{ + if (m_physics != arg) { + m_physics = arg; + emit physicsChanged(arg); + } +} + +void setProportionalToDistance(Proportion arg) +{ + if (m_proportionalToDistance != arg) { + m_proportionalToDistance = arg; + emit proportionalToDistanceChanged(arg); + } +} + protected: - virtual bool affectParticle(ParticleData *d, qreal dt); + virtual bool affectParticle(QSGParticleData *d, qreal dt); private: qreal m_strength; qreal m_x; qreal m_y; +PhysicsAffects m_physics; +Proportion m_proportionalToDistance; }; QT_END_NAMESPACE diff --git a/src/imports/particles/pointvector.cpp b/src/declarative/particles/qsgpointdirection.cpp index e222965943..c3c4f1c5de 100644 --- a/src/imports/particles/pointvector.cpp +++ b/src/declarative/particles/qsgpointdirection.cpp @@ -39,12 +39,12 @@ ** ****************************************************************************/ -#include "pointvector.h" +#include "qsgpointdirection_p.h" QT_BEGIN_NAMESPACE -PointVector::PointVector(QObject *parent) : - VaryingVector(parent) +QSGPointDirection::QSGPointDirection(QObject *parent) : + QSGStochasticDirection(parent) , m_x(0) , m_y(0) , m_xVariation(0) @@ -52,7 +52,7 @@ PointVector::PointVector(QObject *parent) : { } -const QPointF &PointVector::sample(const QPointF &) +const QPointF &QSGPointDirection::sample(const QPointF &) { m_ret.setX(m_x - m_xVariation + rand() / float(RAND_MAX) * m_xVariation * 2); m_ret.setY(m_y - m_yVariation + rand() / float(RAND_MAX) * m_yVariation * 2); diff --git a/src/imports/particles/pointvector.h b/src/declarative/particles/qsgpointdirection_p.h index 5ffa896680..5e5b052744 100644 --- a/src/imports/particles/pointvector.h +++ b/src/declarative/particles/qsgpointdirection_p.h @@ -41,7 +41,7 @@ #ifndef POINTVECTOR_H #define POINTVECTOR_H -#include "varyingvector.h" +#include "qsgstochasticdirection_p.h" QT_BEGIN_HEADER @@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class PointVector : public VaryingVector +class QSGPointDirection : public QSGStochasticDirection { Q_OBJECT Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged) @@ -57,7 +57,7 @@ class PointVector : public VaryingVector Q_PROPERTY(qreal xVariation READ xVariation WRITE setXVariation NOTIFY xVariationChanged) Q_PROPERTY(qreal yVariation READ yVariation WRITE setYVariation NOTIFY yVariationChanged) public: - explicit PointVector(QObject *parent = 0); + explicit QSGPointDirection(QObject *parent = 0); virtual const QPointF &sample(const QPointF &from); qreal x() const { diff --git a/src/imports/particles/spritegoalaffector.cpp b/src/declarative/particles/qsgspritegoal.cpp index 2bd56c4a07..8dc98ae314 100644 --- a/src/imports/particles/spritegoalaffector.cpp +++ b/src/declarative/particles/qsgspritegoal.cpp @@ -39,20 +39,20 @@ ** ****************************************************************************/ -#include "spritegoalaffector.h" -#include "spriteparticle.h" -#include "spriteengine.h" -#include "spritestate.h" +#include "qsgspritegoal_p.h" +#include "private/qsgspriteengine_p.h" +#include "private/qsgsprite_p.h" +#include "qsgimageparticle_p.h" #include <QDebug> QT_BEGIN_NAMESPACE -SpriteGoalAffector::SpriteGoalAffector(QSGItem *parent) : - ParticleAffector(parent), m_goalIdx(-1), m_jump(false) +QSGSpriteGoalAffector::QSGSpriteGoalAffector(QSGItem *parent) : + QSGParticleAffector(parent), m_goalIdx(-1), m_jump(false) { } -void SpriteGoalAffector::updateStateIndex(SpriteEngine* e) +void QSGSpriteGoalAffector::updateStateIndex(QSGSpriteEngine* e) { m_lastEngine = e; for(int i=0; i<e->stateCount(); i++){ @@ -64,7 +64,7 @@ void SpriteGoalAffector::updateStateIndex(SpriteEngine* e) m_goalIdx = -1;//Can't find it } -void SpriteGoalAffector::setGoalState(QString arg) +void QSGSpriteGoalAffector::setGoalState(QString arg) { if (m_goalState != arg) { m_goalState = arg; @@ -76,14 +76,14 @@ void SpriteGoalAffector::setGoalState(QString arg) } } -bool SpriteGoalAffector::affectParticle(ParticleData *d, qreal dt) +bool QSGSpriteGoalAffector::affectParticle(QSGParticleData *d, qreal dt) { Q_UNUSED(dt); //TODO: Affect all engines - SpriteEngine *engine = 0; - foreach(ParticleType *p, m_system->m_groupData[d->group]->types) - if(qobject_cast<SpriteParticle*>(p)) - engine = qobject_cast<SpriteParticle*>(p)->spriteEngine(); + QSGSpriteEngine *engine = 0; + foreach(QSGParticlePainter *p, m_system->m_groupData[d->group]->types) + if(qobject_cast<QSGImageParticle*>(p)) + engine = qobject_cast<QSGImageParticle*>(p)->spriteEngine(); if(!engine) return false; diff --git a/src/imports/particles/spritegoalaffector.h b/src/declarative/particles/qsgspritegoal_p.h index 3a51562be2..28fb2939e6 100644 --- a/src/imports/particles/spritegoalaffector.h +++ b/src/declarative/particles/qsgspritegoal_p.h @@ -41,7 +41,7 @@ #ifndef SPRITEGOALAFFECTOR_H #define SPRITEGOALAFFECTOR_H -#include "particleaffector.h" +#include "qsgparticleaffector_p.h" QT_BEGIN_HEADER @@ -49,15 +49,15 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class SpriteEngine; +class QSGSpriteEngine; -class SpriteGoalAffector : public ParticleAffector +class QSGSpriteGoalAffector : public QSGParticleAffector { Q_OBJECT Q_PROPERTY(QString goalState READ goalState WRITE setGoalState NOTIFY goalStateChanged) Q_PROPERTY(bool jump READ jump WRITE setJump NOTIFY jumpChanged) public: - explicit SpriteGoalAffector(QSGItem *parent = 0); + explicit QSGSpriteGoalAffector(QSGItem *parent = 0); QString goalState() const { @@ -69,7 +69,7 @@ public: return m_jump; } protected: - virtual bool affectParticle(ParticleData *d, qreal dt); + virtual bool affectParticle(QSGParticleData *d, qreal dt); signals: void goalStateChanged(QString arg); @@ -90,10 +90,10 @@ void setJump(bool arg) } private: - void updateStateIndex(SpriteEngine* e); + void updateStateIndex(QSGSpriteEngine* e); QString m_goalState; int m_goalIdx; - SpriteEngine* m_lastEngine; + QSGSpriteEngine* m_lastEngine; bool m_jump; }; diff --git a/src/imports/particles/varyingvector.cpp b/src/declarative/particles/qsgstochasticdirection.cpp index ab09f47f79..3673b9c7a7 100644 --- a/src/imports/particles/varyingvector.cpp +++ b/src/declarative/particles/qsgstochasticdirection.cpp @@ -39,16 +39,16 @@ ** ****************************************************************************/ -#include "varyingvector.h" +#include "qsgstochasticdirection_p.h" QT_BEGIN_NAMESPACE -VaryingVector::VaryingVector(QObject *parent) : +QSGStochasticDirection::QSGStochasticDirection(QObject *parent) : QObject(parent) { } -const QPointF &VaryingVector::sample(const QPointF &from) +const QPointF &QSGStochasticDirection::sample(const QPointF &from) { return m_ret; } diff --git a/src/imports/particles/varyingvector.h b/src/declarative/particles/qsgstochasticdirection_p.h index 9f80366d2e..da3a4302b1 100644 --- a/src/imports/particles/varyingvector.h +++ b/src/declarative/particles/qsgstochasticdirection_p.h @@ -52,11 +52,11 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class VaryingVector : public QObject +class QSGStochasticDirection : public QObject { Q_OBJECT public: - explicit VaryingVector(QObject *parent = 0); + explicit QSGStochasticDirection(QObject *parent = 0); virtual const QPointF &sample(const QPointF &from); signals: diff --git a/src/imports/particles/directedvector.cpp b/src/declarative/particles/qsgtargeteddirection.cpp index c1aeba3ad2..9f1a868512 100644 --- a/src/imports/particles/directedvector.cpp +++ b/src/declarative/particles/qsgtargeteddirection.cpp @@ -39,14 +39,14 @@ ** ****************************************************************************/ -#include "directedvector.h" -#include "particleemitter.h" +#include "qsgtargeteddirection_p.h" +#include "qsgparticleemitter_p.h" #include <cmath> #include <QDebug> QT_BEGIN_NAMESPACE -DirectedVector::DirectedVector(QObject *parent) : - VaryingVector(parent) +QSGTargetedDirection::QSGTargetedDirection(QObject *parent) : + QSGStochasticDirection(parent) , m_targetX(0) , m_targetY(0) , m_targetVariation(0) @@ -57,13 +57,13 @@ DirectedVector::DirectedVector(QObject *parent) : { } -const QPointF &DirectedVector::sample(const QPointF &from) +const QPointF &QSGTargetedDirection::sample(const QPointF &from) { //###This approach loses interpolating the last position of the target (like we could with the emitter) is it worthwhile? qreal targetX; qreal targetY; if(m_targetItem){ - ParticleEmitter* parentEmitter = qobject_cast<ParticleEmitter*>(parent()); + QSGParticleEmitter* parentEmitter = qobject_cast<QSGParticleEmitter*>(parent()); targetX = m_targetItem->width()/2; targetY = m_targetItem->height()/2; if(!parentEmitter){ diff --git a/src/imports/particles/directedvector.h b/src/declarative/particles/qsgtargeteddirection_p.h index f1d0919bc3..4010505858 100644 --- a/src/imports/particles/directedvector.h +++ b/src/declarative/particles/qsgtargeteddirection_p.h @@ -41,7 +41,7 @@ #ifndef DIRECTEDVECTOR_H #define DIRECTEDVECTOR_H -#include "varyingvector.h" +#include "qsgstochasticdirection_p.h" QT_BEGIN_HEADER QT_BEGIN_NAMESPACE @@ -49,7 +49,7 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) class QSGItem; -class DirectedVector : public VaryingVector +class QSGTargetedDirection : public QSGStochasticDirection { Q_OBJECT Q_PROPERTY(qreal targetX READ targetX WRITE setTargetX NOTIFY targetXChanged) @@ -64,7 +64,7 @@ class DirectedVector : public VaryingVector Q_PROPERTY(qreal magnitudeVariation READ magnitudeVariation WRITE setMagnitudeVariation NOTIFY magnitudeVariationChanged) public: - explicit DirectedVector(QObject *parent = 0); + explicit QSGTargetedDirection(QObject *parent = 0); virtual const QPointF &sample(const QPointF &from); qreal targetX() const diff --git a/src/imports/particles/turbulenceaffector.cpp b/src/declarative/particles/qsgturbulence.cpp index d29f09d974..476db9c4b0 100644 --- a/src/imports/particles/turbulenceaffector.cpp +++ b/src/declarative/particles/qsgturbulence.cpp @@ -39,21 +39,21 @@ ** ****************************************************************************/ -#include "turbulenceaffector.h" -#include "particle.h" +#include "qsgturbulence_p.h" +#include "qsgparticlepainter_p.h"//TODO: Why was this needed again? #include <cmath> #include <cstdlib> #include <QDebug> QT_BEGIN_NAMESPACE -TurbulenceAffector::TurbulenceAffector(QSGItem *parent) : - ParticleAffector(parent), +QSGTurbulenceAffector::QSGTurbulenceAffector(QSGItem *parent) : + QSGParticleAffector(parent), m_strength(10), m_lastT(0), m_frequency(64), m_gridSize(10), m_field(0), m_inited(false) { //TODO: Update grid on size change } -TurbulenceAffector::~TurbulenceAffector() +QSGTurbulenceAffector::~QSGTurbulenceAffector() { if (m_field) { for(int i=0; i<m_gridSize; i++) @@ -67,7 +67,7 @@ static qreal magnitude(qreal x, qreal y) return sqrt(x*x + y*y); } -void TurbulenceAffector::setSize(int arg) +void QSGTurbulenceAffector::setSize(int arg) { if (m_gridSize != arg) { if(m_field){ //deallocate and then reallocate grid @@ -81,7 +81,7 @@ void TurbulenceAffector::setSize(int arg) } } -void TurbulenceAffector::ensureInit() +void QSGTurbulenceAffector::ensureInit() { if(m_inited) return; @@ -96,7 +96,7 @@ void TurbulenceAffector::ensureInit() m_magSum = magnitude(m_spacing.x(), m_spacing.y())*2; } -void TurbulenceAffector::mapUpdate() +void QSGTurbulenceAffector::mapUpdate() { QPoint pos(rand() % m_gridSize, rand() % m_gridSize); QPointF vector(m_strength - (((qreal)rand() / RAND_MAX) * m_strength*2), @@ -116,7 +116,7 @@ void TurbulenceAffector::mapUpdate() } -void TurbulenceAffector::affectSystem(qreal dt) +void QSGTurbulenceAffector::affectSystem(qreal dt) { if(!m_system || !m_active) return; @@ -128,7 +128,7 @@ void TurbulenceAffector::affectSystem(qreal dt) m_lastT += period; } - foreach(ParticleData *d, m_system->m_data){ + foreach(QSGParticleData *d, m_system->m_data){ if(!d || !activeGroup(d->group)) return; qreal fx = 0.0; diff --git a/src/imports/particles/turbulenceaffector.h b/src/declarative/particles/qsgturbulence_p.h index 2dc2ddcdfd..29483fbc70 100644 --- a/src/imports/particles/turbulenceaffector.h +++ b/src/declarative/particles/qsgturbulence_p.h @@ -41,7 +41,7 @@ #ifndef TURBULENCEAFFECTOR_H #define TURBULENCEAFFECTOR_H -#include "particleaffector.h" +#include "qsgparticleaffector_p.h" #include <QDeclarativeListProperty> QT_BEGIN_HEADER @@ -51,17 +51,17 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class ParticleType; +class QSGParticlePainter; -class TurbulenceAffector : public ParticleAffector +class QSGTurbulenceAffector : public QSGParticleAffector { Q_OBJECT Q_PROPERTY(int strength READ strength WRITE setStrength NOTIFY strengthChanged) Q_PROPERTY(int frequency READ frequency WRITE setFrequency NOTIFY frequencyChanged) Q_PROPERTY(int gridSize READ size WRITE setSize NOTIFY sizeChanged) public: - explicit TurbulenceAffector(QSGItem *parent = 0); - ~TurbulenceAffector(); + explicit QSGTurbulenceAffector(QSGItem *parent = 0); + ~QSGTurbulenceAffector(); virtual void affectSystem(qreal dt); int strength() const diff --git a/src/imports/particles/wanderaffector.cpp b/src/declarative/particles/qsgwander.cpp index 4d3ba5f7ce..6e56d6a05b 100644 --- a/src/imports/particles/wanderaffector.cpp +++ b/src/declarative/particles/qsgwander.cpp @@ -39,24 +39,25 @@ ** ****************************************************************************/ -#include "wanderaffector.h" -#include "particlesystem.h"//for ParticlesVertices +#include "qsgwander_p.h" +#include "qsgparticlesystem_p.h"//for ParticlesVertices QT_BEGIN_NAMESPACE -WanderAffector::WanderAffector(QSGItem *parent) : - ParticleAffector(parent) +QSGWanderAffector::QSGWanderAffector(QSGItem *parent) : + QSGParticleAffector(parent), m_xVariance(0), m_yVariance(0), m_pace(0) + , m_physics(Velocity) { m_needsReset = true; } -WanderAffector::~WanderAffector() +QSGWanderAffector::~QSGWanderAffector() { for(QHash<int, WanderData*>::const_iterator iter=m_wanderData.constBegin(); iter != m_wanderData.constEnd(); iter++) delete (*iter); } -WanderData* WanderAffector::getData(int idx) +WanderData* QSGWanderAffector::getData(int idx) { if(m_wanderData.contains(idx)) return m_wanderData[idx]; @@ -72,15 +73,16 @@ WanderData* WanderAffector::getData(int idx) return d; } -void WanderAffector::reset(int systemIdx) +void QSGWanderAffector::reset(int systemIdx) { if(m_wanderData.contains(systemIdx)) delete m_wanderData[systemIdx]; m_wanderData.remove(systemIdx); } -bool WanderAffector::affectParticle(ParticleData* data, qreal dt) +bool QSGWanderAffector::affectParticle(QSGParticleData* data, qreal dt) { + /*TODO: Add a mode which does basically this - picking a direction, going in it (random speed) and then going back WanderData* d = getData(data->systemIndex); if (m_xVariance != 0.) { if ((d->x_vel > d->x_peak && d->x_var > 0.0) || (d->x_vel < -d->x_peak && d->x_var < 0.0)) { @@ -106,5 +108,37 @@ bool WanderAffector::affectParticle(ParticleData* data, qreal dt) p->y += dy; return true; + */ + qreal dx = dt * m_pace * (2 * qreal(qrand())/RAND_MAX - 1); + qreal dy = dt * m_pace * (2 * qreal(qrand())/RAND_MAX - 1); + qreal newX, newY; + switch(m_physics){ + case Position: + newX = data->curX() + dx; + if(m_xVariance > qAbs(newX) ) + data->pv.x += dx; + newY = data->curY() + dy; + if(m_yVariance > qAbs(newY) ) + data->pv.y += dy; + break; + default: + case Velocity: + newX = data->curSX() + dx; + if(m_xVariance > qAbs(newX) ) + data->setInstantaneousSX(newX); + newY = data->curSY() + dy; + if(m_yVariance > qAbs(newY) ) + data->setInstantaneousSY(newY); + break; + case Acceleration: + newX = data->pv.ax + dx; + if(m_xVariance > qAbs(newX) ) + data->setInstantaneousAX(newX); + newY = data->pv.ay + dy; + if(m_yVariance > qAbs(newY) ) + data->setInstantaneousAY(newY); + break; + } + return true; } QT_END_NAMESPACE diff --git a/src/imports/particles/wanderaffector.h b/src/declarative/particles/qsgwander_p.h index 612872830b..783efc8636 100644 --- a/src/imports/particles/wanderaffector.h +++ b/src/declarative/particles/qsgwander_p.h @@ -42,7 +42,7 @@ #ifndef WANDERAFFECTOR_H #define WANDERAFFECTOR_H #include <QHash> -#include "particleaffector.h" +#include "qsgparticleaffector_p.h" QT_BEGIN_HEADER @@ -51,8 +51,6 @@ QT_BEGIN_NAMESPACE QT_MODULE(Declarative) -class SpriteEmitter; - struct WanderData{ qreal x_vel; qreal y_vel; @@ -62,16 +60,24 @@ struct WanderData{ qreal y_var; }; -class WanderAffector : public ParticleAffector +class QSGWanderAffector : public QSGParticleAffector { Q_OBJECT + Q_PROPERTY(qreal pace READ pace WRITE setPace NOTIFY paceChanged) Q_PROPERTY(qreal xVariance READ xVariance WRITE setXVariance NOTIFY xVarianceChanged) Q_PROPERTY(qreal yVariance READ yVariance WRITE setYVariance NOTIFY yVarianceChanged) - Q_PROPERTY(qreal pace READ pace WRITE setPace NOTIFY paceChanged) + Q_PROPERTY(PhysicsAffects physics READ physics WRITE setPhysics NOTIFY physicsChanged) + Q_ENUMS(PhysicsAffects) public: - explicit WanderAffector(QSGItem *parent = 0); - ~WanderAffector(); + enum PhysicsAffects { + Position, + Velocity, + Acceleration + }; + + explicit QSGWanderAffector(QSGItem *parent = 0); + ~QSGWanderAffector(); virtual void reset(int systemIdx); qreal xVariance() const @@ -88,8 +94,14 @@ public: { return m_pace; } + + PhysicsAffects physics() const + { + return m_physics; + } + protected: - virtual bool affectParticle(ParticleData *d, qreal dt); + virtual bool affectParticle(QSGParticleData *d, qreal dt); signals: void xVarianceChanged(qreal arg); @@ -98,6 +110,9 @@ signals: void paceChanged(qreal arg); + + void physicsChanged(PhysicsAffects arg); + public slots: void setXVariance(qreal arg) { @@ -123,12 +138,22 @@ void setPace(qreal arg) } } + +void setPhysics(PhysicsAffects arg) +{ + if (m_physics != arg) { + m_physics = arg; + emit physicsChanged(arg); + } +} + private: WanderData* getData(int idx); QHash<int, WanderData*> m_wanderData; qreal m_xVariance; qreal m_yVariance; qreal m_pace; + PhysicsAffects m_physics; }; QT_END_NAMESPACE diff --git a/src/declarative/qml/qdeclarativecompiler.cpp b/src/declarative/qml/qdeclarativecompiler.cpp index bd223b317c..712f787549 100644 --- a/src/declarative/qml/qdeclarativecompiler.cpp +++ b/src/declarative/qml/qdeclarativecompiler.cpp @@ -1011,12 +1011,14 @@ void QDeclarativeCompiler::genObjectBody(QDeclarativeParser::Object *obj) { typedef QPair<Property *, int> PropPair; foreach(const PropPair &prop, obj->scriptStringProperties) { + const QString &script = prop.first->values.at(0)->value.asScript(); QDeclarativeInstruction ss; ss.setType(QDeclarativeInstruction::StoreScriptString); ss.storeScriptString.propertyIndex = prop.first->index; - ss.storeScriptString.value = - output->indexForString(prop.first->values.at(0)->value.asScript()); + ss.storeScriptString.value = output->indexForString(script); ss.storeScriptString.scope = prop.second; + ss.storeScriptString.bindingId = rewriteBinding(script, prop.first->name); + ss.storeScriptString.line = prop.first->location.start.line; output->addInstruction(ss); } diff --git a/src/declarative/qml/qdeclarativeengine.cpp b/src/declarative/qml/qdeclarativeengine.cpp index c0db9826ab..8764ab9452 100644 --- a/src/declarative/qml/qdeclarativeengine.cpp +++ b/src/declarative/qml/qdeclarativeengine.cpp @@ -99,6 +99,7 @@ #include <private/qdeclarativeitemsmodule_p.h> #include <private/qdeclarativeutilmodule_p.h> #include <private/qsgitemsmodule_p.h> +#include <private/qsgparticlesmodule_p.h> #include <qsgtexture.h> #ifdef Q_OS_WIN // for %APPDATA% @@ -355,6 +356,7 @@ QDeclarativeEnginePrivate::QDeclarativeEnginePrivate(QDeclarativeEngine *e) QDeclarativeUtilModule::defineModule(); QDeclarativeEnginePrivate::defineModule(); QSGItemsModule::defineModule(); + QSGParticlesModule::defineModule(); QDeclarativeValueTypeFactory::registerValueTypes(); } } @@ -651,9 +653,6 @@ QNetworkAccessManager *QDeclarativeEngine::networkAccessManager() const All required image providers should be added to the engine before any QML sources files are loaded. - Note that images loaded from a QDeclarativeImageProvider are cached - by QPixmapCache, similar to any image loaded by QML. - \sa removeImageProvider() */ void QDeclarativeEngine::addImageProvider(const QString &providerId, QDeclarativeImageProvider *provider) diff --git a/src/declarative/qml/qdeclarativeexpression.cpp b/src/declarative/qml/qdeclarativeexpression.cpp index 095d9be335..7d2803f33b 100644 --- a/src/declarative/qml/qdeclarativeexpression.cpp +++ b/src/declarative/qml/qdeclarativeexpression.cpp @@ -45,6 +45,7 @@ #include "private/qdeclarativeengine_p.h" #include "private/qdeclarativecontext_p.h" #include "private/qdeclarativerewrite_p.h" +#include "private/qdeclarativescriptstring_p.h" #include "private/qdeclarativecompiler_p.h" #include <QtCore/qdebug.h> @@ -232,6 +233,58 @@ QDeclarativeExpression::QDeclarativeExpression(QDeclarativeContextData *ctxt, vo /*! Create a QDeclarativeExpression object that is a child of \a parent. + The \script provides the expression to be evaluated, the context to evaluate it in, + and the scope object to evaluate it with. + + This constructor is functionally equivalent to the following, but in most cases + is more efficient. + \code + QDeclarativeExpression expression(script.context(), script.scopeObject(), script.script(), parent); + \endcode + + \sa QDeclarativeScriptString +*/ +QDeclarativeExpression::QDeclarativeExpression(const QDeclarativeScriptString &script, QObject *parent) +: QObject(*new QDeclarativeExpressionPrivate, parent) +{ + Q_D(QDeclarativeExpression); + bool defaultConstruction = false; + + int id = script.d.data()->bindingId; + if (id < 0) { + defaultConstruction = true; + } else { + QDeclarativeContextData *ctxtdata = QDeclarativeContextData::get(script.context()); + + QDeclarativeEnginePrivate *engine = QDeclarativeEnginePrivate::get(qmlEngine(script.scopeObject())); + QDeclarativeCompiledData *cdata = 0; + QDeclarativeTypeData *typeData = 0; + if (engine && ctxtdata && !ctxtdata->url.isEmpty()) { + typeData = engine->typeLoader.get(ctxtdata->url); + cdata = typeData->compiledData(); + } + + if (cdata) + d->init(ctxtdata, (void*)cdata->datas.at(id).constData(), cdata, script.scopeObject(), + cdata->name, script.d.data()->lineNumber); + else + defaultConstruction = true; + + if (typeData) + typeData->release(); + } + + if (defaultConstruction) + d->init(QDeclarativeContextData::get(script.context()), script.script(), script.scopeObject()); + + if (QDeclarativeExpression_notifyIdx == -1) + QDeclarativeExpression_notifyIdx = QDeclarativeExpression::staticMetaObject.indexOfMethod("_q_notify()"); + d->setNotifyObject(this, QDeclarativeExpression_notifyIdx); +} + +/*! + Create a QDeclarativeExpression object that is a child of \a parent. + The \a expression JavaScript will be executed in the \a ctxt QDeclarativeContext. If specified, the \a scope object's properties will also be in scope during the expression's execution. diff --git a/src/declarative/qml/qdeclarativeexpression.h b/src/declarative/qml/qdeclarativeexpression.h index de2042e58c..217545e08e 100644 --- a/src/declarative/qml/qdeclarativeexpression.h +++ b/src/declarative/qml/qdeclarativeexpression.h @@ -43,6 +43,7 @@ #define QDECLARATIVEEXPRESSION_H #include <QtDeclarative/qdeclarativeerror.h> +#include <QtDeclarative/qdeclarativescriptstring.h> #include <QtCore/qobject.h> #include <QtCore/qvariant.h> @@ -65,6 +66,7 @@ class Q_DECLARATIVE_EXPORT QDeclarativeExpression : public QObject public: QDeclarativeExpression(); QDeclarativeExpression(QDeclarativeContext *, QObject *, const QString &, QObject * = 0); + explicit QDeclarativeExpression(const QDeclarativeScriptString &, QObject * = 0); virtual ~QDeclarativeExpression(); QDeclarativeEngine *engine() const; diff --git a/src/declarative/qml/qdeclarativeimageprovider.cpp b/src/declarative/qml/qdeclarativeimageprovider.cpp index 50a3aad733..56e04c963f 100644 --- a/src/declarative/qml/qdeclarativeimageprovider.cpp +++ b/src/declarative/qml/qdeclarativeimageprovider.cpp @@ -136,7 +136,8 @@ public: Image providers that support QImage loading automatically include support for asychronous loading of images. To enable asynchronous loading for an - \l Image source, set \l Image::asynchronous to \c true. When this is enabled, + image source, set the \c asynchronous property to \c true for the relevant + \l Image, \l BorderImage or \l AnimatedImage object. When this is enabled, the image request to the provider is run in a low priority thread, allowing image loading to be executed in the background, and reducing the performance impact on the user interface. @@ -147,6 +148,17 @@ public: \c true, the value is ignored and the image is loaded synchronously. + + \section2 Image caching + + Images returned by a QDeclarativeImageProvider are automatically cached, + similar to any image loaded by the QML engine. When an image with a + "image://" prefix is loaded from cache, requestImage() and requestPixmap() + will not be called for the relevant image provider. If an image should always + be fetched from the image provider, and should not be cached at all, set the + \c cache property to \c false for the relevant \l Image, \l BorderImage or + \l AnimatedImage object. + \sa QDeclarativeEngine::addImageProvider() */ diff --git a/src/declarative/qml/qdeclarativeinstruction.cpp b/src/declarative/qml/qdeclarativeinstruction.cpp index fa0d8ea6f4..79a2a1cc34 100644 --- a/src/declarative/qml/qdeclarativeinstruction.cpp +++ b/src/declarative/qml/qdeclarativeinstruction.cpp @@ -160,7 +160,7 @@ void QDeclarativeCompiledData::dump(QDeclarativeInstruction *instr, int idx) qWarning().nospace() << idx << "\t\t" << "STORE_IMPORTED_SCRIPT\t" << instr->storeScript.value; break; case QDeclarativeInstruction::StoreScriptString: - qWarning().nospace() << idx << "\t\t" << "STORE_SCRIPT_STRING\t" << instr->storeScriptString.propertyIndex << "\t" << instr->storeScriptString.value << "\t" << instr->storeScriptString.scope; + qWarning().nospace() << idx << "\t\t" << "STORE_SCRIPT_STRING\t" << instr->storeScriptString.propertyIndex << "\t" << instr->storeScriptString.value << "\t" << instr->storeScriptString.scope << "\t" << instr->storeScriptString.bindingId; break; case QDeclarativeInstruction::AssignSignalObject: qWarning().nospace() << idx << "\t\t" << "ASSIGN_SIGNAL_OBJECT\t" << instr->assignSignalObject.signal << "\t\t\t" << datas.at(instr->assignSignalObject.signal); diff --git a/src/declarative/qml/qdeclarativeinstruction_p.h b/src/declarative/qml/qdeclarativeinstruction_p.h index d040967882..3db55a66d3 100644 --- a/src/declarative/qml/qdeclarativeinstruction_p.h +++ b/src/declarative/qml/qdeclarativeinstruction_p.h @@ -245,6 +245,8 @@ union QDeclarativeInstruction int propertyIndex; int value; int scope; + int bindingId; + ushort line; }; struct instr_storeScript { QML_INSTR_HEADER diff --git a/src/declarative/qml/qdeclarativescriptstring.cpp b/src/declarative/qml/qdeclarativescriptstring.cpp index f544393b9b..02d6e5603e 100644 --- a/src/declarative/qml/qdeclarativescriptstring.cpp +++ b/src/declarative/qml/qdeclarativescriptstring.cpp @@ -40,19 +40,10 @@ ****************************************************************************/ #include "qdeclarativescriptstring.h" +#include "qdeclarativescriptstring_p.h" QT_BEGIN_NAMESPACE -class QDeclarativeScriptStringPrivate : public QSharedData -{ -public: - QDeclarativeScriptStringPrivate() : context(0), scope(0) {} - - QDeclarativeContext *context; - QObject *scope; - QString script; -}; - /*! \class QDeclarativeScriptString \since 4.7 @@ -75,8 +66,8 @@ and the class could choose how to handle it. Typically, the class will evaluate the script at some later time using a QDeclarativeExpression. \code -QDeclarativeExpression expr(scriptString.context(), scriptString.script(), scriptStr.scopeObject()); -expr.value(); +QDeclarativeExpression expr(scriptString); +expr.evaluate(); \endcode \sa QDeclarativeExpression diff --git a/src/declarative/qml/qdeclarativescriptstring.h b/src/declarative/qml/qdeclarativescriptstring.h index 5408dd404d..5f3a2fe73f 100644 --- a/src/declarative/qml/qdeclarativescriptstring.h +++ b/src/declarative/qml/qdeclarativescriptstring.h @@ -75,6 +75,9 @@ public: private: QSharedDataPointer<QDeclarativeScriptStringPrivate> d; + + friend class QDeclarativeVME; + friend class QDeclarativeExpression; }; QT_END_NAMESPACE diff --git a/src/declarative/qml/qdeclarativescriptstring_p.h b/src/declarative/qml/qdeclarativescriptstring_p.h new file mode 100644 index 0000000000..cd0cc43995 --- /dev/null +++ b/src/declarative/qml/qdeclarativescriptstring_p.h @@ -0,0 +1,63 @@ +/**************************************************************************** +** +** 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 QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QDECLARATIVESCRIPTSTRING_P_H +#define QDECLARATIVESCRIPTSTRING_P_H + +#include <QtDeclarative/qdeclarativecontext.h> + +QT_BEGIN_NAMESPACE + +class QDeclarativeScriptStringPrivate : public QSharedData +{ +public: + QDeclarativeScriptStringPrivate() : context(0), scope(0), bindingId(-1), lineNumber(-1) {} + + QDeclarativeContext *context; + QObject *scope; + QString script; + int bindingId; + int lineNumber; +}; + +QT_END_NAMESPACE + +#endif // QDECLARATIVESCRIPTSTRING_P_H diff --git a/src/declarative/qml/qdeclarativevme.cpp b/src/declarative/qml/qdeclarativevme.cpp index 146c856f8f..9082ef06c1 100644 --- a/src/declarative/qml/qdeclarativevme.cpp +++ b/src/declarative/qml/qdeclarativevme.cpp @@ -60,6 +60,7 @@ #include "private/qdeclarativev4bindings_p.h" #include "private/qdeclarativeglobal_p.h" #include "qdeclarativescriptstring.h" +#include "qdeclarativescriptstring_p.h" #include <QStack> #include <QWidget> @@ -639,6 +640,8 @@ QObject *QDeclarativeVME::run(QDeclarativeVMEStack<QObject *> &stack, ss.setContext(ctxt->asQDeclarativeContext()); ss.setScopeObject(scope); ss.setScript(primitives.at(instr.value)); + ss.d.data()->bindingId = instr.bindingId; + ss.d.data()->lineNumber = instr.line; void *a[] = { &ss, 0, &status, &flags }; QMetaObject::metacall(target, QMetaObject::WriteProperty, diff --git a/src/declarative/qml/qml.pri b/src/declarative/qml/qml.pri index cc2f362d4a..7325cd8340 100644 --- a/src/declarative/qml/qml.pri +++ b/src/declarative/qml/qml.pri @@ -113,12 +113,10 @@ HEADERS += \ $$PWD/qdeclarativeimport_p.h \ $$PWD/qdeclarativeextensionplugin.h \ $$PWD/qintrusivelist_p.h \ + $$PWD/qdeclarativescriptstring_p.h QT += sql include(parser/parser.pri) include(rewriter/rewriter.pri) include(v4/v4.pri) include(v8/v8.pri) - -# mirrors logic in corelib/kernel/kernel.pri -unix:!symbian: contains(QT_CONFIG, clock-gettime):include($$QT_SOURCE_TREE/config.tests/unix/clock-gettime/clock-gettime.pri) diff --git a/src/declarative/scenegraph/coreapi/qsgrenderer.cpp b/src/declarative/scenegraph/coreapi/qsgrenderer.cpp index e267e3d8b8..dbf704b64a 100644 --- a/src/declarative/scenegraph/coreapi/qsgrenderer.cpp +++ b/src/declarative/scenegraph/coreapi/qsgrenderer.cpp @@ -206,10 +206,7 @@ void QSGRenderer::renderScene() class B : public Bindable { public: - B() : m_ctx(const_cast<QGLContext *>(QGLContext::currentContext())) { } void bind() const { QGLFramebufferObject::bindDefault(); } - private: - QGLContext *m_ctx; } b; renderScene(b); } diff --git a/src/declarative/scenegraph/qsgcontext.cpp b/src/declarative/scenegraph/qsgcontext.cpp index e36d432e40..55942bebe4 100644 --- a/src/declarative/scenegraph/qsgcontext.cpp +++ b/src/declarative/scenegraph/qsgcontext.cpp @@ -281,10 +281,17 @@ QSGImageNode *QSGContext::createImageNode() */ QSGGlyphNode *QSGContext::createGlyphNode() { + // ### Do something with these before final release... + static bool doSubpixel = qApp->arguments().contains(QLatin1String("--text-subpixel-antialiasing")); + static bool doGray = qApp->arguments().contains(QLatin1String("--text-gray-antialiasing")); + if (QSGDistanceFieldGlyphCache::distanceFieldEnabled()) { QSGGlyphNode *node = new QSGDistanceFieldGlyphNode; - if (qApp->arguments().contains(QLatin1String("--subpixel-antialiasing"))) + + if (doSubpixel) node->setPreferredAntialiasingMode(QSGGlyphNode::SubPixelAntialiasing); + else if (doGray) + node->setPreferredAntialiasingMode(QSGGlyphNode::GrayAntialiasing); return node; } else { return new QSGDefaultGlyphNode; @@ -299,8 +306,10 @@ QSGGlyphNode *QSGContext::createGlyphNode() */ QSGRenderer *QSGContext::createRenderer() { + // ### Do something with this before release... + static bool doFrontToBack = qApp->arguments().contains(QLatin1String("--opaque-front-to-back")); QMLRenderer *renderer = new QMLRenderer(this); - if (qApp->arguments().contains(QLatin1String("--opaque-front-to-back"))) { + if (doFrontToBack) { printf("QSGContext: Sorting opaque nodes front to back...\n"); renderer->setSortFrontToBackEnabled(true); } diff --git a/src/declarative/scenegraph/scenegraph.pri b/src/declarative/scenegraph/scenegraph.pri index 77a93e4811..17370804a3 100644 --- a/src/declarative/scenegraph/scenegraph.pri +++ b/src/declarative/scenegraph/scenegraph.pri @@ -29,6 +29,7 @@ HEADERS += \ $$PWD/util/qsgareaallocator_p.h \ $$PWD/util/qsgengine.h \ $$PWD/util/qsgflatcolormaterial.h \ + $$PWD/util/qsgsimplematerial.h \ $$PWD/util/qsgsimplerectnode.h \ $$PWD/util/qsgsimpletexturenode.h \ $$PWD/util/qsgtexturematerial.h \ diff --git a/src/declarative/scenegraph/util/qsgsimplematerial.h b/src/declarative/scenegraph/util/qsgsimplematerial.h new file mode 100644 index 0000000000..810d89f224 --- /dev/null +++ b/src/declarative/scenegraph/util/qsgsimplematerial.h @@ -0,0 +1,222 @@ +/**************************************************************************** +** +** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies). +** All rights reserved. +** Contact: Nokia Corporation (qt-info@nokia.com) +** +** This file is part of the QtDeclarative module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** No Commercial Usage +** This file contains pre-release code and may not be distributed. +** You may use this file in accordance with the terms and conditions +** contained in the Technology Preview License Agreement accompanying +** this package. +** +** GNU Lesser General Public License Usage +** Alternatively, this file may be used under the terms of the GNU Lesser +** General Public License version 2.1 as published by the Free Software +** Foundation and appearing in the file LICENSE.LGPL included in the +** packaging of this file. Please review the following information to +** ensure the GNU Lesser General Public License version 2.1 requirements +** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** If you have questions regarding the use of this file, please contact +** Nokia at qt-info@nokia.com. +** +** +** +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#ifndef QSGSIMPLEMATERIAL_H +#define QSGSIMPLEMATERIAL_H + +#include <qsgmaterial.h> + +QT_BEGIN_HEADER + +QT_BEGIN_NAMESPACE + +QT_MODULE(Declarative) + +template <typename State> +class QSGSimpleMaterialShader : public QSGMaterialShader +{ +public: + void initialize() { + QSGMaterialShader::initialize(); + + m_id_matrix = program()->uniformLocation(uniformMatrixName()); + if (m_id_matrix < 0) { + qFatal("QSGSimpleMaterialShader does not implement 'uniform highp mat4 %s;' in its vertex shader", + uniformMatrixName()); + } + + const char *opacity = uniformOpacityName(); + if (opacity) { + m_id_opacity = program()->uniformLocation(uniformOpacityName()); + if (m_id_opacity < 0) { + qFatal("QSGSimpleMaterialShader does not implement 'uniform lowp float %s' in its fragment shader", + uniformOpacityName()); + } + } else { + m_id_opacity = -1; + } + + resolveUniforms(); + } + + const char *uniformMatrixName() const { return "qt_ModelViewProjectionMatrix"; } + const char *uniformOpacityName() const { return "qt_Opacity"; } + + void updateState(const RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial); + + virtual void updateState(const State *newState, const State *oldState) = 0; + + virtual void resolveUniforms() {} + + virtual QList<QByteArray> attributes() const = 0; + + char const *const *attributeNames() const + { + if (m_attribute_pointers.size()) + return m_attribute_pointers.constData(); + + QList<QByteArray> names = attributes(); + + // Calculate the total number of bytes needed, so we don't get rellocs and + // bad pointers while copying over the individual names. + // Add an extra byte pr entry for the '\0' char. + int total = 0; + for (int i=0; i<names.size(); ++i) + total += names.at(i).size() + 1; + m_attribute_name_data.reserve(total); + + // Copy over the names + for (int i=0; i<names.size(); ++i) { + m_attribute_pointers << m_attribute_name_data.constData() + m_attribute_name_data.size(); + m_attribute_name_data.append(names.at(i)); + m_attribute_name_data.append('\0'); + } + + // Append the "null" terminator + m_attribute_pointers << 0; + + return m_attribute_pointers.constData(); + } + +private: + int m_id_matrix; + int m_id_opacity; + + mutable QByteArray m_attribute_name_data; + mutable QVector<const char *> m_attribute_pointers; +}; + +#define QSG_DECLARE_SIMPLE_SHADER(Shader, State) \ +static QSGMaterialShader *createShader() \ +{ \ + return new Shader; \ +} \ +public: \ +static QSGSimpleMaterial<State> *createMaterial() \ +{ \ + return new QSGSimpleMaterial<State>(createShader); \ +} + + +typedef QSGMaterialShader *(*PtrShaderCreateFunc)(); + + +template <typename State> +class QSGSimpleMaterial : public QSGMaterial +{ + +public: + QSGSimpleMaterial(const State &state, PtrShaderCreateFunc func) + : m_state(state) + , m_func(func) + { + } + + QSGSimpleMaterial(PtrShaderCreateFunc func) + : m_func(func) + { + } + + QSGMaterialShader *createShader() const { return m_func(); } + QSGMaterialType *type() const { return &m_type; } + + State *state() { return &m_state; } + const State *state() const { return &m_state; } + +private: + static QSGMaterialType m_type; + State m_state; + PtrShaderCreateFunc m_func; +}; + +#define QSG_DECLARE_SIMPLE_COMPARABLE_SHADER(Shader, State) \ +static QSGMaterialShader *createShader() \ +{ \ + return new Shader; \ +} \ +public: \ +static QSGSimpleMaterialComparableMaterial<State> *createMaterial() \ +{ \ + return new QSGSimpleMaterialComparableMaterial<State>(createShader); \ +} + +template <typename State> +class QSGSimpleMaterialComparableMaterial : public QSGSimpleMaterial<State> +{ + +public: + QSGSimpleMaterialComparableMaterial(const State &state, PtrShaderCreateFunc func) + : QSGSimpleMaterial<State>(state, func) {} + + QSGSimpleMaterialComparableMaterial(PtrShaderCreateFunc func) + : QSGSimpleMaterial<State>(func) {} + + int compare(const QSGMaterial *other) const { + return QSGSimpleMaterialComparableMaterial<State>::state()->compare(static_cast<const QSGSimpleMaterialComparableMaterial<State> *>(other)->state()); + } +}; + + +template <typename State> +QSGMaterialType QSGSimpleMaterial<State>::m_type; + + +template <typename State> +Q_INLINE_TEMPLATE void QSGSimpleMaterialShader<State>::updateState(const RenderState &state, QSGMaterial *newMaterial, QSGMaterial *oldMaterial) +{ + if (state.isMatrixDirty()) + program()->setUniformValue(m_id_matrix, state.combinedMatrix()); + if (state.isOpacityDirty() && m_id_opacity >= 0) + program()->setUniformValue(m_id_opacity, state.opacity()); + + State *ns = static_cast<QSGSimpleMaterial<State> *>(newMaterial)->state(); + State *old = 0; + if (oldMaterial) + old = static_cast<QSGSimpleMaterial<State> *>(oldMaterial)->state(); + updateState(ns, old); +} + +QT_END_NAMESPACE + +QT_END_HEADER + + +#endif diff --git a/src/imports/particles/burstemitter.h b/src/imports/particles/burstemitter.h deleted file mode 100644 index cffa7911af..0000000000 --- a/src/imports/particles/burstemitter.h +++ /dev/null @@ -1,67 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef BURSTEMITTER_H -#define BURSTEMITTER_H - -#include "trailsemitter.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -//Convenience Class - can't do function overloads in QML? -class BurstEmitter : public TrailsEmitter -{ - Q_OBJECT -public: - explicit BurstEmitter(QSGItem* parent = 0):TrailsEmitter(parent){} -public slots: - void burst(int count, qreal x, qreal y); -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif diff --git a/src/imports/particles/coloredparticle.cpp b/src/imports/particles/coloredparticle.cpp deleted file mode 100644 index 22ef2d2eba..0000000000 --- a/src/imports/particles/coloredparticle.cpp +++ /dev/null @@ -1,540 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <private/qsgcontext_p.h> -#include <private/qsgadaptationlayer_p.h> -#include <qsgnode.h> -#include <qsgtexturematerial.h> -#include <qsgtexture.h> -#include <QFile> -#include "coloredparticle.h" -#include "particleemitter.h" -#include <QGLFunctions> -#include <qsgengine.h> - -QT_BEGIN_NAMESPACE - -class ParticleTrailsMaterial : public QSGMaterial -{ -public: - ParticleTrailsMaterial() - : timestamp(0) - { - setFlag(Blending, true); - } - - ~ParticleTrailsMaterial() - { - delete texture; - } - - virtual QSGMaterialType *type() const { static QSGMaterialType type; return &type; } - virtual QSGMaterialShader *createShader() const; - virtual int compare(const QSGMaterial *other) const - { - return this - static_cast<const ParticleTrailsMaterial *>(other); - } - - QSGTexture *texture; - - qreal timestamp; -}; - - -class ParticleTrailsMaterialData : public QSGMaterialShader -{ -public: - ParticleTrailsMaterialData(const char *vertexFile = 0, const char *fragmentFile = 0) - { - QFile vf(vertexFile ? vertexFile : ":resources/trailsvertex.shader"); - vf.open(QFile::ReadOnly); - m_vertex_code = vf.readAll(); - - QFile ff(fragmentFile ? fragmentFile : ":resources/trailsfragment.shader"); - ff.open(QFile::ReadOnly); - m_fragment_code = ff.readAll(); - - Q_ASSERT(!m_vertex_code.isNull()); - Q_ASSERT(!m_fragment_code.isNull()); - } - - void deactivate() { - QSGMaterialShader::deactivate(); - - for (int i=0; i<8; ++i) { - program()->setAttributeArray(i, GL_FLOAT, chunkOfBytes, 1, 0); - } - } - - virtual void updateState(const RenderState &state, QSGMaterial *newEffect, QSGMaterial *) - { - ParticleTrailsMaterial *m = static_cast<ParticleTrailsMaterial *>(newEffect); - state.context()->functions()->glActiveTexture(GL_TEXTURE0); - m->texture->bind(); - - program()->setUniformValue(m_opacity_id, state.opacity()); - program()->setUniformValue(m_timestamp_id, (float) m->timestamp); - - if (state.isMatrixDirty()) - program()->setUniformValue(m_matrix_id, state.combinedMatrix()); - } - - virtual void initialize() { - m_matrix_id = program()->uniformLocation("matrix"); - m_opacity_id = program()->uniformLocation("opacity"); - m_timestamp_id = program()->uniformLocation("timestamp"); - } - - virtual const char *vertexShader() const { return m_vertex_code.constData(); } - virtual const char *fragmentShader() const { return m_fragment_code.constData(); } - - virtual char const *const *attributeNames() const { - static const char *attr[] = { - "vPos", - "vTex", - "vData", - "vVec", - "vColor", - 0 - }; - return attr; - } - - virtual bool isColorTable() const { return false; } - - int m_matrix_id; - int m_opacity_id; - int m_timestamp_id; - - QByteArray m_vertex_code; - QByteArray m_fragment_code; - - static float chunkOfBytes[1024]; -}; -float ParticleTrailsMaterialData::chunkOfBytes[1024]; - - -QSGMaterialShader *ParticleTrailsMaterial::createShader() const -{ - return new ParticleTrailsMaterialData; -} - - -class ParticleTrailsMaterialCT : public ParticleTrailsMaterial -{ -public: - ParticleTrailsMaterialCT() - { - } - - ~ParticleTrailsMaterialCT() - { - delete colortable; - delete sizetable; - delete opacitytable; - } - - virtual QSGMaterialType *type() const { static QSGMaterialType type; return &type; } - virtual QSGMaterialShader *createShader() const; - - QSGTexture *colortable; - QSGTexture *sizetable; - QSGTexture *opacitytable; -}; - - -class ParticleTrailsMaterialDataCT : public ParticleTrailsMaterialData -{ -public: - ParticleTrailsMaterialDataCT() - : ParticleTrailsMaterialData(":resources/ctvertex.shader", ":resources/ctfragment.shader") - { - } - - bool isColorTable() const { return true; } - - virtual void initialize() { - ParticleTrailsMaterialData::initialize(); - m_colortable_id = program()->uniformLocation("colortable"); - m_sizetable_id = program()->uniformLocation("sizetable"); - m_opacitytable_id = program()->uniformLocation("opacitytable"); - } - - virtual void updateState(const RenderState &state, QSGMaterial *current, QSGMaterial *old) - { - // Bind the texture to unit 1 before calling the base class, so that the - // base class can set active texture back to 0. - ParticleTrailsMaterialCT *m = static_cast<ParticleTrailsMaterialCT *>(current); - state.context()->functions()->glActiveTexture(GL_TEXTURE1); - m->colortable->bind(); - program()->setUniformValue(m_colortable_id, 1); - - state.context()->functions()->glActiveTexture(GL_TEXTURE2); - m->sizetable->bind(); - program()->setUniformValue(m_sizetable_id, 2); - - state.context()->functions()->glActiveTexture(GL_TEXTURE3); - m->opacitytable->bind(); - program()->setUniformValue(m_opacitytable_id, 3); - - ParticleTrailsMaterialData::updateState(state, current, old); - } - - int m_colortable_id; - int m_sizetable_id; - int m_opacitytable_id; -}; - - -QSGMaterialShader *ParticleTrailsMaterialCT::createShader() const -{ - return new ParticleTrailsMaterialDataCT; -} - -ColoredParticle::ColoredParticle(QSGItem* parent) - : ParticleType(parent) - , m_do_reset(false) - , m_color(Qt::white) - , m_color_variation(0.5) - , m_node(0) - , m_material(0) - , m_alphaVariation(0.0) - , m_alpha(1.0) - , m_redVariation(0.0) - , m_greenVariation(0.0) - , m_blueVariation(0.0) -{ - setFlag(ItemHasContents); -} - -void ColoredParticle::setImage(const QUrl &image) -{ - if (image == m_image_name) - return; - m_image_name = image; - emit imageChanged(); - reset(); -} - - -void ColoredParticle::setColortable(const QUrl &table) -{ - if (table == m_colortable_name) - return; - m_colortable_name = table; - emit colortableChanged(); - reset(); -} - -void ColoredParticle::setSizetable(const QUrl &table) -{ - if (table == m_sizetable_name) - return; - m_sizetable_name = table; - emit sizetableChanged(); - reset(); -} - -void ColoredParticle::setOpacitytable(const QUrl &table) -{ - if (table == m_opacitytable_name) - return; - m_opacitytable_name = table; - emit opacitytableChanged(); - reset(); -} - -void ColoredParticle::setColor(const QColor &color) -{ - if (color == m_color) - return; - m_color = color; - emit colorChanged(); - //m_system->pleaseReset();//XXX -} - -void ColoredParticle::setColorVariation(qreal var) -{ - if (var == m_color_variation) - return; - m_color_variation = var; - emit colorVariationChanged(); - //m_system->pleaseReset();//XXX -} - -void ColoredParticle::setCount(int c) -{ - ParticleType::setCount(c); - m_pleaseReset = true; -} - -void ColoredParticle::reset() -{ - ParticleType::reset(); - m_pleaseReset = true; -} - -static QSGGeometry::Attribute ColoredParticle_Attributes[] = { - { 0, 2, GL_FLOAT }, // Position - { 1, 2, GL_FLOAT }, // TexCoord - { 2, 4, GL_FLOAT }, // Data - { 3, 4, GL_FLOAT }, // Vectors - { 4, 4, GL_UNSIGNED_BYTE } // Colors -}; - -static QSGGeometry::AttributeSet ColoredParticle_AttributeSet = -{ - 5, // Attribute Count - (2 + 2 + 4 + 4) * sizeof(float) + 4 * sizeof(uchar), - ColoredParticle_Attributes -}; - -QSGGeometryNode* ColoredParticle::buildParticleNode() -{ - if (m_count * 4 > 0xffff) { - printf("ColoredParticle: Too many particles... \n"); - return 0; - } - - if(m_count <= 0) { - printf("ColoredParticle: Too few particles... \n"); - return 0; - } - - QImage image(m_image_name.toLocalFile()); - if (image.isNull()) { - printf("ParticleTrails: loading image failed... '%s'\n", qPrintable(m_image_name.toLocalFile())); - return 0; - } - - int vCount = m_count * 4; - int iCount = m_count * 6; - - QSGGeometry *g = new QSGGeometry(ColoredParticle_AttributeSet, vCount, iCount); - g->setDrawingMode(GL_TRIANGLES); - - ColoredParticleVertex *vertices = (ColoredParticleVertex *) g->vertexData(); - for (int p=0; p<m_count; ++p) { - - for (int i=0; i<4; ++i) { - vertices[i].x = 0; - vertices[i].y = 0; - vertices[i].t = -1; - vertices[i].lifeSpan = 0; - vertices[i].size = 0; - vertices[i].endSize = 0; - vertices[i].sx = 0; - vertices[i].sy = 0; - vertices[i].ax = 0; - vertices[i].ay = 0; - } - - vertices[0].tx = 0; - vertices[0].ty = 0; - - vertices[1].tx = 1; - vertices[1].ty = 0; - - vertices[2].tx = 0; - vertices[2].ty = 1; - - vertices[3].tx = 1; - vertices[3].ty = 1; - - vertices += 4; - } - - quint16 *indices = g->indexDataAsUShort(); - for (int i=0; i<m_count; ++i) { - int o = i * 4; - indices[0] = o; - indices[1] = o + 1; - indices[2] = o + 2; - indices[3] = o + 1; - indices[4] = o + 3; - indices[5] = o + 2; - indices += 6; - } - - if (m_material) { - delete m_material; - m_material = 0; - } - - QImage colortable(m_colortable_name.toLocalFile()); - QImage sizetable(m_sizetable_name.toLocalFile()); - QImage opacitytable(m_opacitytable_name.toLocalFile()); - if(!colortable.isNull() || !sizetable.isNull() || !opacitytable.isNull()){ - //using tabled shaders - m_material = new ParticleTrailsMaterialCT(); - if(colortable.isNull()) - colortable = QImage(":resources/identitytable.png"); - if(sizetable.isNull()) - sizetable = QImage(":resources/identitytable.png"); - if(opacitytable.isNull()) - opacitytable = QImage(":resources/defaultFadeInOut.png"); - Q_ASSERT(!colortable.isNull()); - Q_ASSERT(!sizetable.isNull()); - Q_ASSERT(!opacitytable.isNull()); - ParticleTrailsMaterialCT* ct_material = static_cast<ParticleTrailsMaterialCT *>(m_material); - ct_material->colortable = sceneGraphEngine()->createTextureFromImage(colortable); - ct_material->sizetable = sceneGraphEngine()->createTextureFromImage(sizetable); - ct_material->opacitytable = sceneGraphEngine()->createTextureFromImage(opacitytable); - } - - if (!m_material) - m_material = new ParticleTrailsMaterial(); - - - m_material->texture = sceneGraphEngine()->createTextureFromImage(image); - m_material->texture->setFiltering(QSGTexture::Linear); - - m_node = new QSGGeometryNode(); - m_node->setGeometry(g); - m_node->setMaterial(m_material); - - m_last_particle = 0; - - return m_node; -} - -QSGNode *ColoredParticle::updatePaintNode(QSGNode *, UpdatePaintNodeData *) -{ - if(m_pleaseReset){ - if(m_node) - delete m_node; - if(m_material) - delete m_material; - - m_node = 0; - m_material = 0; - m_pleaseReset = false; - } - - if(m_system && m_system->isRunning()) - prepareNextFrame(); - if (m_node){ - update(); - m_node->markDirty(QSGNode::DirtyMaterial); - } - - return m_node; -} - -void ColoredParticle::prepareNextFrame() -{ - if (m_node == 0){ //TODO: Staggered loading (as emitted) - m_node = buildParticleNode(); - if(m_node == 0) - return; - } - qint64 timeStamp = m_system->systemSync(this); - - qreal time = timeStamp / 1000.; - m_material->timestamp = time; -} - -void ColoredParticle::reloadColor(const Color4ub &c, ParticleData* d) -{ - ColoredParticleVertices *particles = (ColoredParticleVertices *) m_node->geometry()->vertexData(); - int pos = particleTypeIndex(d); - ColoredParticleVertices &p = particles[pos]; - p.v1.color = p.v2.color = p.v3.color = p.v4.color = c; -} - -void ColoredParticle::vertexCopy(ColoredParticleVertex &b,const ParticleVertex& a) -{ - b.x = a.x - m_systemOffset.x(); - b.y = a.y - m_systemOffset.y(); - b.t = a.t; - b.lifeSpan = a.lifeSpan; - b.size = a.size; - b.endSize = a.endSize; - b.sx = a.sx; - b.sy = a.sy; - b.ax = a.ax; - b.ay = a.ay; -} - -void ColoredParticle::reload(ParticleData *d) -{ - if (m_node == 0) - return; - - ColoredParticleVertices *particles = (ColoredParticleVertices *) m_node->geometry()->vertexData(); - - int pos = particleTypeIndex(d); - - ColoredParticleVertices &p = particles[pos]; - - //Perhaps we could be more efficient? - vertexCopy(p.v1, d->pv); - vertexCopy(p.v2, d->pv); - vertexCopy(p.v3, d->pv); - vertexCopy(p.v4, d->pv); -} - -void ColoredParticle::load(ParticleData *d) -{ - if (m_node == 0) - return; - - //Color initialization - // Particle color - Color4ub color; - qreal redVariation = m_color_variation + m_redVariation; - qreal greenVariation = m_color_variation + m_greenVariation; - qreal blueVariation = m_color_variation + m_blueVariation; - color.r = m_color.red() * (1 - redVariation) + rand() % 256 * redVariation; - color.g = m_color.green() * (1 - greenVariation) + rand() % 256 * greenVariation; - color.b = m_color.blue() * (1 - blueVariation) + rand() % 256 * blueVariation; - color.a = m_alpha * m_color.alpha() * (1 - m_alphaVariation) + rand() % 256 * m_alphaVariation; - ColoredParticleVertices *particles = (ColoredParticleVertices *) m_node->geometry()->vertexData(); - ColoredParticleVertices &p = particles[particleTypeIndex(d)]; - p.v1.color = p.v2.color = p.v3.color = p.v4.color = color; - - vertexCopy(p.v1, d->pv); - vertexCopy(p.v2, d->pv); - vertexCopy(p.v3, d->pv); - vertexCopy(p.v4, d->pv); -} - -QT_END_NAMESPACE diff --git a/src/imports/particles/coloredparticle.h b/src/imports/particles/coloredparticle.h deleted file mode 100644 index 446b764941..0000000000 --- a/src/imports/particles/coloredparticle.h +++ /dev/null @@ -1,254 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef COLOREDPARTICLE_H -#define COLOREDPARTICLE_H -#include "particle.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class ParticleTrailsMaterial; -class QSGGeometryNode; - -struct Color4ub { - uchar r; - uchar g; - uchar b; - uchar a; -}; - -struct ColoredParticleVertex { - float x; - float y; - float tx; - float ty; - float t; - float lifeSpan; - float size; - float endSize; - float sx; - float sy; - float ax; - float ay; - Color4ub color; -}; - -struct ColoredParticleVertices { - ColoredParticleVertex v1; - ColoredParticleVertex v2; - ColoredParticleVertex v3; - ColoredParticleVertex v4; -}; - -class ColoredParticle : public ParticleType -{ - Q_OBJECT - Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) - Q_PROPERTY(QUrl colorTable READ colortable WRITE setColortable NOTIFY colortableChanged) - Q_PROPERTY(QUrl sizeTable READ sizetable WRITE setSizetable NOTIFY sizetableChanged) - Q_PROPERTY(QUrl opacityTable READ opacitytable WRITE setOpacitytable NOTIFY opacitytableChanged) - - Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) - //Stacks (added) with individual colorVariations - Q_PROPERTY(qreal colorVariation READ colorVariation WRITE setColorVariation NOTIFY colorVariationChanged) - Q_PROPERTY(qreal redVariation READ redVariation WRITE setRedVariation NOTIFY redVariationChanged) - Q_PROPERTY(qreal greenVariation READ greenVariation WRITE setGreenVariation NOTIFY greenVariationChanged) - Q_PROPERTY(qreal blueVariation READ blueVariation WRITE setBlueVariation NOTIFY blueVariationChanged) - //Stacks (multiplies) with the Alpha in the color, mostly here so you can use svg color names (which have full alpha) - Q_PROPERTY(qreal alpha READ alpha WRITE setAlpha NOTIFY alphaChanged) - Q_PROPERTY(qreal alphaVariation READ alphaVariation WRITE setAlphaVariation NOTIFY alphaVariationChanged) - -public: - explicit ColoredParticle(QSGItem *parent = 0); - virtual ~ColoredParticle(){} - - virtual void load(ParticleData*); - virtual void reload(ParticleData*); - virtual void setCount(int c); - - QUrl image() const { return m_image_name; } - void setImage(const QUrl &image); - - QUrl colortable() const { return m_colortable_name; } - void setColortable(const QUrl &table); - - QUrl sizetable() const { return m_sizetable_name; } - void setSizetable (const QUrl &table); - - QUrl opacitytable() const { return m_opacitytable_name; } - void setOpacitytable(const QUrl &table); - - QColor color() const { return m_color; } - void setColor(const QColor &color); - - qreal colorVariation() const { return m_color_variation; } - void setColorVariation(qreal var); - - qreal renderOpacity() const { return m_render_opacity; } - - qreal alphaVariation() const - { - return m_alphaVariation; - } - - qreal alpha() const - { - return m_alpha; - } - - qreal redVariation() const - { - return m_redVariation; - } - - qreal greenVariation() const - { - return m_greenVariation; - } - - qreal blueVariation() const - { - return m_blueVariation; - } - -signals: - - void imageChanged(); - void colortableChanged(); - void sizetableChanged(); - void opacitytableChanged(); - - void colorChanged(); - void colorVariationChanged(); - - void particleDurationChanged(); - void alphaVariationChanged(qreal arg); - - void alphaChanged(qreal arg); - - void redVariationChanged(qreal arg); - - void greenVariationChanged(qreal arg); - - void blueVariationChanged(qreal arg); - -public slots: - void setAlphaVariation(qreal arg) - { - if (m_alphaVariation != arg) { - m_alphaVariation = arg; - emit alphaVariationChanged(arg); - } - } - - void setAlpha(qreal arg) - { - if (m_alpha != arg) { - m_alpha = arg; - emit alphaChanged(arg); - } - } - - void setRedVariation(qreal arg) - { - if (m_redVariation != arg) { - m_redVariation = arg; - emit redVariationChanged(arg); - } - } - - void setGreenVariation(qreal arg) - { - if (m_greenVariation != arg) { - m_greenVariation = arg; - emit greenVariationChanged(arg); - } - } - - void setBlueVariation(qreal arg) - { - if (m_blueVariation != arg) { - m_blueVariation = arg; - emit blueVariationChanged(arg); - } - } - - void reloadColor(const Color4ub &c, ParticleData* d); -protected: - QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *); - void reset(); - void prepareNextFrame(); - QSGGeometryNode* buildParticleNode(); -private: - void vertexCopy(ColoredParticleVertex &b,const ParticleVertex& a); - bool m_do_reset; - - QUrl m_image_name; - QUrl m_colortable_name; - QUrl m_sizetable_name; - QUrl m_opacitytable_name; - - - QColor m_color; - qreal m_color_variation; - qreal m_particleDuration; - - QSGGeometryNode *m_node; - ParticleTrailsMaterial *m_material; - - // derived values... - int m_last_particle; - - qreal m_render_opacity; - qreal m_alphaVariation; - qreal m_alpha; - qreal m_redVariation; - qreal m_greenVariation; - qreal m_blueVariation; -}; - -QT_END_NAMESPACE -QT_END_HEADER -#endif // COLOREDPARTICLE_H diff --git a/src/imports/particles/deformableparticle.cpp b/src/imports/particles/deformableparticle.cpp deleted file mode 100644 index 768e4eb4b5..0000000000 --- a/src/imports/particles/deformableparticle.cpp +++ /dev/null @@ -1,438 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <private/qsgcontext_p.h> -#include <private/qsgadaptationlayer_p.h> -#include <qsgnode.h> -#include <qsgtexturematerial.h> -#include <qsgtexture.h> -#include <QFile> -#include "deformableparticle.h" -#include <QGLFunctions> -#include <qsgengine.h> - -QT_BEGIN_NAMESPACE - -const float CONV = 0.017453292519943295; -class DeformableParticleMaterial : public QSGMaterial -{ -public: - DeformableParticleMaterial() - : timestamp(0) - { - setFlag(Blending, true); - } - - ~DeformableParticleMaterial() - { - delete texture; - } - - virtual QSGMaterialType *type() const { static QSGMaterialType type; return &type; } - virtual QSGMaterialShader *createShader() const; - virtual int compare(const QSGMaterial *other) const - { - return this - static_cast<const DeformableParticleMaterial *>(other); - } - - QSGTexture *texture; - - qreal timestamp; -}; - - -class DeformableParticleMaterialData : public QSGMaterialShader -{ -public: - DeformableParticleMaterialData(const char *vertexFile = 0, const char *fragmentFile = 0) - { - QFile vf(vertexFile ? vertexFile : ":resources/deformablevertex.shader"); - vf.open(QFile::ReadOnly); - m_vertex_code = vf.readAll(); - - QFile ff(fragmentFile ? fragmentFile : ":resources/deformablefragment.shader"); - ff.open(QFile::ReadOnly); - m_fragment_code = ff.readAll(); - - Q_ASSERT(!m_vertex_code.isNull()); - Q_ASSERT(!m_fragment_code.isNull()); - } - - void deactivate() { - QSGMaterialShader::deactivate(); - - for (int i=0; i<8; ++i) { - program()->setAttributeArray(i, GL_FLOAT, chunkOfBytes, 1, 0); - } - } - - virtual void updateState(const RenderState &state, QSGMaterial *newEffect, QSGMaterial *) - { - DeformableParticleMaterial *m = static_cast<DeformableParticleMaterial *>(newEffect); - state.context()->functions()->glActiveTexture(GL_TEXTURE0); - m->texture->bind(); - - program()->setUniformValue(m_opacity_id, state.opacity()); - program()->setUniformValue(m_timestamp_id, (float) m->timestamp); - - if (state.isMatrixDirty()) - program()->setUniformValue(m_matrix_id, state.combinedMatrix()); - } - - virtual void initialize() { - m_matrix_id = program()->uniformLocation("matrix"); - m_opacity_id = program()->uniformLocation("opacity"); - m_timestamp_id = program()->uniformLocation("timestamp"); - } - - virtual const char *vertexShader() const { return m_vertex_code.constData(); } - virtual const char *fragmentShader() const { return m_fragment_code.constData(); } - - virtual char const *const *attributeNames() const { - static const char *attr[] = { - "vPos", - "vTex", - "vData", - "vVec", - "vDeformVec", - "vRotation", - 0 - }; - return attr; - } - - virtual bool isColorTable() const { return false; } - - int m_matrix_id; - int m_opacity_id; - int m_timestamp_id; - - QByteArray m_vertex_code; - QByteArray m_fragment_code; - - static float chunkOfBytes[1024]; -}; -float DeformableParticleMaterialData::chunkOfBytes[1024]; - - -QSGMaterialShader *DeformableParticleMaterial::createShader() const -{ - return new DeformableParticleMaterialData; -} - -struct DeformableParticleVertex { - float x; - float y; - float tx; - float ty; - float t; - float lifeSpan; - float size; - float endSize; - float sx; - float sy; - float ax; - float ay; - float xx; - float xy; - float yx; - float yy; - float rotation; - float rotationSpeed; - float autoRotate;//Assume that GPUs prefer floats to bools -}; - -struct DeformableParticleVertices { - DeformableParticleVertex v1; - DeformableParticleVertex v2; - DeformableParticleVertex v3; - DeformableParticleVertex v4; -}; - - -DeformableParticle::DeformableParticle(QSGItem* parent) - : ParticleType(parent) - , m_do_reset(false) - , m_rotation(0) - , m_autoRotation(false) - , m_xVector(0) - , m_yVector(0) - , m_rotationVariation(0) - , m_rotationSpeed(0) - , m_rotationSpeedVariation(0) -{ - setFlag(ItemHasContents); -} - -void DeformableParticle::setImage(const QUrl &image) -{ - if (image == m_image) - return; - m_image = image; - emit imageChanged(); - reset(); -} - -void DeformableParticle::setCount(int c) -{ - ParticleType::setCount(c); - m_pleaseReset = true; -} - -void DeformableParticle::reset() -{ - ParticleType::reset(); - m_pleaseReset = true; -} - -static QSGGeometry::Attribute DeformableParticle_Attributes[] = { - { 0, 2, GL_FLOAT }, // Position - { 1, 2, GL_FLOAT }, // TexCoord - { 2, 4, GL_FLOAT }, // Data - { 3, 4, GL_FLOAT }, // Vectors - { 4, 4, GL_FLOAT }, // DeformationVectors - { 5, 3, GL_FLOAT } // Rotation -}; - -static QSGGeometry::AttributeSet DeformableParticle_AttributeSet = -{ - 6, // Attribute Count - (2 + 2 + 4 + 4 + 4 + 3) * sizeof(float), - DeformableParticle_Attributes -}; - -QSGGeometryNode* DeformableParticle::buildParticleNode() -{ - if (m_count * 4 > 0xffff) { - printf("DeformableParticle: Too many particles... \n"); - return 0; - } - - if(m_count <= 0) { - printf("DeformableParticle: Too few particles... \n"); - return 0; - } - - QImage image(m_image.toLocalFile()); - if (image.isNull()) { - printf("DeformableParticle: loading image failed... '%s'\n", qPrintable(m_image.toLocalFile())); - return 0; - } - - int vCount = m_count * 4; - int iCount = m_count * 6; - - QSGGeometry *g = new QSGGeometry(DeformableParticle_AttributeSet, vCount, iCount); - g->setDrawingMode(GL_TRIANGLES); - - DeformableParticleVertex *vertices = (DeformableParticleVertex *) g->vertexData(); - for (int p=0; p<m_count; ++p) { - - for (int i=0; i<4; ++i) { - vertices[i].x = 0; - vertices[i].y = 0; - vertices[i].t = -1; - vertices[i].lifeSpan = 0; - vertices[i].size = 0; - vertices[i].endSize = 0; - vertices[i].sx = 0; - vertices[i].sy = 0; - vertices[i].ax = 0; - vertices[i].ay = 0; - vertices[i].xx = 1; - vertices[i].xy = 0; - vertices[i].yx = 0; - vertices[i].yy = 1; - vertices[i].rotation = 0; - vertices[i].rotationSpeed = 0; - vertices[i].autoRotate = 0; - } - - vertices[0].tx = 0; - vertices[0].ty = 0; - - vertices[1].tx = 1; - vertices[1].ty = 0; - - vertices[2].tx = 0; - vertices[2].ty = 1; - - vertices[3].tx = 1; - vertices[3].ty = 1; - - vertices += 4; - } - - quint16 *indices = g->indexDataAsUShort(); - for (int i=0; i<m_count; ++i) { - int o = i * 4; - indices[0] = o; - indices[1] = o + 1; - indices[2] = o + 2; - indices[3] = o + 1; - indices[4] = o + 3; - indices[5] = o + 2; - indices += 6; - } - - if (m_material) { - delete m_material; - m_material = 0; - } - - if (!m_material) - m_material = new DeformableParticleMaterial(); - - - m_material->texture = sceneGraphEngine()->createTextureFromImage(image); - m_material->texture->setFiltering(QSGTexture::Linear); - - m_node = new QSGGeometryNode(); - m_node->setGeometry(g); - m_node->setMaterial(m_material); - - m_last_particle = 0; - - return m_node; -} - -QSGNode *DeformableParticle::updatePaintNode(QSGNode *, UpdatePaintNodeData *) -{ - if(m_pleaseReset){ - if(m_node) - delete m_node; - if(m_material) - delete m_material; - - m_node = 0; - m_material = 0; - m_pleaseReset = false; - } - - if(m_system && m_system->isRunning()) - prepareNextFrame(); - if (m_node){ - update(); - m_node->markDirty(QSGNode::DirtyMaterial); - } - - return m_node; -} - -void DeformableParticle::prepareNextFrame() -{ - if (m_node == 0){ //TODO: Staggered loading (as emitted) - m_node = buildParticleNode(); - if(m_node == 0) - return; - } - qint64 timeStamp = m_system->systemSync(this); - - qreal time = timeStamp / 1000.; - m_material->timestamp = time; - -} - - -void DeformableParticle::vertexCopy(DeformableParticleVertex &b,const ParticleVertex& a) -{ - b.x = a.x - m_systemOffset.x(); - b.y = a.y - m_systemOffset.y(); - b.t = a.t; - b.lifeSpan = a.lifeSpan; - b.size = a.size; - b.endSize = a.endSize; - b.sx = a.sx; - b.sy = a.sy; - b.ax = a.ax; - b.ay = a.ay; -} - -void DeformableParticle::reload(ParticleData *d) -{ - if (m_node == 0) - return; - - DeformableParticleVertices *particles = (DeformableParticleVertices *) m_node->geometry()->vertexData(); - - int pos = particleTypeIndex(d); - - DeformableParticleVertices &p = particles[pos]; - - //Perhaps we could be more efficient? - vertexCopy(p.v1, d->pv); - vertexCopy(p.v2, d->pv); - vertexCopy(p.v3, d->pv); - vertexCopy(p.v4, d->pv); - //TODO: Allow for change of deformation data? -} - -void DeformableParticle::load(ParticleData *d) -{ - if (m_node == 0) - return; - - //Deformation Initialization - DeformableParticleVertices *particles = (DeformableParticleVertices *) m_node->geometry()->vertexData(); - DeformableParticleVertices &p = particles[particleTypeIndex(d)]; - if(m_xVector){ - const QPointF &ret = m_xVector->sample(QPointF(d->pv.x, d->pv.y)); - p.v1.xx = p.v2.xx = p.v3.xx = p.v4.xx = ret.x(); - p.v1.xy = p.v2.xy = p.v3.xy = p.v4.xy = ret.y(); - } - if(m_yVector){ - const QPointF &ret = m_yVector->sample(QPointF(d->pv.x, d->pv.y)); - p.v1.yx = p.v2.yx = p.v3.yx = p.v4.yx = ret.x(); - p.v1.yy = p.v2.yy = p.v3.yy = p.v4.yy = ret.y(); - } - p.v1.rotation = p.v2.rotation = p.v3.rotation = p.v4.rotation = - (m_rotation + (m_rotationVariation - 2*((qreal)rand()/RAND_MAX)*m_rotationVariation) ) * CONV; - p.v1.rotationSpeed = p.v2.rotationSpeed = p.v3.rotationSpeed = p.v4.rotationSpeed = - (m_rotationSpeed + (m_rotationSpeedVariation - 2*((qreal)rand()/RAND_MAX)*m_rotationSpeedVariation) ) * CONV; - p.v1.autoRotate = p.v2.autoRotate = p.v3.autoRotate = p.v4.autoRotate = m_autoRotation?1.0:0.0; - - vertexCopy(p.v1, d->pv); - vertexCopy(p.v2, d->pv); - vertexCopy(p.v3, d->pv); - vertexCopy(p.v4, d->pv); -} - -QT_END_NAMESPACE diff --git a/src/imports/particles/deformableparticle.h b/src/imports/particles/deformableparticle.h deleted file mode 100644 index 0de6d8228a..0000000000 --- a/src/imports/particles/deformableparticle.h +++ /dev/null @@ -1,235 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef DEFORMABLEPARTICLE_H -#define DEFORMABLEPARTICLE_H -#include "particle.h" -#include "varyingvector.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class DeformableParticleMaterial; -class QSGGeometryNode; -struct DeformableParticleVertex; - -class DeformableParticle : public ParticleType -{ - Q_OBJECT - //Note that the particle centering can be less accurate with this one - Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) - - Q_PROPERTY(qreal rotation READ rotation WRITE setRotation NOTIFY rotationChanged) - Q_PROPERTY(qreal rotationVariation READ rotationVariation WRITE setRotationVariation NOTIFY rotationVariationChanged) - Q_PROPERTY(qreal rotationSpeed READ rotationSpeed WRITE setRotationSpeed NOTIFY rotationSpeedChanged) - Q_PROPERTY(qreal rotationSpeedVariation READ rotationSpeedVariation WRITE setRotationSpeedVariation NOTIFY rotationSpeedVariationChanged) - //If true, then will face the direction of motion. Stacks with rotation, e.g. setting rotation - //to 180 will lead to facing away from the direction of motion - Q_PROPERTY(bool autoRotation READ autoRotation WRITE autoRotation NOTIFY autoRotationChanged) - - //###Call i/j? Makes more sense to those with vector calculus experience, and I could even add the cirumflex in QML? - //xVector is the vector from the top-left point to the top-right point, and is multiplied by current size - Q_PROPERTY(VaryingVector* xVector READ xVector WRITE setXVector NOTIFY xVectorChanged) - //yVector is the same, but top-left to bottom-left. The particle is always a parallelogram. - Q_PROPERTY(VaryingVector* yVector READ yVector WRITE setYVector NOTIFY yVectorChanged) - - //Do we want to add the tables? - //Q_PROPERTY(QUrl colorTable READ colortable WRITE setColortable NOTIFY colortableChanged) - //Q_PROPERTY(QUrl sizeTable READ sizetable WRITE setSizetable NOTIFY sizetableChanged) - //Q_PROPERTY(QUrl opacityTable READ opacitytable WRITE setOpacitytable NOTIFY opacitytableChanged) - - //Does it need alpha? For convenience only, as images probably don't have it - //Q_PROPERTY(qreal alpha READ alpha WRITE setAlpha NOTIFY alphaChanged) - //Q_PROPERTY(qreal alphaVariation READ alphaVariation WRITE setAlphaVariation NOTIFY alphaVariationChanged) - -public: - explicit DeformableParticle(QSGItem *parent = 0); - virtual ~DeformableParticle(){} - - virtual void load(ParticleData*); - virtual void reload(ParticleData*); - virtual void setCount(int c); - - QUrl image() const { return m_image; } - void setImage(const QUrl &image); - - qreal rotation() const - { - return m_rotation; - } - - bool autoRotation() const - { - return m_autoRotation; - } - - VaryingVector* xVector() const - { - return m_xVector; - } - - VaryingVector* yVector() const - { - return m_yVector; - } - - qreal rotationVariation() const - { - return m_rotationVariation; - } - - qreal rotationSpeed() const - { - return m_rotationSpeed; - } - - qreal rotationSpeedVariation() const - { - return m_rotationSpeedVariation; - } - -signals: - - void imageChanged(); - void rotationChanged(qreal arg); - - void autoRotationChanged(bool arg); - - void xVectorChanged(VaryingVector* arg); - - void yVectorChanged(VaryingVector* arg); - - void rotationVariationChanged(qreal arg); - - void rotationSpeedChanged(qreal arg); - - void rotationSpeedVariationChanged(qreal arg); - -public slots: -void setRotation(qreal arg) -{ - if (m_rotation != arg) { - m_rotation = arg; - emit rotationChanged(arg); - } -} - -void autoRotation(bool arg) -{ - if (m_autoRotation != arg) { - m_autoRotation = arg; - emit autoRotationChanged(arg); - } -} - -void setXVector(VaryingVector* arg) -{ - if (m_xVector != arg) { - m_xVector = arg; - emit xVectorChanged(arg); - } -} - -void setYVector(VaryingVector* arg) -{ - if (m_yVector != arg) { - m_yVector = arg; - emit yVectorChanged(arg); - } -} - -void setRotationVariation(qreal arg) -{ - if (m_rotationVariation != arg) { - m_rotationVariation = arg; - emit rotationVariationChanged(arg); - } -} - -void setRotationSpeed(qreal arg) -{ - if (m_rotationSpeed != arg) { - m_rotationSpeed = arg; - emit rotationSpeedChanged(arg); - } -} - -void setRotationSpeedVariation(qreal arg) -{ - if (m_rotationSpeedVariation != arg) { - m_rotationSpeedVariation = arg; - emit rotationSpeedVariationChanged(arg); - } -} - -protected: - QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *); - void reset(); - void prepareNextFrame(); - QSGGeometryNode* buildParticleNode(); -private: - void vertexCopy(DeformableParticleVertex &b,const ParticleVertex& a); - bool m_do_reset; - - QUrl m_image; - QSGGeometryNode *m_node; - DeformableParticleMaterial *m_material; - - // derived values... - int m_last_particle; - - qreal m_render_opacity; - // generated vars - qreal m_rotation; - bool m_autoRotation; - VaryingVector* m_xVector; - VaryingVector* m_yVector; - qreal m_rotationVariation; - qreal m_rotationSpeed; - qreal m_rotationSpeedVariation; -}; - -QT_END_NAMESPACE -QT_END_HEADER -#endif // DEFORMABLEPARTICLE_H diff --git a/src/imports/particles/driftaffector.cpp b/src/imports/particles/driftaffector.cpp deleted file mode 100644 index f88e29936a..0000000000 --- a/src/imports/particles/driftaffector.cpp +++ /dev/null @@ -1,67 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "driftaffector.h" -#include "particlesystem.h" -QT_BEGIN_NAMESPACE -DriftAffector::DriftAffector(QSGItem *parent) : - ParticleAffector(parent) -{ -} - -DriftAffector::~DriftAffector() -{ -} - -bool DriftAffector::affectParticle(ParticleData *data, qreal dt) -{ - if(!m_xDrift && !m_yDrift) - return false; - qreal dx = (((qreal)qrand() / (qreal)RAND_MAX) - 0.5) * 2 * m_xDrift * dt; - qreal dy = (((qreal)qrand() / (qreal)RAND_MAX) - 0.5) * 2 * m_yDrift * dt; - if(dx) - data->setInstantaneousSX(data->curSX() + dx); - if(dy) - data->setInstantaneousSY(data->curSY() + dy); - - return true; -} -QT_END_NAMESPACE diff --git a/src/imports/particles/driftaffector.h b/src/imports/particles/driftaffector.h deleted file mode 100644 index 91ef0fbd34..0000000000 --- a/src/imports/particles/driftaffector.h +++ /dev/null @@ -1,104 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef DRIFTAFFECTOR_H -#define DRIFTAFFECTOR_H -#include "particleaffector.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - - -class DriftAffector : public ParticleAffector -{ - Q_OBJECT - Q_PROPERTY(qreal xDrift READ xDrift WRITE setXDrift NOTIFY xDriftChanged) - Q_PROPERTY(qreal yDrift READ yDrift WRITE setYDrift NOTIFY yDriftChanged) -public: - explicit DriftAffector(QSGItem *parent = 0); - ~DriftAffector(); - qreal yDrift() const - { - return m_yDrift; - } - - qreal xDrift() const - { - return m_xDrift; - } -protected: - virtual bool affectParticle(ParticleData *d, qreal dt); - -signals: - - void yDriftChanged(qreal arg); - - void xDriftChanged(qreal arg); - -public slots: - -void setYDrift(qreal arg) -{ - if (m_yDrift != arg) { - m_yDrift = arg; - emit yDriftChanged(arg); - } -} - -void setXDrift(qreal arg) -{ - if (m_xDrift != arg) { - m_xDrift = arg; - emit xDriftChanged(arg); - } -} - -private: - qreal m_yDrift; - qreal m_xDrift; -}; - -QT_END_NAMESPACE -QT_END_HEADER -#endif // DRIFTAFFECTOR_H diff --git a/src/imports/particles/eternalaffector.cpp b/src/imports/particles/eternalaffector.cpp deleted file mode 100644 index c946709170..0000000000 --- a/src/imports/particles/eternalaffector.cpp +++ /dev/null @@ -1,60 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "eternalaffector.h" -#include <QDebug> - -QT_BEGIN_NAMESPACE - -EternalAffector::EternalAffector(QSGItem *parent) : - ParticleAffector(parent) -{ -} - -bool EternalAffector::affectParticle(ParticleData *d, qreal dt) -{ - qreal target = (m_system->m_timeInt - m_targetLife)/1000.0; - if(d->pv.t < target) - d->pv.t = target; - return true; -} - -QT_END_NAMESPACE diff --git a/src/imports/particles/eternalaffector.h b/src/imports/particles/eternalaffector.h deleted file mode 100644 index 834106b53d..0000000000 --- a/src/imports/particles/eternalaffector.h +++ /dev/null @@ -1,88 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ETERNALAFFECTOR_H -#define ETERNALAFFECTOR_H -#include "particleaffector.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class EternalAffector : public ParticleAffector -{ - Q_OBJECT - Q_PROPERTY(int targetLife READ targetLife WRITE setTargetLife NOTIFY targetLifeChanged) - -public: - explicit EternalAffector(QSGItem *parent = 0); - int targetLife() const - { - return m_targetLife; - } - -protected: - virtual bool affectParticle(ParticleData *d, qreal dt); - -signals: - - void targetLifeChanged(int arg); - -public slots: - - void setTargetLife(int arg) - { - if (m_targetLife != arg) { - m_targetLife = arg; - emit targetLifeChanged(arg); - } - } -private: - int m_targetLife; -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // ETERNALAFFECTOR_H diff --git a/src/imports/particles/gravitationalsingularityaffector.cpp b/src/imports/particles/gravitationalsingularityaffector.cpp deleted file mode 100644 index 4dd7d94b7b..0000000000 --- a/src/imports/particles/gravitationalsingularityaffector.cpp +++ /dev/null @@ -1,179 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "gravitationalsingularityaffector.h" -#include <cmath> -#include <QDebug> -QT_BEGIN_NAMESPACE -GravitationalSingularityAffector::GravitationalSingularityAffector(QSGItem *parent) : - ParticleAffector(parent), m_strength(0.0), m_x(0), m_y(0) -{ -} - -const qreal LIMIT = 200; -qreal limit(qreal val){ - if(qAbs(val) > LIMIT){ - return val < 0 ? LIMIT * -1 : LIMIT; - }else{ - return val; - } -} - -bool GravitationalSingularityAffector::affectParticle(ParticleData *d, qreal dt) -{ - if(!m_strength) - return false; - qreal dx = m_x - d->curX(); - qreal dy = m_y - d->curY(); - qreal r = sqrt((dx*dx) + (dy*dy)); - if(r < 0.1 ){//Simulated event horizion - It's right on top of it, and will never escape again. just stick it here. - d->pv.ax = 0; - d->pv.ay = 0; - d->pv.sx = 0; - d->pv.sy = 0; - d->pv.x = m_x; - d->pv.y = m_y; - return true; - }else if(r < 50.0){//Too close, typical dt values are far too coarse for simulation. This may kill perf though - int parts = floor(100.0/r); - ParticleData* f = new ParticleData;//Fake, where it's all in real time for convenience - f->pv.x = d->curX(); - f->pv.y = d->curY(); - f->pv.sx = limit(d->curSX()); - f->pv.sy = limit(d->curSY()); - f->pv.ax = d->pv.ax; - f->pv.ay = d->pv.ay; - subaffect(f, dt/parts, true); - for(int i=1; i<parts; i++) - subaffect(f, dt/parts, false); - - //Copy values from f, and turn into 'from start' values - qreal t = (m_system->m_timeInt/1000.) - d->pv.t; - qreal sy = limit(f->pv.sy) - t*f->pv.ay; - qreal y = f->pv.y - t*sy - 0.5 * t*t*f->pv.ay; - qreal sx = limit(f->pv.sx) - t*f->pv.ax; - qreal x = f->pv.x - t*sx - 0.5 * t*t*f->pv.ax; - - d->pv.ay = f->pv.ay; - d->pv.sy = sy; - d->pv.y = y; - d->pv.ax = f->pv.ax; - d->pv.sx = sx; - d->pv.x = x; - return true; - } - qreal theta = atan2(dy,dx); - qreal ds = (m_strength / (r*r)) * dt; - dx = ds * cos(theta); - dy = ds * sin(theta); - d->setInstantaneousSX(limit(d->pv.sx + dx)); - d->setInstantaneousSY(limit(d->pv.sy + dy)); - return true; -} - -const qreal EPSILON = 0.1; -bool fuzzyCompare(qreal a, qreal b) -{ - //Not using qFuzzyCompare because I want control of epsilon - return (a >= b - EPSILON && a <= b + EPSILON); -} - -bool fuzzyLess(qreal a, qreal b) -{ - //Not using qFuzzyCompare because I want control of epsilon - return a <= b + EPSILON; -} - -bool fuzzyMore(qreal a, qreal b) -{ - //Not using qFuzzyCompare because I want control of epsilon - return a >= b - EPSILON; -} - -bool lineIntersect(qreal x1, qreal y1, qreal x2, qreal y2, qreal x3, qreal y3) -{ - if(x3 < qMin(x1,x2) || x3 > qMax(x1,x2) || y3 < qMin(y1,y2) || y3 > qMax(y1,y2)) - return false; - qreal m,c; - m = (y2-y1) / (x2-x1); - c = y1 - m*x1; - return (fuzzyCompare(y3, m*x3 + c)); -} - -void GravitationalSingularityAffector::subaffect(ParticleData *d, qreal dt, bool first) -{ - if(!first){ - qreal nextX = d->pv.x + d->pv.sx * dt + d->pv.ax * dt * dt * 0.5; - qreal nextY = d->pv.y + d->pv.sy * dt + d->pv.ay * dt * dt * 0.5; - if(lineIntersect(d->pv.x, d->pv.y, nextX, nextY, m_x, m_y)){ - d->pv.ax = 0; - d->pv.ay = 0; - d->pv.sx = 0; - d->pv.sy = 0; - d->pv.x = m_x; - d->pv.y = m_y; - return; - //Passed center - the near infinite forces cancel out -// d->pv.x = m_x + m_x - d->pv.x; -// d->pv.y = m_y + m_y - d->pv.y; -// d->pv.sx *= -1; -// d->pv.sy *= -1; -// return; - } - //Simulate advancing a dt - d->pv.x = nextX; - d->pv.y = nextY; - d->pv.sx += d->pv.ax * dt; - d->pv.sy += d->pv.ay * dt; - } - qreal dx = m_x - d->pv.x; - qreal dy = m_y - d->pv.y; - qreal r = sqrt((dx*dx) + (dy*dy)); - if(!r) - return; - qreal theta = atan2(dy,dx); - qreal ds = (m_strength / (r*r)) * dt; - dx = ds * cos(theta); - dy = ds * sin(theta); - d->pv.sx = d->pv.sx + dx; - d->pv.sy = d->pv.sy + dy; -} -QT_END_NAMESPACE diff --git a/src/imports/particles/gravitationalsingularityaffector.h b/src/imports/particles/gravitationalsingularityaffector.h deleted file mode 100644 index 7ac5e93e0e..0000000000 --- a/src/imports/particles/gravitationalsingularityaffector.h +++ /dev/null @@ -1,121 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef GRAVITATIONALSINGULARITYAFFECTOR_H -#define GRAVITATIONALSINGULARITYAFFECTOR_H -#include "particleaffector.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - - -class GravitationalSingularityAffector : public ParticleAffector -{ - Q_OBJECT - Q_PROPERTY(qreal strength READ strength WRITE setStrength NOTIFY strengthChanged) - Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged) - Q_PROPERTY(qreal y READ y WRITE setY NOTIFY yChanged) -public: - explicit GravitationalSingularityAffector(QSGItem *parent = 0); - - qreal strength() const - { - return m_strength; - } - - qreal x() const - { - return m_x; - } - - qreal y() const - { - return m_y; - } -protected: - virtual bool affectParticle(ParticleData *d, qreal dt); - void subaffect(ParticleData *d, qreal dt, bool first); -signals: - - void strengthChanged(qreal arg); - - void xChanged(qreal arg); - - void yChanged(qreal arg); - -public slots: - -void setStrength(qreal arg) -{ - if (m_strength != arg) { - m_strength = arg; - emit strengthChanged(arg); - } -} - -void setX(qreal arg) -{ - if (m_x != arg) { - m_x = arg; - emit xChanged(arg); - } -} - -void setY(qreal arg) -{ - if (m_y != arg) { - m_y = arg; - emit yChanged(arg); - } -} - -private: -qreal m_strength; -qreal m_x; -qreal m_y; -}; - -QT_END_NAMESPACE -QT_END_HEADER -#endif // GRAVITATIONALSINGULARITYAFFECTOR_H diff --git a/src/imports/particles/main.cpp b/src/imports/particles/main.cpp deleted file mode 100644 index 072025d6bc..0000000000 --- a/src/imports/particles/main.cpp +++ /dev/null @@ -1,160 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "V1/qdeclarativeparticles_p.h" -#include "pluginmain.h" -#include "spritestate.h" -#include "spriteengine.h" -#include "particleaffector.h" -#include "wanderaffector.h" -//#include "rockingaffector.h" -//#include "scalingaffector.h" -#include "resetaffector.h" -#include "gravityaffector.h" -#include "driftaffector.h" -#include "gravitationalsingularityaffector.h" -#include "frictionaffector.h" -#include "meanderaffector.h" -#include "attractoraffector.h" -#include "speedlimitaffector.h" -#include "killaffector.h" -//#include "zoneaffector.h" -//#include "toggleaffector.h" -#include "spritegoalaffector.h" -#include "swarmaffector.h" -#include "turbulenceaffector.h" -#include "eternalaffector.h" -#include "particlesystem.h" -#include "particleemitter.h" -//#include "spriteemitter.h" -#include "trailsemitter.h" -#include "burstemitter.h" -#include "particle.h" -#include "coloredparticle.h" -#include "spriteparticle.h" -//#include "modelparticle.h" -#include "dataparticle.h" -#include "itemparticle.h" -#include "superparticle.h" -#include "ultraparticle.h" -//#include "pairedparticle.h" -#include "spriteimage.h" -#include "followemitter.h" -#include "particleextruder.h" -#include "ellipseextruder.h" -#include "lineextruder.h" -#include "maskextruder.h" -#include "varyingvector.h" -#include "pointvector.h" -#include "angledvector.h" -#include "directedvector.h" -//#include "followaffector.h" -#include "deformableparticle.h" -#include "pictureaffector.h" - -QT_BEGIN_NAMESPACE - -void ParticlesPlugin::registerTypes(const char *uri) -{ - Q_ASSERT(QLatin1String(uri) == QLatin1String("Qt.labs.particles")); - - qmlRegisterType<QDeclarativeParticles>(uri, 1, 0, "Particles"); - qmlRegisterType<QDeclarativeParticleMotion>(uri,1,0,"ParticleMotion"); - qmlRegisterType<QDeclarativeParticleMotionGravity>(uri,1,0,"ParticleMotionGravity"); - qmlRegisterType<QDeclarativeParticleMotionLinear>(uri,1,0,"ParticleMotionLinear"); - qmlRegisterType<QDeclarativeParticleMotionWander>(uri,1,0,"ParticleMotionWander"); - qmlRegisterType<SpriteState>(uri, 2, 0, "Sprite"); - qmlRegisterType<SpriteEngine>(uri, 2, 0, "SpriteEngine"); - qmlRegisterType<SpriteImage>(uri, 2, 0, "SpriteImage"); - - qmlRegisterType<ParticleSystem>(uri, 2, 0, "ParticleSystem"); - - qmlRegisterType<ParticleType>(uri, 2, 0, "Particle"); - qmlRegisterType<ColoredParticle>(uri, 2, 0, "ColoredParticle"); - qmlRegisterType<SpriteParticle>(uri, 2, 0, "SpriteParticle"); - //qmlRegisterType<ModelParticle>(uri, 2, 0, "ModelParticle"); - qmlRegisterType<DataParticle>(uri, 2, 0, "DataParticle"); - qmlRegisterType<ItemParticle>(uri, 2, 0, "ItemParticle"); - //qmlRegisterType<PairedParticle>(uri, 2, 0, "PairedParticle"); - qmlRegisterType<DeformableParticle>(uri, 2, 0, "DeformableParticle"); - qmlRegisterType<SuperParticle>(uri, 2, 0, "SuperParticle"); - qmlRegisterType<UltraParticle>(uri, 2, 0, "UltraParticle"); - - qmlRegisterType<ParticleEmitter>(uri, 2, 0, "ParticleEmitter"); - qmlRegisterType<TrailsEmitter>(uri, 2, 0, "TrailEmitter"); - qmlRegisterType<TrailsEmitter>(uri, 2, 0, "BurstEmitter"); - - qmlRegisterType<FollowEmitter>(uri, 2, 0, "FollowEmitter"); - qmlRegisterType<ParticleExtruder>(uri, 2, 0, "Box"); - qmlRegisterType<EllipseExtruder>(uri, 2, 0, "Ellipse"); - qmlRegisterType<LineExtruder>(uri, 2, 0, "Line"); - qmlRegisterType<MaskExtruder>(uri, 2, 0, "Mask"); - - qmlRegisterType<VaryingVector>(uri, 2, 0, "NullVector"); - qmlRegisterType<PointVector>(uri, 2, 0, "PointVector"); - qmlRegisterType<AngledVector>(uri, 2, 0, "AngleVector"); - qmlRegisterType<DirectedVector>(uri, 2, 0, "DirectedVector"); - - qmlRegisterType<ParticleAffector>(uri, 2, 0, "ParticleAffector"); - qmlRegisterType<WanderAffector>(uri, 2, 0, "Wander"); - //qmlRegisterType<ScalingAffector>(uri, 2, 0, "Scale"); - //qmlRegisterType<RockingAffector>(uri, 2, 0, "Rocking"); - qmlRegisterType<DriftAffector>(uri, 2, 0, "Drift"); - qmlRegisterType<FrictionAffector>(uri, 2, 0, "Friction"); - qmlRegisterType<GravitationalSingularityAffector>(uri, 2, 0, "GravitationalSingularity"); - qmlRegisterType<AttractorAffector>(uri, 2, 0, "Attractor"); - qmlRegisterType<MeanderAffector>(uri, 2, 0, "Meander"); - qmlRegisterType<SpeedLimitAffector>(uri, 2, 0, "SpeedLimit"); - qmlRegisterType<GravityAffector>(uri, 2, 0, "Gravity"); - qmlRegisterType<EternalAffector>(uri, 2, 0, "Stasis"); - qmlRegisterType<ResetAffector>(uri, 2, 0, "Reset"); - //qmlRegisterType<ZoneAffector>(uri, 2, 0, "Zone"); - //qmlRegisterType<ToggleAffector>(uri, 2, 0, "Toggle"); - qmlRegisterType<KillAffector>(uri, 2, 0, "Kill"); - qmlRegisterType<SpriteGoalAffector>(uri, 2, 0, "SpriteGoal"); - qmlRegisterType<SwarmAffector>(uri, 2, 0 , "Swarm"); - qmlRegisterType<TurbulenceAffector>(uri, 2, 0 , "Turbulence"); - qmlRegisterType<PictureAffector>(uri, 2, 0, "Picture"); -} - -QT_END_NAMESPACE - -Q_EXPORT_PLUGIN2(Particles, QT_PREPEND_NAMESPACE(ParticlesPlugin)) diff --git a/src/imports/particles/meanderaffector.cpp b/src/imports/particles/meanderaffector.cpp deleted file mode 100644 index 8e03cd07fb..0000000000 --- a/src/imports/particles/meanderaffector.cpp +++ /dev/null @@ -1,65 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "meanderaffector.h" - -QT_BEGIN_NAMESPACE - -MeanderAffector::MeanderAffector(QSGItem *parent) : - ParticleAffector(parent) -{ -} - -bool MeanderAffector::affectParticle(ParticleData *data, qreal dt) -{ - if(!m_xDrift && !m_yDrift) - return false; - qreal dx = (((qreal)qrand() / (qreal)RAND_MAX) - 0.5) * 2 * m_xDrift * dt; - qreal dy = (((qreal)qrand() / (qreal)RAND_MAX) - 0.5) * 2 * m_yDrift * dt; - if(dx) - data->setInstantaneousAX(data->pv.ax + dx); - if(dy) - data->setInstantaneousAY(data->pv.ay + dy); - - return true; -} - -QT_END_NAMESPACE diff --git a/src/imports/particles/meanderaffector.h b/src/imports/particles/meanderaffector.h deleted file mode 100644 index 203d20430d..0000000000 --- a/src/imports/particles/meanderaffector.h +++ /dev/null @@ -1,103 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef MEANDERAFFECTOR_H -#define MEANDERAFFECTOR_H -#include "particleaffector.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - - -class MeanderAffector : public ParticleAffector -{ - Q_OBJECT - //Like drift, but affects da/dt instead of ds/dt - Q_PROPERTY(qreal xDrift READ xDrift WRITE setXDrift NOTIFY xDriftChanged) - Q_PROPERTY(qreal yDrift READ yDrift WRITE setYDrift NOTIFY yDriftChanged) -public: - explicit MeanderAffector(QSGItem *parent = 0); - - qreal xDrift() const - { - return m_xDrift; - } - - qreal yDrift() const - { - return m_yDrift; - } -protected: - virtual bool affectParticle(ParticleData *d, qreal dt); -signals: - - void xDriftChanged(qreal arg); - - void yDriftChanged(qreal arg); - -public slots: - - void setXDrift(qreal arg) - { - if (m_xDrift != arg) { - m_xDrift = arg; - emit xDriftChanged(arg); - } - } - void setYDrift(qreal arg) - { - if (m_yDrift != arg) { - m_yDrift = arg; - emit yDriftChanged(arg); - } - } - -private: - qreal m_xDrift; - qreal m_yDrift; -}; - -QT_END_NAMESPACE -QT_END_HEADER -#endif // MEANDERAFFECTOR_H diff --git a/src/imports/particles/speedlimitaffector.h b/src/imports/particles/particles.cpp index b3858a2a9d..b30beb5c74 100644 --- a/src/imports/particles/speedlimitaffector.h +++ b/src/imports/particles/particles.cpp @@ -1,10 +1,10 @@ /**************************************************************************** ** -** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies). +** Copyright (C) 2009 Nokia Corporation and/or its subsidiary(-ies). ** All rights reserved. ** Contact: Nokia Corporation (qt-info@nokia.com) ** -** This file is part of the Declarative module of the Qt Toolkit. +** This file is part of the plugins of the Qt Toolkit. ** ** $QT_BEGIN_LICENSE:LGPL$ ** No Commercial Usage @@ -39,51 +39,31 @@ ** ****************************************************************************/ -#ifndef SPEEDLIMITAFFECTOR_H -#define SPEEDLIMITAFFECTOR_H -#include "particleaffector.h" +#include <QtDeclarative/qdeclarativeextensionplugin.h> +#include <QtDeclarative/qdeclarative.h> -QT_BEGIN_HEADER +#include "V1/qdeclarativeparticles_p.h" QT_BEGIN_NAMESPACE -QT_MODULE(Declarative) - -class SpeedLimitAffector : public ParticleAffector +class QParticlesQmlModule : public QDeclarativeExtensionPlugin { Q_OBJECT - Q_PROPERTY(qreal speedLimit READ speedLimit WRITE setSpeedLimit NOTIFY speedLimitChanged) - - public: - explicit SpeedLimitAffector(QSGItem *parent = 0); - - qreal speedLimit() const + virtual void registerTypes(const char *uri) { - return m_speedLimit; + Q_ASSERT(QLatin1String(uri) == QLatin1String("Qt.labs.particles")); + qmlRegisterType<QDeclarativeParticleMotion>(uri,1,0,"ParticleMotion"); + qmlRegisterType<QDeclarativeParticleMotionGravity>(uri,1,0,"ParticleMotionGravity"); + qmlRegisterType<QDeclarativeParticleMotionLinear>(uri,1,0,"ParticleMotionLinear"); + qmlRegisterType<QDeclarativeParticleMotionWander>(uri,1,0,"ParticleMotionWander"); + qmlRegisterType<QDeclarativeParticles>(uri,1,0,"Particles"); } - -protected: - virtual bool affectParticle(ParticleData *d, qreal dt); -signals: - - void speedLimitChanged(qreal arg); - -public slots: -void setSpeedLimit(qreal arg) -{ - if (m_speedLimit != arg) { - m_speedLimit = arg; - emit speedLimitChanged(arg); - } -} - -private: -qreal m_speedLimit; }; QT_END_NAMESPACE -QT_END_HEADER +#include "particles.moc" + +Q_EXPORT_PLUGIN2(qmlparticlesplugin, QT_PREPEND_NAMESPACE(QParticlesQmlModule)); -#endif // SPEEDLIMITAFFECTOR_H diff --git a/src/imports/particles/particles.pro b/src/imports/particles/particles.pro index a6930fe95c..56f663f328 100644 --- a/src/imports/particles/particles.pro +++ b/src/imports/particles/particles.pro @@ -3,118 +3,17 @@ TARGETPATH = Qt/labs/particles include(../qimportbase.pri) HEADERS += \ - V1/qdeclarativeparticles_p.h \ - spritestate.h \ - pluginmain.h \ - particleaffector.h \ - wanderaffector.h \ - #rockingaffector.h \ - #scalingaffector.h \ - driftaffector.h \ - particleemitter.h \ - particlesystem.h \ - trailsemitter.h \ - #spriteemitter.h \ - particle.h \ - coloredparticle.h \ - spriteparticle.h \ - spritegoalaffector.h \ - #zoneaffector.h \ - frictionaffector.h \ - gravitationalsingularityaffector.h \ - killaffector.h \ - speedlimitaffector.h \ - spriteengine.h \ - gravityaffector.h \ - attractoraffector.h \ - meanderaffector.h \ - #toggleaffector.h \ - spriteimage.h \ - #pairedparticle.h \ - followemitter.h \ - swarmaffector.h \ - turbulenceaffector.h \ - particleextruder.h \ - ellipseextruder.h \ - maskextruder.h \ - varyingvector.h \ - pointvector.h \ - angledvector.h \ - directedvector.h \ - #modelparticle.h \ - eternalaffector.h \ - lineextruder.h \ - resetaffector.h \ - deformableparticle.h \ - pictureaffector.h \ - superparticle.h \ - ultraparticle.h \ - burstemitter.h \ - dataparticle.h \ - itemparticle.h + V1/qdeclarativeparticles_p.h SOURCES += \ - V1/qdeclarativeparticles.cpp \ - spritestate.cpp \ - main.cpp \ - particleaffector.cpp \ - wanderaffector.cpp \ - #rockingaffector.cpp \ - #scalingaffector.cpp \ - driftaffector.cpp \ - particleemitter.cpp \ - particlesystem.cpp \ - trailsemitter.cpp \ - #spriteemitter.cpp \ - particle.cpp \ - coloredparticle.cpp \ - spriteparticle.cpp \ - spritegoalaffector.cpp \ - #zoneaffector.cpp \ - frictionaffector.cpp \ - gravitationalsingularityaffector.cpp \ - killaffector.cpp \ - speedlimitaffector.cpp \ - spriteengine.cpp \ - gravityaffector.cpp \ - attractoraffector.cpp \ - meanderaffector.cpp \ - #toggleaffector.cpp \ - spriteimage.cpp \ - #pairedparticle.cpp \ - followemitter.cpp \ - swarmaffector.cpp \ - turbulenceaffector.cpp \ - particleextruder.cpp \ - ellipseextruder.cpp \ - maskextruder.cpp \ - varyingvector.cpp \ - pointvector.cpp \ - angledvector.cpp \ - directedvector.cpp \ - #modelparticle.cpp \ - eternalaffector.cpp \ - lineextruder.cpp \ - resetaffector.cpp \ - deformableparticle.cpp \ - pictureaffector.cpp \ - superparticle.cpp \ - ultraparticle.cpp \ - burstemitter.cpp \ - dataparticle.cpp \ - itemparticle.cpp - -QT += declarative opengl -#Because we use QDeclarativePixmapCache once... -QT += core-private gui-private declarative-private script-private + particles.cpp \ + V1/qdeclarativeparticles.cpp +QT += declarative opengl core gui declarative-private core-private gui-private OTHER_FILES += \ qmldir -RESOURCES += \ - spriteparticles.qrc - DESTDIR = $$QT.declarative.imports/$$TARGETPATH target.path = $$[QT_INSTALL_IMPORTS]/$$TARGETPATH diff --git a/src/imports/particles/pictureaffector.cpp b/src/imports/particles/pictureaffector.cpp deleted file mode 100644 index 636e26b830..0000000000 --- a/src/imports/particles/pictureaffector.cpp +++ /dev/null @@ -1,118 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "pictureaffector.h" -#include "coloredparticle.h" -#include <QDebug> -#include <private/qsgtexture_p.h> -#include <private/qdeclarativepixmapcache_p.h> - -QT_BEGIN_NAMESPACE - -PictureAffector::PictureAffector(QSGItem *parent) : - ParticleAffector(parent), m_pix(0) -{ - m_needsReset = true; -} - -void PictureAffector::reset(int systemIdx) -{ - ParticleAffector::reset(systemIdx); -} - -void PictureAffector::startLoadImage() -{ - if(m_pix) - m_pix->clear(); - else - m_pix = new QDeclarativePixmap(); - m_pix->load(qmlEngine(this), m_image, QDeclarativePixmap::Cache); - if(m_pix->isReady()) - loadImage(); - else - m_pix->connectFinished(this, SLOT(loadImage())); -} -void PictureAffector::loadImage() -{ - m_loadedImage = m_pix->pixmap().toImage(); - if(m_loadedImage.isNull()) - qWarning() << "PictureAffector could not load picture " << m_image; -} - -bool PictureAffector::affectParticle(ParticleData *d, qreal dt) -{ - Q_UNUSED(dt); - if(!width() || !height()){ - qWarning() << "PictureAffector needs a size"; - return false; - } - - if(m_loadedImage.isNull()) - return false; - - if(m_loadedImage.size()!=QSize(width(), height())) - m_loadedImage = m_loadedImage.scaled(width(), height());//TODO: Aspect Ratio Control? - - bool affected = false; - QPoint pos = QPoint(d->curX() - m_offset.x(), d->curY() - m_offset.y()); - if(!QRect(0,0,width(),height()).contains(pos)){ - //XXX: Just a debugging helper, as I don't think it can get here. - qWarning() << "PictureAffector gives up."; - return false; - } - Color4ub c; - QRgb col = m_loadedImage.pixel(pos); - c.a = qAlpha(col); - c.b = qBlue(col); - c.g = qGreen(col); - c.r = qRed(col); - foreach(ParticleType *p, m_system->m_groupData[d->group]->types){ - if(qobject_cast<ColoredParticle*>(p)){ - ColoredParticle* cp = qobject_cast<ColoredParticle*>(p); - cp->reloadColor(c, d); - affected = true; - } - } - - return affected;//Doesn't affect particle data, but necessary for onceOff -} - -QT_END_NAMESPACE diff --git a/src/imports/particles/pictureaffector.h b/src/imports/particles/pictureaffector.h deleted file mode 100644 index 4e0141d00a..0000000000 --- a/src/imports/particles/pictureaffector.h +++ /dev/null @@ -1,99 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PICTUREAFFECTOR_H -#define PICTUREAFFECTOR_H -#include "particleaffector.h" -#include <QDebug> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class QDeclarativePixmap; -class PictureAffector : public ParticleAffector -{ - Q_OBJECT - //Usually want to use "particles" to target just colored stuff, and save performance - //Use onceOff (inherited) to determine if this is an emitter modification or a more constant enforcer - Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) - //TODO: Bool smooth, where it interpolates -public: - explicit PictureAffector(QSGItem *parent = 0); - - QUrl image() const - { - return m_image; - } - -protected: - virtual void reset(int systemIdx); - virtual bool affectParticle(ParticleData *d, qreal dt); -signals: - - void imageChanged(QUrl arg); - -public slots: - void setImage(QUrl arg) - { - if (m_image != arg) { - m_image = arg; - startLoadImage(); - emit imageChanged(arg); - } - } - -private slots: - void loadImage(); -private: - void startLoadImage(); - QUrl m_image; - QDeclarativePixmap* m_pix; - QImage m_loadedImage; -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // PICTUREAFFECTOR_H diff --git a/src/imports/particles/pluginmain.h b/src/imports/particles/pluginmain.h deleted file mode 100644 index cd8760d1a0..0000000000 --- a/src/imports/particles/pluginmain.h +++ /dev/null @@ -1,65 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef PLUGINMAIN_H -#define PLUGINMAIN_H - -#include <QtDeclarative> -#include <QtDeclarative/QDeclarativeExtensionPlugin> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class ParticlesPlugin : public QDeclarativeExtensionPlugin -{ - Q_OBJECT -public: - virtual void registerTypes(const char *uri); -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // PLUGINMAIN_H diff --git a/src/imports/particles/resetaffector.cpp b/src/imports/particles/resetaffector.cpp deleted file mode 100644 index 0598298f27..0000000000 --- a/src/imports/particles/resetaffector.cpp +++ /dev/null @@ -1,78 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "resetaffector.h" -#include <cmath> -QT_BEGIN_NAMESPACE -ResetAffector::ResetAffector(QSGItem *parent) : - ParticleAffector(parent) -{ -} - -void ResetAffector::reset(int idx) -{ - ParticleAffector::reset(idx); - if(m_data[idx]) - delete m_data[idx]; - m_data.insert(idx, 0);//TODO: Either load with data now, or get data next tick whether active or not -} - -bool ResetAffector::affectParticle(ParticleData *d, qreal dt) -{ - TrajectoryData* trajectory; - if(m_data[d->systemIndex]){ - trajectory = m_data[d->systemIndex]; - //TODO: Faster to calculate once (not 4 times) - d->setInstantaneousSX(trajectory->sx); - d->setInstantaneousSY(trajectory->sy); - d->setInstantaneousAX(trajectory->ax); - d->setInstantaneousAY(trajectory->ay); - }else{ - trajectory = new TrajectoryData; - } - trajectory->sx = d->pv.sx; - trajectory->sy = d->pv.sy; - trajectory->ax = d->pv.ax; - trajectory->ay = d->pv.ay; - m_data.insert(d->systemIndex, trajectory);//overwrites - return true; -} -QT_END_NAMESPACE diff --git a/src/imports/particles/resetaffector.h b/src/imports/particles/resetaffector.h deleted file mode 100644 index 6a4e2b7983..0000000000 --- a/src/imports/particles/resetaffector.h +++ /dev/null @@ -1,75 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef RESETAFFECTOR_H -#define RESETAFFECTOR_H -#include "particleaffector.h" -#include <QHash> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -struct TrajectoryData{ - qreal sx,sy,ax,ay; -}; - -class ResetAffector : public ParticleAffector -{ - Q_OBJECT -public: - explicit ResetAffector(QSGItem *parent = 0); - virtual void reset(int systemIdx); - -signals: - -public slots: -protected: - virtual bool affectParticle(ParticleData *d, qreal dt); -private: - QHash<int, TrajectoryData*> m_data; -}; - -QT_END_NAMESPACE -QT_END_HEADER -#endif // RESETAFFECTOR_H diff --git a/src/imports/particles/speedlimitaffector.cpp b/src/imports/particles/speedlimitaffector.cpp deleted file mode 100644 index c226404b01..0000000000 --- a/src/imports/particles/speedlimitaffector.cpp +++ /dev/null @@ -1,77 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "speedlimitaffector.h" -#include <cmath> -#include <QDebug> - -QT_BEGIN_NAMESPACE - -SpeedLimitAffector::SpeedLimitAffector(QSGItem *parent) : - ParticleAffector(parent), m_speedLimit(-1) -{ -} - -bool SpeedLimitAffector::affectParticle(ParticleData *d, qreal dt){ - Q_UNUSED(dt); - if(m_speedLimit <= 0) - return false; - - qreal x = d->curSX(); - qreal y = d->curSY(); - qreal s = sqrt(x*x + y*y); - if(s <= m_speedLimit) - return false; - - - if(s >= m_speedLimit*1.01){ - qreal theta = atan2(y,x); - d->setInstantaneousSX(m_speedLimit * cos(theta)); - d->setInstantaneousSY(m_speedLimit * sin(theta)); - } - - d->setInstantaneousAY(0); - d->setInstantaneousAX(0); - - return true; -} - -QT_END_NAMESPACE diff --git a/src/imports/particles/spriteparticle.cpp b/src/imports/particles/spriteparticle.cpp deleted file mode 100644 index 6039d2819b..0000000000 --- a/src/imports/particles/spriteparticle.cpp +++ /dev/null @@ -1,449 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "spriteparticle.h" -#include "spritestate.h" -#include "spriteengine.h" -#include "particleemitter.h" -#include <private/qsgcontext_p.h> -#include <private/qsgadaptationlayer_p.h> -#include <qsgnode.h> -#include <qsgtexturematerial.h> -#include <qsgengine.h> -#include <qsgtexture.h> -#include <QFile> -#include <cmath> -#include <qmath.h> -#include <QDebug> - -QT_BEGIN_NAMESPACE - -class SpriteParticlesMaterial : public QSGMaterial -{ -public: - SpriteParticlesMaterial(); - virtual ~SpriteParticlesMaterial(); - virtual QSGMaterialType *type() const { static QSGMaterialType type; return &type; } - virtual QSGMaterialShader *createShader() const; - virtual int compare(const QSGMaterial *other) const - { - return this - static_cast<const SpriteParticlesMaterial *>(other); - } - - QSGTexture *texture; - - qreal timestamp; - int framecount; - int animcount; -}; - -SpriteParticlesMaterial::SpriteParticlesMaterial() - : timestamp(0) - , framecount(1) - , animcount(1) -{ - setFlag(Blending, true); -} - -SpriteParticlesMaterial::~SpriteParticlesMaterial() -{ - delete texture; -} - -class SpriteParticlesMaterialData : public QSGMaterialShader -{ -public: - SpriteParticlesMaterialData(const char *vertexFile = 0, const char *fragmentFile = 0) - { - QFile vf(vertexFile ? vertexFile : ":resources/spritevertex.shader"); - vf.open(QFile::ReadOnly); - m_vertex_code = vf.readAll(); - - QFile ff(fragmentFile ? fragmentFile : ":resources/spritefragment.shader"); - ff.open(QFile::ReadOnly); - m_fragment_code = ff.readAll(); - - Q_ASSERT(!m_vertex_code.isNull()); - Q_ASSERT(!m_fragment_code.isNull()); - } - - void deactivate() { - QSGMaterialShader::deactivate(); - - for (int i=0; i<8; ++i) { - program()->setAttributeArray(i, GL_FLOAT, chunkOfBytes, 1, 0); - } - } - - virtual void updateState(const RenderState &state, QSGMaterial *newEffect, QSGMaterial *) - { - SpriteParticlesMaterial *m = static_cast<SpriteParticlesMaterial *>(newEffect); - m->texture->bind(); - - program()->setUniformValue(m_opacity_id, state.opacity()); - program()->setUniformValue(m_timestamp_id, (float) m->timestamp); - program()->setUniformValue(m_framecount_id, (float) m->framecount); - program()->setUniformValue(m_animcount_id, (float) m->animcount); - - if (state.isMatrixDirty()) - program()->setUniformValue(m_matrix_id, state.combinedMatrix()); - } - - virtual void initialize() { - m_matrix_id = program()->uniformLocation("matrix"); - m_opacity_id = program()->uniformLocation("opacity"); - m_timestamp_id = program()->uniformLocation("timestamp"); - m_framecount_id = program()->uniformLocation("framecount"); - m_animcount_id = program()->uniformLocation("animcount"); - } - - virtual const char *vertexShader() const { return m_vertex_code.constData(); } - virtual const char *fragmentShader() const { return m_fragment_code.constData(); } - - virtual char const *const *attributeNames() const { - static const char *attr[] = { - "vPos", - "vTex", - "vData", - "vVec", - "vAnimData", - 0 - }; - return attr; - } - - virtual bool isColorTable() const { return false; } - - int m_matrix_id; - int m_opacity_id; - int m_timestamp_id; - int m_framecount_id; - int m_animcount_id; - - QByteArray m_vertex_code; - QByteArray m_fragment_code; - - static float chunkOfBytes[1024]; -}; -float SpriteParticlesMaterialData::chunkOfBytes[1024]; - -QSGMaterialShader *SpriteParticlesMaterial::createShader() const -{ - return new SpriteParticlesMaterialData; -} - -struct SpriteParticleVertex { - float x; - float y; - float tx; - float ty; - float t; - float lifeSpan; - float size; - float endSize; - float sx; - float sy; - float ax; - float ay; - float animIdx; - float frameDuration; - float frameCount; - float animT; -}; - -struct SpriteParticleVertices { - SpriteParticleVertex v1; - SpriteParticleVertex v2; - SpriteParticleVertex v3; - SpriteParticleVertex v4; -}; - -SpriteParticle::SpriteParticle(QSGItem *parent) : - ParticleType(parent) - , m_node(0) - , m_material(0) - , m_spriteEngine(0) -{ - setFlag(ItemHasContents); - } -QDeclarativeListProperty<SpriteState> SpriteParticle::sprites() -{ - return QDeclarativeListProperty<SpriteState>(this, &m_sprites, spriteAppend, spriteCount, spriteAt, spriteClear); -} - -void SpriteParticle::createEngine() -{ - if(m_spriteEngine) - delete m_spriteEngine; - if(m_sprites.count()) - m_spriteEngine = new SpriteEngine(m_sprites, this); - else - m_spriteEngine = 0; - reset();//###this is probably out of updatePaintNode and shouldn't be -} - -void SpriteParticle::setCount(int c) -{ - ParticleType::setCount(c); - m_pleaseReset = true; -} - -static QSGGeometry::Attribute SpriteParticle_Attributes[] = { - { 0, 2, GL_FLOAT }, // Position - { 1, 2, GL_FLOAT }, // TexCoord - { 2, 4, GL_FLOAT }, // Data - { 3, 4, GL_FLOAT }, // Vectors - { 4, 4, GL_FLOAT } // Colors -}; - -static QSGGeometry::AttributeSet SpriteParticle_AttributeSet = -{ - 5, // Attribute Count - (2 + 2 + 4 + 4 + 4) * sizeof(float), - SpriteParticle_Attributes -}; - - - -QSGGeometryNode* SpriteParticle::buildParticleNode() -{ - if (m_count * 4 > 0xffff) { - qWarning() << "SpriteParticle: too many particles..."; - return 0; - } - - if (m_count * 4 == 0) { - qWarning() << "SpriteParticle: No particles..."; - return 0; - } - - if (!m_spriteEngine) { - qWarning() << "SpriteParticle: No sprite engine..."; - return 0; - } - - if (m_material) { - delete m_material; - m_material = 0; - } - - m_material = new SpriteParticlesMaterial(); - - QImage image = m_spriteEngine->assembledImage(); - if(image.isNull()) - return 0; - m_material->texture = sceneGraphEngine()->createTextureFromImage(image); - m_material->texture->setFiltering(QSGTexture::Linear); - m_material->framecount = m_spriteEngine->maxFrames(); - m_spriteEngine->setCount(m_count); - - int vCount = m_count * 4; - int iCount = m_count * 6; - QSGGeometry *g = new QSGGeometry(SpriteParticle_AttributeSet, vCount, iCount); - g->setDrawingMode(GL_TRIANGLES); - - SpriteParticleVertex *vertices = (SpriteParticleVertex *) g->vertexData(); - for (int p=0; p<m_count; ++p) { - - for (int i=0; i<4; ++i) { - vertices[i].x = 0; - vertices[i].y = 0; - vertices[i].t = -1; - vertices[i].lifeSpan = -1; - vertices[i].size = 0; - vertices[i].endSize = 0; - vertices[i].sx = 0; - vertices[i].sy = 0; - vertices[i].ax = 0; - vertices[i].ay = 0; - vertices[i].animIdx = 0; - vertices[i].frameDuration = 1; - vertices[i].frameCount = 1; - vertices[i].animT = -1; - - } - - vertices[0].tx = 0; - vertices[0].ty = 0; - - vertices[1].tx = 1.0; - vertices[1].ty = 0; - - vertices[2].tx = 0; - vertices[2].ty = 1.0; - - vertices[3].tx = 1.0; - vertices[3].ty = 1.0; - - vertices += 4; - } - - quint16 *indices = g->indexDataAsUShort(); - for (int i=0; i<m_count; ++i) { - int o = i * 4; - indices[0] = o; - indices[1] = o + 1; - indices[2] = o + 2; - indices[3] = o + 1; - indices[4] = o + 3; - indices[5] = o + 2; - indices += 6; - } - - - m_node = new QSGGeometryNode(); - m_node->setGeometry(g); - m_node->setMaterial(m_material); - m_last_particle = 0; - return m_node; -} - -void SpriteParticle::vertexCopy(SpriteParticleVertex &b,const ParticleVertex& a) -{ - b.x = a.x + m_systemOffset.x(); - b.y = a.y + m_systemOffset.y(); - b.t = a.t; - b.lifeSpan = a.lifeSpan; - b.size = a.size; - b.endSize = a.endSize; - b.sx = a.sx; - b.sy = a.sy; - b.ax = a.ax; - b.ay = a.ay; -} - -void SpriteParticle::load(ParticleData *d) -{ - if (m_node == 0) //error creating node - return; - - SpriteParticleVertices *particles = (SpriteParticleVertices *) m_node->geometry()->vertexData(); - int pos = particleTypeIndex(d); - SpriteParticleVertices &p = particles[pos]; - - // Initial Sprite State - m_spriteEngine->startSprite(pos); - p.v1.animT = p.v2.animT = p.v3.animT = p.v4.animT = p.v1.t; - p.v1.animIdx = p.v2.animIdx = p.v3.animIdx = p.v4.animIdx = 0; - p.v1.frameCount = p.v2.frameCount = p.v3.frameCount = p.v4.frameCount = m_spriteEngine->spriteFrames(pos); - p.v1.frameDuration = p.v2.frameDuration = p.v3.frameDuration = p.v4.frameDuration = m_spriteEngine->spriteDuration(pos); - - vertexCopy(p.v1, d->pv); - vertexCopy(p.v2, d->pv); - vertexCopy(p.v3, d->pv); - vertexCopy(p.v4, d->pv); - -} - -void SpriteParticle::reload(ParticleData *d) -{ - if (m_node == 0) //error creating node - return; - - SpriteParticleVertices *particles = (SpriteParticleVertices *) m_node->geometry()->vertexData(); - int pos = particleTypeIndex(d); - SpriteParticleVertices &p = particles[pos]; - - vertexCopy(p.v1, d->pv); - vertexCopy(p.v2, d->pv); - vertexCopy(p.v3, d->pv); - vertexCopy(p.v4, d->pv); -} - - -QSGNode *SpriteParticle::updatePaintNode(QSGNode *, UpdatePaintNodeData *) -{ - if(m_pleaseReset){ - if(m_node) - delete m_node; - if(m_material) - delete m_material; - - m_node = 0; - m_material = 0; - m_pleaseReset = false; - } - if(m_system&& m_system->isRunning()) - prepareNextFrame(); - if (m_node){ - update(); - m_node->markDirty(QSGNode::DirtyMaterial); - } - - return m_node; -} - -void SpriteParticle::prepareNextFrame() -{ - if (m_node == 0){ //TODO: Staggered loading (as emitted) (is it just moving this check to load()?) - m_node = buildParticleNode(); - if(m_node == 0) - return; - } - qint64 timeStamp = m_system->systemSync(this); - - - qreal time = timeStamp / 1000.; - m_material->timestamp = time; - m_material->animcount = m_spriteEngine->spriteCount(); - - //Advance State - SpriteParticleVertices *particles = (SpriteParticleVertices *) m_node->geometry()->vertexData(); - m_spriteEngine->updateSprites(timeStamp); - for(int i=0; i<m_count; i++){ - SpriteParticleVertices &p = particles[i]; - int curIdx = m_spriteEngine->spriteState(i); - if(curIdx != p.v1.animIdx){ - p.v1.animIdx = p.v2.animIdx = p.v3.animIdx = p.v4.animIdx = curIdx; - p.v1.animT = p.v2.animT = p.v3.animT = p.v4.animT = m_spriteEngine->spriteStart(i)/1000.0; - p.v1.frameCount = p.v2.frameCount = p.v3.frameCount = p.v4.frameCount = m_spriteEngine->spriteFrames(i); - p.v1.frameDuration = p.v2.frameDuration = p.v3.frameDuration = p.v4.frameDuration = m_spriteEngine->spriteDuration(i); - } - } -} - -void SpriteParticle::reset() -{ - ParticleType::reset(); - m_pleaseReset = true; -} - -QT_END_NAMESPACE diff --git a/src/imports/particles/spriteparticle.h b/src/imports/particles/spriteparticle.h deleted file mode 100644 index f28d198600..0000000000 --- a/src/imports/particles/spriteparticle.h +++ /dev/null @@ -1,99 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SPRITEPARTICLE_H -#define SPRITEPARTICLE_H -#include "particle.h" -#include <QDeclarativeListProperty> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class SpriteState; -class SpriteEngine; -class QSGGeometryNode; -class SpriteParticlesMaterial; -class SpriteParticleVertex; - -class SpriteParticle : public ParticleType -{ - Q_OBJECT - Q_PROPERTY(QDeclarativeListProperty<SpriteState> sprites READ sprites) - Q_CLASSINFO("DefaultProperty", "sprites") -public: - explicit SpriteParticle(QSGItem *parent = 0); - virtual void load(ParticleData*); - virtual void reload(ParticleData*); - virtual void setCount(int c); - - QDeclarativeListProperty<SpriteState> sprites(); - SpriteEngine* spriteEngine() {return m_spriteEngine;} -signals: - -public slots: -protected: - QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *); - void reset(); - void prepareNextFrame(); - QSGGeometryNode* buildParticleNode(); -private slots: - void createEngine(); -private: - QSGGeometryNode *m_node; - SpriteParticlesMaterial *m_material; - - int m_particle_duration; - int m_last_particle; - - QList<SpriteState*> m_sprites; - SpriteEngine* m_spriteEngine; - - void vertexCopy(SpriteParticleVertex &b,const ParticleVertex& a); -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // SPRITEPARTICLE_H diff --git a/src/imports/particles/spriteparticles.qrc b/src/imports/particles/spriteparticles.qrc deleted file mode 100644 index 0232c3c9f9..0000000000 --- a/src/imports/particles/spriteparticles.qrc +++ /dev/null @@ -1,22 +0,0 @@ -<RCC> - <qresource prefix="/"> - <file>resources/spritefragment.shader</file> - <file>resources/spritevertex.shader</file> - <file>resources/ctfragment.shader</file> - <file>resources/ctvertex.shader</file> - <file>resources/trailsfragment.shader</file> - <file>resources/trailsvertex.shader</file> - <file>resources/spriteimagefragment.shader</file> - <file>resources/spriteimagevertex.shader</file> - <file>resources/identitytable.png</file> - <file>resources/defaultFadeInOut.png</file> - <file>resources/deformablefragment.shader</file> - <file>resources/deformablevertex.shader</file> - <file>resources/ultravertex.shader</file> - <file>resources/ultrafragment.shader</file> - <file>resources/supervertex.shader</file> - <file>resources/superfragment.shader</file> - <file>resources/simplevertex.shader</file> - <file>resources/simplefragment.shader</file> - </qresource> -</RCC> diff --git a/src/imports/particles/superparticle.cpp b/src/imports/particles/superparticle.cpp deleted file mode 100644 index 811b6a4ba8..0000000000 --- a/src/imports/particles/superparticle.cpp +++ /dev/null @@ -1,511 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include <private/qsgcontext_p.h> -#include <private/qsgadaptationlayer_p.h> -#include <qsgnode.h> -#include <qsgtexturematerial.h> -#include <qsgtexture.h> -#include <QFile> -#include "superparticle.h" -#include "particleemitter.h" -#include <QGLFunctions> -#include <qsgengine.h> - -QT_BEGIN_NAMESPACE - -const float CONV = 0.017453292519943295; -class SuperMaterial : public QSGMaterial -{ -public: - SuperMaterial() - : timestamp(0) - { - setFlag(Blending, true); - } - - ~SuperMaterial() - { - delete texture; - delete colortable; - delete sizetable; - delete opacitytable; - } - - virtual QSGMaterialType *type() const { static QSGMaterialType type; return &type; } - virtual QSGMaterialShader *createShader() const; - virtual int compare(const QSGMaterial *other) const - { - return this - static_cast<const SuperMaterial *>(other); - } - - QSGTexture *texture; - QSGTexture *colortable; - QSGTexture *sizetable; - QSGTexture *opacitytable; - - qreal timestamp; -}; - - -class SuperMaterialData : public QSGMaterialShader -{ -public: - SuperMaterialData(const char *vertexFile = 0, const char *fragmentFile = 0) - { - QFile vf(vertexFile ? vertexFile : ":resources/supervertex.shader"); - vf.open(QFile::ReadOnly); - m_vertex_code = vf.readAll(); - - QFile ff(fragmentFile ? fragmentFile : ":resources/superfragment.shader"); - ff.open(QFile::ReadOnly); - m_fragment_code = ff.readAll(); - - Q_ASSERT(!m_vertex_code.isNull()); - Q_ASSERT(!m_fragment_code.isNull()); - } - - void deactivate() { - QSGMaterialShader::deactivate(); - - for (int i=0; i<8; ++i) { - program()->setAttributeArray(i, GL_FLOAT, chunkOfBytes, 1, 0); - } - } - - virtual void updateState(const RenderState &state, QSGMaterial *newEffect, QSGMaterial *) - { - SuperMaterial *m = static_cast<SuperMaterial *>(newEffect); - state.context()->functions()->glActiveTexture(GL_TEXTURE0); - m->texture->bind(); - - state.context()->functions()->glActiveTexture(GL_TEXTURE1); - m->colortable->bind(); - program()->setUniformValue(m_colortable_id, 1); - - state.context()->functions()->glActiveTexture(GL_TEXTURE2); - m->sizetable->bind(); - program()->setUniformValue(m_sizetable_id, 2); - - state.context()->functions()->glActiveTexture(GL_TEXTURE3); - m->opacitytable->bind(); - program()->setUniformValue(m_opacitytable_id, 3); - - program()->setUniformValue(m_opacity_id, state.opacity()); - program()->setUniformValue(m_timestamp_id, (float) m->timestamp); - - if (state.isMatrixDirty()) - program()->setUniformValue(m_matrix_id, state.combinedMatrix()); - } - - virtual void initialize() { - m_colortable_id = program()->uniformLocation("colortable"); - m_sizetable_id = program()->uniformLocation("sizetable"); - m_opacitytable_id = program()->uniformLocation("opacitytable"); - m_matrix_id = program()->uniformLocation("matrix"); - m_opacity_id = program()->uniformLocation("opacity"); - m_timestamp_id = program()->uniformLocation("timestamp"); - } - - virtual const char *vertexShader() const { return m_vertex_code.constData(); } - virtual const char *fragmentShader() const { return m_fragment_code.constData(); } - - virtual char const *const *attributeNames() const { - static const char *attr[] = { - "vPos", - "vTex", - "vData", - "vVec", - "vColor", - "vDeformVec", - "vRotation", - 0 - }; - return attr; - } - - virtual bool isColorTable() const { return false; } - - int m_matrix_id; - int m_opacity_id; - int m_timestamp_id; - int m_colortable_id; - int m_sizetable_id; - int m_opacitytable_id; - - QByteArray m_vertex_code; - QByteArray m_fragment_code; - - static float chunkOfBytes[1024]; -}; -float SuperMaterialData::chunkOfBytes[1024]; - - -QSGMaterialShader *SuperMaterial::createShader() const -{ - return new SuperMaterialData; -} - -SuperParticle::SuperParticle(QSGItem* parent) - : ParticleType(parent) - , m_do_reset(false) - , m_color(Qt::white) - , m_color_variation(0.5) - , m_node(0) - , m_material(0) - , m_alphaVariation(0.0) - , m_alpha(1.0) - , m_redVariation(0.0) - , m_greenVariation(0.0) - , m_blueVariation(0.0) -{ - setFlag(ItemHasContents); -} - -void SuperParticle::setImage(const QUrl &image) -{ - if (image == m_image_name) - return; - m_image_name = image; - emit imageChanged(); - reset(); -} - - -void SuperParticle::setColortable(const QUrl &table) -{ - if (table == m_colortable_name) - return; - m_colortable_name = table; - emit colortableChanged(); - reset(); -} - -void SuperParticle::setSizetable(const QUrl &table) -{ - if (table == m_sizetable_name) - return; - m_sizetable_name = table; - emit sizetableChanged(); - reset(); -} - -void SuperParticle::setOpacitytable(const QUrl &table) -{ - if (table == m_opacitytable_name) - return; - m_opacitytable_name = table; - emit opacitytableChanged(); - reset(); -} - -void SuperParticle::setColor(const QColor &color) -{ - if (color == m_color) - return; - m_color = color; - emit colorChanged(); - //m_system->pleaseReset();//XXX -} - -void SuperParticle::setColorVariation(qreal var) -{ - if (var == m_color_variation) - return; - m_color_variation = var; - emit colorVariationChanged(); - //m_system->pleaseReset();//XXX -} - -void SuperParticle::setCount(int c) -{ - ParticleType::setCount(c); - m_pleaseReset = true; -} - -void SuperParticle::reset() -{ - ParticleType::reset(); - m_pleaseReset = true; -} - -static QSGGeometry::Attribute SuperParticle_Attributes[] = { - { 0, 2, GL_FLOAT }, // Position - { 1, 2, GL_FLOAT }, // TexCoord - { 2, 4, GL_FLOAT }, // Data - { 3, 4, GL_FLOAT }, // Vectors - { 4, 4, GL_UNSIGNED_BYTE }, // Colors - { 5, 4, GL_FLOAT }, // DeformationVectors - { 6, 3, GL_FLOAT } // Rotation -}; - -static QSGGeometry::AttributeSet SuperParticle_AttributeSet = -{ - 7, // Attribute Count - (2 + 2 + 4 + 4 + 4 + 3) * sizeof(float) + 4 * sizeof(uchar), - SuperParticle_Attributes -}; - -QSGGeometryNode* SuperParticle::buildParticleNode() -{ - if (m_count * 4 > 0xffff) { - printf("SuperParticle: Too many particles... \n"); - return 0; - } - - if(m_count <= 0) { - printf("SuperParticle: Too few particles... \n"); - return 0; - } - - QImage image(m_image_name.toLocalFile()); - if (image.isNull()) { - printf("SuperParticle: loading image failed... '%s'\n", qPrintable(m_image_name.toLocalFile())); - return 0; - } - - int vCount = m_count * 4; - int iCount = m_count * 6; - - QSGGeometry *g = new QSGGeometry(SuperParticle_AttributeSet, vCount, iCount); - g->setDrawingMode(GL_TRIANGLES); - - SuperVertex *vertices = (SuperVertex *) g->vertexData(); - for (int p=0; p<m_count; ++p) { - - for (int i=0; i<4; ++i) { - vertices[i].x = 0; - vertices[i].y = 0; - vertices[i].t = -1; - vertices[i].lifeSpan = 0; - vertices[i].size = 0; - vertices[i].endSize = 0; - vertices[i].sx = 0; - vertices[i].sy = 0; - vertices[i].ax = 0; - vertices[i].ay = 0; - vertices[i].xx = 1; - vertices[i].xy = 0; - vertices[i].yx = 0; - vertices[i].yy = 1; - vertices[i].rotation = 0; - vertices[i].rotationSpeed = 0; - vertices[i].autoRotate = 0; - } - - vertices[0].tx = 0; - vertices[0].ty = 0; - - vertices[1].tx = 1; - vertices[1].ty = 0; - - vertices[2].tx = 0; - vertices[2].ty = 1; - - vertices[3].tx = 1; - vertices[3].ty = 1; - - vertices += 4; - } - - quint16 *indices = g->indexDataAsUShort(); - for (int i=0; i<m_count; ++i) { - int o = i * 4; - indices[0] = o; - indices[1] = o + 1; - indices[2] = o + 2; - indices[3] = o + 1; - indices[4] = o + 3; - indices[5] = o + 2; - indices += 6; - } - - if (m_material) { - delete m_material; - m_material = 0; - } - - QImage colortable(m_colortable_name.toLocalFile()); - QImage sizetable(m_sizetable_name.toLocalFile()); - QImage opacitytable(m_opacitytable_name.toLocalFile()); - m_material = new SuperMaterial(); - if(colortable.isNull()) - colortable = QImage(":resources/identitytable.png"); - if(sizetable.isNull()) - sizetable = QImage(":resources/identitytable.png"); - if(opacitytable.isNull()) - opacitytable = QImage(":resources/defaultFadeInOut.png"); - Q_ASSERT(!colortable.isNull()); - Q_ASSERT(!sizetable.isNull()); - Q_ASSERT(!opacitytable.isNull()); - m_material->colortable = sceneGraphEngine()->createTextureFromImage(colortable); - m_material->sizetable = sceneGraphEngine()->createTextureFromImage(sizetable); - m_material->opacitytable = sceneGraphEngine()->createTextureFromImage(opacitytable); - - m_material->texture = sceneGraphEngine()->createTextureFromImage(image); - m_material->texture->setFiltering(QSGTexture::Linear); - - m_node = new QSGGeometryNode(); - m_node->setGeometry(g); - m_node->setMaterial(m_material); - - m_last_particle = 0; - - return m_node; -} - -QSGNode *SuperParticle::updatePaintNode(QSGNode *, UpdatePaintNodeData *) -{ - if(m_pleaseReset){ - if(m_node) - delete m_node; - if(m_material) - delete m_material; - - m_node = 0; - m_material = 0; - m_pleaseReset = false; - } - - if(m_system && m_system->isRunning()) - prepareNextFrame(); - if (m_node){ - update(); - m_node->markDirty(QSGNode::DirtyMaterial); - } - - return m_node; -} - -void SuperParticle::prepareNextFrame() -{ - if (m_node == 0){ //TODO: Staggered loading (as emitted) - m_node = buildParticleNode(); - if(m_node == 0) - return; - } - qint64 timeStamp = m_system->systemSync(this); - - qreal time = timeStamp / 1000.; - m_material->timestamp = time; -} - -void SuperParticle::reloadColor(const Color4ub &c, ParticleData* d) -{ - SuperVertices *particles = (SuperVertices *) m_node->geometry()->vertexData(); - int pos = particleTypeIndex(d); - SuperVertices &p = particles[pos]; - p.v1.color = p.v2.color = p.v3.color = p.v4.color = c; -} - -void SuperParticle::vertexCopy(SuperVertex &b,const ParticleVertex& a) -{ - b.x = a.x - m_systemOffset.x(); - b.y = a.y - m_systemOffset.y(); - b.t = a.t; - b.lifeSpan = a.lifeSpan; - b.size = a.size; - b.endSize = a.endSize; - b.sx = a.sx; - b.sy = a.sy; - b.ax = a.ax; - b.ay = a.ay; -} - -void SuperParticle::reload(ParticleData *d) -{ - if (m_node == 0) - return; - - SuperVertices *particles = (SuperVertices *) m_node->geometry()->vertexData(); - - int pos = particleTypeIndex(d); - - SuperVertices &p = particles[pos]; - - //Perhaps we could be more efficient? - vertexCopy(p.v1, d->pv); - vertexCopy(p.v2, d->pv); - vertexCopy(p.v3, d->pv); - vertexCopy(p.v4, d->pv); -} - -void SuperParticle::load(ParticleData *d) -{ - if (m_node == 0) - return; - - //Color initialization - // Particle color - Color4ub color; - qreal redVariation = m_color_variation + m_redVariation; - qreal greenVariation = m_color_variation + m_greenVariation; - qreal blueVariation = m_color_variation + m_blueVariation; - color.r = m_color.red() * (1 - redVariation) + rand() % 256 * redVariation; - color.g = m_color.green() * (1 - greenVariation) + rand() % 256 * greenVariation; - color.b = m_color.blue() * (1 - blueVariation) + rand() % 256 * blueVariation; - color.a = m_alpha * m_color.alpha() * (1 - m_alphaVariation) + rand() % 256 * m_alphaVariation; - SuperVertices *particles = (SuperVertices *) m_node->geometry()->vertexData(); - SuperVertices &p = particles[particleTypeIndex(d)]; - p.v1.color = p.v2.color = p.v3.color = p.v4.color = color; - if(m_xVector){ - const QPointF &ret = m_xVector->sample(QPointF(d->pv.x, d->pv.y)); - p.v1.xx = p.v2.xx = p.v3.xx = p.v4.xx = ret.x(); - p.v1.xy = p.v2.xy = p.v3.xy = p.v4.xy = ret.y(); - } - if(m_yVector){ - const QPointF &ret = m_yVector->sample(QPointF(d->pv.x, d->pv.y)); - p.v1.yx = p.v2.yx = p.v3.yx = p.v4.yx = ret.x(); - p.v1.yy = p.v2.yy = p.v3.yy = p.v4.yy = ret.y(); - } - p.v1.rotation = p.v2.rotation = p.v3.rotation = p.v4.rotation = - (m_rotation + (m_rotationVariation - 2*((qreal)rand()/RAND_MAX)*m_rotationVariation) ) * CONV; - p.v1.rotationSpeed = p.v2.rotationSpeed = p.v3.rotationSpeed = p.v4.rotationSpeed = - (m_rotationSpeed + (m_rotationSpeedVariation - 2*((qreal)rand()/RAND_MAX)*m_rotationSpeedVariation) ) * CONV; - p.v1.autoRotate = p.v2.autoRotate = p.v3.autoRotate = p.v4.autoRotate = m_autoRotation?1.0:0.0; - - vertexCopy(p.v1, d->pv); - vertexCopy(p.v2, d->pv); - vertexCopy(p.v3, d->pv); - vertexCopy(p.v4, d->pv); -} - -QT_END_NAMESPACE diff --git a/src/imports/particles/superparticle.h b/src/imports/particles/superparticle.h deleted file mode 100644 index ac2f9860ef..0000000000 --- a/src/imports/particles/superparticle.h +++ /dev/null @@ -1,389 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SUPERPARTICLE_H -#define SUPERPARTICLE_H -#include "particle.h" -#include "varyingvector.h" - -#include "coloredparticle.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class SuperMaterial; -class QSGGeometryNode; - -/*struct Color4ub {//in coloredparticle - uchar r; - uchar g; - uchar b; - uchar a; -};*/ - -struct SuperVertex { - float x; - float y; - float tx; - float ty; - float t; - float lifeSpan; - float size; - float endSize; - float sx; - float sy; - float ax; - float ay; - Color4ub color; - float xx; - float xy; - float yx; - float yy; - float rotation; - float rotationSpeed; - float autoRotate;//Assume that GPUs prefer floats to bools -}; - -struct SuperVertices { - SuperVertex v1; - SuperVertex v2; - SuperVertex v3; - SuperVertex v4; -}; - -class SuperParticle : public ParticleType -{ - Q_OBJECT - Q_PROPERTY(QUrl image READ image WRITE setImage NOTIFY imageChanged) - Q_PROPERTY(QUrl colorTable READ colortable WRITE setColortable NOTIFY colortableChanged) - Q_PROPERTY(QUrl sizeTable READ sizetable WRITE setSizetable NOTIFY sizetableChanged) - Q_PROPERTY(QUrl opacityTable READ opacitytable WRITE setOpacitytable NOTIFY opacitytableChanged) - - Q_PROPERTY(QColor color READ color WRITE setColor NOTIFY colorChanged) - //Stacks (added) with individual colorVariations - Q_PROPERTY(qreal colorVariation READ colorVariation WRITE setColorVariation NOTIFY colorVariationChanged) - Q_PROPERTY(qreal redVariation READ redVariation WRITE setRedVariation NOTIFY redVariationChanged) - Q_PROPERTY(qreal greenVariation READ greenVariation WRITE setGreenVariation NOTIFY greenVariationChanged) - Q_PROPERTY(qreal blueVariation READ blueVariation WRITE setBlueVariation NOTIFY blueVariationChanged) - //Stacks (multiplies) with the Alpha in the color, mostly here so you can use svg color names (which have full alpha) - Q_PROPERTY(qreal alpha READ alpha WRITE setAlpha NOTIFY alphaChanged) - Q_PROPERTY(qreal alphaVariation READ alphaVariation WRITE setAlphaVariation NOTIFY alphaVariationChanged) - - Q_PROPERTY(qreal rotation READ rotation WRITE setRotation NOTIFY rotationChanged) - Q_PROPERTY(qreal rotationVariation READ rotationVariation WRITE setRotationVariation NOTIFY rotationVariationChanged) - Q_PROPERTY(qreal rotationSpeed READ rotationSpeed WRITE setRotationSpeed NOTIFY rotationSpeedChanged) - Q_PROPERTY(qreal rotationSpeedVariation READ rotationSpeedVariation WRITE setRotationSpeedVariation NOTIFY rotationSpeedVariationChanged) - //If true, then will face the direction of motion. Stacks with rotation, e.g. setting rotation - //to 180 will lead to facing away from the direction of motion - Q_PROPERTY(bool autoRotation READ autoRotation WRITE autoRotation NOTIFY autoRotationChanged) - - //###Call i/j? Makes more sense to those with vector calculus experience, and I could even add the cirumflex in QML? - //xVector is the vector from the top-left point to the top-right point, and is multiplied by current size - Q_PROPERTY(VaryingVector* xVector READ xVector WRITE setXVector NOTIFY xVectorChanged) - //yVector is the same, but top-left to bottom-left. The particle is always a parallelogram. - Q_PROPERTY(VaryingVector* yVector READ yVector WRITE setYVector NOTIFY yVectorChanged) -public: - explicit SuperParticle(QSGItem *parent = 0); - virtual ~SuperParticle(){} - - virtual void load(ParticleData*); - virtual void reload(ParticleData*); - virtual void setCount(int c); - - QUrl image() const { return m_image_name; } - void setImage(const QUrl &image); - - QUrl colortable() const { return m_colortable_name; } - void setColortable(const QUrl &table); - - QUrl sizetable() const { return m_sizetable_name; } - void setSizetable (const QUrl &table); - - QUrl opacitytable() const { return m_opacitytable_name; } - void setOpacitytable(const QUrl &table); - - QColor color() const { return m_color; } - void setColor(const QColor &color); - - qreal colorVariation() const { return m_color_variation; } - void setColorVariation(qreal var); - - qreal renderOpacity() const { return m_render_opacity; } - - qreal alphaVariation() const - { - return m_alphaVariation; - } - - qreal alpha() const - { - return m_alpha; - } - - qreal redVariation() const - { - return m_redVariation; - } - - qreal greenVariation() const - { - return m_greenVariation; - } - - qreal blueVariation() const - { - return m_blueVariation; - } - - qreal rotation() const - { - return m_rotation; - } - - qreal rotationVariation() const - { - return m_rotationVariation; - } - - qreal rotationSpeed() const - { - return m_rotationSpeed; - } - - qreal rotationSpeedVariation() const - { - return m_rotationSpeedVariation; - } - - bool autoRotation() const - { - return m_autoRotation; - } - - VaryingVector* xVector() const - { - return m_xVector; - } - - VaryingVector* yVector() const - { - return m_yVector; - } - -signals: - - void imageChanged(); - void colortableChanged(); - void sizetableChanged(); - void opacitytableChanged(); - - void colorChanged(); - void colorVariationChanged(); - - void particleDurationChanged(); - void alphaVariationChanged(qreal arg); - - void alphaChanged(qreal arg); - - void redVariationChanged(qreal arg); - - void greenVariationChanged(qreal arg); - - void blueVariationChanged(qreal arg); - - void rotationChanged(qreal arg); - - void rotationVariationChanged(qreal arg); - - void rotationSpeedChanged(qreal arg); - - void rotationSpeedVariationChanged(qreal arg); - - void autoRotationChanged(bool arg); - - void xVectorChanged(VaryingVector* arg); - - void yVectorChanged(VaryingVector* arg); - -public slots: - void setAlphaVariation(qreal arg) - { - if (m_alphaVariation != arg) { - m_alphaVariation = arg; - emit alphaVariationChanged(arg); - } - } - - void setAlpha(qreal arg) - { - if (m_alpha != arg) { - m_alpha = arg; - emit alphaChanged(arg); - } - } - - void setRedVariation(qreal arg) - { - if (m_redVariation != arg) { - m_redVariation = arg; - emit redVariationChanged(arg); - } - } - - void setGreenVariation(qreal arg) - { - if (m_greenVariation != arg) { - m_greenVariation = arg; - emit greenVariationChanged(arg); - } - } - - void setBlueVariation(qreal arg) - { - if (m_blueVariation != arg) { - m_blueVariation = arg; - emit blueVariationChanged(arg); - } - } - - void reloadColor(const Color4ub &c, ParticleData* d); - void setRotation(qreal arg) - { - if (m_rotation != arg) { - m_rotation = arg; - emit rotationChanged(arg); - } - } - - void setRotationVariation(qreal arg) - { - if (m_rotationVariation != arg) { - m_rotationVariation = arg; - emit rotationVariationChanged(arg); - } - } - - void setRotationSpeed(qreal arg) - { - if (m_rotationSpeed != arg) { - m_rotationSpeed = arg; - emit rotationSpeedChanged(arg); - } - } - - void setRotationSpeedVariation(qreal arg) - { - if (m_rotationSpeedVariation != arg) { - m_rotationSpeedVariation = arg; - emit rotationSpeedVariationChanged(arg); - } - } - - void autoRotation(bool arg) - { - if (m_autoRotation != arg) { - m_autoRotation = arg; - emit autoRotationChanged(arg); - } - } - - void setXVector(VaryingVector* arg) - { - if (m_xVector != arg) { - m_xVector = arg; - emit xVectorChanged(arg); - } - } - - void setYVector(VaryingVector* arg) - { - if (m_yVector != arg) { - m_yVector = arg; - emit yVectorChanged(arg); - } - } - -protected: - QSGNode *updatePaintNode(QSGNode *, UpdatePaintNodeData *); - void reset(); - void prepareNextFrame(); - QSGGeometryNode* buildParticleNode(); -private: - void vertexCopy(SuperVertex &b,const ParticleVertex& a); - bool m_do_reset; - - QUrl m_image_name; - QUrl m_colortable_name; - QUrl m_sizetable_name; - QUrl m_opacitytable_name; - - - QColor m_color; - qreal m_color_variation; - qreal m_particleDuration; - - QSGGeometryNode *m_node; - SuperMaterial *m_material; - - // derived values... - int m_last_particle; - - qreal m_render_opacity; - qreal m_alphaVariation; - qreal m_alpha; - qreal m_redVariation; - qreal m_greenVariation; - qreal m_blueVariation; - qreal m_rotation; - qreal m_rotationVariation; - qreal m_rotationSpeed; - qreal m_rotationSpeedVariation; - bool m_autoRotation; - VaryingVector* m_xVector; - VaryingVector* m_yVector; -}; - -QT_END_NAMESPACE -QT_END_HEADER -#endif // SUPERPARTICLE_H diff --git a/src/imports/particles/swarmaffector.cpp b/src/imports/particles/swarmaffector.cpp deleted file mode 100644 index 513e8a17a7..0000000000 --- a/src/imports/particles/swarmaffector.cpp +++ /dev/null @@ -1,114 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "swarmaffector.h" -#include "particle.h" -#include <cmath> -#include <QDebug> -QT_BEGIN_NAMESPACE - -SwarmAffector::SwarmAffector(QSGItem *parent) : - ParticleAffector(parent), m_strength(1), m_inited(false) -{ - connect(this, SIGNAL(leadersChanged(QStringList)), - this, SLOT(updateGroupList())); -} - -void SwarmAffector::ensureInit() -{ - if(m_inited) - return; - m_inited = true; - updateGroupList(); - m_lastPos.resize(m_system->count()); -} - -const qreal epsilon = 0.0000001; -bool SwarmAffector::affectParticle(ParticleData *d, qreal dt) -{ - ensureInit(); - QPointF curPos(d->curX(), d->curY()); - if(m_leaders.isEmpty() || m_leadGroups.contains(d->group)){ - m_lastPos[d->systemIndex] = curPos; - if(m_leadGroups.contains(d->group)) - return false; - } - - qreal fx = 0.0; - qreal fy = 0.0; - for(int i=0; i < m_lastPos.count(); i++){ - if(m_lastPos[i].isNull()) - continue; - QPointF diff = m_lastPos[i] - curPos; - qreal r = sqrt(diff.x() * diff.x() + diff.y() * diff.y()); - if(r == 0.0) - continue; - qreal f = m_strength * (1/r); - if(f < epsilon) - continue; - qreal theta = atan2(diff.y(), diff.x()); - fx += cos(theta) * f; - fy += sin(theta) * f; - } - if(!fx && !fy) - return false; - d->setInstantaneousSX(d->curSX()+fx * dt); - d->setInstantaneousSY(d->curSY()+fy * dt); - return true; -} - -void SwarmAffector::reset(int systemIdx) -{ - if(!m_system) - return; - if(!m_lastPos[systemIdx].isNull()) - m_lastPos[systemIdx] = QPointF(); -} - -void SwarmAffector::updateGroupList() -{ - if(!m_system || !m_system->m_initialized) - return; - m_leadGroups.clear(); - foreach(const QString &s, m_leaders) - m_leadGroups << m_system->m_groupIds[s]; -} -QT_END_NAMESPACE diff --git a/src/imports/particles/swarmaffector.h b/src/imports/particles/swarmaffector.h deleted file mode 100644 index 63f77c9294..0000000000 --- a/src/imports/particles/swarmaffector.h +++ /dev/null @@ -1,116 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef SWARMAFFECTOR_H -#define SWARMAFFECTOR_H -#include "particleaffector.h" -#include <QDeclarativeListProperty> - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - - -class ParticleType; - -class SwarmAffector : public ParticleAffector -{ - Q_OBJECT - Q_PROPERTY(qreal strength READ strength WRITE setStrength NOTIFY strengthChanged) - Q_PROPERTY(QStringList leaders READ leaders WRITE setLeaders NOTIFY leadersChanged) -public: - explicit SwarmAffector(QSGItem *parent = 0); - virtual bool affectParticle(ParticleData *d, qreal dt); - virtual void reset(int systemIdx); - - qreal strength() const - { - return m_strength; - } - - QStringList leaders() const - { - return m_leaders; - } - -signals: - - void strengthChanged(qreal arg); - - void leadersChanged(QStringList arg); - -public slots: - -void setStrength(qreal arg) -{ - if (m_strength != arg) { - m_strength = arg; - emit strengthChanged(arg); - } -} - -void setLeaders(QStringList arg) -{ - if (m_leaders != arg) { - m_leaders = arg; - emit leadersChanged(arg); - } -} - -private: - void ensureInit(); - void mapUpdate(int idx, qreal strength); - QVector<QPointF> m_lastPos; - qreal m_strength; - bool m_inited; - QStringList m_leaders; - QSet<int> m_leadGroups; -private slots: - void updateGroupList(); -}; - -QT_END_NAMESPACE - -QT_END_HEADER - -#endif // SWARMAFFECTOR_H diff --git a/src/imports/particles/toggleaffector.cpp b/src/imports/particles/toggleaffector.cpp deleted file mode 100644 index 5e03b17684..0000000000 --- a/src/imports/particles/toggleaffector.cpp +++ /dev/null @@ -1,59 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "toggleaffector.h" - -QT_BEGIN_NAMESPACE - -ToggleAffector::ToggleAffector(QObject *parent) : - ParticleAffector(parent) -{ -} - -bool ToggleAffector::affect(ParticleData *d, qreal dt) -{ - if(m_affecting) - return m_affector->affect(d, dt); - else - return false; -} - -QT_END_NAMESPACE diff --git a/src/imports/particles/toggleaffector.h b/src/imports/particles/toggleaffector.h deleted file mode 100644 index 08e7c0e2eb..0000000000 --- a/src/imports/particles/toggleaffector.h +++ /dev/null @@ -1,102 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef TOGGLEAFFECTOR_H -#define TOGGLEAFFECTOR_H -#include "particleaffector.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class ToggleAffector : public ParticleAffector -{ - Q_OBJECT - Q_PROPERTY(bool affecting READ affecting WRITE setAffecting NOTIFY affectingChanged) - Q_PROPERTY(ParticleAffector* affector READ affector WRITE affector NOTIFY affectorChanged) - Q_CLASSINFO("DefaultProperty", "affector") - -public: - explicit ToggleAffector(QObject *parent = 0); - virtual bool affect(ParticleData *d, qreal dt); - bool affecting() const - { - return m_affecting; - } - - ParticleAffector* affector() const - { - return m_affector; - } - -signals: - - void affectingChanged(bool arg); - - void affectorChanged(ParticleAffector* arg); - -public slots: -void setAffecting(bool arg) -{ - if (m_affecting != arg) { - m_affecting = arg; - emit affectingChanged(arg); - } -} - -void affector(ParticleAffector* arg) -{ - if (m_affector != arg) { - m_affector = arg; - emit affectorChanged(arg); - } -} - -private: -bool m_affecting; -ParticleAffector* m_affector; -}; - -QT_END_NAMESPACE -QT_END_HEADER -#endif // TOGGLEAFFECTOR_H diff --git a/src/imports/particles/zoneaffector.cpp b/src/imports/particles/zoneaffector.cpp deleted file mode 100644 index cb7adca795..0000000000 --- a/src/imports/particles/zoneaffector.cpp +++ /dev/null @@ -1,68 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#include "zoneaffector.h" -#include <QDebug> - -QT_BEGIN_NAMESPACE - -ZoneAffector::ZoneAffector(QObject *parent) : - ParticleAffector(parent), m_x(0), m_y(0), m_width(0), m_height(0), m_affector(0) -{ -} - -bool ZoneAffector::affect(ParticleData *d, qreal dt) -{ - if(!m_affector) - return false; - qreal x = d->curX(); - qreal y = d->curY(); - if(x >= m_x && x <= m_x+m_width && y >= m_y && y <= m_y+m_height) - return m_affector->affect(d, dt); - return false; -} - -void ZoneAffector::reset(int systemIdx) -{ - if(m_affector) - m_affector->reset(systemIdx); -} -QT_END_NAMESPACE diff --git a/src/imports/particles/zoneaffector.h b/src/imports/particles/zoneaffector.h deleted file mode 100644 index 8c17cedba2..0000000000 --- a/src/imports/particles/zoneaffector.h +++ /dev/null @@ -1,159 +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 Declarative module of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** No Commercial Usage -** This file contains pre-release code and may not be distributed. -** You may use this file in accordance with the terms and conditions -** contained in the Technology Preview License Agreement accompanying -** this package. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 2.1 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 2.1 requirements -** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -** -** -** -** -** -** -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef ZONEAFFECTOR_H -#define ZONEAFFECTOR_H -#include "particleaffector.h" - -QT_BEGIN_HEADER - -QT_BEGIN_NAMESPACE - -QT_MODULE(Declarative) - -class ZoneAffector : public ParticleAffector -{ - Q_OBJECT - //TODO: Can we get anchors in here? consider becoming an un-parented QSGItem? - Q_PROPERTY(qreal x READ x WRITE setX NOTIFY xChanged); - Q_PROPERTY(qreal y READ y WRITE setY NOTIFY yChanged); - Q_PROPERTY(qreal width READ width WRITE setWidth NOTIFY widthChanged); - Q_PROPERTY(qreal height READ height WRITE setHeight NOTIFY heightChanged); - Q_PROPERTY(ParticleAffector* affector READ affector WRITE affector NOTIFY affectorChanged) - Q_CLASSINFO("DefaultProperty", "affector") -public: - explicit ZoneAffector(QObject *parent = 0); - - virtual bool affect(ParticleData *d, qreal dt); - virtual void reset(int systemIdx); - - ParticleAffector* affector() const - { - return m_affector; - } - - qreal x() const - { - return m_x; - } - - qreal y() const - { - return m_y; - } - - qreal width() const - { - return m_width; - } - - qreal height() const - { - return m_height; - } - -signals: - - - void affectorChanged(ParticleAffector* arg); - - void xChanged(qreal arg); - - void yChanged(qreal arg); - - void widthChanged(qreal arg); - - void heightChanged(qreal arg); - -public slots: - - -void affector(ParticleAffector* arg) -{ - if (m_affector != arg) { - m_affector = arg; - emit affectorChanged(arg); - } -} - -void setX(qreal arg) -{ - if (m_x != arg) { - m_x = arg; - emit xChanged(arg); - } -} - -void setY(qreal arg) -{ - if (m_y != arg) { - m_y = arg; - emit yChanged(arg); - } -} - -void setWidth(qreal arg) -{ - if (m_width != arg) { - m_width = arg; - emit widthChanged(arg); - } -} - -void setHeight(qreal arg) -{ - if (m_height != arg) { - m_height = arg; - emit heightChanged(arg); - } -} - -private: -qreal m_x; -qreal m_y; -qreal m_width; -qreal m_height; -ParticleAffector* m_affector; -}; - -QT_END_NAMESPACE -QT_END_HEADER -#endif // ZONEAFFECTOR_H diff --git a/src/imports/qimportbase.pri b/src/imports/qimportbase.pri index 8647f05cb9..405af24ece 100644 --- a/src/imports/qimportbase.pri +++ b/src/imports/qimportbase.pri @@ -1,6 +1,6 @@ load(qt_module) -symbian:include($$QT_SOURCE_TREE/src/plugins/qpluginbase.pri) +symbian:load(qt_plugin) TEMPLATE = lib CONFIG += qt plugin @@ -27,7 +27,7 @@ QMAKE_EXTRA_COMPILERS += copy2build TARGET = $$qtLibraryTarget($$TARGET) contains(QT_CONFIG, reduce_exports):CONFIG += hide_symbols -include($$QT_SOURCE_TREE/src/qt_targets.pri) +load(qt_targets) wince*:LIBS += $$QMAKE_LIBS_GUI diff --git a/src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro b/src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro index d7c2061556..385326a806 100644 --- a/src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro +++ b/src/plugins/qmltooling/qmldbg_inspector/qmldbg_inspector.pro @@ -3,7 +3,7 @@ load(qt_module) TARGET = qmldbg_inspector QT += declarative-private -include($$QT_SOURCE_TREE/src/plugins/qpluginbase.pri) +load(qt_plugin) DESTDIR = $$QT.declarative.plugins/qmltooling QTDIR_build:REQUIRES += "contains(QT_CONFIG, declarative)" diff --git a/src/plugins/qmltooling/qmldbg_ost/qmldbg_ost.pro b/src/plugins/qmltooling/qmldbg_ost/qmldbg_ost.pro index 274888940a..a12fac5da3 100644 --- a/src/plugins/qmltooling/qmldbg_ost/qmldbg_ost.pro +++ b/src/plugins/qmltooling/qmldbg_ost/qmldbg_ost.pro @@ -1,7 +1,7 @@ TARGET = qmldbg_ost QT += declarative network -include(../../qpluginbase.pri) +load(qt_plugin) QTDIR_build:DESTDIR = $$QT_BUILD_TREE/plugins/qmltooling QTDIR_build:REQUIRES += "contains(QT_CONFIG, declarative)" diff --git a/src/plugins/qmltooling/qmldbg_tcp/qmldbg_tcp.pro b/src/plugins/qmltooling/qmldbg_tcp/qmldbg_tcp.pro index e5e28a4c38..c5f8f90cd6 100644 --- a/src/plugins/qmltooling/qmldbg_tcp/qmldbg_tcp.pro +++ b/src/plugins/qmltooling/qmldbg_tcp/qmldbg_tcp.pro @@ -3,7 +3,7 @@ load(qt_module) TARGET = qmldbg_tcp QT += declarative-private network -include($$QT_SOURCE_TREE/src/plugins/qpluginbase.pri) +load(qt_plugin) DESTDIR = $$QT.declarative.plugins/qmltooling QTDIR_build:REQUIRES += "contains(QT_CONFIG, declarative)" diff --git a/src/qmltest/qmltest.pro b/src/qmltest/qmltest.pro index 0c3b7c825d..1c2bfd0ab0 100644 --- a/src/qmltest/qmltest.pro +++ b/src/qmltest/qmltest.pro @@ -11,7 +11,7 @@ QT += testlib-private declarative script testlib DEFINES += QT_BUILD_QUICK_TEST_LIB QT_NO_URL_CAST_FROM_STRING -include($$QT_SOURCE_TREE/src/qbase.pri) +load(qt_module_config) # Install qmltestcase.prf into the Qt mkspecs so that "CONFIG += qmltestcase" # can be used in customer applications to build against QtQuickTest. diff --git a/tests/auto/declarative/qdeclarativeexpression/data/scriptString.qml b/tests/auto/declarative/qdeclarativeexpression/data/scriptString.qml new file mode 100644 index 0000000000..edd4048cc1 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeexpression/data/scriptString.qml @@ -0,0 +1,9 @@ +import QtQuick 1.0 +import Test 1.0 + +TestObject { + property int value1: 10 + property int value2: 5 + scriptString: value1 + value2 + scriptStringError: value3 * 5 +} diff --git a/tests/auto/declarative/qdeclarativeexpression/qdeclarativeexpression.pro b/tests/auto/declarative/qdeclarativeexpression/qdeclarativeexpression.pro new file mode 100644 index 0000000000..8c73a7cb87 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeexpression/qdeclarativeexpression.pro @@ -0,0 +1,17 @@ +load(qttest_p4) +contains(QT_CONFIG,declarative): QT += declarative gui +macx:CONFIG -= app_bundle + +SOURCES += tst_qdeclarativeexpression.cpp + +symbian: { + importFiles.files = data + importFiles.path = . + DEPLOYMENT += importFiles +} else { + DEFINES += SRCDIR=\\\"$$PWD\\\" +} + +CONFIG += parallel_test + +QT += core-private gui-private declarative-private diff --git a/tests/auto/declarative/qdeclarativeexpression/tst_qdeclarativeexpression.cpp b/tests/auto/declarative/qdeclarativeexpression/tst_qdeclarativeexpression.cpp new file mode 100644 index 0000000000..aa8c12e332 --- /dev/null +++ b/tests/auto/declarative/qdeclarativeexpression/tst_qdeclarativeexpression.cpp @@ -0,0 +1,115 @@ +/**************************************************************************** +** +** 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 test suite of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:LGPL$ +** GNU Lesser General Public License Usage +** This file may be used under the terms of the GNU Lesser General Public +** License version 2.1 as published by the Free Software Foundation and +** appearing in the file LICENSE.LGPL included in the packaging of this +** file. Please review the following information to ensure the GNU Lesser +** General Public License version 2.1 requirements will be met: +** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. +** +** In addition, as a special exception, Nokia gives you certain additional +** rights. These rights are described in the Nokia Qt LGPL Exception +** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. +** +** GNU General Public License Usage +** Alternatively, this file may be used under the terms of the GNU General +** Public License version 3.0 as published by the Free Software Foundation +** and appearing in the file LICENSE.GPL included in the packaging of this +** file. Please review the following information to ensure the GNU General +** Public License version 3.0 requirements will be met: +** http://www.gnu.org/copyleft/gpl.html. +** +** Other Usage +** Alternatively, this file may be used in accordance with the terms and +** conditions contained in a signed written agreement between you and Nokia. +** +** +** +** +** +** $QT_END_LICENSE$ +** +****************************************************************************/ + +#include <qtest.h> +#include <QtDeclarative/qdeclarativeengine.h> +#include <QtDeclarative/qdeclarativecomponent.h> +#include <QtDeclarative/qdeclarativeexpression.h> +#include <QtDeclarative/qdeclarativescriptstring.h> + +#ifdef Q_OS_SYMBIAN +// In Symbian OS test data is located in applications private dir +#define SRCDIR "." +#endif + +class tst_qdeclarativeexpression : public QObject +{ + Q_OBJECT +public: + tst_qdeclarativeexpression() {} + +private slots: + void scriptString(); +}; + +class TestObject : public QObject +{ + Q_OBJECT + Q_PROPERTY(QDeclarativeScriptString scriptString READ scriptString WRITE setScriptString) + Q_PROPERTY(QDeclarativeScriptString scriptStringError READ scriptStringError WRITE setScriptStringError) +public: + TestObject(QObject *parent = 0) : QObject(parent) {} + + QDeclarativeScriptString scriptString() const { return m_scriptString; } + void setScriptString(QDeclarativeScriptString scriptString) { m_scriptString = scriptString; } + + QDeclarativeScriptString scriptStringError() const { return m_scriptStringError; } + void setScriptStringError(QDeclarativeScriptString scriptString) { m_scriptStringError = scriptString; } + +private: + QDeclarativeScriptString m_scriptString; + QDeclarativeScriptString m_scriptStringError; +}; + +QML_DECLARE_TYPE(TestObject) + +void tst_qdeclarativeexpression::scriptString() +{ + qmlRegisterType<TestObject>("Test", 1, 0, "TestObject"); + + QDeclarativeEngine engine; + QDeclarativeComponent c(&engine, QUrl::fromLocalFile(SRCDIR "/data/scriptString.qml")); + TestObject *testObj = qobject_cast<TestObject*>(c.create()); + QVERIFY(testObj != 0); + + QDeclarativeScriptString script = testObj->scriptString(); + QCOMPARE(script.script(), QLatin1String("value1 + value2")); + + QDeclarativeExpression expression(script); + QVariant value = expression.evaluate(); + QCOMPARE(value.toInt(), 15); + + QDeclarativeScriptString scriptError = testObj->scriptStringError(); + QCOMPARE(scriptError.script(), QLatin1String("value3 * 5")); + + //verify that the expression has the correct error location information + QDeclarativeExpression expressionError(scriptError); + QVariant valueError = expressionError.evaluate(); + QVERIFY(!valueError.isValid()); + QVERIFY(expressionError.hasError()); + QDeclarativeError error = expressionError.error(); + QCOMPARE(error.url(), c.url()); + QCOMPARE(error.line(), 8); +} + +QTEST_MAIN(tst_qdeclarativeexpression) + +#include "tst_qdeclarativeexpression.moc" |