299 lines
9.7 KiB
QML
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 {}
|
|
}
|
|
}
|
|
}
|
|
}
|