Revision control

++ // Copyright (C) 2023 The Qt Company Ltd.
++ // SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
++
++ import QtQuick
++ import HelperWidgets
++ import QtQuick.Layouts
++
++ Section {
++ anchors.left: parent.left
++ anchors.right: parent.right
++ caption: qsTr("Camera")
++
++ SectionLayout {
++ PropertyLabel {
++ text: qsTr("Preset")
++ tooltip: qsTr("Camera preset")
++ Layout.fillWidth: true
++ }
++ SecondColumnLayout {
++ ComboBox {
++ backendValue: backendValues.cameraPreset
++ model: ["NoPreset", "FrontLow", "Front", "FrontHigh", "LeftLow",
++ "Left", "LeftHigh", "RightLow", "Right", "RightHigh", "BehindLow",
++ "Behind", "BehindHigh", "IsometricLeft", "IsometricLeftHigh",
++ "IsometricRight", "IsometricRightHigh", "DirectlyAbove",
++ "DirectlyAboveCW45", "DirectlyAboveCCW45", "FrontBelow",
++ "LeftBelow", "RightBelow", "BehindBelow", "DirectlyBelow"]
++ Layout.fillWidth: true
++ scope: "Graphs3D"
++ }
++ }
++ PropertyLabel {
++ text: qsTr("Target")
++ tooltip: qsTr("Camera target position")
++ Layout.fillWidth: true
++ }
++ SecondColumnLayout {
++ SpinBox {
++ backendValue: backendValues.cameraTargetPosition_x
++ minimumValue: -1.0
++ maximumValue: 1.0
++ stepSize: 0.01
++ decimals: 2
++ Layout.fillWidth: true
++ }
++ ControlLabel {
++ text: "X"
++ }
++
++ SpinBox {
++ backendValue: backendValues.cameraTargetPosition_y
++ minimumValue: -1.0
++ maximumValue: 1.0
++ stepSize: 0.01
++ decimals: 2
++ Layout.fillWidth: true
++ }
++ ControlLabel {
++ text:"Y"
++ }
++
++ SpinBox {
++ backendValue: backendValues.cameraTargetPosition_z
++ minimumValue: -1.0
++ maximumValue: 1.0
++ stepSize: 0.01
++ decimals: 2
++ Layout.fillWidth: true
++ }
++ ControlLabel {
++ text: "Z"
++ }
++ }
++ PropertyLabel {
++ text: qsTr("Zoom")
++ tooltip: qsTr("Camera zoom level")
++ Layout.fillWidth: true
++ }
++ SecondColumnLayout {
++ SpinBox {
++ backendValue: backendValues.cameraZoomLevel
++ minimumValue: backendValues.minCameraZoomLevel
++ maximumValue: backendValues.maxCameraZoomLevel
++ stepSize: 1
++ decimals: 0
++ Layout.fillWidth: true
++ }
++ }
++ PropertyLabel {
++ text: qsTr("Min Zoom")
++ tooltip: qsTr("Camera minimum zoom")
++ Layout.fillWidth: true
++ }
++ SecondColumnLayout {
++ SpinBox {
++ backendValue: backendValues.minCameraZoomLevel
++ minimumValue: 0
++ maximumValue: backendValues.maxCameraZoomLevel
++ stepSize: 1
++ decimals: 0
++ Layout.fillWidth: true
++ }
++ }
++ PropertyLabel {
++ text: qsTr("Max Zoom")
++ tooltip: qsTr("Camera maximum zoom")
++ Layout.fillWidth: true
++ }
++ SecondColumnLayout {
++ SpinBox {
++ backendValue: backendValues.maxCameraZoomLevel
++ minimumValue: backendValues.minCameraZoomLevel
++ maximumValue: 500
++ stepSize: 1
++ decimals: 0
++ Layout.fillWidth: true
++ }
++ }
++ PropertyLabel {
++ text: qsTr("X Rotation")
++ tooltip: qsTr("Camera X rotation")
++ Layout.fillWidth: true
++ }
++ SecondColumnLayout {
++ SpinBox {
++ backendValue: backendValues.cameraXRotation
++ minimumValue: -180
++ maximumValue: 180
++ stepSize: 1
++ decimals: 0
++ Layout.fillWidth: true
++ }
++ }
++ PropertyLabel {
++ text: qsTr("Wrap X")
++ tooltip: qsTr("Wrap camera X rotation")
++ Layout.fillWidth: true
++ }
++ SecondColumnLayout {
++ CheckBox {
++ backendValue: backendValues.wrapCameraXRotation
++ Layout.fillWidth: true
++ }
++ }
++ PropertyLabel {
++ text: qsTr("Y Rotation")
++ tooltip: qsTr("Camera Y rotation")
++ Layout.fillWidth: true
++ }
++ SecondColumnLayout {
++ SpinBox {
++ backendValue: backendValues.cameraYRotation
++ minimumValue: 0
++ maximumValue: 90
++ stepSize: 1
++ decimals: 0
++ Layout.fillWidth: true
++ }
++ }
++ PropertyLabel {
++ text: qsTr("Wrap Y")
++ tooltip: qsTr("Wrap camera Y rotation")
++ Layout.fillWidth: true
++ }
++ SecondColumnLayout {
++ CheckBox {
++ backendValue: backendValues.wrapCameraYRotation
++ Layout.fillWidth: true
++ }
++ }
++ PropertyLabel {
++ text: qsTr("Orthographic")
++ tooltip: qsTr("Use orthographic camera")
++ Layout.fillWidth: true
++ }
++ SecondColumnLayout {
++ CheckBox {
++ backendValue: backendValues.orthoProjection
++ Layout.fillWidth: true
++ }
++ }
++ }
++ }