// Copyright (C) 2022 The Qt Company Ltd. // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0 import QtQuick 2.15 import QtQuick.Layouts 1.15 import HelperWidgets 2.0 import StudioTheme 1.0 as StudioTheme Column { width: parent.width Section { caption: qsTr("Range Slider") width: parent.width SectionLayout { PropertyLabel { text: qsTr("Value 1") tooltip: qsTr("Sets the value of the first range slider handle.") } SecondColumnLayout { SpinBox { implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth minimumValue: Math.min(backendValues.from.value, backendValues.to.value) maximumValue: Math.max(backendValues.from.value, backendValues.to.value) decimals: 2 stepSize: 0.1 backendValue: backendValues.first_value } Spacer { implicitWidth: StudioTheme.Values.twoControlColumnGap } CheckBox { text: qsTr("Live") implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth backendValue: backendValues.live tooltip: qsTr("Toggles if the range slider provides live value updates.") } ExpandingSpacer {} } PropertyLabel { text: qsTr("Value 2") tooltip: qsTr("Sets the value of the second range slider handle.") } SecondColumnLayout { SpinBox { implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth minimumValue: Math.min(backendValues.from.value, backendValues.to.value) maximumValue: Math.max(backendValues.from.value, backendValues.to.value) decimals: 2 stepSize: 0.1 backendValue: backendValues.second_value } ExpandingSpacer {} } PropertyLabel { text: qsTr("From") tooltip: qsTr("Sets the minimum value of the range slider.") } SecondColumnLayout { SpinBox { implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 decimals: 2 stepSize: 0.1 backendValue: backendValues.from } ExpandingSpacer {} } PropertyLabel { text: qsTr("To") tooltip: qsTr("Sets the maximum value of the range slider.") } SecondColumnLayout { SpinBox { implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 decimals: 2 stepSize: 0.1 backendValue: backendValues.to } ExpandingSpacer {} } PropertyLabel { text: qsTr("Step size") tooltip: qsTr("Sets the interval between the steps.\n" + "This functions if Snap mode is selected.") } SecondColumnLayout { SpinBox { implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth maximumValue: 9999999 minimumValue: -9999999 decimals: 2 stepSize: 0.1 backendValue: backendValues.stepSize } ExpandingSpacer {} } PropertyLabel { text: qsTr("Drag threshold") tooltip: qsTr("Sets the threshold at which a drag event begins.") } SecondColumnLayout { SpinBox { implicitWidth: StudioTheme.Values.twoControlColumnWidth + StudioTheme.Values.actionIndicatorWidth minimumValue: 0 maximumValue: 10000 decimals: 0 backendValue: backendValues.touchDragThreshold } ExpandingSpacer {} } PropertyLabel { text: qsTr("Snap mode") tooltip: qsTr("Sets how the slider handles snaps to the steps\n" + "defined in step size.") } SecondColumnLayout { ComboBox { implicitWidth: StudioTheme.Values.singleControlColumnWidth + StudioTheme.Values.actionIndicatorWidth width: implicitWidth backendValue: backendValues.snapMode model: [ "NoSnap", "SnapOnRelease", "SnapAlways" ] scope: "RangeSlider" } ExpandingSpacer {} } PropertyLabel { text: qsTr("Orientation") tooltip: qsTr("Sets the orientation of the range slider.") } SecondColumnLayout { ComboBox { implicitWidth: StudioTheme.Values.singleControlColumnWidth + StudioTheme.Values.actionIndicatorWidth width: implicitWidth backendValue: backendValues.orientation model: [ "Horizontal", "Vertical" ] scope: "Qt" } ExpandingSpacer {} } } } ControlSection {} PaddingSection {} InsetSection {} }