Initial commit
This commit is contained in:
@@ -0,0 +1,192 @@
|
||||
// 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
|
||||
import QtQuick.Controls as Controls
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Surface")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Flip Grid")
|
||||
tooltip: qsTr("Flip horizontal grid")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
backendValue: backendValues.flipHorizontalGrid
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Polar Coordinates")
|
||||
tooltip: qsTr("Use polar coordinates")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
id: polarCheckbox
|
||||
backendValue: backendValues.polar
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Label Offset")
|
||||
tooltip: qsTr("Normalized horizontal radial label offset")
|
||||
Layout.fillWidth: true
|
||||
visible: polarCheckbox.checked
|
||||
}
|
||||
SecondColumnLayout {
|
||||
visible: polarCheckbox.checked
|
||||
SpinBox {
|
||||
backendValue: backendValues.radialLabelOffset
|
||||
minimumValue: 0.0
|
||||
maximumValue: 1.0
|
||||
stepSize: 0.01
|
||||
decimals: 2
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Selection Mode")
|
||||
tooltip: qsTr("Surface point selection mode")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
id: selectionLayout
|
||||
property bool isInModel: backendValue.isInModel;
|
||||
property bool isInSubState: backendValue.isInSubState;
|
||||
property bool selectionChangedFlag: selectionChanged
|
||||
property variant backendValue: backendValues.selectionMode
|
||||
property variant valueFromBackend: backendValue.value
|
||||
property string enumScope: "Graphs3D.SelectionFlag"
|
||||
property string enumSeparator: " | "
|
||||
property int checkedCount: 0
|
||||
property bool item: false
|
||||
property bool row: false
|
||||
property bool column: false
|
||||
property bool slice: false
|
||||
property bool multi: false
|
||||
|
||||
function checkValue(checkedVariable, variableText, expressionBase) {
|
||||
var expressionStr = expressionBase
|
||||
if (checkedVariable) {
|
||||
if (expressionStr !== "") {
|
||||
expressionStr += enumSeparator
|
||||
}
|
||||
expressionStr += enumScope
|
||||
expressionStr += "."
|
||||
expressionStr += variableText
|
||||
checkedCount++
|
||||
}
|
||||
return expressionStr
|
||||
}
|
||||
|
||||
function composeSelectionMode() {
|
||||
var expressionStr = ""
|
||||
checkedCount = 0
|
||||
expressionStr = checkValue(item, "Item", expressionStr)
|
||||
expressionStr = checkValue(row, "Row", expressionStr)
|
||||
expressionStr = checkValue(column, "Column", expressionStr)
|
||||
expressionStr = checkValue(slice, "Slice", expressionStr)
|
||||
expressionStr = checkValue(multi, "MultiSeries", expressionStr)
|
||||
|
||||
if (checkedCount === 0)
|
||||
backendValue.expression = enumScope + ".None"
|
||||
else
|
||||
backendValue.expression = expressionStr
|
||||
}
|
||||
|
||||
function evaluate() {
|
||||
if (backendValue.value === undefined)
|
||||
return
|
||||
|
||||
item = (backendValue.expression.indexOf("Item") !== -1)
|
||||
row = (backendValue.expression.indexOf("Row") !== -1)
|
||||
column = (backendValue.expression.indexOf("Column") !== -1)
|
||||
slice = (backendValue.expression.indexOf("Slice") !== -1)
|
||||
multi = (backendValue.expression.indexOf("MultiSeries") !== -1)
|
||||
|
||||
itemBox.checked = item
|
||||
rowBox.checked = row
|
||||
columnBox.checked = column
|
||||
sliceBox.checked = slice
|
||||
multiSeriesBox.checked = multi
|
||||
}
|
||||
|
||||
onSelectionChangedFlagChanged: evaluate()
|
||||
|
||||
onIsInModelChanged: evaluate()
|
||||
|
||||
onIsInSubStateChanged: evaluate()
|
||||
|
||||
onBackendValueChanged: evaluate()
|
||||
|
||||
onValueFromBackendChanged: evaluate()
|
||||
|
||||
ColumnLayout {
|
||||
anchors.fill: parent
|
||||
|
||||
Controls.CheckBox {
|
||||
id: itemBox
|
||||
text: "Item"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
selectionLayout.item = checked
|
||||
selectionLayout.composeSelectionMode()
|
||||
}
|
||||
}
|
||||
Controls.CheckBox {
|
||||
id: rowBox
|
||||
text: "Row"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
selectionLayout.row = checked
|
||||
selectionLayout.composeSelectionMode()
|
||||
}
|
||||
}
|
||||
Controls.CheckBox {
|
||||
id: columnBox
|
||||
text: "Column"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
selectionLayout.column = checked
|
||||
selectionLayout.composeSelectionMode()
|
||||
}
|
||||
}
|
||||
Controls.CheckBox {
|
||||
id: sliceBox
|
||||
text: "Slice"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
selectionLayout.slice = checked
|
||||
selectionLayout.composeSelectionMode()
|
||||
}
|
||||
}
|
||||
Controls.CheckBox {
|
||||
id: multiSeriesBox
|
||||
text: "MultiSeries"
|
||||
Layout.fillWidth: true
|
||||
onClicked: {
|
||||
selectionLayout.multi = checked
|
||||
selectionLayout.composeSelectionMode()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GraphsSection {}
|
||||
|
||||
GraphsCameraSection {}
|
||||
}
|
||||
Reference in New Issue
Block a user