aboutsummaryrefslogtreecommitdiffstats
path: root/tests/manual/rectangle/corners.qml
diff options
context:
space:
mode:
Diffstat (limited to 'tests/manual/rectangle/corners.qml')
-rw-r--r--tests/manual/rectangle/corners.qml221
1 files changed, 221 insertions, 0 deletions
diff --git a/tests/manual/rectangle/corners.qml b/tests/manual/rectangle/corners.qml
new file mode 100644
index 0000000000..87dbbefcaf
--- /dev/null
+++ b/tests/manual/rectangle/corners.qml
@@ -0,0 +1,221 @@
+// Copyright (C) 2023 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick
+import QtQuick.Controls
+import QtQuick.Dialogs
+import QtQuick.Layouts
+
+Item {
+ id: root
+ width: 600
+ height: 400
+
+ component ResettablePropertySlider: RowLayout {
+ property alias setCheckBox: checkBox
+ property alias valueSlider: slider
+
+ CheckBox {
+ id: checkBox
+ text: "Set"
+ }
+ Slider {
+ id: slider
+ from: 0
+ value: 25
+ to: 200
+ enabled: checkBox.checked
+
+ Layout.fillWidth: true
+ }
+ }
+
+ RowLayout {
+ anchors.fill: parent
+
+ GridLayout {
+ columns: 2
+ rowSpacing: 10
+
+ Label {
+ text: "radius"
+ }
+ Slider {
+ id: radiusSlider
+ from: 0
+ value: 25
+ to: 200
+ }
+
+ Label {
+ text: "topLeftRadius"
+ }
+ ResettablePropertySlider {
+ id: topLeftRadiusSlider
+ }
+
+ Label {
+ text: "topRightRadius"
+ }
+ ResettablePropertySlider {
+ id: topRightRadiusSlider
+ }
+
+ Label {
+ text: "bottomLeftRadius"
+ }
+ ResettablePropertySlider {
+ id: bottomLeftRadiusSlider
+ }
+
+ Label {
+ text: "bottomRightRadius"
+ }
+ ResettablePropertySlider {
+ id: bottomRightRadiusSlider
+ }
+
+ Label {
+ text: "border.width"
+ }
+ Slider {
+ id: borderWidthSlider
+ from: 0
+ value: 15
+ to: 100
+
+ Layout.fillWidth: true
+ }
+
+ Label {
+ text: "border alpha"
+ }
+ Slider {
+ id: borderAlphaSlider
+ from: 0
+ value: 1
+ to: 1
+
+ Layout.fillWidth: true
+ }
+
+ Label {
+ text: "opacity"
+ }
+ Slider {
+ id: opacitySlider
+ from: 0
+ value: 1
+ to: 1
+
+ Layout.fillWidth: true
+ }
+
+ Label {
+ text: "gradient"
+ }
+ ComboBox {
+ id: gradientComboBox
+ model: ListModel {
+ id: model
+ ListElement { text: "NoGradient" }
+ ListElement { text: "LowFreq" }
+ ListElement { text: "HighFreq" }
+ }
+
+ Layout.fillWidth: true
+
+ readonly property var gradients: [undefined, lowFGrad, highFGrad]
+
+ property var lowFGrad: Gradient {
+ orientation: Qt.Horizontal
+ GradientStop { position: 0.0; color: "green" }
+ GradientStop { position: 0.33; color: "blue" }
+ GradientStop { position: 0.66; color: "red" }
+ GradientStop { position: 1.0; color: "yellow" }
+ }
+
+ property var highFGrad: Gradient {
+ orientation: Qt.Horizontal
+ GradientStop { position: 0.00; color: "yellow" }
+ GradientStop { position: 0.05; color: "red" }
+ GradientStop { position: 0.10; color: "yellow" }
+ GradientStop { position: 0.15; color: "red" }
+ GradientStop { position: 0.20; color: "yellow" }
+ GradientStop { position: 0.25; color: "red" }
+ GradientStop { position: 0.30; color: "yellow" }
+ GradientStop { position: 0.35; color: "red" }
+ GradientStop { position: 0.40; color: "yellow" }
+ GradientStop { position: 0.45; color: "red" }
+ GradientStop { position: 0.50; color: "yellow" }
+ GradientStop { position: 0.55; color: "red" }
+ GradientStop { position: 0.60; color: "yellow" }
+ GradientStop { position: 0.65; color: "red" }
+ GradientStop { position: 0.70; color: "yellow" }
+ GradientStop { position: 0.75; color: "red" }
+ GradientStop { position: 0.80; color: "yellow" }
+ GradientStop { position: 0.85; color: "red" }
+ GradientStop { position: 0.90; color: "yellow" }
+ GradientStop { position: 0.95; color: "red" }
+ GradientStop { position: 1.00; color: "yellow" }
+ }
+ }
+
+ Label {
+ text: "rotation"
+ }
+ Slider {
+ id: rotationSlider
+ from: 0
+ value: 0
+ to: 10
+
+ Layout.fillWidth: true
+ }
+ }
+
+ Rectangle {
+ id: rect1
+ color: colorDialog.selectedColor
+ border.color: borderColorDialog.alphaAdjusted
+ border.width: borderWidthSlider.value
+ radius: radiusSlider.value
+ topLeftRadius: topLeftRadiusSlider.setCheckBox.checked ? topLeftRadiusSlider.valueSlider.value : undefined
+ topRightRadius: topRightRadiusSlider.setCheckBox.checked ? topRightRadiusSlider.valueSlider.value : undefined
+ bottomLeftRadius: bottomLeftRadiusSlider.setCheckBox.checked ? bottomLeftRadiusSlider.valueSlider.value : undefined
+ bottomRightRadius: bottomRightRadiusSlider.setCheckBox.checked ? bottomRightRadiusSlider.valueSlider.value : undefined
+ antialiasing: true
+ opacity: opacitySlider.value
+ rotation: rotationSlider.value
+ gradient: gradientComboBox.gradients[gradientComboBox.currentIndex]
+
+ Layout.preferredWidth: root.width / 2
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ Layout.margins: 32
+
+ TapHandler {
+ onTapped: colorDialog.open()
+ }
+
+ TapHandler {
+ acceptedButtons: Qt.RightButton
+ onTapped: borderColorDialog.open()
+ }
+ }
+
+ ColorDialog {
+ id: colorDialog
+ selectedColor: "khaki"
+ }
+
+ ColorDialog {
+ id: borderColorDialog
+ selectedColor: "sienna"
+ property color alphaAdjusted: Qt.rgba(selectedColor.r,
+ selectedColor.g,
+ selectedColor.b,
+ borderAlphaSlider.value)
+ }
+ }
+}