First upload, 18 controller version
9719
.venv_nopip/Lib/site-packages/PySide6/qml/QtGraphs/Graphs.qmltypes
Normal file
@@ -0,0 +1,269 @@
|
||||
// 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 StudioTheme 1.0 as StudioTheme
|
||||
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("Bars")
|
||||
|
||||
SectionLayout {
|
||||
PropertyLabel {
|
||||
text: qsTr("Uniform Scaling")
|
||||
tooltip: qsTr("Proportionally scale multiple series")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
backendValue: backendValues.multiSeriesUniform
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Thickness")
|
||||
tooltip: qsTr("Thickness ratio between X and Z dimension")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.barThickness
|
||||
minimumValue: 0.01
|
||||
maximumValue: 100.0
|
||||
stepSize: 0.01
|
||||
decimals: 2
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Spacing")
|
||||
tooltip: qsTr("Bar spacing in the X and Z dimensions")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.barSpacing_width
|
||||
minimumValue: 0.0
|
||||
maximumValue: 10.0
|
||||
stepSize: 0.01
|
||||
decimals: 2
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ControlLabel {
|
||||
text: qsTr("col")
|
||||
width: StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
backendValue: backendValues.barSpacing_height
|
||||
minimumValue: 0.0
|
||||
maximumValue: 10.0
|
||||
stepSize: 0.01
|
||||
decimals: 2
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ControlLabel {
|
||||
text: qsTr("row")
|
||||
width: StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Relative Spacing")
|
||||
tooltip: qsTr("Set bar spacing relative to thickness")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
backendValue: backendValues.barSpacingRelative
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Series Margin")
|
||||
tooltip: qsTr("Margin between series columns in X and Z dimensions")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.barSeriesMargin_width
|
||||
minimumValue: 0.0
|
||||
maximumValue: 1.0
|
||||
stepSize: 0.01
|
||||
decimals: 2
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ControlLabel {
|
||||
text: qsTr("col")
|
||||
width: StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
SpinBox {
|
||||
backendValue: backendValues.barSeriesMargin_height
|
||||
minimumValue: 0.0
|
||||
maximumValue: 1.0
|
||||
stepSize: 0.01
|
||||
decimals: 2
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
ControlLabel {
|
||||
text: qsTr("row")
|
||||
width: StudioTheme.Values.actionIndicatorWidth
|
||||
}
|
||||
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Floor Level")
|
||||
tooltip: qsTr("Floor level in Y-axis data coordinates")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
LineEdit {
|
||||
backendValue: backendValues.floorLevel
|
||||
inputMethodHints: Qt.ImhFormattedNumbersOnly
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Selection Mode")
|
||||
tooltip: qsTr("Bar 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 {}
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
// 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
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,125 @@
|
||||
// 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("Graph")
|
||||
|
||||
SectionLayout {
|
||||
|
||||
PropertyLabel {
|
||||
text: qsTr("Render Mode")
|
||||
tooltip: qsTr("Rendering mode")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
backendValue: backendValues.renderingMode
|
||||
model: ["Indirect", "DirectToBackground"]
|
||||
Layout.fillWidth: true
|
||||
scope: "Graphs3D"
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Shadow Quality")
|
||||
tooltip: qsTr("Quality and style of the shadows")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
backendValue: backendValues.shadowQuality
|
||||
model: ["None", "Low", "Medium",
|
||||
"High", "SoftLow", "SoftMedium",
|
||||
"SoftHigh"]
|
||||
Layout.fillWidth: true
|
||||
scope: "Graphs3D"
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Optimization")
|
||||
tooltip: qsTr("Optimization hint")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
backendValue: backendValues.optimizationHint
|
||||
model: ["Default", "Legacy"]
|
||||
Layout.fillWidth: true
|
||||
scope: "Graphs3D"
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("MSAA")
|
||||
tooltip: qsTr("Multisample anti-aliasing sample count")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SpinBox {
|
||||
backendValue: backendValues.msaaSamples
|
||||
minimumValue: 0
|
||||
maximumValue: 8
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Aspect Ratio")
|
||||
tooltip: qsTr("Horizontal to vertical aspect ratio")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.aspectRatio
|
||||
minimumValue: 0.1
|
||||
maximumValue: 10.0
|
||||
stepSize: 0.1
|
||||
decimals: 1
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Horizontal AR")
|
||||
tooltip: qsTr("Horizontal aspect ratio")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.horizontalAspectRatio
|
||||
minimumValue: 0.1
|
||||
maximumValue: 10.0
|
||||
stepSize: 0.1
|
||||
decimals: 1
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Margin")
|
||||
tooltip: qsTr("Graph background margin")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.margin
|
||||
minimumValue: -1.0
|
||||
maximumValue: 100.0
|
||||
stepSize: 0.1
|
||||
decimals: 1
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
PropertyLabel {
|
||||
text: qsTr("Measure FPS")
|
||||
tooltip: qsTr("Measure rendering speed as Frames Per Second")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
CheckBox {
|
||||
backendValue: backendValues.measureFps
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
|
||||
import QtQuick
|
||||
import HelperWidgets
|
||||
import QtQuick.Layouts
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Background Color")
|
||||
|
||||
ColorEditor {
|
||||
caption: qsTr("Background Color")
|
||||
backendValue: backendValues.backgroundColor
|
||||
supportGradient: false
|
||||
}
|
||||
}
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Margins")
|
||||
|
||||
SectionLayout {
|
||||
rows: 4
|
||||
Label {
|
||||
text: qsTr("Top")
|
||||
tooltip: qsTr("The amount of empty space on the top of the graph.")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.marginTop
|
||||
minimumValue: 0.0
|
||||
maximumValue: 9999.0
|
||||
stepSize: 1.0
|
||||
decimals: 1
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Bottom")
|
||||
tooltip: qsTr("The amount of empty space on the bottom of the graph.")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.marginBottom
|
||||
minimumValue: 0.0
|
||||
maximumValue: 9999.0
|
||||
stepSize: 1.0
|
||||
decimals: 1
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Left")
|
||||
tooltip: qsTr("The amount of empty space on the left of the graph.")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.marginLeft
|
||||
minimumValue: 0.0
|
||||
maximumValue: 9999.0
|
||||
stepSize: 1.0
|
||||
decimals: 1
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Label {
|
||||
text: qsTr("Right")
|
||||
tooltip: qsTr("The amount of empty space on the right of the graph.")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
|
||||
SecondColumnLayout {
|
||||
SpinBox {
|
||||
backendValue: backendValues.marginRight
|
||||
minimumValue: 0.0
|
||||
maximumValue: 9999.0
|
||||
stepSize: 1.0
|
||||
decimals: 1
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
// 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
|
||||
|
||||
Column {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
|
||||
Section {
|
||||
anchors.left: parent.left
|
||||
anchors.right: parent.right
|
||||
caption: qsTr("Scatter")
|
||||
|
||||
SectionLayout {
|
||||
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("Scatter item selection mode")
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
SecondColumnLayout {
|
||||
ComboBox {
|
||||
backendValue: backendValues.selectionMode
|
||||
model: ["None", "Item"]
|
||||
Layout.fillWidth: true
|
||||
scope: "Graphs3D"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
GraphsSection {}
|
||||
|
||||
GraphsCameraSection {}
|
||||
}
|
||||
@@ -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 {}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
|
||||
import QtQuick
|
||||
import QtGraphs
|
||||
|
||||
GraphsView {
|
||||
width: 300
|
||||
height: 300
|
||||
|
||||
AreaSeries {
|
||||
name: "AreaSeries"
|
||||
upperSeries: LineSeries {
|
||||
XYPoint { x: 0; y: 1.5 }
|
||||
XYPoint { x: 1; y: 3 }
|
||||
XYPoint { x: 3; y: 4.3 }
|
||||
XYPoint { x: 6; y: 1.1 }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
|
||||
import QtQuick
|
||||
import QtGraphs
|
||||
|
||||
GraphsView {
|
||||
width: 300
|
||||
height: 300
|
||||
|
||||
BarSeries {
|
||||
id: barSeries
|
||||
BarSet { id: set1; label: "Set1"; values: [2, 2, 3] }
|
||||
BarSet { id: set2; label: "Set2"; values: [5, 1, 2] }
|
||||
BarSet { id: set3; label: "Set3"; values: [3, 5, 8] }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtGraphs
|
||||
|
||||
Bars3D {
|
||||
width: 300
|
||||
height: 300
|
||||
Bar3DSeries {
|
||||
ItemModelBarDataProxy {
|
||||
itemModel: ListModel {
|
||||
ListElement{ row: "row 1"; column: "column 1"; value: "1"; }
|
||||
ListElement{ row: "row 1"; column: "column 2"; value: "2"; }
|
||||
ListElement{ row: "row 1"; column: "column 3"; value: "3"; }
|
||||
}
|
||||
|
||||
rowRole: "row"
|
||||
columnRole: "column"
|
||||
valueRole: "value"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
|
||||
import QtQuick
|
||||
import QtGraphs
|
||||
|
||||
GraphsView {
|
||||
width: 300
|
||||
height: 300
|
||||
|
||||
LineSeries {
|
||||
id: lineSeries
|
||||
XYPoint { x: 0; y: 2 }
|
||||
XYPoint { x: 1; y: 1.2 }
|
||||
XYPoint { x: 2; y: 3.3 }
|
||||
XYPoint { x: 5; y: 2.1 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
|
||||
import QtQuick
|
||||
import QtGraphs
|
||||
|
||||
GraphsView {
|
||||
width: 300
|
||||
height: 300
|
||||
|
||||
PieSeries {
|
||||
id: pieSeries
|
||||
PieSlice { label: "Slice1"; value: 13.5 }
|
||||
PieSlice { label: "Slice2"; value: 10.9 }
|
||||
PieSlice { label: "Slice3"; value: 8.6 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtGraphs
|
||||
|
||||
Scatter3D {
|
||||
width: 300
|
||||
height: 300
|
||||
Scatter3DSeries {
|
||||
ItemModelScatterDataProxy {
|
||||
itemModel: ListModel {
|
||||
ListElement{ x: "1"; y: "2"; z: "3"; }
|
||||
ListElement{ x: "2"; y: "3"; z: "4"; }
|
||||
ListElement{ x: "3"; y: "4"; z: "1"; }
|
||||
}
|
||||
|
||||
xPosRole: "x"
|
||||
yPosRole: "y"
|
||||
zPosRole: "z"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
|
||||
import QtQuick
|
||||
import QtGraphs
|
||||
|
||||
GraphsView {
|
||||
width: 300
|
||||
height: 300
|
||||
|
||||
ScatterSeries {
|
||||
id: lineSeries
|
||||
XYPoint { x: 1; y: 1 }
|
||||
XYPoint { x: 2; y: 4 }
|
||||
XYPoint { x: 4; y: 2 }
|
||||
XYPoint { x: 5; y: 5 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
// Copyright (C) 2024 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
|
||||
import QtQuick
|
||||
import QtGraphs
|
||||
|
||||
GraphsView {
|
||||
width: 300
|
||||
height: 300
|
||||
|
||||
SplineSeries {
|
||||
id: splineSeries
|
||||
XYPoint { x: 1; y: 1 }
|
||||
XYPoint { x: 2; y: 4 }
|
||||
XYPoint { x: 4; y: 2 }
|
||||
XYPoint { x: 5; y: 5 }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,24 @@
|
||||
// Copyright (C) 2023 The Qt Company Ltd.
|
||||
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
|
||||
|
||||
import QtQuick 2.0
|
||||
import QtGraphs
|
||||
|
||||
Surface3D {
|
||||
width: 300
|
||||
height: 300
|
||||
Surface3DSeries {
|
||||
ItemModelSurfaceDataProxy {
|
||||
itemModel: ListModel {
|
||||
ListElement{ row: "1"; column: "1"; y: "1"; }
|
||||
ListElement{ row: "1"; column: "2"; y: "2"; }
|
||||
ListElement{ row: "2"; column: "1"; y: "3"; }
|
||||
ListElement{ row: "2"; column: "2"; y: "4"; }
|
||||
}
|
||||
|
||||
rowRole: "row"
|
||||
columnRole: "column"
|
||||
yPosRole: "y"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.5 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.1 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.3 KiB |
|
After Width: | Height: | Size: 1.4 KiB |
|
After Width: | Height: | Size: 1.2 KiB |
@@ -0,0 +1,44 @@
|
||||
MetaInfo {
|
||||
Type {
|
||||
name: "QtGraphs.Bars3D"
|
||||
icon: "images/bars3d-icon16.png"
|
||||
|
||||
ItemLibraryEntry {
|
||||
name: "Bars3D"
|
||||
category: "Qt Graphs"
|
||||
libraryIcon: "images/bars3d-icon.png"
|
||||
version: "1.0"
|
||||
requiredImport: "QtGraphs"
|
||||
|
||||
QmlSource { source: "default/Bars3D.qml" }
|
||||
}
|
||||
}
|
||||
Type {
|
||||
name: "QtGraphs.Scatter3D"
|
||||
icon: "images/scatter3d-icon16.png"
|
||||
|
||||
ItemLibraryEntry {
|
||||
name: "Scatter3D"
|
||||
category: "Qt Graphs"
|
||||
libraryIcon: "images/scatter3d-icon.png"
|
||||
version: "1.0"
|
||||
requiredImport: "QtGraphs"
|
||||
|
||||
QmlSource { source: "default/Scatter3D.qml" }
|
||||
}
|
||||
}
|
||||
Type {
|
||||
name: "QtGraphs.Surface3D"
|
||||
icon: "images/surface3d-icon16.png"
|
||||
|
||||
ItemLibraryEntry {
|
||||
name: "Surface3D"
|
||||
category: "Qt Graphs"
|
||||
libraryIcon: "images/surface3d-icon.png"
|
||||
version: "1.0"
|
||||
requiredImport: "QtGraphs"
|
||||
|
||||
QmlSource { source: "default/Surface3D.qml" }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
MetaInfo {
|
||||
Type {
|
||||
name: "QtGraphs.GraphsView"
|
||||
icon: "images/areaseries-icon16.png"
|
||||
|
||||
ItemLibraryEntry {
|
||||
name: "Area"
|
||||
category: "Qt Graphs - GraphsView"
|
||||
libraryIcon: "images/areaseries-icon.png"
|
||||
version: "1.0"
|
||||
requiredImport: "QtGraphs"
|
||||
|
||||
QmlSource { source: "default/AreaSeries.qml" }
|
||||
}
|
||||
}
|
||||
Type {
|
||||
name: "QtGraphs.GraphsView"
|
||||
icon: "images/barseries-icon16.png"
|
||||
|
||||
ItemLibraryEntry {
|
||||
name: "Bar"
|
||||
category: "Qt Graphs - GraphsView"
|
||||
libraryIcon: "images/barseries-icon.png"
|
||||
version: "1.0"
|
||||
requiredImport: "QtGraphs"
|
||||
|
||||
QmlSource { source: "default/BarSeries.qml" }
|
||||
}
|
||||
}
|
||||
Type {
|
||||
name: "QtGraphs.GraphsView"
|
||||
icon: "images/lineseries-icon16.png"
|
||||
|
||||
ItemLibraryEntry {
|
||||
name: "Line"
|
||||
category: "Qt Graphs - GraphsView"
|
||||
libraryIcon: "images/lineseries-icon.png"
|
||||
version: "1.0"
|
||||
requiredImport: "QtGraphs"
|
||||
|
||||
QmlSource { source: "default/LineSeries.qml" }
|
||||
}
|
||||
}
|
||||
Type {
|
||||
name: "QtGraphs.GraphsView"
|
||||
icon: "images/pieseries-icon16.png"
|
||||
|
||||
ItemLibraryEntry {
|
||||
name: "Pie"
|
||||
category: "Qt Graphs - GraphsView"
|
||||
libraryIcon: "images/pieseries-icon.png"
|
||||
version: "1.0"
|
||||
requiredImport: "QtGraphs"
|
||||
|
||||
QmlSource { source: "default/PieSeries.qml" }
|
||||
}
|
||||
}
|
||||
Type {
|
||||
name: "QtGraphs.GraphsView"
|
||||
icon: "images/scatterseries-icon16.png"
|
||||
|
||||
ItemLibraryEntry {
|
||||
name: "Scatter"
|
||||
category: "Qt Graphs - GraphsView"
|
||||
libraryIcon: "images/scatterseries-icon.png"
|
||||
version: "1.0"
|
||||
requiredImport: "QtGraphs"
|
||||
|
||||
QmlSource { source: "default/ScatterSeries.qml" }
|
||||
}
|
||||
}
|
||||
Type {
|
||||
name: "QtGraphs.GraphsView"
|
||||
icon: "images/splineseries-icon16.png"
|
||||
|
||||
ItemLibraryEntry {
|
||||
name: "Spline"
|
||||
category: "Qt Graphs - GraphsView"
|
||||
libraryIcon: "images/splineseries-icon.png"
|
||||
version: "1.0"
|
||||
requiredImport: "QtGraphs"
|
||||
|
||||
QmlSource { source: "default/SplineSeries.qml" }
|
||||
}
|
||||
}
|
||||
}
|
||||
10
.venv_nopip/Lib/site-packages/PySide6/qml/QtGraphs/qmldir
Normal file
@@ -0,0 +1,10 @@
|
||||
module QtGraphs
|
||||
linktarget Qt6::Graphsplugin
|
||||
optional plugin graphsplugin
|
||||
classname QtGraphsPlugin
|
||||
typeinfo Graphs.qmltypes
|
||||
depends QtQuick
|
||||
depends QtQuick3D
|
||||
prefer :/qt-project.org/imports/QtGraphs/
|
||||
depends QtQuick
|
||||
|
||||