Revision control

Copy as Markdown

// Copyright (C) 2024 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
import QtQuick
import QtQuick.Controls
import QtQuick.Layouts
import QtQuick3D
import QtQuick3D.Helpers
Pane {
id: panel
required property PlaneGeometry target
ColumnLayout {
width: panel.width
Label {
text: "Plane Settings"
}
RowLayout {
Layout.fillWidth: true
Label {
text: "width"
}
Slider {
Layout.fillWidth: true
from: 0
to: 100
// stepSize: 1
value: panel.target.width
onValueChanged: panel.target.width = value
}
Label {
text: panel.target.width.toFixed(1)
Layout.minimumWidth: 50
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "height"
}
Slider {
Layout.fillWidth: true
from: 0
to: 100
// stepSize: 1
value: panel.target.height
onValueChanged: panel.target.height = value
}
Label {
text: panel.target.height.toFixed(1)
Layout.minimumWidth: 50
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "Mesh Resolution: X"
}
Slider {
Layout.fillWidth: true
from: 0
to: 100
stepSize: 1
value: panel.target.meshResolution.width
onValueChanged: panel.target.meshResolution.width = value
}
Label {
text: panel.target.meshResolution.width
Layout.minimumWidth: 50
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "Mesh Resolution: Y"
}
Slider {
Layout.fillWidth: true
from: 0
to: 100
stepSize: 1
value: panel.target.meshResolution.height
onValueChanged: panel.target.meshResolution.height = value
}
Label {
text: panel.target.meshResolution.height
Layout.minimumWidth: 50
}
}
RowLayout {
Layout.fillWidth: true
Label {
text: "Plane"
}
ComboBox {
id: planeComboBox
textRole: "text"
valueRole: "value"
implicitContentWidthPolicy: ComboBox.WidestText
onActivated: panel.target.plane = currentValue
Component.onCompleted: currentIndex = indexOfValue(panel.target.plane)
Layout.alignment: Qt.AlignRight
model: [
{ value: PlaneGeometry.XY, text: "XY" },
{ value: PlaneGeometry.XZ, text: "XZ"},
{ value: PlaneGeometry.ZY, text: "ZY"}
]
Connections {
target: panel.target
function onPlaneChanged() {
planeComboBox.currentIndex = planeComboBox.indexOfValue(panel.target.plane)
}
}
}
}
CheckBox {
id: reversedCheckbox
text: "Reversed"
checked: panel.target.reversed
onCheckedChanged: panel.target.reversed = checked
}
CheckBox {
id: mirroredCheckbox
text: "Mirrored (V)"
checked: panel.target.mirrored
onCheckedChanged: panel.target.mirrored = checked
}
}
}