Revision control

++ // Copyright (C) 2022 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++
++ import QtQuick 2.15
++ import QtQuick.Layouts 1.15
++ import HelperWidgets 2.0
++ import StudioTheme 1.0 as StudioTheme
++
++ Section {
++ caption: qsTr("Particle Scale Affector")
++ width: parent.width
++
++ SectionLayout {
++ PropertyLabel {
++ text: qsTr("Scaling Type")
++ tooltip: qsTr("Sets the scaling type of the affector.")
++ }
++
++ SecondColumnLayout {
++ ComboBox {
++ scope: "ScaleAffector3D"
++ model: ["Linear", "SewSaw", "SineWave", "AbsSineWave", "Step", "SmoothStep"]
++ backendValue: backendValues.type
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {
++ text: qsTr("Minimum Size")
++ tooltip: qsTr("Sets the minimum scale size.")
++ }
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: 0
++ maximumValue: 999999
++ decimals: 2
++ backendValue: backendValues.minSize
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {
++ text: qsTr("Maximum Size")
++ tooltip: qsTr("Sets the maximum scale size.")
++ }
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: 0
++ maximumValue: 999999
++ decimals: 2
++ backendValue: backendValues.maxSize
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {
++ text: qsTr("Duration")
++ tooltip: qsTr("Sets the duration of scaling period.")
++ }
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: 0
++ maximumValue: 999999
++ decimals: 0
++ stepSize: 10
++ backendValue: backendValues.duration
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {
++ text: qsTr("Easing curve")
++ tooltip: qsTr("Sets a custom scaling curve.")
++ }
++
++ SecondColumnLayout {
++ BoolButtonRowButton {
++ buttonIcon: StudioTheme.Constants.curveDesigner
++
++ EasingCurveEditor {
++ id: easingCurveEditor
++ modelNodeBackendProperty: modelNodeBackend
++ }
++
++ onClicked: easingCurveEditor.runDialog()
++ }
++
++ ExpandingSpacer {}
++ }
++ }
++ }