summaryrefslogtreecommitdiffstats
path: root/basicsuite/Shader Effects
diff options
context:
space:
mode:
Diffstat (limited to 'basicsuite/Shader Effects')
-rw-r--r--basicsuite/Shader Effects/BGColorPicker.qml132
-rw-r--r--basicsuite/Shader Effects/CheckBox.qml83
-rwxr-xr-xbasicsuite/Shader Effects/ColorPicker.qml272
-rwxr-xr-xbasicsuite/Shader Effects/ColorSlider.qml132
-rw-r--r--basicsuite/Shader Effects/Control.qml111
-rw-r--r--basicsuite/Shader Effects/ImageSource.qml71
-rw-r--r--basicsuite/Shader Effects/Label.qml80
-rw-r--r--basicsuite/Shader Effects/LevelSlider.qml201
-rw-r--r--basicsuite/Shader Effects/PositionPicker.qml72
-rw-r--r--basicsuite/Shader Effects/ProgressBar.qml113
-rw-r--r--basicsuite/Shader Effects/RadioButton.qml81
-rw-r--r--basicsuite/Shader Effects/RadioButtonColumn.qml70
-rw-r--r--basicsuite/Shader Effects/RgbaColorPicker.qml115
-rw-r--r--basicsuite/Shader Effects/Slider.qml143
-rw-r--r--basicsuite/Shader Effects/TestBedModel.qml70
-rw-r--r--basicsuite/Shader Effects/TestBlend.qml216
-rw-r--r--basicsuite/Shader Effects/TestBrightnessContrast.qml108
-rw-r--r--basicsuite/Shader Effects/TestCaseTemplate.qml142
-rw-r--r--basicsuite/Shader Effects/TestColorOverlay.qml100
-rw-r--r--basicsuite/Shader Effects/TestColorize.qml102
-rw-r--r--basicsuite/Shader Effects/TestConicalGradient.qml146
-rw-r--r--basicsuite/Shader Effects/TestDesaturate.qml100
-rw-r--r--basicsuite/Shader Effects/TestDirectionalBlur.qml124
-rw-r--r--basicsuite/Shader Effects/TestDisplace.qml143
-rw-r--r--basicsuite/Shader Effects/TestDropShadow.qml155
-rw-r--r--basicsuite/Shader Effects/TestFastBlur.qml106
-rw-r--r--basicsuite/Shader Effects/TestGammaAdjust.qml101
-rw-r--r--basicsuite/Shader Effects/TestGaussianBlur.qml123
-rw-r--r--basicsuite/Shader Effects/TestGlow.qml137
-rw-r--r--basicsuite/Shader Effects/TestHueSaturation.qml117
-rw-r--r--basicsuite/Shader Effects/TestInnerShadow.qml155
-rw-r--r--basicsuite/Shader Effects/TestLevelAdjust.qml161
-rw-r--r--basicsuite/Shader Effects/TestLinearGradient.qml156
-rw-r--r--basicsuite/Shader Effects/TestMaskedBlur.qml153
-rw-r--r--basicsuite/Shader Effects/TestOpacityMask.qml95
-rw-r--r--basicsuite/Shader Effects/TestRadialBlur.qml132
-rw-r--r--basicsuite/Shader Effects/TestRadialGradient.qml161
-rw-r--r--basicsuite/Shader Effects/TestRectangularGlow.qml138
-rw-r--r--basicsuite/Shader Effects/TestRecursiveBlur.qml119
-rw-r--r--basicsuite/Shader Effects/TestThresholdMask.qml114
-rw-r--r--basicsuite/Shader Effects/TestZoomBlur.qml132
-rw-r--r--basicsuite/Shader Effects/description.txt3
-rw-r--r--basicsuite/Shader Effects/images/background.pngbin0 -> 149 bytes
-rwxr-xr-xbasicsuite/Shader Effects/images/bug.jpgbin0 -> 376684 bytes
-rw-r--r--basicsuite/Shader Effects/images/butterfly.pngbin0 -> 36912 bytes
-rw-r--r--basicsuite/Shader Effects/images/checkbox_inner.pngbin0 -> 236 bytes
-rw-r--r--basicsuite/Shader Effects/images/checkbox_outer.pngbin0 -> 227 bytes
-rw-r--r--basicsuite/Shader Effects/images/checker.pngbin0 -> 1202 bytes
-rw-r--r--basicsuite/Shader Effects/images/collapse.pngbin0 -> 336 bytes
-rw-r--r--basicsuite/Shader Effects/images/color_selection_hl.pngbin0 -> 533 bytes
-rw-r--r--basicsuite/Shader Effects/images/color_selection_mask.pngbin0 -> 231 bytes
-rw-r--r--basicsuite/Shader Effects/images/expand.pngbin0 -> 343 bytes
-rw-r--r--basicsuite/Shader Effects/images/fog.pngbin0 -> 225653 bytes
-rwxr-xr-xbasicsuite/Shader Effects/images/glass_normal.pngbin0 -> 13489 bytes
-rw-r--r--basicsuite/Shader Effects/images/group_bottom.pngbin0 -> 157 bytes
-rw-r--r--basicsuite/Shader Effects/images/group_top.pngbin0 -> 167 bytes
-rw-r--r--basicsuite/Shader Effects/images/icon_blend.pngbin0 -> 2940 bytes
-rw-r--r--basicsuite/Shader Effects/images/icon_blur.pngbin0 -> 303 bytes
-rw-r--r--basicsuite/Shader Effects/images/icon_color.pngbin0 -> 3021 bytes
-rw-r--r--basicsuite/Shader Effects/images/icon_distortion.pngbin0 -> 229 bytes
-rw-r--r--basicsuite/Shader Effects/images/icon_drop_shadow.pngbin0 -> 160 bytes
-rw-r--r--basicsuite/Shader Effects/images/icon_glow.pngbin0 -> 285 bytes
-rw-r--r--basicsuite/Shader Effects/images/icon_gradient.pngbin0 -> 182 bytes
-rw-r--r--basicsuite/Shader Effects/images/icon_mask.pngbin0 -> 2837 bytes
-rw-r--r--basicsuite/Shader Effects/images/icon_motion_blur.pngbin0 -> 304 bytes
-rw-r--r--basicsuite/Shader Effects/images/radiobutton_inner.pngbin0 -> 274 bytes
-rw-r--r--basicsuite/Shader Effects/images/radiobutton_outer.pngbin0 -> 347 bytes
-rw-r--r--basicsuite/Shader Effects/images/slider_handle.pngbin0 -> 409 bytes
-rwxr-xr-xbasicsuite/Shader Effects/images/slider_handle_b.pngbin0 -> 1031 bytes
-rwxr-xr-xbasicsuite/Shader Effects/images/slider_handle_black.pngbin0 -> 390 bytes
-rwxr-xr-xbasicsuite/Shader Effects/images/slider_handle_g.pngbin0 -> 1851 bytes
-rwxr-xr-xbasicsuite/Shader Effects/images/slider_handle_gray.pngbin0 -> 401 bytes
-rw-r--r--basicsuite/Shader Effects/images/slider_handle_pressed.pngbin0 -> 387 bytes
-rwxr-xr-xbasicsuite/Shader Effects/images/slider_handle_r.pngbin0 -> 1842 bytes
-rwxr-xr-xbasicsuite/Shader Effects/images/slider_handle_white.pngbin0 -> 373 bytes
-rw-r--r--basicsuite/Shader Effects/images/slider_track.pngbin0 -> 198 bytes
-rw-r--r--basicsuite/Shader Effects/images/slider_track_filled.pngbin0 -> 153 bytes
-rwxr-xr-xbasicsuite/Shader Effects/images/slider_track_left.pngbin0 -> 1163 bytes
-rwxr-xr-xbasicsuite/Shader Effects/images/slider_track_right.pngbin0 -> 1149 bytes
-rw-r--r--basicsuite/Shader Effects/images/title.pngbin0 -> 160 bytes
-rw-r--r--basicsuite/Shader Effects/images/workarea_left.pngbin0 -> 123 bytes
-rw-r--r--basicsuite/Shader Effects/images/workarea_right.pngbin0 -> 157 bytes
-rw-r--r--basicsuite/Shader Effects/main.qml168
-rw-r--r--basicsuite/Shader Effects/preview_l.jpgbin0 -> 24373 bytes
84 files changed, 5353 insertions, 0 deletions
diff --git a/basicsuite/Shader Effects/BGColorPicker.qml b/basicsuite/Shader Effects/BGColorPicker.qml
new file mode 100644
index 0000000..7ee85bc
--- /dev/null
+++ b/basicsuite/Shader Effects/BGColorPicker.qml
@@ -0,0 +1,132 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Label {
+ id: bgColorPicker
+ property color color: "#242424"
+ caption: "Background color"
+
+ Row {
+ id: selection
+ x: -3
+ y: 3
+ spacing: 4
+ Rectangle { width: 16; height: 16; color: "#ffffff"
+ Image {
+ anchors.centerIn: parent
+ source: "images/color_selection_mask.png"
+ }
+ MouseArea {
+ anchors.fill: parent
+ anchors.margins: -3
+ onClicked: {
+ bgColorPicker.color = parent.color
+ highlight.x = parent.x - 3
+ }
+ }
+ }
+ Rectangle { width: 16; height: 16; color: "#ababab"
+ Image {
+ anchors.centerIn: parent
+ source: "images/color_selection_mask.png"
+ }
+ MouseArea {
+ anchors.fill: parent
+ anchors.margins: -3
+ onClicked: {
+ bgColorPicker.color = parent.color
+ highlight.x = parent.x - 3
+ }
+ }
+ }
+ Rectangle { id: initial; width: 16; height: 16; color: "#242424"
+ Image {
+ anchors.centerIn: parent
+ source: "images/color_selection_mask.png"
+ }
+ MouseArea {
+ anchors.fill: parent
+ anchors.margins: -3
+ onClicked: {
+ bgColorPicker.color = parent.color
+ highlight.x = parent.x - 3
+ }
+ }
+ }
+ Rectangle { width: 16; height: 16; color: "#000000"
+ Image {
+ anchors.centerIn: parent
+ source: "images/color_selection_mask.png"
+ }
+ MouseArea {
+ anchors.fill: parent
+ anchors.margins: -3
+ onClicked: {
+ bgColorPicker.color = parent.color
+ highlight.x = parent.x - 3
+ }
+ }
+ }
+ Image { source: "images/background.png"
+ width: 16; height: 16;
+ Image {
+ anchors.centerIn: parent
+ source: "images/color_selection_mask.png"
+ }
+ MouseArea {
+ anchors.fill: parent
+ anchors.margins: -3
+ onClicked: {
+ bgColorPicker.color = "#010101"
+ highlight.x = parent.x - 3
+ }
+ }
+ }
+ }
+
+ Image {
+ id: highlight
+ source: "images/color_selection_hl.png"
+ x: initial.x - (highlight.width - initial.width) * 0.5
+ y: selection.y - (highlight.height - selection.height) * 0.5
+ }
+}
diff --git a/basicsuite/Shader Effects/CheckBox.qml b/basicsuite/Shader Effects/CheckBox.qml
new file mode 100644
index 0000000..0c675a4
--- /dev/null
+++ b/basicsuite/Shader Effects/CheckBox.qml
@@ -0,0 +1,83 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: checkBox
+ property string caption: ""
+ property bool selected: true
+ property bool pressed: mouse.pressed
+ anchors {left: parent.left; right: parent.right}
+ height: 20
+
+ Text {
+ id: captionText
+ width: 110
+ anchors.verticalCenter: parent.verticalCenter
+ horizontalAlignment: Text.AlignRight
+ text: checkBox.caption + ':'
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#B3B3B3"
+ }
+
+ Image {
+ id: button
+ anchors {left: captionText.right; leftMargin: 5; verticalCenter: parent.verticalCenter}
+ source: "images/checkbox_outer.png"
+ smooth: true
+ Image {
+ id: buttonFill
+ anchors.centerIn: parent
+ source: "images/checkbox_inner.png"
+ smooth: true
+ visible: checkBox.selected
+ }
+ }
+
+ MouseArea {
+ id: mouse
+ anchors.fill: parent
+ anchors.rightMargin: 160
+ onClicked: checkBox.selected = !checkBox.selected
+ preventStealing: true
+ }
+}
diff --git a/basicsuite/Shader Effects/ColorPicker.qml b/basicsuite/Shader Effects/ColorPicker.qml
new file mode 100755
index 0000000..30b77b9
--- /dev/null
+++ b/basicsuite/Shader Effects/ColorPicker.qml
@@ -0,0 +1,272 @@
+/*****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Add-On Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: root
+ property color color: Qt.hsla(hue, saturation, lightness, alpha)
+ property alias hue: hueSlider.value
+ property alias saturation: saturationSlider.value
+ property alias lightness: lightnessSlider.value
+ property alias alpha: alphaSlider.value
+ property bool showAlphaSlider: true
+
+ width: parent.width
+ height: 100
+
+ Image {
+ anchors.fill: map
+ source: "images/background.png"
+ fillMode: Image.Tile
+ }
+
+ Rectangle {
+ id: colorBox
+ anchors.fill: map
+ color: root.color
+ }
+
+ ShaderEffect {
+ id: map
+ anchors.left: parent.left
+ anchors.leftMargin: 10
+ anchors.top: parent.top
+ anchors.topMargin: 5
+ width: 68
+ height: width
+ opacity: 0.01
+ property real hue: root.hue
+
+ fragmentShader: "
+ varying mediump vec2 qt_TexCoord0;
+ uniform highp float qt_Opacity;
+ uniform highp float hue;
+
+ highp float hueToIntensity(highp float v1, highp float v2, highp float h) {
+ h = fract(h);
+ if (h < 1.0 / 6.0)
+ return v1 + (v2 - v1) * 6.0 * h;
+ else if (h < 1.0 / 2.0)
+ return v2;
+ else if (h < 2.0 / 3.0)
+ return v1 + (v2 - v1) * 6.0 * (2.0 / 3.0 - h);
+
+ return v1;
+ }
+
+ highp vec3 HSLtoRGB(highp vec3 color) {
+ highp float h = color.x;
+ highp float l = color.z;
+ highp float s = color.y;
+
+ if (s < 1.0 / 256.0)
+ return vec3(l, l, l);
+
+ highp float v1;
+ highp float v2;
+ if (l < 0.5)
+ v2 = l * (1.0 + s);
+ else
+ v2 = (l + s) - (s * l);
+
+ v1 = 2.0 * l - v2;
+
+ highp float d = 1.0 / 3.0;
+ highp float r = hueToIntensity(v1, v2, h + d);
+ highp float g = hueToIntensity(v1, v2, h);
+ highp float b = hueToIntensity(v1, v2, h - d);
+ return vec3(r, g, b);
+ }
+
+ void main() {
+ lowp vec4 c = vec4(1.0);
+ c.rgb = HSLtoRGB(vec3(hue, 1.0 - qt_TexCoord0.t, qt_TexCoord0.s));
+ gl_FragColor = c * qt_Opacity;
+ }
+ "
+
+ MouseArea {
+ id: mapMouseArea
+ anchors.fill: parent
+ hoverEnabled: true
+ preventStealing: true
+ onPositionChanged: {
+ if (pressed) {
+ var xx = Math.max(0, Math.min(mouse.x, parent.width))
+ var yy = Math.max(0, Math.min(mouse.y, parent.height))
+ root.saturation = 1.0 - yy / parent.height
+ root.lightness = xx / parent.width
+ }
+ }
+ onPressed: positionChanged(mouse)
+
+ onEntered: map.opacity = 1
+ onReleased: {
+ if (mouse.x < 0 || mouse.x > parent.width || mouse.y < 0 || mouse.y > parent.height) {
+ map.opacity = 0.01;
+ }
+ }
+ onExited: {
+ if (!pressed) {
+ map.opacity = 0.01;
+ }
+ }
+ }
+
+ Image {
+ id: crosshair
+ source: "images/slider_handle.png"
+ x: root.lightness * parent.width - width / 2
+ y: (1.0 - root.saturation) * parent.height - height / 2
+ }
+ }
+
+ Column {
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ ColorSlider {
+ id: hueSlider
+ minimum: 0.0
+ maximum: 1.0
+ value: 0.5
+ caption: "H"
+ trackItem: Rectangle {
+ width: parent.height
+ height: parent.width - 10
+ color: "red"
+ rotation: -90
+ transformOrigin: Item.TopLeft
+ y: width
+ x: 5
+ gradient: Gradient {
+ GradientStop {position: 0.000; color: Qt.rgba(1, 0, 0, 1)}
+ GradientStop {position: 0.167; color: Qt.rgba(1, 1, 0, 1)}
+ GradientStop {position: 0.333; color: Qt.rgba(0, 1, 0, 1)}
+ GradientStop {position: 0.500; color: Qt.rgba(0, 1, 1, 1)}
+ GradientStop {position: 0.667; color: Qt.rgba(0, 0, 1, 1)}
+ GradientStop {position: 0.833; color: Qt.rgba(1, 0, 1, 1)}
+ GradientStop {position: 1.000; color: Qt.rgba(1, 0, 0, 1)}
+ }
+ }
+ }
+
+ ColorSlider {
+ id: saturationSlider
+ minimum: 0.0
+ maximum: 1.0
+ value: 1.0
+ caption: "S"
+ handleOpacity: 1.5 - map.opacity
+ trackItem: Rectangle {
+ width: parent.height
+ height: parent.width - 10
+ color: "red"
+ rotation: -90
+ transformOrigin: Item.TopLeft
+ y: width
+ x: 5
+ gradient: Gradient {
+ GradientStop { position: 0; color: Qt.hsla(root.hue, 0.0, root.lightness, 1.0) }
+ GradientStop { position: 1; color: Qt.hsla(root.hue, 1.0, root.lightness, 1.0) }
+ }
+ }
+ }
+
+ ColorSlider {
+ id: lightnessSlider
+ minimum: 0.0
+ maximum: 1.0
+ value: 0.5
+ caption: "L"
+ handleOpacity: 1.5 - map.opacity
+ trackItem: Rectangle {
+ width: parent.height
+ height: parent.width - 10
+ color: "red"
+ rotation: -90
+ transformOrigin: Item.TopLeft
+ y: width
+ x: 5
+ gradient: Gradient {
+ GradientStop { position: 0; color: 'black' }
+ GradientStop { position: 0.5; color: Qt.hsla(root.hue, root.saturation, 0.5, 1.0) }
+ GradientStop { position: 1; color: 'white' }
+ }
+ }
+ }
+
+ ColorSlider {
+ id: alphaSlider
+ minimum: 0.0
+ maximum: 1.0
+ value: 1.0
+ caption: "A"
+ opacity: showAlphaSlider ? 1.0 : 0.0
+ trackItem:Item {
+ anchors.fill: parent
+ Image {
+ anchors {fill: parent; leftMargin: 5; rightMargin: 5}
+ source: "images/background.png"
+ fillMode: Image.TileHorizontally
+ }
+ Rectangle {
+ width: parent.height
+ height: parent.width - 10
+ color: "red"
+ rotation: -90
+ transformOrigin: Item.TopLeft
+ y: width
+ x: 5
+ gradient: Gradient {
+ GradientStop { position: 0; color: "transparent" }
+ GradientStop { position: 1; color: Qt.hsla(root.hue, root.saturation, root.lightness, 1.0) }
+ }
+ }
+ }
+ }
+
+ Label {
+ caption: "ARGB"
+ text: "#" + ((Math.ceil(root.alpha * 255) + 256).toString(16).substr(1, 2) + root.color.toString().substr(1, 6)).toUpperCase();
+ }
+ }
+}
diff --git a/basicsuite/Shader Effects/ColorSlider.qml b/basicsuite/Shader Effects/ColorSlider.qml
new file mode 100755
index 0000000..1dc2145
--- /dev/null
+++ b/basicsuite/Shader Effects/ColorSlider.qml
@@ -0,0 +1,132 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: colorSlider
+
+ property real value: 1
+ property real maximum: 1
+ property real minimum: 0
+ property string caption: ""
+ property bool pressed: mouseArea.pressed
+ property bool integer: false
+ property string handleSource: "images/slider_handle.png"
+ property real handleOpacity: 1.0
+ property alias trackItem: track.children
+
+ width: parent.width
+ height: 20
+
+ function updatePos() {
+ if (maximum > minimum) {
+ var pos = (track.width - 10) * (value - minimum) / (maximum - minimum) + 5;
+ return Math.min(Math.max(pos, 5), track.width - 5) - 10;
+ } else {
+ return 5;
+ }
+ }
+
+ Text {
+ id: captionText
+ width: 110
+ anchors.verticalCenter: parent.verticalCenter
+ horizontalAlignment: Text.AlignRight
+ text: colorSlider.caption + ':'
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#B3B3B3"
+ }
+
+ Text {
+ id: valueCaption
+ anchors.left: captionText.right
+ anchors.leftMargin: 11
+ anchors.verticalCenter: parent.verticalCenter
+ width: 35
+ horizontalAlignment: Text.AlignLeft
+ text: colorSlider.value.toFixed(1)
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#999999"
+ }
+
+ Item {
+ id: track
+ height: 4
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: parent.width / 2
+ anchors.right: parent.right
+ anchors.rightMargin: 10
+
+ Image {
+ id: handle;
+ anchors.verticalCenter: parent.verticalCenter
+ smooth: true
+ source: mouseArea.pressed ? 'images/slider_handle_pressed.png' : colorSlider.handleSource
+ opacity: colorSlider.handleOpacity
+ x: updatePos()
+ z: 1
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors {left: parent.left; right: parent.right; leftMargin: 5; rightMargin: 5; verticalCenter: parent.verticalCenter}
+ height: 8
+ preventStealing: true
+
+ onPressed: {
+ var handleX = Math.max(0, Math.min(mouseX, mouseArea.width))
+ var realValue = (maximum - minimum) * handleX / mouseArea.width + minimum;
+ value = colorSlider.integer ? Math.round(realValue) : realValue;
+ }
+
+ onPositionChanged: {
+ if (pressed) {
+ var handleX = Math.max(0, Math.min(mouseX, mouseArea.width))
+ var realValue = (maximum - minimum) * handleX / mouseArea.width + minimum;
+ value = colorSlider.integer ? Math.round(realValue) : realValue;
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/Shader Effects/Control.qml b/basicsuite/Shader Effects/Control.qml
new file mode 100644
index 0000000..32ff172
--- /dev/null
+++ b/basicsuite/Shader Effects/Control.qml
@@ -0,0 +1,111 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: control
+ property string caption: ""
+ default property alias children: controlsColumn.children
+ property bool last: false
+
+ property bool __hide: caption == "advanced"
+
+ anchors {left: parent.left; right: parent.right}
+ height: __hide ? 30 : controlsColumn.height + 40
+
+ Behavior on height {
+ id: heightBehavior
+ enabled: false
+ NumberAnimation { duration: 100 }
+ }
+
+ Image {
+ source: "images/group_top.png"
+ anchors {top: parent.top; left: parent.left; right: parent.right}
+ }
+
+ Image {
+ source: "images/group_bottom.png"
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ smooth: true
+ visible: !last || __hide
+ }
+
+ Text {
+ id: sectionText
+ anchors {left: parent.left; top: parent.top; leftMargin: 11; topMargin: 8}
+ color: "white"
+ font.family: "Arial"
+ font.bold: true
+ font.pixelSize: 12
+ text: caption
+ }
+
+ Image {
+ anchors {right: parent.right; rightMargin: 5; top: parent.top}
+ source: __hide ? "images/expand.png" : "images/collapse.png"
+ }
+
+ MouseArea {
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: 30
+ onClicked: {
+ heightBehavior.enabled = true
+ control.__hide = !control.__hide
+ }
+ }
+
+ Column {
+ id: controlsColumn
+ anchors.top: parent.top
+ anchors.topMargin: 30
+ anchors.left: parent.left
+ anchors.right: parent.right
+ opacity: !__hide
+ Behavior on opacity {
+ NumberAnimation { duration: 100 }
+ }
+ }
+}
diff --git a/basicsuite/Shader Effects/ImageSource.qml b/basicsuite/Shader Effects/ImageSource.qml
new file mode 100644
index 0000000..69dc011
--- /dev/null
+++ b/basicsuite/Shader Effects/ImageSource.qml
@@ -0,0 +1,71 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Image {
+ id: is
+ source: "images/bug.jpg"
+ smooth: true
+ anchors.fill: parent
+ fillMode: Image.PreserveAspectFit
+ sourceSize: width > height ? Qt.size(0, parent.height) : Qt.size(parent.width, 0)
+ //visible: !enabledCheckBox.selected
+ opacity: enabledCheckBox.selected ? 0.0 : 1.0
+
+ property bool forcedUpdateAnimationRunning: updateCheckBox.selected
+ Text {
+ x: is.width - 10 - width
+ y: 10
+ text: "Qt"
+ font.pixelSize: 20
+ color: "white"
+ visible: is.forcedUpdateAnimationRunning
+
+ NumberAnimation on rotation {
+ id: dd
+ running: is.forcedUpdateAnimationRunning
+ loops: Animation.Infinite
+ duration: 5000
+ from: 0.0
+ to: 360.0
+ }
+ }
+}
diff --git a/basicsuite/Shader Effects/Label.qml b/basicsuite/Shader Effects/Label.qml
new file mode 100644
index 0000000..72cd7f4
--- /dev/null
+++ b/basicsuite/Shader Effects/Label.qml
@@ -0,0 +1,80 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: label
+ property string caption: ""
+ property string text: ""
+ default property alias children: childrenItem.children
+ anchors {left: parent.left; right: parent.right}
+ height: Math.max(20, childrenItem.height)
+
+ Text {
+ id: captionText
+ width: 110
+ height: 20
+ horizontalAlignment: Text.AlignRight
+ verticalAlignment: Text.AlignVCenter
+ text: label.caption + ':'
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#B3B3B3"
+ }
+
+ Text {
+ id: valueText
+ anchors {left: captionText.right; right: parent.right; leftMargin: 11; verticalCenter: parent.verticalCenter}
+ height: 20
+ verticalAlignment: Text.AlignVCenter
+ text: label.text
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#999999"
+ visible: label.text.length > 0
+ }
+
+ Item {
+ id: childrenItem
+ anchors {left: captionText.right; leftMargin: 11; right: parent.right}
+ height: childrenRect.height
+ }
+}
diff --git a/basicsuite/Shader Effects/LevelSlider.qml b/basicsuite/Shader Effects/LevelSlider.qml
new file mode 100644
index 0000000..995ecf8
--- /dev/null
+++ b/basicsuite/Shader Effects/LevelSlider.qml
@@ -0,0 +1,201 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: slider
+
+ width: parent.width
+ height: 30
+
+ property real midPointValue: 0.5
+ property real blackPointValue: 0.0
+ property real whitePointValue: 1.0
+ property real maximum: 1
+ property real minimum: 0
+ property real gamma: Math.min(10.0, Math.max(0.1, 1/(Math.log(0.5) / Math.log(midPointValue))))
+ property string caption: ""
+ property bool integer: false
+ property bool showMidPoint: true
+
+ Text {
+ id: captionText
+ width: 110
+ anchors.bottom: parent.bottom
+ anchors.bottomMargin: 13
+ horizontalAlignment: Text.AlignRight
+ text: slider.caption + ':'
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#B3B3B3"
+ }
+
+ Item {
+ id: track
+ height: parent.height
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: parent.width / 2 - 30
+ anchors.right: parent.right
+ anchors.rightMargin: 10
+
+ BorderImage {
+ id: trackImage
+ source: "images/slider_track.png"
+ anchors.left: parent.left
+ anchors.right: parent.right
+ border.right: 2
+ width: parent.width
+ }
+
+ BorderImage {
+ id: trackFilled
+ anchors.left: blackpointHandle.x < whitePointHandle.x ? blackpointHandle.right : whitePointHandle.right
+ anchors.right: blackpointHandle.x < whitePointHandle.x ? whitePointHandle.left : blackpointHandle.left
+ anchors.margins: -10
+ source: "images/slider_track_filled.png"
+ border.left: 3
+ border.right: 3
+ }
+
+ Image {
+ id: blackpointHandle;
+ smooth: true
+ source: blackpointMouseArea.pressed ? "images/slider_handle_pressed.png" : "images/slider_handle_black.png"
+ x: trackImage.x - width/2 + 5
+ width: 20
+ onXChanged: {
+ blackPointValue = minimum + maximum * ((x + 5) / (track.width - 10))
+ midpointHandle.x = blackpointHandle.x + ((whitePointHandle.x - blackpointHandle.x) * midPointValue)
+ }
+ }
+
+ Image {
+ id: midpointHandle;
+ smooth: true
+ source: midpointMouseArea.pressed ? "images/slider_handle_pressed.png" : "images/slider_handle_gray.png"
+ x: blackpointHandle.x + ((whitePointHandle.x - blackpointHandle.x) * 0.5)
+ visible: showMidPoint
+ width: 20
+ onXChanged: {
+ if (midpointMouseArea.pressed) {
+ midPointValue = (x - Math.min(whitePointHandle.x, blackpointHandle.x)) / Math.abs(whitePointHandle.x - blackpointHandle.x)
+ }
+ }
+ }
+
+ Image {
+ id: whitePointHandle;
+ smooth: true
+ source: whitepointMouseArea.pressed ? "images/slider_handle_pressed.png" : "images/slider_handle_white.png"
+ x: trackImage.x + trackImage.width - width/2 - 5
+ width: 20
+ onXChanged: {
+ whitePointValue = minimum + maximum * ((x + 5) / (track.width - 10))
+ midpointHandle.x = blackpointHandle.x + ((whitePointHandle.x - blackpointHandle.x) * midPointValue)
+ }
+ }
+
+ MouseArea {
+ id: blackpointMouseArea
+ anchors.fill: blackpointHandle
+ anchors.margins: -5
+ drag.target: blackpointHandle
+ drag.axis: Drag.XAxis
+ drag.minimumX: -5
+ drag.maximumX: trackImage.width - blackpointHandle.width + 5
+ }
+
+ MouseArea {
+ id: whitepointMouseArea
+ anchors.fill: whitePointHandle
+ anchors.margins: -5
+ drag.target: whitePointHandle
+ drag.axis: Drag.XAxis
+ drag.minimumX: -5
+ drag.maximumX: trackImage.width - whitePointHandle.width + 5
+ }
+
+ MouseArea {
+ id: midpointMouseArea
+ anchors.fill: midpointHandle
+ anchors.margins: -5
+ drag.target: midpointHandle
+ drag.axis: Drag.XAxis
+ drag.minimumX: Math.min(blackpointHandle.x, whitePointHandle.x)
+ drag.maximumX: Math.max(whitePointHandle.x, blackpointHandle.x)
+ }
+ }
+
+ Text {
+ id: blackPointValueCaption
+ anchors.bottom: track.bottom
+ anchors.left: track.left
+ text: slider.blackPointValue.toFixed(1)
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#999999"
+ }
+
+ Text {
+ id: midPointValueCaption
+ anchors.bottom: track.bottom
+ anchors.left: track.left
+ anchors.right: track.right
+ horizontalAlignment: Text.AlignHCenter
+ width: track.width
+ text: slider.gamma.toFixed(1)
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#999999"
+ visible: showMidPoint
+ }
+
+ Text {
+ id: whitePointValueCaption
+ anchors.bottom: track.bottom
+ anchors.right: track.right
+ text: slider.whitePointValue.toFixed(1)
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#999999"
+ }
+}
diff --git a/basicsuite/Shader Effects/PositionPicker.qml b/basicsuite/Shader Effects/PositionPicker.qml
new file mode 100644
index 0000000..f3f58e4
--- /dev/null
+++ b/basicsuite/Shader Effects/PositionPicker.qml
@@ -0,0 +1,72 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Image {
+ id: positionPicker
+ property real xValue: 0
+ property real yValue: 0
+
+ x: parent.width * xValue - positionPicker.width / 2
+ y: parent.height * yValue - positionPicker.height / 2
+
+ property alias pressed: mouseArea.pressed
+
+ source: pressed ? "images/slider_handle_pressed.png" : "images/slider_handle.png"
+
+ MouseArea {
+ id: mouseArea
+
+ property real startX
+ property real startY
+
+ anchors.fill: parent
+ onPressed: {
+ startX = mouseX;
+ startY = mouseY;
+ }
+
+ onPositionChanged: {
+ xValue = (positionPicker.x + positionPicker.width / 2 + mouseX - startX) / positionPicker.parent.width;
+ yValue = (positionPicker.y + positionPicker.height / 2 + mouseY - startY) / positionPicker.parent.height;
+ }
+ }
+}
diff --git a/basicsuite/Shader Effects/ProgressBar.qml b/basicsuite/Shader Effects/ProgressBar.qml
new file mode 100644
index 0000000..9cc6a9d
--- /dev/null
+++ b/basicsuite/Shader Effects/ProgressBar.qml
@@ -0,0 +1,113 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: slider
+
+ property real value: 1
+ property real maximum: 1
+ property real minimum: 0
+ property string caption: ""
+ property bool integer: false
+
+ width: parent.width
+ height: 20
+
+ function updatePos() {
+ if (maximum > minimum) {
+ var pos = (track.width) * (value - minimum) / (maximum - minimum);
+ return Math.min(Math.max(pos, 0), track.width);
+ } else {
+ return 0;
+ }
+ }
+
+ Text {
+ id: captionText
+ width: 110
+ anchors.verticalCenter: parent.verticalCenter
+ horizontalAlignment: Text.AlignRight
+ text: slider.caption + ':'
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#B3B3B3"
+ }
+
+ Text {
+ id: valueCaption
+ anchors.left: captionText.right
+ anchors.leftMargin: 11
+ anchors.verticalCenter: parent.verticalCenter
+ width: 35
+ horizontalAlignment: Text.AlignLeft
+ text: slider.value.toFixed(1)
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#999999"
+ }
+
+ Item {
+ id: track
+ height: parent.height
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: parent.width / 2
+ anchors.right: parent.right
+ anchors.rightMargin: 10
+
+ BorderImage {
+ source: "images/slider_track.png"
+ anchors.left: parent.left
+ anchors.right: parent.right
+ border.right: 2
+ }
+
+ BorderImage {
+ id: trackFilled
+ anchors.left: parent.left
+ width: updatePos()
+ source: "images/slider_track_filled.png"
+ border.left: 3
+ border.right: 3
+ }
+ }
+}
diff --git a/basicsuite/Shader Effects/RadioButton.qml b/basicsuite/Shader Effects/RadioButton.qml
new file mode 100644
index 0000000..4e527d4
--- /dev/null
+++ b/basicsuite/Shader Effects/RadioButton.qml
@@ -0,0 +1,81 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: radioButton
+ property string caption: ""
+ property bool selected: false
+ property bool pressed: mouse.pressed
+ anchors {left: parent.left; right: parent.right}
+ height: 20
+
+ Text {
+ id: captionText
+ anchors {left: parent.horizontalCenter; leftMargin: -5; right: parent.right; verticalCenter: parent.verticalCenter}
+ horizontalAlignment: Text.AlignLeft
+ text: radioButton.caption
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#B3B3B3"
+ }
+
+ Image {
+ id: button
+ anchors {right: captionText.left; rightMargin: 10; verticalCenter: parent.verticalCenter}
+ source: "images/radiobutton_outer.png"
+ smooth: true
+ Image {
+ id: buttonFill
+ anchors.centerIn: parent
+ source: "images/radiobutton_inner.png"
+ smooth: true
+ visible: radioButton.selected
+ }
+ }
+
+ MouseArea {
+ id: mouse
+ anchors.fill: parent
+ anchors.leftMargin: 115
+ preventStealing: true
+ }
+}
diff --git a/basicsuite/Shader Effects/RadioButtonColumn.qml b/basicsuite/Shader Effects/RadioButtonColumn.qml
new file mode 100644
index 0000000..fa3f4ff
--- /dev/null
+++ b/basicsuite/Shader Effects/RadioButtonColumn.qml
@@ -0,0 +1,70 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: radioButtoncolumn
+ property string value: ""
+ property string prefixCaption: ""
+ default property alias children: buttons.children
+ property string caption: ""
+
+ width: parent.width
+ height: buttons.height
+
+ Text {
+ id: captionText
+ anchors {top: parent.top; topMargin: 4}
+ width: 110
+ horizontalAlignment: Text.AlignRight
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#B3B3B3"
+ text: radioButtoncolumn.caption + ':'
+ }
+
+ Column {
+ id: buttons
+ anchors.top: parent.top
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+}
diff --git a/basicsuite/Shader Effects/RgbaColorPicker.qml b/basicsuite/Shader Effects/RgbaColorPicker.qml
new file mode 100644
index 0000000..6346a11
--- /dev/null
+++ b/basicsuite/Shader Effects/RgbaColorPicker.qml
@@ -0,0 +1,115 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: rgbaSlider
+ property color color: Qt.rgba(rValue, gValue, bValue, aValue)
+
+ property alias rValue: rSlider.value
+ property alias gValue: gSlider.value
+ property alias bValue: bSlider.value
+ property alias aValue: aSlider.value
+ property bool pressed: rSlider.pressed || gSlider.pressed || bSlider.pressed || aSlider.pressed
+
+ width: parent.width
+ height: childrenRect.height
+
+ function dec2hex(i)
+ {
+ if (i <= 15)
+ return "0" + i.toString(16);
+ else
+ return i.toString(16);
+ }
+
+ Rectangle {
+ id: colorRect
+ width: 50; height: 50
+ anchors.left: parent.left
+ anchors.leftMargin: 20
+ anchors.verticalCenter: sliders.verticalCenter
+ color: Qt.rgba(rgbaSlider.rValue, rgbaSlider.gValue, rgbaSlider.bValue, rgbaSlider.aValue)
+ }
+ Column {
+ id: sliders
+ anchors {left: parent.left; right: parent.right}
+ Slider {
+ id: aSlider
+ minimum: 0
+ maximum: 1
+ value: 1.0
+ caption: 'A'
+ }
+ Slider {
+ id: rSlider
+ minimum: 0
+ maximum: 1
+ value: 1.0
+ caption: 'R'
+ }
+ Slider {
+ id: gSlider
+ minimum: 0
+ maximum: 1
+ value: 1.0
+ caption: 'G'
+ }
+ Slider {
+ id: bSlider
+ minimum: 0
+ maximum: 1
+ value: 1.0
+ caption: 'B'
+ }
+
+ }
+// Text {
+// anchors.top: colorRect.bottom
+// anchors.topMargin: 5
+// anchors.horizontalCenter: colorRect.horizontalCenter
+// horizontalAlignment: Text.AlignHCenter
+// text: "#" + dec2hex(Math.round(rgbaSlider.aValue * 255)) + dec2hex(Math.round(rgbaSlider.rValue * 255)) + dec2hex(Math.round(rgbaSlider.gValue * 255)) + dec2hex(Math.round(rgbaSlider.bValue * 255))
+// font.capitalization: Font.AllUppercase
+// color: "#999999"
+// font.pixelSize: 11
+// }
+}
diff --git a/basicsuite/Shader Effects/Slider.qml b/basicsuite/Shader Effects/Slider.qml
new file mode 100644
index 0000000..4b937a4
--- /dev/null
+++ b/basicsuite/Shader Effects/Slider.qml
@@ -0,0 +1,143 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: slider
+
+ property real value: 1
+ property real maximum: 1
+ property real minimum: 0
+ property string caption: ""
+ property bool pressed: mouseArea.pressed
+ property bool integer: false
+ property string handleSource: "images/slider_handle.png"
+
+ width: parent.width
+ height: 20
+
+ function updatePos() {
+ if (maximum > minimum) {
+ var pos = (track.width - 10) * (value - minimum) / (maximum - minimum) + 5;
+ return Math.min(Math.max(pos, 5), track.width - 5) - 10;
+ } else {
+ return 5;
+ }
+ }
+
+ Text {
+ id: captionText
+ width: 110
+ anchors.verticalCenter: parent.verticalCenter
+ horizontalAlignment: Text.AlignRight
+ text: slider.caption + ':'
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#B3B3B3"
+ }
+
+ Text {
+ id: valueCaption
+ anchors.left: captionText.right
+ anchors.leftMargin: 11
+ anchors.verticalCenter: parent.verticalCenter
+ width: 35
+ horizontalAlignment: Text.AlignLeft
+ text: integer ? slider.value.toFixed(0) : slider.value.toFixed(1)
+ font.family: "Arial"
+ font.pixelSize: 11
+ color: "#999999"
+ }
+
+ Item {
+ id: track
+ height: parent.height
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.left: parent.left
+ anchors.leftMargin: parent.width / 2
+ anchors.right: parent.right
+ anchors.rightMargin: 10
+
+ BorderImage {
+ source: "images/slider_track.png"
+ anchors.left: parent.left
+ anchors.right: parent.right
+ border.right: 2
+ }
+
+ BorderImage {
+ id: trackFilled
+ anchors.left: minimum == -maximum ? (value < 0 ? handle.horizontalCenter : parent.horizontalCenter) : parent.left
+ anchors.right: minimum == -maximum && value < 0 ? parent.horizontalCenter : handle.horizontalCenter
+ source: "images/slider_track_filled.png"
+ border.left: 3
+ border.right: 3
+ }
+
+ Image {
+ id: handle;
+ smooth: true
+ source: mouseArea.pressed ? 'images/slider_handle_pressed.png' : slider.handleSource
+ x: updatePos()
+ }
+
+ MouseArea {
+ id: mouseArea
+ anchors { left: parent.left; right: parent.right; verticalCenter: parent.verticalCenter }
+ height: 16
+ preventStealing: true
+
+ onPressed: {
+ var handleX = Math.max(0, Math.min(mouseX, mouseArea.width))
+ var realValue = (maximum - minimum) * handleX / mouseArea.width + minimum;
+ value = slider.integer ? Math.round(realValue) : realValue;
+ }
+
+ onPositionChanged: {
+ if (pressed) {
+ var handleX = Math.max(0, Math.min(mouseX, mouseArea.width))
+ var realValue = (maximum - minimum) * handleX / mouseArea.width + minimum;
+ value = slider.integer ? Math.round(realValue) : realValue;
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/Shader Effects/TestBedModel.qml b/basicsuite/Shader Effects/TestBedModel.qml
new file mode 100644
index 0000000..f612a0c
--- /dev/null
+++ b/basicsuite/Shader Effects/TestBedModel.qml
@@ -0,0 +1,70 @@
+/*****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Add-On Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+ListModel {
+ id: testcaseModel
+ ListElement { name: "TestBlend.qml"; group: "Blend"; last: true }
+ ListElement { name: "TestDisplace.qml"; group: "Distortion"; last: true }
+ ListElement { name: "TestOpacityMask.qml"; group: "Mask" }
+ ListElement { name: "TestThresholdMask.qml"; group: "Mask"; last: true }
+ ListElement { name: "TestGlow.qml"; group: "Glow" }
+ ListElement { name: "TestRectangularGlow.qml"; group: "Glow"; last: true }
+ ListElement { name: "TestFastBlur.qml"; group: "Blur" }
+ ListElement { name: "TestGaussianBlur.qml"; group: "Blur" }
+ ListElement { name: "TestMaskedBlur.qml"; group: "Blur" }
+ ListElement { name: "TestRecursiveBlur.qml"; group: "Blur"; last: true }
+ ListElement { name: "TestDirectionalBlur.qml"; group: "Motion Blur"; }
+ ListElement { name: "TestRadialBlur.qml"; group: "Motion Blur"; }
+ ListElement { name: "TestZoomBlur.qml"; group: "Motion Blur"; last: true }
+ ListElement { name: "TestDropShadow.qml"; group: "Drop Shadow" }
+ ListElement { name: "TestInnerShadow.qml"; group: "Drop Shadow"; last: true }
+ ListElement { name: "TestLinearGradient.qml"; group: "Gradient" }
+ ListElement { name: "TestConicalGradient.qml"; group: "Gradient" }
+ ListElement { name: "TestRadialGradient.qml"; group: "Gradient"; last: true }
+ ListElement { name: "TestColorize.qml"; group: "Color" }
+ ListElement { name: "TestColorOverlay.qml"; group: "Color" }
+ ListElement { name: "TestHueSaturation.qml"; group: "Color" }
+ ListElement { name: "TestBrightnessContrast.qml"; group: "Color" }
+ ListElement { name: "TestDesaturate.qml"; group: "Color" }
+ ListElement { name: "TestLevelAdjust.qml"; group: "Color" }
+ ListElement { name: "TestGammaAdjust.qml"; group: "Color"; last: true }
+}
diff --git a/basicsuite/Shader Effects/TestBlend.qml b/basicsuite/Shader Effects/TestBlend.qml
new file mode 100644
index 0000000..38f1ba3
--- /dev/null
+++ b/basicsuite/Shader Effects/TestBlend.qml
@@ -0,0 +1,216 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource1
+ source: "images/bug.jpg"
+ }
+
+ ImageSource {
+ id: imageSource2
+ source: "images/butterfly.png"
+ }
+
+ Blend {
+ id: effect
+ anchors.fill: imageSource1
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource1
+ foregroundSource: imageSource2
+ mode: blendMode.value
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+
+ RadioButtonColumn {
+ id: blendMode
+ value: "normal"
+ caption: "mode"
+ RadioButton {
+ caption: "normal"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "addition"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "average"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "color"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "colorBurn"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "colorDodge"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "darken"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "darkerColor"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "difference"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "divide"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "exclusion"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "hardLight"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "hue"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "lighten"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "lighterColor"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "lightness"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "multiply"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "negation"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "saturation"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "screen"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "softlight"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ RadioButton {
+ caption: "subtract"
+ selected: caption == blendMode.value
+ onPressedChanged: blendMode.value = caption
+ }
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestBrightnessContrast.qml b/basicsuite/Shader Effects/TestBrightnessContrast.qml
new file mode 100644
index 0000000..1538a3e
--- /dev/null
+++ b/basicsuite/Shader Effects/TestBrightnessContrast.qml
@@ -0,0 +1,108 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ }
+
+ BrightnessContrast {
+ id: effect
+ anchors.fill: imageSource
+ brightness: brigthnessSlider.value
+ contrast: contrastSlider.value
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: brigthnessSlider
+ minimum: -1.0
+ maximum: 1.0
+ value: 0.0
+ caption: "brightness"
+ }
+ Slider {
+ id: contrastSlider
+ minimum: -1.0
+ maximum: 1.0
+ value: 0.0
+ caption: "contrast"
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestCaseTemplate.qml b/basicsuite/Shader Effects/TestCaseTemplate.qml
new file mode 100644
index 0000000..04377f2
--- /dev/null
+++ b/basicsuite/Shader Effects/TestCaseTemplate.qml
@@ -0,0 +1,142 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Item {
+ id: main
+
+ property real imageSize: Math.min(height, width - 220)
+ default property alias testItem : testItemContainer.children
+ property alias controls: controlsColumn.children
+ property string currentTest: ""
+ property string fps: "nan"
+ property color bgColor: "black"
+
+ property int dummy: 0
+ property int fpsCount: 0
+
+ anchors.fill: parent
+
+ onDummyChanged: fpsCount++;
+
+ NumberAnimation on dummy {
+ duration: 500
+ from: 0
+ to: 10000
+ loops: Animation.Infinite
+ }
+
+ Timer {
+ interval: 1000
+ repeat: true
+ running: true
+ onTriggered: {
+ fps = "" + fpsCount;
+ fpsCount = 0;
+ }
+ }
+
+ Rectangle {
+ id: backgroundColor
+ anchors.fill: testItemContainer
+ color: bgColor
+ }
+
+ Image {
+ id: background
+ anchors.fill: testItemContainer
+ fillMode: Image.Tile
+ source: bgColor.toString() == "#010101" ? "images/background.png" : ""
+ }
+
+ Item {
+ id: testItemContainer
+ property real margin: 0
+ x: (parent.width - testParameterContainer.width - width) / 2
+ anchors.verticalCenter: parent.verticalCenter
+ anchors.top: undefined
+ width: Math.min(parent.height - 20, parent.width - testParameterContainer.width - 20)
+ height: width
+ }
+
+ Image {
+ id: titlebar
+ source: "images/title.png"
+ anchors.top: parent.top
+ anchors.right: parent.right
+ width: 300
+
+ Text {
+ id: effectsListTitle
+ anchors.fill: parent
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ text: currentTest
+ color: "white"
+ font.family: "Arial"
+ font.bold: true
+ font.pixelSize: 12
+ }
+ }
+
+ Rectangle {
+ id: testParameterContainer
+ anchors.top: titlebar.bottom
+ anchors.bottom: parent.bottom
+ anchors.right: parent.right
+ width: 300
+ color: "#171717"
+
+ Flickable {
+ id: slidersFlickable
+ anchors.fill: parent
+ contentHeight: controlsColumn.height
+ interactive: contentHeight > height
+ clip: true
+
+ Column {
+ id: controlsColumn
+ anchors.left: parent.left
+ anchors.right: parent.right
+ }
+ }
+ }
+}
diff --git a/basicsuite/Shader Effects/TestColorOverlay.qml b/basicsuite/Shader Effects/TestColorOverlay.qml
new file mode 100644
index 0000000..cc75dba
--- /dev/null
+++ b/basicsuite/Shader Effects/TestColorOverlay.qml
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ source: "images/butterfly.png"
+ }
+
+ ColorOverlay {
+ id: effect
+ anchors.fill: imageSource
+ color: colorPicker.color
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "color"
+ ColorPicker {
+ id: colorPicker
+ hue: 0.5
+ saturation: 0.5
+ lightness: 0.5
+ alpha: 0.5
+ }
+ },
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestColorize.qml b/basicsuite/Shader Effects/TestColorize.qml
new file mode 100644
index 0000000..2301e54
--- /dev/null
+++ b/basicsuite/Shader Effects/TestColorize.qml
@@ -0,0 +1,102 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ forcedUpdateAnimationRunning: updateCheckBox.selected
+ }
+
+ Colorize {
+ id: effect
+ anchors.fill: imageSource
+ hue: colorPicker.hue
+ saturation: colorPicker.saturation
+ lightness: colorPicker.lightness
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ ColorPicker {
+ id: colorPicker
+ hue: 0.5
+ saturation: 0.5
+ lightness: 0.5
+ showAlphaSlider: false
+ }
+ },
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestConicalGradient.qml b/basicsuite/Shader Effects/TestConicalGradient.qml
new file mode 100644
index 0000000..19405c9
--- /dev/null
+++ b/basicsuite/Shader Effects/TestConicalGradient.qml
@@ -0,0 +1,146 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: maskImage
+ source: "images/butterfly.png"
+ }
+
+
+ ConicalGradient {
+ id: effect
+ anchors.fill: parent
+ cached: cachedCheckBox.selected
+ visible: enabledCheckBox.selected
+ source: maskCheckBox.selected ? maskImage : undefined
+ horizontalOffset: (offsetPicker.xValue - 0.5) * width
+ verticalOffset: (offsetPicker.yValue - 0.5) * height
+ gradient: Gradient {
+ GradientStop {position: 0.0; color: gradientBeginColorSlider.color}
+ GradientStop {position: 1.0; color: gradientEndColorSlider.color}
+ }
+ angle: startAngleSlider.value
+ }
+
+ PositionPicker {
+ id: offsetPicker
+ xValue: 0.5
+ yValue: 0.5
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Label {
+ caption: "horizontalOffset"
+ text: effect.horizontalOffset.toFixed(1)
+ }
+ Label {
+ caption: "verticalOffset"
+ text: effect.verticalOffset.toFixed(1)
+ }
+ Slider {
+ id: startAngleSlider
+ caption: "angle"
+ minimum: -360
+ maximum: 360
+ value: 0
+ }
+ CheckBox {
+ id: maskCheckBox
+ caption: "Use Mask"
+ }
+ },
+
+ Control {
+ caption: "gradient begin color"
+ ColorPicker {
+ id: gradientBeginColorSlider
+ hue: 0.67
+ saturation: 1.0
+ lightness: 0.5
+ }
+ },
+
+ Control {
+ caption: "gradient end color"
+ ColorPicker {
+ id: gradientEndColorSlider
+ hue: 0.5
+ saturation: 1.0
+ lightness: 0.5
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestDesaturate.qml b/basicsuite/Shader Effects/TestDesaturate.qml
new file mode 100644
index 0000000..8b375d8
--- /dev/null
+++ b/basicsuite/Shader Effects/TestDesaturate.qml
@@ -0,0 +1,100 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ }
+
+ Desaturate {
+ id: effect
+ anchors.fill: imageSource
+ desaturation: grayscaleSlider.value
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: grayscaleSlider
+ minimum: 0
+ maximum: 1.0
+ value: 1.0
+ caption: "desaturation"
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestDirectionalBlur.qml b/basicsuite/Shader Effects/TestDirectionalBlur.qml
new file mode 100644
index 0000000..794b734
--- /dev/null
+++ b/basicsuite/Shader Effects/TestDirectionalBlur.qml
@@ -0,0 +1,124 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ source: "images/butterfly.png"
+ }
+
+ DirectionalBlur {
+ id: effect
+ anchors.fill: imageSource
+ transparentBorder: transparentBorderCheckBox.selected
+ angle: angleSlider.value
+ length: lengthSlider.value
+ samples: samplesSlider.value
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: angleSlider
+ minimum: -180.0
+ maximum: 180.0
+ value: 90.0
+ caption: "angle"
+ }
+ Slider {
+ id: lengthSlider
+ minimum: 0.0
+ maximum: 64.0
+ value: 32.0
+ caption: "length"
+ }
+ Slider {
+ id: samplesSlider
+ minimum: 0
+ maximum: 32
+ value: 32
+ caption: "samples"
+ integer: true
+ }
+ CheckBox {
+ id: transparentBorderCheckBox
+ caption: "transparentBorder"
+ selected: false
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestDisplace.qml b/basicsuite/Shader Effects/TestDisplace.qml
new file mode 100644
index 0000000..6c6a30a
--- /dev/null
+++ b/basicsuite/Shader Effects/TestDisplace.qml
@@ -0,0 +1,143 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+
+ ImageSource {
+ id: imageSource
+ source: "images/bug.jpg"
+ }
+
+ Rectangle {
+ id: displacementMapSource
+ visible: !enabledCheckBox.selected
+ color: "#8080ff"
+ smooth: true
+ anchors.fill: parent
+ Image {
+ id: di
+ x: (parent.width - width) / 2
+ y: (parent.height - height) / 2
+ sourceSize: Qt.size(128, 128)
+ source: "images/glass_normal.png"
+ smooth: true
+ }
+ }
+
+ Displace {
+ id: effect
+ anchors.fill: imageSource
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ displacementSource: displacementMapSource
+ displacement: displacementScaleSlider.value
+ smooth: true
+ MouseArea {
+ anchors.fill: parent
+ onClicked: { di.x = mouseX - di.width/2; di.y = mouseY - di.height/2; }
+ onPositionChanged: { if (pressed) { di.x = mouseX - di.width/2; di.y = mouseY - di.height/2; } }
+ }
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: displacementScaleSlider
+ caption: "displacement"
+ minimum: -0.5
+ maximum: 0.5
+ value: 0.1
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ RadioButtonColumn {
+ id: sourceType
+ value: "shaderEffectSource"
+ caption: "source type"
+ RadioButton {
+ caption: "shaderEffectSource"
+ selected: caption == sourceType.value
+ onPressedChanged: sourceType.value = caption
+ }
+ RadioButton {
+ caption: "image"
+ selected: caption == sourceType.value
+ onPressedChanged: {
+ sourceType.value = caption
+ updateCheckBox.selected = false
+ }
+ }
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestDropShadow.qml b/basicsuite/Shader Effects/TestDropShadow.qml
new file mode 100644
index 0000000..28f963d
--- /dev/null
+++ b/basicsuite/Shader Effects/TestDropShadow.qml
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+
+ ImageSource {
+ id: imageSource
+ source: "images/butterfly.png"
+ anchors.centerIn: parent
+ }
+
+ DropShadow {
+ id: effect
+ horizontalOffset: (offsetPicker.xValue - 0.5) * width
+ verticalOffset: (offsetPicker.yValue - 0.5) * height
+ anchors.fill: imageSource
+ radius: radiusSlider.value
+ spread: spreadSlider.value
+ samples: samplesSlider.value
+ color: colorPicker.color
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ fast: fastCheckBox.selected
+ }
+
+ PositionPicker {
+ id: offsetPicker
+ xValue: 0.51
+ yValue: 0.51
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Label {
+ caption: "horizontalOffset"
+ text: effect.horizontalOffset.toFixed(1)
+ }
+ Label {
+ caption: "verticalOffset"
+ text: effect.verticalOffset.toFixed(1)
+ }
+ Slider {
+ id: radiusSlider
+ minimum: 0
+ maximum: 64
+ value: 8
+ caption: "radius"
+ }
+ Slider {
+ id: samplesSlider
+ minimum: 0
+ maximum: 32
+ value: 32
+ integer: true
+ caption: "samples"
+ }
+ Slider {
+ id: spreadSlider
+ minimum: 0
+ maximum: 1.0
+ value: 0.0
+ caption: "spread"
+ }
+ CheckBox {
+ id: fastCheckBox
+ caption: "fast"
+ selected: false
+ }
+ },
+
+ Control {
+ caption: "color"
+ ColorPicker {
+ id: colorPicker
+ hue: 0
+ saturation: 0
+ lightness: 0
+ alpha: 0.5
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ color: "#ababab"
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestFastBlur.qml b/basicsuite/Shader Effects/TestFastBlur.qml
new file mode 100644
index 0000000..a1bfb52
--- /dev/null
+++ b/basicsuite/Shader Effects/TestFastBlur.qml
@@ -0,0 +1,106 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource;
+ }
+
+ FastBlur {
+ id: effect
+ anchors.fill: imageSource
+ radius: blurSlider.value
+ transparentBorder: transparentBorderCheckBox.selected
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: blurSlider
+ minimum: 0.0
+ maximum: 64.0
+ value: 32
+ caption: "radius"
+ }
+ CheckBox {
+ id: transparentBorderCheckBox
+ caption: "transparentBorder"
+ selected: false
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestGammaAdjust.qml b/basicsuite/Shader Effects/TestGammaAdjust.qml
new file mode 100644
index 0000000..e601f09
--- /dev/null
+++ b/basicsuite/Shader Effects/TestGammaAdjust.qml
@@ -0,0 +1,101 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ source: "images/butterfly.png"
+ }
+
+ GammaAdjust {
+ id: effect
+ anchors.fill: imageSource
+ gamma: gammaSlider.value
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: gammaSlider
+ minimum: 0
+ maximum: 2.0
+ value: 1.0
+ caption: "gamma"
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestGaussianBlur.qml b/basicsuite/Shader Effects/TestGaussianBlur.qml
new file mode 100644
index 0000000..c1d2655
--- /dev/null
+++ b/basicsuite/Shader Effects/TestGaussianBlur.qml
@@ -0,0 +1,123 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ }
+
+ GaussianBlur {
+ id: effect
+ anchors.fill: imageSource
+ radius: radiusSlider.value
+ samples: samplesSlider.value
+ deviation: deviationSlider.value
+ transparentBorder: transparentBorderCheckBox.selected
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: radiusSlider
+ minimum: 0.0
+ maximum: 16.0
+ value: 8.0
+ caption: "radius"
+ }
+ Slider {
+ id: deviationSlider
+ minimum: 0
+ maximum: 16
+ value: (effect.radius + 1) / 3.3333
+ caption: "deviation"
+ }
+ Slider {
+ id: samplesSlider
+ minimum: 0
+ maximum: 32
+ value: 32
+ integer: true
+ caption: "samples"
+ }
+ CheckBox {
+ id: transparentBorderCheckBox
+ caption: "transparentBorder"
+ selected: false
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestGlow.qml b/basicsuite/Shader Effects/TestGlow.qml
new file mode 100644
index 0000000..6499c44
--- /dev/null
+++ b/basicsuite/Shader Effects/TestGlow.qml
@@ -0,0 +1,137 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+
+ ImageSource {
+ id: imageSource
+ source: "images/butterfly.png"
+ anchors.centerIn: parent
+ }
+
+ Glow {
+ id: effect
+ anchors.fill: imageSource
+ color: colorPicker.color
+ spread: spreadSlider.value
+ radius: radiusSlider.value
+ samples: samplesSlider.value
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ fast: fastCheckBox.selected
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: radiusSlider
+ minimum: 0.0
+ maximum: 16.0
+ value: 8.0
+ caption: "radius"
+ }
+ Slider {
+ id: spreadSlider
+ caption: "spread"
+ minimum: 0.0
+ maximum: 1.0
+ value: 0.3
+ }
+ Slider {
+ id: samplesSlider
+ minimum: 0
+ maximum: 32
+ value: 32
+ integer: true
+ caption: "samples"
+ }
+ CheckBox {
+ id: fastCheckBox
+ caption: "fast"
+ selected: false
+ }
+ },
+
+ Control {
+ caption: "color"
+ ColorPicker {
+ id: colorPicker
+ hue: 0
+ saturation: 1
+ lightness: 1
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestHueSaturation.qml b/basicsuite/Shader Effects/TestHueSaturation.qml
new file mode 100644
index 0000000..ff75e01
--- /dev/null
+++ b/basicsuite/Shader Effects/TestHueSaturation.qml
@@ -0,0 +1,117 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ source: "images/butterfly.png"
+ }
+
+ HueSaturation {
+ id: effect
+ anchors.fill: imageSource
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ hue: hueSlider.value
+ saturation: saturationSlider.value
+ lightness: lightnessSlider.value
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: hueSlider
+ caption: "hue"
+ minimum: -1.0
+ maximum: 1.0
+ value: 0.0
+ }
+ Slider {
+ id: saturationSlider
+ caption: "saturation"
+ minimum: -1.0
+ maximum: 1.0
+ value: 0.0
+ }
+ Slider {
+ id: lightnessSlider
+ caption: "lightness"
+ minimum: -1.0
+ maximum: 1.0
+ value: 0.0
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestInnerShadow.qml b/basicsuite/Shader Effects/TestInnerShadow.qml
new file mode 100644
index 0000000..091c4fa
--- /dev/null
+++ b/basicsuite/Shader Effects/TestInnerShadow.qml
@@ -0,0 +1,155 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+
+ ImageSource {
+ id: imageSource
+ source: "images/butterfly.png"
+ anchors.centerIn: parent
+ }
+
+ InnerShadow {
+ id: effect
+ anchors.fill: imageSource
+ horizontalOffset: (offsetPicker.xValue - 0.5) * width
+ verticalOffset: (offsetPicker.yValue - 0.5) * height
+ samples: samplesSlider.value
+ radius: radiusSlider.value
+ spread: spreadSlider.value
+ color: colorPicker.color
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ fast: fastCheckBox.selected
+ source: imageSource
+ }
+
+ PositionPicker {
+ id: offsetPicker
+ xValue: 0.50
+ yValue: 0.51
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Label {
+ caption: "horizontalOffset"
+ text: effect.horizontalOffset.toFixed(1)
+ }
+ Label {
+ caption: "verticalOffset"
+ text: effect.verticalOffset.toFixed(1)
+ }
+ Slider {
+ id: radiusSlider
+ minimum: 0
+ maximum: 16
+ value: 8
+ caption: "radius"
+ }
+ Slider {
+ id: samplesSlider
+ minimum: 0
+ maximum: 32
+ value: 32
+ integer: true
+ caption: "samples"
+ }
+ Slider {
+ id: spreadSlider
+ minimum: 0
+ maximum: 1.0
+ value: 0.0
+ caption: "spread"
+ }
+ CheckBox {
+ id: fastCheckBox
+ caption: "fast"
+ selected: false
+ }
+ },
+
+ Control {
+ caption: "color"
+ ColorPicker {
+ id: colorPicker
+ hue: 0
+ saturation: 0
+ lightness: 0
+ alpha: 0.75
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ color: "#ababab"
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestLevelAdjust.qml b/basicsuite/Shader Effects/TestLevelAdjust.qml
new file mode 100644
index 0000000..f9653a4
--- /dev/null
+++ b/basicsuite/Shader Effects/TestLevelAdjust.qml
@@ -0,0 +1,161 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ source: "images/butterfly.png"
+ }
+
+ LevelAdjust {
+ id: effect
+ anchors.fill: imageSource
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+
+ minimumInput: Qt.rgba(redInput.blackPointValue + valueInput.blackPointValue * (redInput.whitePointValue - redInput.blackPointValue), greenInput.blackPointValue + valueInput.blackPointValue * (greenInput.whitePointValue - greenInput.blackPointValue), blueInput.blackPointValue + valueInput.blackPointValue * (blueInput.whitePointValue - blueInput.blackPointValue), alphaInput.blackPointValue)
+ maximumInput: Qt.rgba(redInput.whitePointValue - (1.0 - valueInput.whitePointValue) * (redInput.whitePointValue - redInput.blackPointValue), greenInput.whitePointValue - (1.0 - valueInput.whitePointValue) * (greenInput.whitePointValue - greenInput.blackPointValue), blueInput.whitePointValue - (1.0 - valueInput.whitePointValue) * (blueInput.whitePointValue - blueInput.blackPointValue), alphaInput.whitePointValue)
+ minimumOutput: Qt.rgba(redOutput.blackPointValue + valueOutput.blackPointValue * (redOutput.whitePointValue - redOutput.blackPointValue), greenOutput.blackPointValue + valueOutput.blackPointValue * (greenOutput.whitePointValue - greenOutput.blackPointValue), blueOutput.blackPointValue + valueOutput.blackPointValue * (blueOutput.whitePointValue - blueOutput.blackPointValue), alphaOutput.blackPointValue)
+ maximumOutput: Qt.rgba(redOutput.whitePointValue - (1.0 - valueOutput.whitePointValue) * (redOutput.whitePointValue - redOutput.blackPointValue), greenOutput.whitePointValue - (1.0 - valueOutput.whitePointValue) * (greenOutput.whitePointValue - greenOutput.blackPointValue), blueOutput.whitePointValue - (1.0 - valueOutput.whitePointValue) * (blueOutput.whitePointValue - blueOutput.blackPointValue), alphaOutput.whitePointValue)
+
+ gamma: Qt.vector3d((redInput.gamma * valueInput.gamma), (greenInput.gamma * valueInput.gamma), (blueInput.gamma * valueInput.gamma))
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "RGB"
+ LevelSlider {
+ id: valueInput
+ caption: "Input"
+ }
+ LevelSlider {
+ id: valueOutput
+ showMidPoint: false
+ caption: "Output"
+ }
+ },
+ Control {
+ caption: "Red"
+ __hide: true
+ LevelSlider {
+ id: redInput
+ caption: "Input"
+ }
+ LevelSlider {
+ id: redOutput
+ showMidPoint: false
+ caption: "Output"
+ }
+ },
+ Control {
+ caption: "Green"
+ __hide: true
+ LevelSlider {
+ id: greenInput
+ caption: "Input"
+ }
+ LevelSlider {
+ id: greenOutput
+ showMidPoint: false
+ caption: "Output"
+ }
+ },
+ Control {
+ caption: "Blue"
+ __hide: true
+ LevelSlider {
+ id: blueInput
+ caption: "Input"
+ }
+ LevelSlider {
+ id: blueOutput
+ showMidPoint: false
+ caption: "Output"
+ }
+ },
+ Control {
+ caption: "Alpha"
+ __hide: true
+ LevelSlider {
+ id: alphaInput
+ showMidPoint: false
+ caption: "Input"
+ }
+ LevelSlider {
+ id: alphaOutput
+ showMidPoint: false
+ caption: "Output"
+ }
+ },
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestLinearGradient.qml b/basicsuite/Shader Effects/TestLinearGradient.qml
new file mode 100644
index 0000000..5ed27b8
--- /dev/null
+++ b/basicsuite/Shader Effects/TestLinearGradient.qml
@@ -0,0 +1,156 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: maskImage
+ source: "images/butterfly.png"
+ }
+
+ LinearGradient {
+ id: effect
+ anchors.fill: parent
+ cached: cachedCheckBox.selected
+ visible: enabledCheckBox.selected
+ source: maskCheckBox.selected ? maskImage : undefined
+ start: Qt.point(startPicker.xValue * width, startPicker.yValue * height)
+ end: Qt.point(endPicker.xValue * width, endPicker.yValue * height)
+ gradient: Gradient {
+ GradientStop {
+ position: 0.0
+ color: gradientBeginColorSlider.color
+ }
+ GradientStop {
+ position: 1.0
+ color: gradientEndColorSlider.color
+ }
+ }
+ }
+
+ PositionPicker {
+ id: startPicker
+ xValue: 0.2
+ yValue: 0.2
+ }
+ PositionPicker {
+ id: endPicker
+ xValue: 0.8
+ yValue: 0.8
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Label {
+ caption: "startX"
+ text: startPicker.xValue.toFixed(1)
+ }
+ Label {
+ caption: "startY"
+ text: startPicker.yValue.toFixed(1)
+ }
+ Label {
+ caption: "endX"
+ text: endPicker.xValue.toFixed(1)
+ }
+ Label {
+ caption: "endY"
+ text: endPicker.yValue.toFixed(1)
+ }
+ CheckBox {
+ id: maskCheckBox
+ caption: "Use Mask"
+ }
+ },
+
+ Control {
+ caption: "gradient begin color"
+ ColorPicker {
+ id: gradientBeginColorSlider
+ hue: 0.67
+ saturation: 1.0
+ lightness: 0.5
+ }
+ },
+
+ Control {
+ caption: "gradient end color"
+ ColorPicker {
+ id: gradientEndColorSlider
+ hue: 0.5
+ saturation: 1.0
+ lightness: 0.5
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestMaskedBlur.qml b/basicsuite/Shader Effects/TestMaskedBlur.qml
new file mode 100644
index 0000000..1144252
--- /dev/null
+++ b/basicsuite/Shader Effects/TestMaskedBlur.qml
@@ -0,0 +1,153 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ }
+
+ Item {
+ id: maskSource
+ anchors.fill: imageSource
+ visible: false
+ Rectangle {
+ rotation: -90
+ anchors.fill: parent
+ gradient: Gradient {
+ GradientStop { position: 0.2; color: Qt.rgba(maskAlphaBeginSlider.value, maskAlphaBeginSlider.value, maskAlphaBeginSlider.value, maskAlphaBeginSlider.value) }
+ GradientStop { position: 0.5; color: Qt.rgba(maskAlphaEndSlider.value, maskAlphaEndSlider.value, maskAlphaEndSlider.value, maskAlphaEndSlider.value) }
+ }
+ }
+ }
+
+ MaskedBlur {
+ id: effect
+ anchors.fill: imageSource
+ radius: radiusSlider.value
+ samples: samplesSlider.value
+ transparentBorder: transparentBorderCheckBox.selected
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ fast: fastCheckBox.selected
+ source: imageSource
+ maskSource: maskSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: radiusSlider
+ minimum: 0.0
+ maximum: 32.0
+ value: 16.0
+ caption: "radius"
+ }
+ Slider {
+ id: samplesSlider
+ minimum: 0
+ maximum: 32
+ value: 32
+ integer: true
+ caption: "samples"
+ }
+ CheckBox {
+ id: transparentBorderCheckBox
+ caption: "transparentBorder"
+ selected: false
+ }
+ CheckBox {
+ id: fastCheckBox
+ caption: "fast"
+ selected: false
+ }
+ },
+ Control {
+ caption: "maskSource gradient"
+ Slider {
+ id: maskAlphaBeginSlider
+ minimum: 0.0
+ maximum: 1.0
+ value: 1.0
+ caption: "opacity begin"
+ }
+ Slider {
+ id: maskAlphaEndSlider
+ minimum: 0.0
+ maximum: 1.0
+ value: 0.0
+ caption: "opacity end"
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestOpacityMask.qml b/basicsuite/Shader Effects/TestOpacityMask.qml
new file mode 100644
index 0000000..488353e
--- /dev/null
+++ b/basicsuite/Shader Effects/TestOpacityMask.qml
@@ -0,0 +1,95 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ source: "images/bug.jpg"
+ forcedUpdateAnimationRunning: false
+ }
+ ImageSource {
+ id: maskSource
+ source: "images/butterfly.png"
+ }
+
+ OpacityMask {
+ id: effect
+ anchors.fill: imageSource
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ maskSource: maskSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestRadialBlur.qml b/basicsuite/Shader Effects/TestRadialBlur.qml
new file mode 100644
index 0000000..1f6c755
--- /dev/null
+++ b/basicsuite/Shader Effects/TestRadialBlur.qml
@@ -0,0 +1,132 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ source: "images/butterfly.png"
+ }
+
+ RadialBlur {
+ id: effect
+ anchors.fill: imageSource
+ transparentBorder: transparentBorderCheckBox.selected
+ angle: lengthSlider.value
+ samples: samplesSlider.value
+ horizontalOffset: (offsetPicker.xValue - 0.5) * width
+ verticalOffset: (offsetPicker.yValue - 0.5) * height
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ PositionPicker {
+ id: offsetPicker
+ xValue: 0.5
+ yValue: 0.5
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: lengthSlider
+ minimum: 0.0
+ maximum: 360.0
+ value: 15.0
+ caption: "angle"
+ }
+ Slider {
+ id: samplesSlider
+ minimum: 0
+ maximum: 64
+ value: 32
+ caption: "samples"
+ integer: true
+ }
+ CheckBox {
+ id: transparentBorderCheckBox
+ caption: "transparentBorder"
+ selected: false
+ }
+ Label {
+ caption: "horizontalOffset"
+ text: effect.horizontalOffset.toFixed(1)
+ }
+ Label {
+ caption: "verticalOffset"
+ text: effect.verticalOffset.toFixed(1)
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestRadialGradient.qml b/basicsuite/Shader Effects/TestRadialGradient.qml
new file mode 100644
index 0000000..da03ef0
--- /dev/null
+++ b/basicsuite/Shader Effects/TestRadialGradient.qml
@@ -0,0 +1,161 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: maskImage
+ source: "images/butterfly.png"
+ }
+
+ RadialGradient {
+ id: effect
+ anchors.fill: parent
+ cached: cachedCheckBox.selected
+ visible: enabledCheckBox.selected
+ source: maskCheckBox.selected ? maskImage : undefined
+ horizontalOffset: (offsetPicker.xValue - 0.5) * width
+ verticalOffset: (offsetPicker.yValue - 0.5) * height
+ horizontalRadius: horizontalRadiusSlider.value
+ verticalRadius: verticalRadiusSlider.value
+ angle: angleSlider.value
+ gradient: Gradient {
+ GradientStop {position: 0.0; color: gradientBeginColorSlider.color}
+ GradientStop {position: 1.0; color: gradientEndColorSlider.color}
+ }
+ }
+
+ PositionPicker {
+ id: offsetPicker
+ xValue: 0.5
+ yValue: 0.5
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Label {
+ caption: "horizontalOffset"
+ text: effect.horizontalOffset.toFixed(1)
+ }
+ Label {
+ caption: "verticalOffset"
+ text: effect.verticalOffset.toFixed(1)
+ }
+ Slider {
+ id: horizontalRadiusSlider
+ minimum: 0
+ maximum: effect.width
+ value: effect.width / 2
+ caption: "horizontalRadius"
+ }
+ Slider {
+ id: verticalRadiusSlider
+ minimum: 0
+ maximum: effect.height
+ value: effect.height / 2
+ caption: "verticalRadius"
+ }
+ Slider {
+ id: angleSlider
+ minimum: 0
+ maximum: 360
+ value: 0
+ caption: "angle"
+ }
+ CheckBox {
+ id: maskCheckBox
+ caption: "Use Mask"
+ }
+ },
+
+ Control {
+ caption: "gradient begin color"
+ ColorPicker {
+ id: gradientBeginColorSlider
+ hue: 0.67
+ saturation: 1.0
+ lightness: 0.5
+ }
+ },
+
+ Control {
+ caption: "gradient end color"
+ ColorPicker {
+ id: gradientEndColorSlider
+ hue: 0.5
+ saturation: 1.0
+ lightness: 0.5
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestRectangularGlow.qml b/basicsuite/Shader Effects/TestRectangularGlow.qml
new file mode 100644
index 0000000..233854e
--- /dev/null
+++ b/basicsuite/Shader Effects/TestRectangularGlow.qml
@@ -0,0 +1,138 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+
+ RectangularGlow {
+ id: effect
+ anchors.fill: rectSource
+ color: colorPicker.color
+ spread: spreadSlider.value
+ glowRadius: sizeSlider.value
+ visible: enabledCheckBox.selected
+ opacity: opacitySlider.value
+ cornerRadius: radiusSlider.value
+ cached: cachedCheckBox.selected
+ }
+
+ Rectangle {
+ id: rectSource
+ visible: true
+ anchors.centerIn: parent
+ width: Math.round(parent.width / 1.5)
+ height: Math.round(parent.height / 2)
+ radius: 25
+ color: "black"
+ smooth: true
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: spreadSlider
+ caption: "spread"
+ minimum: 0.0
+ maximum: 1.0
+ value: 0.5
+ }
+ Slider {
+ id: sizeSlider
+ minimum: 0
+ maximum: rectSource.width / 2.0
+ value: 10.0
+ caption: "glowRadius"
+ onValueChanged: radiusSlider.value = Math.max(0, Math.min(radiusSlider.value, radiusSlider.maximum))
+ }
+ Slider {
+ id: radiusSlider
+ minimum: 0
+ maximum: Math.min(effect.width, effect.height) / 2 + effect.glowRadius;
+ caption: "cornerRadius"
+ value: rectSource.radius + effect.glowRadius
+ }
+ Slider {
+ id: opacitySlider
+ minimum: 0
+ maximum: 1.0
+ value: 1.0
+ caption: "opacity"
+ }
+ },
+
+ Control {
+ caption: "color"
+ ColorPicker {
+ id: colorPicker
+ hue: 0
+ saturation: 1
+ lightness: 1
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestRecursiveBlur.qml b/basicsuite/Shader Effects/TestRecursiveBlur.qml
new file mode 100644
index 0000000..bdbbdbc
--- /dev/null
+++ b/basicsuite/Shader Effects/TestRecursiveBlur.qml
@@ -0,0 +1,119 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+
+ ImageSource {
+ id: imageSource
+ forcedUpdateAnimationRunning: false
+ }
+
+ RecursiveBlur {
+ id: effect
+ loops: iterationSlider.value
+ anchors.fill: imageSource
+ radius: radiusSlider.value
+ transparentBorder: transparentBorderCheckBox.selected
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: iterationSlider
+ minimum: 0
+ maximum: 20
+ value: 0
+ integer: true
+ caption: "loops"
+ }
+ Slider {
+ id: radiusSlider
+ minimum: 0.0
+ maximum: 16.0
+ value: 7.5
+ caption: "radius"
+ }
+ CheckBox {
+ id: transparentBorderCheckBox
+ caption: "transparentBorder"
+ selected: false
+ }
+ ProgressBar {
+ id: progressSlider
+ minimum: 0
+ maximum: 1.0
+ value: effect.progress
+ caption: "progress"
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestThresholdMask.qml b/basicsuite/Shader Effects/TestThresholdMask.qml
new file mode 100644
index 0000000..bbf2915
--- /dev/null
+++ b/basicsuite/Shader Effects/TestThresholdMask.qml
@@ -0,0 +1,114 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ source: "images/bug.jpg"
+ }
+ ImageSource {
+ id: maskSource
+ source: "images/fog.png"
+ }
+
+ ThresholdMask {
+ id: effect
+ anchors.fill: imageSource
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ maskSource: maskSource
+ threshold: thresholdSlider.value
+ spread: fringeSlider.value
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: thresholdSlider
+ minimum: 0.0
+ maximum: 1.0
+ value: 0.4
+ caption: "threshold"
+ }
+ Slider {
+ id: fringeSlider
+ minimum: 0.0
+ maximum: 1.0
+ value: 0.2
+ caption: "spread"
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/TestZoomBlur.qml b/basicsuite/Shader Effects/TestZoomBlur.qml
new file mode 100644
index 0000000..7dcfbd0
--- /dev/null
+++ b/basicsuite/Shader Effects/TestZoomBlur.qml
@@ -0,0 +1,132 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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 QtGraphicalEffects 1.0
+
+TestCaseTemplate {
+ ImageSource {
+ id: imageSource
+ source: "images/butterfly.png"
+ }
+
+ ZoomBlur {
+ id: effect
+ anchors.fill: imageSource
+ transparentBorder: transparentBorderCheckBox.selected
+ length: lengthSlider.value
+ samples: samplesSlider.value
+ horizontalOffset: (offsetPicker.xValue - 0.5) * width
+ verticalOffset: (offsetPicker.yValue - 0.5) * height
+ visible: enabledCheckBox.selected
+ cached: cachedCheckBox.selected
+ source: imageSource
+ }
+
+ PositionPicker {
+ id: offsetPicker
+ xValue: 0.5
+ yValue: 0.5
+ }
+
+ bgColor: bgColorPicker.color
+ controls: [
+ Control {
+ caption: "general"
+ Slider {
+ id: lengthSlider
+ minimum: 0.0
+ maximum: 64.0
+ value: 32.0
+ caption: "length"
+ }
+ Slider {
+ id: samplesSlider
+ minimum: 0
+ maximum: 32
+ value: 32
+ caption: "samples"
+ integer: true
+ }
+ CheckBox {
+ id: transparentBorderCheckBox
+ caption: "transparentBorder"
+ selected: false
+ }
+ Label {
+ caption: "horizontalOffset"
+ text: effect.horizontalOffset.toFixed(1)
+ }
+ Label {
+ caption: "verticalOffset"
+ text: effect.verticalOffset.toFixed(1)
+ }
+ },
+
+ Control {
+ caption: "advanced"
+ last: true
+ Label {
+ caption: "Effect size"
+ text: effect.width + "x" + effect.height
+ }
+ Label {
+ caption: "FPS"
+ text: fps
+ }
+ CheckBox {
+ id: cachedCheckBox
+ caption: "cached"
+ }
+ CheckBox {
+ id: enabledCheckBox
+ caption: "enabled"
+ }
+ CheckBox {
+ id: updateCheckBox
+ caption: "animated"
+ selected: false
+ }
+ BGColorPicker {
+ id: bgColorPicker
+ }
+ }
+ ]
+}
diff --git a/basicsuite/Shader Effects/description.txt b/basicsuite/Shader Effects/description.txt
new file mode 100644
index 0000000..645aa99
--- /dev/null
+++ b/basicsuite/Shader Effects/description.txt
@@ -0,0 +1,3 @@
+This example shows the QtGraphicalEffect module. Qt Quick 2.0 provides the ability to use inline GLSL in your Qt Quick applications to create stunning visual effects. However, as UIs typically reuse many of the same effects, the QtGraphicalEffects module provides a set of predefined, commonly used effects. This includes blur, drop-shadows, glow, blending, opacity maskes and more.
+
+The example is taken from the manual testbed application in the qtgraphicaleffects module. It has been adapted slightly to run in the launcher.
diff --git a/basicsuite/Shader Effects/images/background.png b/basicsuite/Shader Effects/images/background.png
new file mode 100644
index 0000000..458d33d
--- /dev/null
+++ b/basicsuite/Shader Effects/images/background.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/bug.jpg b/basicsuite/Shader Effects/images/bug.jpg
new file mode 100755
index 0000000..43e3676
--- /dev/null
+++ b/basicsuite/Shader Effects/images/bug.jpg
Binary files differ
diff --git a/basicsuite/Shader Effects/images/butterfly.png b/basicsuite/Shader Effects/images/butterfly.png
new file mode 100644
index 0000000..ce544f2
--- /dev/null
+++ b/basicsuite/Shader Effects/images/butterfly.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/checkbox_inner.png b/basicsuite/Shader Effects/images/checkbox_inner.png
new file mode 100644
index 0000000..52dce9c
--- /dev/null
+++ b/basicsuite/Shader Effects/images/checkbox_inner.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/checkbox_outer.png b/basicsuite/Shader Effects/images/checkbox_outer.png
new file mode 100644
index 0000000..6efa85f
--- /dev/null
+++ b/basicsuite/Shader Effects/images/checkbox_outer.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/checker.png b/basicsuite/Shader Effects/images/checker.png
new file mode 100644
index 0000000..b7f067b
--- /dev/null
+++ b/basicsuite/Shader Effects/images/checker.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/collapse.png b/basicsuite/Shader Effects/images/collapse.png
new file mode 100644
index 0000000..1b1259e
--- /dev/null
+++ b/basicsuite/Shader Effects/images/collapse.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/color_selection_hl.png b/basicsuite/Shader Effects/images/color_selection_hl.png
new file mode 100644
index 0000000..eeb9181
--- /dev/null
+++ b/basicsuite/Shader Effects/images/color_selection_hl.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/color_selection_mask.png b/basicsuite/Shader Effects/images/color_selection_mask.png
new file mode 100644
index 0000000..9a7e8f8
--- /dev/null
+++ b/basicsuite/Shader Effects/images/color_selection_mask.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/expand.png b/basicsuite/Shader Effects/images/expand.png
new file mode 100644
index 0000000..49f9c15
--- /dev/null
+++ b/basicsuite/Shader Effects/images/expand.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/fog.png b/basicsuite/Shader Effects/images/fog.png
new file mode 100644
index 0000000..f462222
--- /dev/null
+++ b/basicsuite/Shader Effects/images/fog.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/glass_normal.png b/basicsuite/Shader Effects/images/glass_normal.png
new file mode 100755
index 0000000..ba360ef
--- /dev/null
+++ b/basicsuite/Shader Effects/images/glass_normal.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/group_bottom.png b/basicsuite/Shader Effects/images/group_bottom.png
new file mode 100644
index 0000000..08961d0
--- /dev/null
+++ b/basicsuite/Shader Effects/images/group_bottom.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/group_top.png b/basicsuite/Shader Effects/images/group_top.png
new file mode 100644
index 0000000..210a57f
--- /dev/null
+++ b/basicsuite/Shader Effects/images/group_top.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/icon_blend.png b/basicsuite/Shader Effects/images/icon_blend.png
new file mode 100644
index 0000000..4112515
--- /dev/null
+++ b/basicsuite/Shader Effects/images/icon_blend.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/icon_blur.png b/basicsuite/Shader Effects/images/icon_blur.png
new file mode 100644
index 0000000..f0c6f5e
--- /dev/null
+++ b/basicsuite/Shader Effects/images/icon_blur.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/icon_color.png b/basicsuite/Shader Effects/images/icon_color.png
new file mode 100644
index 0000000..649cf75
--- /dev/null
+++ b/basicsuite/Shader Effects/images/icon_color.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/icon_distortion.png b/basicsuite/Shader Effects/images/icon_distortion.png
new file mode 100644
index 0000000..11bbece
--- /dev/null
+++ b/basicsuite/Shader Effects/images/icon_distortion.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/icon_drop_shadow.png b/basicsuite/Shader Effects/images/icon_drop_shadow.png
new file mode 100644
index 0000000..77b2f88
--- /dev/null
+++ b/basicsuite/Shader Effects/images/icon_drop_shadow.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/icon_glow.png b/basicsuite/Shader Effects/images/icon_glow.png
new file mode 100644
index 0000000..019b4b5
--- /dev/null
+++ b/basicsuite/Shader Effects/images/icon_glow.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/icon_gradient.png b/basicsuite/Shader Effects/images/icon_gradient.png
new file mode 100644
index 0000000..0d836b3
--- /dev/null
+++ b/basicsuite/Shader Effects/images/icon_gradient.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/icon_mask.png b/basicsuite/Shader Effects/images/icon_mask.png
new file mode 100644
index 0000000..ceca052
--- /dev/null
+++ b/basicsuite/Shader Effects/images/icon_mask.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/icon_motion_blur.png b/basicsuite/Shader Effects/images/icon_motion_blur.png
new file mode 100644
index 0000000..89ceb66
--- /dev/null
+++ b/basicsuite/Shader Effects/images/icon_motion_blur.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/radiobutton_inner.png b/basicsuite/Shader Effects/images/radiobutton_inner.png
new file mode 100644
index 0000000..e77ccc4
--- /dev/null
+++ b/basicsuite/Shader Effects/images/radiobutton_inner.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/radiobutton_outer.png b/basicsuite/Shader Effects/images/radiobutton_outer.png
new file mode 100644
index 0000000..6568c65
--- /dev/null
+++ b/basicsuite/Shader Effects/images/radiobutton_outer.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_handle.png b/basicsuite/Shader Effects/images/slider_handle.png
new file mode 100644
index 0000000..633bbe9
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_handle.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_handle_b.png b/basicsuite/Shader Effects/images/slider_handle_b.png
new file mode 100755
index 0000000..c7d2540
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_handle_b.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_handle_black.png b/basicsuite/Shader Effects/images/slider_handle_black.png
new file mode 100755
index 0000000..43bbeb8
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_handle_black.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_handle_g.png b/basicsuite/Shader Effects/images/slider_handle_g.png
new file mode 100755
index 0000000..86decaf
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_handle_g.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_handle_gray.png b/basicsuite/Shader Effects/images/slider_handle_gray.png
new file mode 100755
index 0000000..1b07aad
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_handle_gray.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_handle_pressed.png b/basicsuite/Shader Effects/images/slider_handle_pressed.png
new file mode 100644
index 0000000..10e5ed9
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_handle_pressed.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_handle_r.png b/basicsuite/Shader Effects/images/slider_handle_r.png
new file mode 100755
index 0000000..1bc1614
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_handle_r.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_handle_white.png b/basicsuite/Shader Effects/images/slider_handle_white.png
new file mode 100755
index 0000000..4f4f551
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_handle_white.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_track.png b/basicsuite/Shader Effects/images/slider_track.png
new file mode 100644
index 0000000..3ab0d21
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_track.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_track_filled.png b/basicsuite/Shader Effects/images/slider_track_filled.png
new file mode 100644
index 0000000..045e6c8
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_track_filled.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_track_left.png b/basicsuite/Shader Effects/images/slider_track_left.png
new file mode 100755
index 0000000..b1cc989
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_track_left.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/slider_track_right.png b/basicsuite/Shader Effects/images/slider_track_right.png
new file mode 100755
index 0000000..2936c7c
--- /dev/null
+++ b/basicsuite/Shader Effects/images/slider_track_right.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/title.png b/basicsuite/Shader Effects/images/title.png
new file mode 100644
index 0000000..e3110a2
--- /dev/null
+++ b/basicsuite/Shader Effects/images/title.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/workarea_left.png b/basicsuite/Shader Effects/images/workarea_left.png
new file mode 100644
index 0000000..3b8bb71
--- /dev/null
+++ b/basicsuite/Shader Effects/images/workarea_left.png
Binary files differ
diff --git a/basicsuite/Shader Effects/images/workarea_right.png b/basicsuite/Shader Effects/images/workarea_right.png
new file mode 100644
index 0000000..4954781
--- /dev/null
+++ b/basicsuite/Shader Effects/images/workarea_right.png
Binary files differ
diff --git a/basicsuite/Shader Effects/main.qml b/basicsuite/Shader Effects/main.qml
new file mode 100644
index 0000000..0d02e71
--- /dev/null
+++ b/basicsuite/Shader Effects/main.qml
@@ -0,0 +1,168 @@
+/****************************************************************************
+**
+** Copyright (C) 2013 Digia Plc and/or its subsidiary(-ies).
+** Contact: http://www.qt-project.org/legal
+**
+** This file is part of the Qt Graphical Effects module.
+**
+** $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 Digia Plc 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
+
+Rectangle {
+ id: main
+
+ width: 950
+ height: 620
+ color: '#171717'
+
+ ListView {
+ id: testCaseList
+ width: 160
+ anchors.top: titlebar.bottom
+ anchors.left: parent.left
+ anchors.bottom: parent.bottom
+
+ model: TestBedModel {}
+ delegate: delegateItem
+
+ section.property: "group"
+ section.criteria: ViewSection.FullString
+ section.delegate: sectionHeading
+
+ }
+
+ Image {
+ id: titlebar
+ source: "images/title.png"
+ anchors.top: parent.top
+ anchors.left: parent.left
+ width: 160
+
+ Text {
+ id: effectsListTitle
+ anchors.fill: parent
+ horizontalAlignment: Text.AlignHCenter
+ verticalAlignment: Text.AlignVCenter
+ text: "Effects"
+ color: "white"
+ font.family: "Arial"
+ font.bold: true
+ font.pixelSize: 12
+ }
+ }
+
+ Loader {
+ id: testLoader
+ anchors {left: testCaseList.right; right: parent.right; top: parent.top; bottom: parent.bottom}
+ }
+
+ Image {
+ anchors {right: testLoader.right; rightMargin: 300; top: parent.top; bottom: parent.bottom}
+ source: "images/workarea_right.png"
+ }
+
+ Image {
+ anchors {left: testLoader.left; top: parent.top; bottom: parent.bottom}
+ source: "images/workarea_left.png"
+ }
+
+
+ Component {
+ id: sectionHeading
+ Item {
+ width: parent.width
+ height: 23
+ Image {
+ source: "images/group_top.png"
+ width: parent.width
+ }
+ Image {
+ id: icon
+ source: "images/icon_" + section.replace(/ /g, "_").toLowerCase() + ".png"
+ anchors {top: parent.top; topMargin: 6; left: parent.left; leftMargin: 6}
+ }
+ Text {
+ id: sectionText
+ text: section
+ anchors {fill: parent; leftMargin: 25; topMargin: 3}
+ color: "white"
+ verticalAlignment: Text.AlignVCenter
+ font.family: "Arial"
+ font.bold: true
+ font.pixelSize: 12
+ }
+ }
+ }
+
+ Component {
+ id: delegateItem
+ Item {
+ width: ListView.view.width
+ height: last ? 27 : 20
+
+ Image {
+ source: "images/group_bottom.png"
+ anchors.bottom: parent.bottom
+ anchors.left: parent.left
+ anchors.right: parent.right
+ smooth: true
+ visible: last && index != 20 ? 1 : 0
+ }
+
+ Rectangle {
+ width: parent.width
+ color: "#323232"
+ height: 20
+ visible: (testLoader.source.toString().search(name) != -1)
+ }
+ Text {
+ id: delegateText;
+ anchors {fill: parent; leftMargin: 25; topMargin: 3}
+ text: name.slice(4, name.indexOf("."))
+ font.family: "Arial"
+ font.pixelSize: 12
+ color: delegateMouseArea.pressed ? "white" : "#CCCCCC"
+ }
+ MouseArea {
+ id: delegateMouseArea
+ anchors.fill: parent;
+ onClicked: {
+ testLoader.source = name;
+ testLoader.item.currentTest = delegateText.text;
+ }
+ }
+ }
+ }
+}
diff --git a/basicsuite/Shader Effects/preview_l.jpg b/basicsuite/Shader Effects/preview_l.jpg
new file mode 100644
index 0000000..d636692
--- /dev/null
+++ b/basicsuite/Shader Effects/preview_l.jpg
Binary files differ