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
++
++ Column {
++ width: parent.width
++
++ Section {
++ width: parent.width
++ caption: qsTr("Visibility")
++
++ SectionLayout {
++ PropertyLabel {
++ text: qsTr("Visibility")
++ tooltip: qsTr("Sets the local visibility of the node.")
++ }
++
++ SecondColumnLayout {
++ // ### should be a slider
++ CheckBox {
++ text: qsTr("Visible")
++ backendValue: backendValues.visible
++ implicitWidth: StudioTheme.Values.twoControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {
++ text: qsTr("Opacity")
++ tooltip: qsTr("Sets the local opacity value of the node.")
++ }
++
++ SecondColumnLayout {
++ // ### should be a slider
++ SpinBox {
++ minimumValue: 0
++ maximumValue: 1
++ decimals: 2
++ stepSize: 0.1
++ backendValue: backendValues.opacity
++ sliderIndicatorVisible: true
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ ExpandingSpacer {}
++ }
++ }
++ }
++
++ Section {
++ id: transformSection
++ width: parent.width
++ caption: qsTr("Transform")
++
++ ColumnLayout {
++ spacing: StudioTheme.Values.transform3DSectionSpacing
++
++ SectionLayout {
++ PropertyLabel {
++ text: qsTr("Translation")
++ tooltip: qsTr("Sets the translation of the node.")
++ }
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.x
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "X"
++ color: StudioTheme.Values.theme3DAxisXColor
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {}
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.y
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "Y"
++ color: StudioTheme.Values.theme3DAxisYColor
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {}
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.z
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "Z"
++ color: StudioTheme.Values.theme3DAxisZColor
++ }
++
++ ExpandingSpacer {}
++ }
++ }
++
++ SectionLayout {
++ PropertyLabel {
++ text: qsTr("Rotation")
++ tooltip: qsTr("Sets the rotation of the node in degrees.")
++ }
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.eulerRotation_x
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "X"
++ color: StudioTheme.Values.theme3DAxisXColor
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {}
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.eulerRotation_y
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "Y"
++ color: StudioTheme.Values.theme3DAxisYColor
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {}
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.eulerRotation_z
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "Z"
++ color: StudioTheme.Values.theme3DAxisZColor
++ }
++
++ ExpandingSpacer {}
++ }
++ }
++
++ SectionLayout {
++ PropertyLabel {
++ text: qsTr("Scale")
++ tooltip: qsTr("Sets the scale of the node.")
++ }
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.scale_x
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "X"
++ color: StudioTheme.Values.theme3DAxisXColor
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {}
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.scale_y
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "Y"
++ color: StudioTheme.Values.theme3DAxisYColor
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {}
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.scale_z
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "Z"
++ color: StudioTheme.Values.theme3DAxisZColor
++ }
++
++ ExpandingSpacer {}
++ }
++ }
++
++ SectionLayout {
++ PropertyLabel {
++ text: qsTr("Pivot")
++ tooltip: qsTr("Sets the pivot of the node.")
++ }
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.pivot_x
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "X"
++ color: StudioTheme.Values.theme3DAxisXColor
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {}
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.pivot_y
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "Y"
++ color: StudioTheme.Values.theme3DAxisYColor
++ }
++
++ ExpandingSpacer {}
++ }
++
++ PropertyLabel {}
++
++ SecondColumnLayout {
++ SpinBox {
++ minimumValue: -9999999
++ maximumValue: 9999999
++ decimals: 2
++ backendValue: backendValues.pivot_z
++ implicitWidth: StudioTheme.Values.singleControlColumnWidth
++ + StudioTheme.Values.actionIndicatorWidth
++ }
++
++ Spacer { implicitWidth: StudioTheme.Values.controlLabelGap }
++
++ ControlLabel {
++ text: "Z"
++ color: StudioTheme.Values.theme3DAxisZColor
++ }
++
++ ExpandingSpacer {}
++ }
++ }
++ }
++ }
++ }