aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Hartmann <thomas.hartmann@qt.io>2024-04-18 17:21:07 +0200
committerThomas Hartmann <thomas.hartmann@qt.io>2024-04-18 17:28:30 +0200
commitaaeac1cb64713da1a4813177fc231efc18a4331b (patch)
tree211d31c5988fd12687e729cf49aebcbf9ff0d731
parent97b9b619a12c88b9b72cc823363e01278237be91 (diff)
Clamp values for effects
Change-Id: I4295d860608f04e68e431969593832a37e22c73b Reviewed-by: Henning Gründl <henning.gruendl@qt.io>
-rw-r--r--src/imports/designeffects/DesignEffectPrivate.qml28
1 files changed, 18 insertions, 10 deletions
diff --git a/src/imports/designeffects/DesignEffectPrivate.qml b/src/imports/designeffects/DesignEffectPrivate.qml
index 14b3072..f20b42b 100644
--- a/src/imports/designeffects/DesignEffectPrivate.qml
+++ b/src/imports/designeffects/DesignEffectPrivate.qml
@@ -51,6 +51,14 @@ Item {
Component.onCompleted: root.calculateBoundingBox()
+ function clamp(input : real, min : real, max : real) {
+
+ if (isNaN(input))
+ return 0
+
+ return Math.max(min, Math.min(input, max))
+ }
+
property rect effectBoundingBox: Qt.rect(0, 0, 0, 0)
function calculateBoundingBox() {
@@ -81,7 +89,7 @@ Item {
DesignLayerBlurPrivate {
id: layerBlur
visible: root.layerBlurVisible
- radius: root.layerBlurRadius
+ radius: root.clamp(root.layerBlurRadius, 0, 250)
source: layerBlurSource
@@ -114,7 +122,7 @@ Item {
source: root.source
background: root.background
- radius: root.backgroundBlurRadius
+ radius: root.clamp(root.backgroundBlurRadius, 0, 250)
}
ShaderEffectSource {
@@ -142,11 +150,11 @@ Item {
source: root.source
- horizontalOffset: modelData.offsetX
- verticalOffset: modelData.offsetY
- spread: modelData.spread
+ horizontalOffset: root.clamp(modelData.offsetX, -0xffff, 0xffff)
+ verticalOffset: root.clamp(modelData.offsetY, -0xffff, 0xffff)
+ spread: root.clamp(modelData.spread, -2048, 2048)
color: modelData.color
- radius: modelData.blur
+ radius: root.clamp(modelData.blur, 0, 250)
visible: modelData.visible
onGeometryChanged: root.calculateBoundingBox()
@@ -160,11 +168,11 @@ Item {
source: root.source
- horizontalOffset: modelData.offsetX
- verticalOffset: modelData.offsetY
- spread: modelData.spread
+ horizontalOffset: root.clamp(modelData.offsetX, -0xffff, 0xffff)
+ verticalOffset: root.clamp(modelData.offsetY, -0xffff, 0xffff)
+ spread: repeater.clamp(modelData.spread, -2048, 2048)
color: modelData.color
- radius: modelData.blur
+ radius: root.clamp(modelData.blur, 0, 250)
visible: modelData.visible
z: 10