Улучшен дизайн кнопок SpinBox: добавлены современные стили, улучшена визуальная обратная связь, добавлены SVG иконки, оптимизированы размеры и отступы, улучшена читаемость значени
This commit is contained in:
1 parent
2b9165771b
commit
29dce906c5
6110 files changed
+775979
No files matched your search
@@ -0,0 +1,688 @@
|
||||
// Copyright (C) 2021 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
|
||||
|
||||
Column {
|
||||
width: parent.width
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Scene Environment")
|
||||
|
||||
SectionLayout {
|
||||
id: baseSectionLayout
|
||||
property bool isColorMode: backgroundModeComboBox.currentIndex === 2
|
||||
property bool isSkyBoxMode: backgroundModeComboBox.currentIndex === 3
|
||||
property bool isSkyBoxCubeMapMode: backgroundModeComboBox.currentIndex === 4
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Background Mode")
|
||||
tooltip: qsTr("Sets if and how the background of the scene should be cleared.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
id: backgroundModeComboBox
|
||||
scope: "SceneEnvironment"
|
||||
model: ["Transparent", "Unspecified", "Color", "SkyBox", "SkyBoxCubeMap"]
|
||||
backendValue: backendValues.backgroundMode
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: baseSectionLayout.isColorMode
|
||||
text: qsTr("Clear Color")
|
||||
tooltip: qsTr("Sets which color will be used to clear the viewport when using SceneEnvironment.Color for the backgroundMode property.")
|
||||
}
|
||||
|
||||
ColorEditor {
|
||||
visible: baseSectionLayout.isColorMode
|
||||
backendValue: backendValues.clearColor
|
||||
supportGradient: false
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: baseSectionLayout.isSkyBoxCubeMapMode
|
||||
text: qsTr("Skybox Cube Map")
|
||||
tooltip: qsTr("Sets a cubemap to be used as a skybox when the background mode is SkyBoxCubeMap.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: baseSectionLayout.isSkyBoxCubeMapMode
|
||||
ItemFilterComboBox {
|
||||
typeFilter: "QtQuick3D.CubeMapTexture"
|
||||
backendValue: backendValues.skyBoxCubeMap
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: baseSectionLayout.isSkyBoxMode || baseSectionLayout.isSkyBoxCubeMapMode
|
||||
text: qsTr("Skybox Blur")
|
||||
tooltip: qsTr("Sets how much to blur the skybox when using SceneEnvironment.SkyBox for the backgroundMode property.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: baseSectionLayout.isSkyBoxMode || baseSectionLayout.isSkyBoxCubeMapMode
|
||||
SpinBox {
|
||||
minimumValue: 0
|
||||
maximumValue: 1
|
||||
decimals: 2
|
||||
stepSize: 0.01
|
||||
sliderIndicatorVisible: true
|
||||
backendValue: backendValues.skyboxBlurAmount
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Effects")
|
||||
tooltip: qsTr("Post Processing effects applied to this scene.")
|
||||
Layout.alignment: Qt.AlignTop
|
||||
Layout.topMargin: 5
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
EditableListView {
|
||||
backendValue: backendValues.effects
|
||||
model: backendValues.effects.expressionAsList
|
||||
Layout.fillWidth: true
|
||||
typeFilter: "QtQuick3D.Effect"
|
||||
|
||||
onAdd: function(value) { backendValues.effects.idListAdd(value) }
|
||||
onRemove: function(idx) { backendValues.effects.idListRemove(idx) }
|
||||
onReplace: function (idx, value) { backendValues.effects.idListReplace(idx, value) }
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Tonemap Mode")
|
||||
tooltip: qsTr("Sets how colors are tonemapped before rendering.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
scope: "SceneEnvironment"
|
||||
model: ["TonemapModeNone", "TonemapModeLinear", "TonemapModeAces", "TonemapModeHejlDawson", "TonemapModeFilmic"]
|
||||
backendValue: backendValues.tonemapMode
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Fog")
|
||||
tooltip: qsTr("Settings for Fog applied to the scene.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ItemFilterComboBox {
|
||||
typeFilter: "QtQuick3D.Fog"
|
||||
backendValue: backendValues.fog
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
id: antialiasingSection
|
||||
width: parent.width
|
||||
caption: qsTr("Antialiasing")
|
||||
|
||||
property bool isAntialiasingEnabled: antialiasingModeComboBox.currentIndex !== 0
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Antialiasing Mode")
|
||||
tooltip: qsTr("Sets the antialiasing mode applied to the scene.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
id: antialiasingModeComboBox
|
||||
scope: "SceneEnvironment"
|
||||
model: ["NoAA", "SSAA", "MSAA", "ProgressiveAA"]
|
||||
backendValue: backendValues.antialiasingMode
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: antialiasingSection.isAntialiasingEnabled
|
||||
text: qsTr("Antialiasing Quality")
|
||||
tooltip: qsTr("Sets the level of antialiasing applied to the scene.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: antialiasingSection.isAntialiasingEnabled
|
||||
ComboBox {
|
||||
scope: "SceneEnvironment"
|
||||
model: ["Medium", "High", "VeryHigh"]
|
||||
backendValue: backendValues.antialiasingQuality
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Specular AA")
|
||||
tooltip: qsTr("Enables specular antialiasing.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.specularAAEnabled.valueToString
|
||||
backendValue: backendValues.specularAAEnabled
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Temporal AA")
|
||||
tooltip: qsTr("Enables temporal antialiasing using camera jittering and frame blending.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
id: temporalAAEnabledCheckBox
|
||||
text: backendValues.temporalAAEnabled.valueToString
|
||||
backendValue: backendValues.temporalAAEnabled
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: temporalAAEnabledCheckBox.checked
|
||||
text: qsTr("Temporal AA Strength")
|
||||
tooltip: qsTr("Sets the amount of temporal antialiasing applied.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: temporalAAEnabledCheckBox.checked
|
||||
SpinBox {
|
||||
minimumValue: 0.01
|
||||
maximumValue: 2.0
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.temporalAAStrength
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Ambient Occlusion")
|
||||
|
||||
SectionLayout {
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Enabled")
|
||||
tooltip: qsTr("Enables ambient occlusion.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
id: ambientOcclusionEnabledCheckBox
|
||||
text: backendValues.aoEnabled.valueToString
|
||||
backendValue: backendValues.aoEnabled
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
|
||||
PropertyLabel {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
text: qsTr("Strength")
|
||||
tooltip: qsTr("Sets the amount of ambient occulusion applied.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
SpinBox {
|
||||
minimumValue: 0
|
||||
maximumValue: 100
|
||||
sliderIndicatorVisible: true
|
||||
decimals: 0
|
||||
backendValue: backendValues.aoStrength
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
text: qsTr("Distance")
|
||||
tooltip: qsTr("Sets roughly how far ambient occlusion shadows spread away from objects.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
SpinBox {
|
||||
minimumValue: 0
|
||||
maximumValue: 9999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.aoDistance
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
text: qsTr("Softness")
|
||||
tooltip: qsTr("Sets how smooth the edges of the ambient occlusion shading are.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
SpinBox {
|
||||
minimumValue: 0
|
||||
maximumValue: 50
|
||||
sliderIndicatorVisible: true
|
||||
decimals: 2
|
||||
backendValue: backendValues.aoSoftness
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
text: qsTr("Sample Rate")
|
||||
tooltip: qsTr("Sets ambient occlusion quality (more shades of gray) at the expense of performance.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
SpinBox {
|
||||
minimumValue: 2
|
||||
maximumValue: 4
|
||||
decimals: 0
|
||||
stepSize: 1
|
||||
sliderIndicatorVisible: true
|
||||
backendValue: backendValues.aoSampleRate
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
text: qsTr("Bias")
|
||||
tooltip: qsTr("Sets a cutoff distance preventing objects from exhibiting ambient occlusion at close distances.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
SpinBox {
|
||||
minimumValue: 0
|
||||
maximumValue: 9999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.aoBias
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
text: qsTr("Dither")
|
||||
tooltip: qsTr("Enables scattering the edges of the ambient occlusion shadow bands to improve smoothness.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
visible: ambientOcclusionEnabledCheckBox.checked
|
||||
CheckBox {
|
||||
id: aoDitherCheckBox
|
||||
text: backendValues.aoDither.valueToString
|
||||
backendValue: backendValues.aoDither
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Image Based Lighting")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("HDR Image")
|
||||
tooltip: qsTr("Sets an image to use to light the scene, either instead of, or in addition to standard lights.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ItemFilterComboBox {
|
||||
typeFilter: "QtQuick3D.Texture"
|
||||
backendValue: backendValues.lightProbe
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Exposure")
|
||||
tooltip: qsTr("Sets the amount of light emitted by the light probe.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
minimumValue: 0
|
||||
maximumValue: 9999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.probeExposure
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Horizon")
|
||||
tooltip: qsTr("Sets the light probe horizon. When set, adds darkness (black) to the bottom of the environment, forcing the lighting to come predominantly from the top of the image.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
minimumValue: 0
|
||||
maximumValue: 1
|
||||
decimals: 2
|
||||
stepSize: 0.1
|
||||
backendValue: backendValues.probeHorizon
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Orientation")
|
||||
tooltip: qsTr("Sets the orientation of the light probe.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: -9999999
|
||||
maximumValue: 9999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.probeOrientation_x
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: "X"
|
||||
color: StudioTheme.Values.theme3DAxisXColor
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: -9999999
|
||||
maximumValue: 9999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.probeOrientation_y
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: "Y"
|
||||
color: StudioTheme.Values.theme3DAxisYColor
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
minimumValue: -9999999
|
||||
maximumValue: 9999999
|
||||
decimals: 2
|
||||
backendValue: backendValues.probeOrientation_z
|
||||
}
|
||||
|
||||
Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
ControlLabel {
|
||||
text: "Z"
|
||||
color: StudioTheme.Values.theme3DAxisZColor
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
width: parent.width
|
||||
caption: qsTr("Advanced")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Enable Depth Test")
|
||||
tooltip: qsTr("Enables depth testing. Disable to optimize render speed for layers with mostly transparent objects.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.depthTestEnabled.valueToString
|
||||
backendValue: backendValues.depthTestEnabled
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Enable Depth Prepass")
|
||||
tooltip: qsTr("Enables draw depth buffer as a separate pass. Disable to optimize render speed for layers with low depth complexity.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
text: backendValues.depthPrePassEnabled.valueToString
|
||||
backendValue: backendValues.depthPrePassEnabled
|
||||
implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Debug Settings")
|
||||
tooltip: qsTr("Additional render settings for debugging scenes.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ItemFilterComboBox {
|
||||
typeFilter: "QtQuick3D.DebugSettings"
|
||||
backendValue: backendValues.debugSettings
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Light Mapper")
|
||||
tooltip: qsTr("Sets the light mapper object for the scene.")
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
ItemFilterComboBox {
|
||||
typeFilter: "QtQuick3D.Lightmapper"
|
||||
backendValue: backendValues.lightmapper
|
||||
implicitWidth: StudioTheme.Values.singleControlColumnWidth
|
||||
+ StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
ExpandingSpacer {}
|
||||
}
|
||||
|
||||
// ### This is not yet implemented in the DS backend since rect does not have
|
||||
// a way to access x, y, width, or height via the _ notation.
|
||||
// PropertyLabel {
|
||||
// text: qsTr("Scissor Rect")
|
||||
// tooltip: qsTr("Defines a scissor rectangle in view coordinates.")
|
||||
// }
|
||||
|
||||
// SecondColumnLayout {
|
||||
// SpinBox {
|
||||
// maximumValue: 999999
|
||||
// minimumValue: -999999
|
||||
// decimals: 0
|
||||
// stepSize: 1
|
||||
// backendValue: backendValues.scissorRect_x
|
||||
// implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
// + StudioTheme.Values.actionIndicatorWidth
|
||||
// }
|
||||
|
||||
// Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
// ControlLabel {
|
||||
// text: "X"
|
||||
// tooltip: qsTr("Sets the scissor clip X offset from left to right.")
|
||||
// }
|
||||
|
||||
// Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
// SpinBox {
|
||||
// maximumValue: 999999
|
||||
// minimumValue: -999999
|
||||
// decimals: 0
|
||||
// stepSize: 1
|
||||
// backendValue: backendValues.scissorRect_y
|
||||
// implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
// + StudioTheme.Values.actionIndicatorWidth
|
||||
// }
|
||||
|
||||
// Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
// ControlLabel {
|
||||
// text: "Y"
|
||||
// tooltip: qsTr("Sets the scissor clip Y offset from bottom to top.")
|
||||
// }
|
||||
|
||||
// ExpandingSpacer {}
|
||||
// }
|
||||
|
||||
// PropertyLabel {} // spacer
|
||||
|
||||
// SecondColumnLayout {
|
||||
// SpinBox {
|
||||
// maximumValue: 999999
|
||||
// minimumValue: -999999
|
||||
// decimals: 0
|
||||
// stepSize: 1
|
||||
// backendValue: backendValues.scissorRect_width
|
||||
// implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
// + StudioTheme.Values.actionIndicatorWidth
|
||||
// }
|
||||
|
||||
// Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
// ControlLabel {
|
||||
// text: "W"
|
||||
// tooltip: qsTr("Sets the scissor clip width")
|
||||
// }
|
||||
|
||||
// Spacer { implicitWidth: StudioTheme.Values.controlGap }
|
||||
|
||||
// SpinBox {
|
||||
// maximumValue: 999999
|
||||
// minimumValue: -999999
|
||||
// decimals: 0
|
||||
// stepSize: 1
|
||||
// backendValue: backendValues.scissorRect_height
|
||||
// implicitWidth: StudioTheme.Values.twoControlColumnWidth
|
||||
// + StudioTheme.Values.actionIndicatorWidth
|
||||
// }
|
||||
|
||||
// Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
|
||||
|
||||
// ControlLabel {
|
||||
// text: "H"
|
||||
// tooltip: qsTr("Sets the scissor clip height")
|
||||
// }
|
||||
|
||||
// ExpandingSpacer {}
|
||||
// }
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user