Files
2026-04-29 07:19:21 +03:00

299 lines
9.7 KiB
QML

// 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("WASD Controller")
SectionLayout {
PropertyLabel {
text: qsTr("Controlled Node")
tooltip: qsTr("Sets the 3D node controlled by this controller.")
}
SecondColumnLayout {
ItemFilterComboBox {
typeFilter: "QtQuick3D.Node"
backendValue: backendValues.controlledObject
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Invert X")
tooltip: qsTr("Enables inverting X-axis controls.")
}
SecondColumnLayout {
CheckBox {
text: qsTr("Enabled")
backendValue: backendValues.xInvert
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Invert Y")
tooltip: qsTr("Enables inverting Y-axis controls.")
}
SecondColumnLayout {
CheckBox {
text: qsTr("Enabled")
backendValue: backendValues.yInvert
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Mouse Control")
tooltip: qsTr("Enables using mouse to control the target node.")
}
SecondColumnLayout {
CheckBox {
text: qsTr("Enabled")
backendValue: backendValues.mouseEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Keyboard Control")
tooltip: qsTr("Enables using keyboard to control the target node.")
}
SecondColumnLayout {
CheckBox {
text: qsTr("Enabled")
backendValue: backendValues.keysEnabled
implicitWidth: StudioTheme.Values.twoControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
// TODO: acceptedButtons has no control as there is currently no support for a flags
// type of property control in QDS.
}
}
Section {
width: parent.width
caption: qsTr("Speeds")
SectionLayout {
PropertyLabel {
text: qsTr("Speed")
tooltip: qsTr("Sets the general navigation speed multiplier.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 999999
decimals: 2
stepSize: 0.1
backendValue: backendValues.speed
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Shift Speed")
tooltip: qsTr("Sets the navigation speed multiplier when the Shift key is pressed.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 999999
decimals: 2
stepSize: 0.1
backendValue: backendValues.shiftSpeed
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Forward Speed")
tooltip: qsTr("Sets the navigation speed when forward key is pressed.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 999999
decimals: 2
stepSize: 0.1
backendValue: backendValues.forwardSpeed
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Back Speed")
tooltip: qsTr("Sets the navigation speed when back key is pressed.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 999999
decimals: 2
stepSize: 0.1
backendValue: backendValues.backSpeed
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Right Speed")
tooltip: qsTr("Sets the navigation speed when right key is pressed.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 999999
decimals: 2
stepSize: 0.1
backendValue: backendValues.rightSpeed
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Left Speed")
tooltip: qsTr("Sets the navigation speed when left key is pressed.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 999999
decimals: 2
stepSize: 0.1
backendValue: backendValues.leftSpeed
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Up Speed")
tooltip: qsTr("Sets the navigation speed when up key is pressed.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 999999
decimals: 2
stepSize: 0.1
backendValue: backendValues.upSpeed
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Down Speed")
tooltip: qsTr("Sets the navigation speed when down key is pressed.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 999999
decimals: 2
stepSize: 0.1
backendValue: backendValues.downSpeed
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("X Speed")
tooltip: qsTr("Sets the navigation speed when mouse is moved along X-axis.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 999999
decimals: 2
stepSize: 0.1
backendValue: backendValues.xSpeed
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
PropertyLabel {
text: qsTr("Y Speed")
tooltip: qsTr("Sets the navigation speed when mouse is moved along Y-axis.")
}
SecondColumnLayout {
SpinBox {
minimumValue: 0
maximumValue: 999999
decimals: 2
stepSize: 0.1
backendValue: backendValues.ySpeed
implicitWidth: StudioTheme.Values.singleControlColumnWidth
+ StudioTheme.Values.actionIndicatorWidth
}
ExpandingSpacer {}
}
}
}
}