diff options
author | Laszlo Agocs <laszlo.agocs@qt.io> | 2020-06-06 18:49:07 +0200 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2020-06-09 10:58:44 +0200 |
commit | 1a819c0ca5744d3537944126ff013686d5efbffe (patch) | |
tree | 89d55d7f662244b564c77047861b5ef015d10556 /tests | |
parent | b7e24192352bee955d37a89fc061f1dafd32b73a (diff) |
Port 17 effects to RHI, remove 8 unportable ones
The following are based on static shader code, and after porting the
shaders they will work fully identically to 5.15:
FastBlur
Colorize
OpacityMask
BrightnessContrast
ColorOverlay
Desaturate
Displace
GammaAdjust
HueSaturation
LevelAdjust
RectangularGlow
Thresholdmask
LinearGradient
RadialGradient
ConicalGradient
The following change behavior:
Glow
DropShadow
These now only have the fast variants, because those rely on static shader code.
So we are going back to the Qt 5.5 versions and make them behave as if 'fast'
was always set to true. The 'fast' and 'samples' properties are removed.
The following are removed:
Blend
GaussianBlur
DirectionalBlur
MaskedBlur
RadialBlur
RecursiveBlur
ZoomBlur
InnerShadow
The autotest and the gallery application (run qmlscene testBed.qml in
tests/manual/testbed) have been adjusted accordingly and now work across
all QRhi backends.
The docs may still refer to removed effects in some code snippets. Updating
that is left as a separate exercise.
[ChangeLog] Graphical Effects no longer relies on dynamically generated
shader strings. The following effects have been removed: Blend, GaussianBlur,
MaskedBlur, RadialBlur, RecursiveBlur, ZoomBlur, InnerShadow. Glow
and DropShadow always use the 'fast' variant. The fast and samples
properties for these are thus no longer applicable and have been
removed.
Change-Id: Ife83f3828f37977596fd34f8da8b61961f0ed28a
Reviewed-by: Mitch Curtis <mitch.curtis@qt.io>
Reviewed-by: Andy Nichols <andy.nichols@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/auto/tst_qtgraphicaleffects.cpp | 241 | ||||
-rw-r--r-- | tests/manual/testbed/ColorPicker.qml | 50 | ||||
-rw-r--r-- | tests/manual/testbed/TestBedModel.qml | 8 | ||||
-rw-r--r-- | tests/manual/testbed/TestBlend.qml | 204 | ||||
-rw-r--r-- | tests/manual/testbed/TestDirectionalBlur.qml | 112 | ||||
-rw-r--r-- | tests/manual/testbed/TestDropShadow.qml | 15 | ||||
-rw-r--r-- | tests/manual/testbed/TestGaussianBlur.qml | 111 | ||||
-rw-r--r-- | tests/manual/testbed/TestGlow.qml | 15 | ||||
-rw-r--r-- | tests/manual/testbed/TestInnerShadow.qml | 143 | ||||
-rw-r--r-- | tests/manual/testbed/TestMaskedBlur.qml | 141 | ||||
-rw-r--r-- | tests/manual/testbed/TestRadialBlur.qml | 120 | ||||
-rw-r--r-- | tests/manual/testbed/TestRecursiveBlur.qml | 107 | ||||
-rw-r--r-- | tests/manual/testbed/TestZoomBlur.qml | 120 |
13 files changed, 5 insertions, 1382 deletions
diff --git a/tests/auto/tst_qtgraphicaleffects.cpp b/tests/auto/tst_qtgraphicaleffects.cpp index a6e8127..f83fc02 100644 --- a/tests/auto/tst_qtgraphicaleffects.cpp +++ b/tests/auto/tst_qtgraphicaleffects.cpp @@ -38,31 +38,23 @@ class tst_qtgraphicaleffects : public QObject private slots: void initTestCase(); - void blend(); void brightnessContrast(); void colorize(); void colorOverlay(); void conicalGradient(); void desaturate(); - void directionalBlur(); void displace(); void dropShadow(); void fastBlur(); void gammaAdjust(); - void gaussianBlur(); void glow(); void hueSaturation(); - void innerShadow(); void levelAdjust(); void linearGradient(); - void maskedBlur(); void opacityMask(); - void radialBlur(); void radialGradient(); - void recursiveBlur(); void rectangularGlow(); void thresholdMask(); - void zoomBlur(); private: QString componentErrors(const QQmlComponent*) const; @@ -389,34 +381,6 @@ void tst_qtgraphicaleffects::colorOverlay() QCOMPARE(obj->property("color").toString(), QString("#00000000")); } -void tst_qtgraphicaleffects::gaussianBlur() -{ - // Creation - QString componentStr = "import QtQuick 2.0\n" - + importSelf + - "GaussianBlur {" - "source: ShaderEffectSource {sourceItem: Rectangle {width: 100; height: 100}}" - "width: 50; height: 50\n" - "}"; - QQmlComponent component(&engine); - component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); - QVERIFY2(component.status() != QQmlComponent::Error, qPrintable(componentErrors(&component))); - QTRY_COMPARE(component.status(), QQmlComponent::Ready); - QScopedPointer<QObject> obj(component.create()); - QVERIFY(!obj.isNull()); - - // Default values - QCOMPARE(obj->property("radius").type(), QVariant::Double); - QCOMPARE(obj->property("radius").toDouble(), 4.0); - QCOMPARE(obj->property("samples").toInt(), 9); - QCOMPARE(obj->property("transparentBorder").toBool(), false); - - double res = obj->property("deviation").toDouble(); - QVERIFY(res > 0.0); - - QCOMPARE(obj->property("cached").toBool(), false); -} - void tst_qtgraphicaleffects::dropShadow() { // Creation @@ -435,40 +399,7 @@ void tst_qtgraphicaleffects::dropShadow() // Default values QCOMPARE(obj->property("radius").type(), QVariant::Double); - QCOMPARE(obj->property("radius").toDouble(), 4.0); - QCOMPARE(obj->property("samples").toInt(), 9); - QCOMPARE(obj->property("horizontalOffset").type(), QVariant::Double); - QCOMPARE(obj->property("horizontalOffset").toDouble(), 0.0); - QCOMPARE(obj->property("verticalOffset").type(), QVariant::Double); - QCOMPARE(obj->property("verticalOffset").toDouble(), 0.0); - QCOMPARE(obj->property("cached").toBool(), false); - QCOMPARE(obj->property("source").toInt(), 0); - QCOMPARE(obj->property("color").toString(), QString("#000000")); - QCOMPARE(obj->property("spread").type(), QVariant::Double); - QCOMPARE(obj->property("spread").toDouble(), 0.0); - QCOMPARE(obj->property("transparentBorder").toBool(), true); -} - -void tst_qtgraphicaleffects::innerShadow() -{ - // Creation - QString componentStr = "import QtQuick 2.0\n" - + importSelf + - "InnerShadow {" - "source: ShaderEffectSource {sourceItem: Rectangle {width: 100; height: 100}}" - "width: 50; height: 50\n" - "}"; - QQmlComponent component(&engine); - component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); - QVERIFY2(component.status() != QQmlComponent::Error, qPrintable(componentErrors(&component))); - QTRY_COMPARE(component.status(), QQmlComponent::Ready); - QScopedPointer<QObject> obj(component.create()); - QVERIFY(!obj.isNull()); - - // Default values - QCOMPARE(obj->property("radius").type(), QVariant::Double); QCOMPARE(obj->property("radius").toDouble(), 0.0); - QCOMPARE(obj->property("samples").toInt(), 0); QCOMPARE(obj->property("horizontalOffset").type(), QVariant::Double); QCOMPARE(obj->property("horizontalOffset").toDouble(), 0.0); QCOMPARE(obj->property("verticalOffset").type(), QVariant::Double); @@ -478,7 +409,7 @@ void tst_qtgraphicaleffects::innerShadow() QCOMPARE(obj->property("color").toString(), QString("#000000")); QCOMPARE(obj->property("spread").type(), QVariant::Double); QCOMPARE(obj->property("spread").toDouble(), 0.0); - QCOMPARE(obj->property("fast").toBool(), false); + QCOMPARE(obj->property("transparentBorder").toBool(), false); } void tst_qtgraphicaleffects::gammaAdjust() @@ -549,37 +480,12 @@ void tst_qtgraphicaleffects::glow() // Default values QCOMPARE(obj->property("radius").type(), QVariant::Double); - QCOMPARE(obj->property("radius").toDouble(), 4.0); - QCOMPARE(obj->property("samples").toInt(), 9); + QCOMPARE(obj->property("radius").toDouble(), 0); QCOMPARE(obj->property("cached").toBool(), false); QCOMPARE(obj->property("spread").type(), QVariant::Double); - QCOMPARE(obj->property("spread").toDouble(), 0.5); + QCOMPARE(obj->property("spread").toDouble(), 0); QCOMPARE(obj->property("color").toString(), QString("#ffffff")); - QCOMPARE(obj->property("transparentBorder").toBool(), true); -} - -void tst_qtgraphicaleffects::blend() -{ - // Creation - QString componentStr = "import QtQuick 2.0\n" - + importSelf + - "Blend {" - "source: ShaderEffectSource {sourceItem: Rectangle {width: 100; height: 100}}" - "foregroundSource: ShaderEffectSource {sourceItem: Rectangle {width: 100; height: 100}}" - "width: 50; height: 50\n" - "}"; - QQmlComponent component(&engine); - component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); - QVERIFY2(component.status() != QQmlComponent::Error, qPrintable(componentErrors(&component))); - QTRY_COMPARE(component.status(), QQmlComponent::Ready); - QScopedPointer<QObject> obj(component.create()); - QVERIFY(!obj.isNull()); - - // Default values - QCOMPARE(obj->property("source").toInt(), 0); - QCOMPARE(obj->property("foregroundSource").toInt(), 0); - QCOMPARE(obj->property("cached").toBool(), false); - QCOMPARE(obj->property("mode").toString(), QString("normal")); + QCOMPARE(obj->property("transparentBorder").toBool(), false); } void tst_qtgraphicaleffects::displace() @@ -607,119 +513,6 @@ void tst_qtgraphicaleffects::displace() QCOMPARE(obj->property("displacement").toDouble(), 0.0); } -void tst_qtgraphicaleffects::recursiveBlur() -{ - // Creation - QString componentStr = "import QtQuick 2.0\n" - + importSelf + - "RecursiveBlur {" - "source: ShaderEffectSource {sourceItem: Rectangle {width: 100; height: 100}}" - "width: 50; height: 50\n" - "}"; - QQmlComponent component(&engine); - component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); - QVERIFY2(component.status() != QQmlComponent::Error, qPrintable(componentErrors(&component))); - QTRY_COMPARE(component.status(), QQmlComponent::Ready); - QScopedPointer<QObject> obj(component.create()); - QVERIFY(!obj.isNull()); - - // Default values - QCOMPARE(obj->property("source").toInt(), 0); - QCOMPARE(obj->property("loops").toInt(), 0); - QCOMPARE(obj->property("radius").type(), QVariant::Double); - QCOMPARE(obj->property("radius").toDouble(), 0.0); - QCOMPARE(obj->property("progress").type(), QVariant::Double); - QCOMPARE(obj->property("progress").toDouble(), 0.0); - QCOMPARE(obj->property("transparentBorder").toBool(), false); - QCOMPARE(obj->property("cached").toBool(), false); -} - -void tst_qtgraphicaleffects::directionalBlur() -{ - // Creation - QString componentStr = "import QtQuick 2.0\n" - + importSelf + - "DirectionalBlur {" - "source: ShaderEffectSource {sourceItem: Rectangle {width: 100; height: 100}}" - "width: 50; height: 50\n" - "}"; - QQmlComponent component(&engine); - component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); - QVERIFY2(component.status() != QQmlComponent::Error, qPrintable(componentErrors(&component))); - QTRY_COMPARE(component.status(), QQmlComponent::Ready); - QScopedPointer<QObject> obj(component.create()); - QVERIFY(!obj.isNull()); - - // Default values - QCOMPARE(obj->property("source").toInt(), 0); - QCOMPARE(obj->property("length").toInt(), 0); - QCOMPARE(obj->property("samples").type(), QVariant::Int); - QCOMPARE(obj->property("samples").toInt(), 0); - QCOMPARE(obj->property("angle").type(), QVariant::Double); - QCOMPARE(obj->property("angle").toDouble(), 0.0); - QCOMPARE(obj->property("transparentBorder").toBool(), false); - QCOMPARE(obj->property("cached").toBool(), false); -} - -void tst_qtgraphicaleffects::radialBlur() -{ - // Creation - QString componentStr = "import QtQuick 2.0\n" - + importSelf + - "RadialBlur {" - "source: ShaderEffectSource {sourceItem: Rectangle {width: 100; height: 100}}" - "width: 50; height: 50\n" - "}"; - QQmlComponent component(&engine); - component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); - QVERIFY2(component.status() != QQmlComponent::Error, qPrintable(componentErrors(&component))); - QTRY_COMPARE(component.status(), QQmlComponent::Ready); - QScopedPointer<QObject> obj(component.create()); - QVERIFY(!obj.isNull()); - - // Default values - QCOMPARE(obj->property("source").toInt(), 0); - QCOMPARE(obj->property("samples").type(), QVariant::Int); - QCOMPARE(obj->property("samples").toInt(), 0); - QCOMPARE(obj->property("angle").type(), QVariant::Double); - QCOMPARE(obj->property("angle").toDouble(), 0.0); - QCOMPARE(obj->property("transparentBorder").toBool(), false); - QCOMPARE(obj->property("cached").toBool(), false); - QCOMPARE(obj->property("horizontalOffset").type(), QVariant::Double); - QCOMPARE(obj->property("horizontalOffset").toDouble(), 0.0); - QCOMPARE(obj->property("verticalOffset").type(), QVariant::Double); - QCOMPARE(obj->property("verticalOffset").toDouble(), 0.0); -} - -void tst_qtgraphicaleffects::zoomBlur() -{ - // Creation - QString componentStr = "import QtQuick 2.0\n" - + importSelf + - "ZoomBlur {" - "source: ShaderEffectSource {sourceItem: Rectangle {width: 100; height: 100}}" - "width: 50; height: 50\n" - "}"; - QQmlComponent component(&engine); - component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); - QVERIFY2(component.status() != QQmlComponent::Error, qPrintable(componentErrors(&component))); - QTRY_COMPARE(component.status(), QQmlComponent::Ready); - QScopedPointer<QObject> obj(component.create()); - QVERIFY(!obj.isNull()); - - // Default values - QCOMPARE(obj->property("source").toInt(), 0); - QCOMPARE(obj->property("length").toInt(), 0); - QCOMPARE(obj->property("samples").type(), QVariant::Int); - QCOMPARE(obj->property("samples").toInt(), 0); - QCOMPARE(obj->property("transparentBorder").toBool(), false); - QCOMPARE(obj->property("cached").toBool(), false); - QCOMPARE(obj->property("horizontalOffset").type(), QVariant::Double); - QCOMPARE(obj->property("horizontalOffset").toDouble(), 0.0); - QCOMPARE(obj->property("verticalOffset").type(), QVariant::Double); - QCOMPARE(obj->property("verticalOffset").toDouble(), 0.0); -} - void tst_qtgraphicaleffects::levelAdjust() { // Creation @@ -744,32 +537,6 @@ void tst_qtgraphicaleffects::levelAdjust() QCOMPARE(obj->property("cached").toBool(), false); } -void tst_qtgraphicaleffects::maskedBlur() -{ - // Creation - QString componentStr = "import QtQuick 2.0\n" - + importSelf + - "MaskedBlur {" - "source: ShaderEffectSource {sourceItem: Rectangle {width: 100; height: 100}}" - "maskSource: ShaderEffectSource {sourceItem: Rectangle {width: 100; height: 100}}" - "width: 50; height: 50\n" - "}"; - QQmlComponent component(&engine); - component.setData(componentStr.toLatin1(), QUrl::fromLocalFile("")); - QVERIFY2(component.status() != QQmlComponent::Error, qPrintable(componentErrors(&component))); - QTRY_COMPARE(component.status(), QQmlComponent::Ready); - QScopedPointer<QObject> obj(component.create()); - QVERIFY(!obj.isNull()); - - // Default values - QCOMPARE(obj->property("source").toInt(), 0); - QCOMPARE(obj->property("maskSource").toInt(), 0); - QCOMPARE(obj->property("radius").type(), QVariant::Double); - QCOMPARE(obj->property("radius").toDouble(), 4.0); - QCOMPARE(obj->property("samples").toInt(), 9); - QCOMPARE(obj->property("cached").toBool(), false); -} - QTEST_MAIN(tst_qtgraphicaleffects) #include "tst_qtgraphicaleffects.moc" diff --git a/tests/manual/testbed/ColorPicker.qml b/tests/manual/testbed/ColorPicker.qml index 7181192..aa46d7a 100644 --- a/tests/manual/testbed/ColorPicker.qml +++ b/tests/manual/testbed/ColorPicker.qml @@ -52,7 +52,7 @@ Item { color: root.color } - ShaderEffect { + Item { // ShaderEffect converted to an Item for now to keep it simple id: map anchors.left: parent.left anchors.leftMargin: 10 @@ -63,54 +63,6 @@ Item { 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 diff --git a/tests/manual/testbed/TestBedModel.qml b/tests/manual/testbed/TestBedModel.qml index c299c39..d396173 100644 --- a/tests/manual/testbed/TestBedModel.qml +++ b/tests/manual/testbed/TestBedModel.qml @@ -30,21 +30,13 @@ import QtQuick 2.12 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 } diff --git a/tests/manual/testbed/TestBlend.qml b/tests/manual/testbed/TestBlend.qml deleted file mode 100644 index c3852e1..0000000 --- a/tests/manual/testbed/TestBlend.qml +++ /dev/null @@ -1,204 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Graphical Effects module. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.12 -import QtGraphicalEffects 1.12 - -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/tests/manual/testbed/TestDirectionalBlur.qml b/tests/manual/testbed/TestDirectionalBlur.qml deleted file mode 100644 index a3455e8..0000000 --- a/tests/manual/testbed/TestDirectionalBlur.qml +++ /dev/null @@ -1,112 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Graphical Effects module. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.12 -import QtGraphicalEffects 1.12 - -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/tests/manual/testbed/TestDropShadow.qml b/tests/manual/testbed/TestDropShadow.qml index 93070be..f67cc7b 100644 --- a/tests/manual/testbed/TestDropShadow.qml +++ b/tests/manual/testbed/TestDropShadow.qml @@ -44,12 +44,10 @@ TestCaseTemplate { 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 { @@ -78,25 +76,12 @@ TestCaseTemplate { 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 { diff --git a/tests/manual/testbed/TestGaussianBlur.qml b/tests/manual/testbed/TestGaussianBlur.qml deleted file mode 100644 index 13ce7fc..0000000 --- a/tests/manual/testbed/TestGaussianBlur.qml +++ /dev/null @@ -1,111 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Graphical Effects module. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.12 -import QtGraphicalEffects 1.12 - -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/tests/manual/testbed/TestGlow.qml b/tests/manual/testbed/TestGlow.qml index 997a838..574eda8 100644 --- a/tests/manual/testbed/TestGlow.qml +++ b/tests/manual/testbed/TestGlow.qml @@ -43,10 +43,8 @@ TestCaseTemplate { color: colorPicker.color spread: spreadSlider.value radius: radiusSlider.value - samples: samplesSlider.value visible: enabledCheckBox.selected cached: cachedCheckBox.selected - fast: fastCheckBox.selected source: imageSource } @@ -68,19 +66,6 @@ TestCaseTemplate { 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 { diff --git a/tests/manual/testbed/TestInnerShadow.qml b/tests/manual/testbed/TestInnerShadow.qml deleted file mode 100644 index d17be5f..0000000 --- a/tests/manual/testbed/TestInnerShadow.qml +++ /dev/null @@ -1,143 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Graphical Effects module. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.12 -import QtGraphicalEffects 1.12 - -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/tests/manual/testbed/TestMaskedBlur.qml b/tests/manual/testbed/TestMaskedBlur.qml deleted file mode 100644 index c8b6b2d..0000000 --- a/tests/manual/testbed/TestMaskedBlur.qml +++ /dev/null @@ -1,141 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Graphical Effects module. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.12 -import QtGraphicalEffects 1.12 - -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/tests/manual/testbed/TestRadialBlur.qml b/tests/manual/testbed/TestRadialBlur.qml deleted file mode 100644 index c2e0d95..0000000 --- a/tests/manual/testbed/TestRadialBlur.qml +++ /dev/null @@ -1,120 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Graphical Effects module. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.12 -import QtGraphicalEffects 1.12 - -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/tests/manual/testbed/TestRecursiveBlur.qml b/tests/manual/testbed/TestRecursiveBlur.qml deleted file mode 100644 index 5e33ea3..0000000 --- a/tests/manual/testbed/TestRecursiveBlur.qml +++ /dev/null @@ -1,107 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Graphical Effects module. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.12 -import QtGraphicalEffects 1.12 - -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/tests/manual/testbed/TestZoomBlur.qml b/tests/manual/testbed/TestZoomBlur.qml deleted file mode 100644 index 3045e15..0000000 --- a/tests/manual/testbed/TestZoomBlur.qml +++ /dev/null @@ -1,120 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2017 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the Qt Graphical Effects module. -** -** $QT_BEGIN_LICENSE:GPL-EXCEPT$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 3 as published by the Free Software -** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -import QtQuick 2.12 -import QtGraphicalEffects 1.12 - -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 - } - } - ] -} |