summaryrefslogtreecommitdiffstats
path: root/src/datavisualizationqml/designer
diff options
context:
space:
mode:
Diffstat (limited to 'src/datavisualizationqml/designer')
-rw-r--r--src/datavisualizationqml/designer/Bars3DSpecifics.qml387
-rw-r--r--src/datavisualizationqml/designer/Scatter3DSpecifics.qml183
-rw-r--r--src/datavisualizationqml/designer/Surface3DSpecifics.qml324
-rw-r--r--src/datavisualizationqml/designer/default/Bars3D.qml23
-rw-r--r--src/datavisualizationqml/designer/default/Scatter3D.qml23
-rw-r--r--src/datavisualizationqml/designer/default/Surface3D.qml24
-rw-r--r--src/datavisualizationqml/designer/images/bars3d-icon.pngbin0 -> 1352 bytes
-rw-r--r--src/datavisualizationqml/designer/images/bars3d-icon16.pngbin0 -> 1232 bytes
-rw-r--r--src/datavisualizationqml/designer/images/scatter3d-icon.pngbin0 -> 1271 bytes
-rw-r--r--src/datavisualizationqml/designer/images/scatter3d-icon16.pngbin0 -> 1146 bytes
-rw-r--r--src/datavisualizationqml/designer/images/surface3d-icon.pngbin0 -> 1413 bytes
-rw-r--r--src/datavisualizationqml/designer/images/surface3d-icon16.pngbin0 -> 1231 bytes
-rw-r--r--src/datavisualizationqml/designer/qtdatavisualization.metainfo44
13 files changed, 1008 insertions, 0 deletions
diff --git a/src/datavisualizationqml/designer/Bars3DSpecifics.qml b/src/datavisualizationqml/designer/Bars3DSpecifics.qml
new file mode 100644
index 00000000..d509fd84
--- /dev/null
+++ b/src/datavisualizationqml/designer/Bars3DSpecifics.qml
@@ -0,0 +1,387 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick 2.0
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.0
+import QtQuick.Controls 1.1 as Controls
+
+Column {
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Section {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ caption: qsTr("Bars3D")
+
+ SectionLayout {
+ Label {
+ text: qsTr("multiSeriesUniform")
+ tooltip: qsTr("Multiseries Uniform")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ backendValue: backendValues.multiSeriesUniform
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("barThickness")
+ tooltip: qsTr("Bar Thickness Ratio")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ SpinBox {
+ backendValue: backendValues.barThickness
+ minimumValue: 0.01
+ maximumValue: 100.0
+ stepSize: 0.01
+ decimals: 2
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("barSpacing")
+ tooltip: qsTr("Bar Spacing")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ SpinBox {
+ prefix: "col: "
+ backendValue: backendValues.barSpacing_width
+ minimumValue: 0.0
+ maximumValue: 10.0
+ stepSize: 0.01
+ decimals: 2
+ Layout.fillWidth: true
+ }
+ SpinBox {
+ prefix: "row: "
+ backendValue: backendValues.barSpacing_height
+ minimumValue: 0.0
+ maximumValue: 10.0
+ stepSize: 0.01
+ decimals: 2
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("barSpacingRelative")
+ tooltip: qsTr("Bar Spacing Relative")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ backendValue: backendValues.barSpacingRelative
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("renderingMode")
+ tooltip: qsTr("Rendering Mode")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.renderingMode
+ model: ["RenderIndirect", "RenderDirectToBackground",
+ "RenderDirectToBackground_NoClear"]
+ Layout.fillWidth: true
+ scope: "AbstractGraph3D"
+ }
+ }
+ Label {
+ text: qsTr("msaaSamples")
+ tooltip: qsTr("MSAA Sample Count")
+ Layout.fillWidth: true
+ }
+ SpinBox {
+ suffix: " x MSAA"
+ backendValue: backendValues.msaaSamples
+ minimumValue: 0
+ maximumValue: 16
+ Layout.fillWidth: true
+ }
+ Label {
+ text: qsTr("shadowQuality")
+ tooltip: qsTr("Shadow Quality")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.shadowQuality
+ model: ["ShadowQualityNone", "ShadowQualityLow", "ShadowQualityMedium",
+ "ShadowQualityHigh", "ShadowQualitySoftLow", "ShadowQualitySoftMedium",
+ "ShadowQualitySoftHigh"]
+ Layout.fillWidth: true
+ scope: "AbstractGraph3D"
+ }
+ }
+ Label {
+ text: qsTr("selectionMode")
+ tooltip: qsTr("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: "AbstractGraph3D"
+ property string enumSeparator: " | "
+ property int checkedCount: 0
+ property bool selectionItem: false
+ property bool selectionRow: false
+ property bool selectionColumn: false
+ property bool selectionSlice: false
+ property bool selectionMulti: 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(selectionItem, "SelectionItem", expressionStr)
+ expressionStr = checkValue(selectionRow, "SelectionRow", expressionStr)
+ expressionStr = checkValue(selectionColumn, "SelectionColumn", expressionStr)
+ expressionStr = checkValue(selectionSlice, "SelectionSlice", expressionStr)
+ expressionStr = checkValue(selectionMulti, "SelectionMultiSeries", expressionStr)
+
+ if (checkedCount === 0)
+ backendValue.expression = enumScope + ".SelectionNone"
+ else
+ backendValue.expression = expressionStr
+ }
+
+ function evaluate() {
+ if (backendValue.value === undefined)
+ return
+
+ selectionItem = (backendValue.expression.indexOf("SelectionItem") !== -1)
+ selectionRow = (backendValue.expression.indexOf("SelectionRow") !== -1)
+ selectionColumn = (backendValue.expression.indexOf("SelectionColumn") !== -1)
+ selectionSlice = (backendValue.expression.indexOf("SelectionSlice") !== -1)
+ selectionMulti = (backendValue.expression.indexOf("SelectionMultiSeries") !== -1)
+
+ selectionItemBox.checked = selectionItem
+ selectionRowBox.checked = selectionRow
+ selectionColumnBox.checked = selectionColumn
+ selectionSliceBox.checked = selectionSlice
+ selectionMultiSeriesBox.checked = selectionMulti
+ }
+
+ onSelectionChangedFlagChanged: evaluate()
+
+ onIsInModelChanged: evaluate()
+
+ onIsInSubStateChanged: evaluate()
+
+ onBackendValueChanged: evaluate()
+
+ onValueFromBackendChanged: evaluate()
+
+ ColumnLayout {
+ anchors.fill: parent
+
+ Controls.CheckBox {
+ id: selectionItemBox
+ style: checkBox.style
+ text: "SelectionItem"
+ Layout.fillWidth: true
+ onClicked: {
+ selectionLayout.selectionItem = checked
+ selectionLayout.composeSelectionMode()
+ }
+ }
+ Controls.CheckBox {
+ id: selectionRowBox
+ style: checkBox.style
+ text: "SelectionRow"
+ Layout.fillWidth: true
+ onClicked: {
+ selectionLayout.selectionRow = checked
+ selectionLayout.composeSelectionMode()
+ }
+ }
+ Controls.CheckBox {
+ id: selectionColumnBox
+ style: checkBox.style
+ text: "SelectionColumn"
+ Layout.fillWidth: true
+ onClicked: {
+ selectionLayout.selectionColumn = checked
+ selectionLayout.composeSelectionMode()
+ }
+ }
+ Controls.CheckBox {
+ id: selectionSliceBox
+ style: checkBox.style
+ text: "SelectionSlice"
+ Layout.fillWidth: true
+ onClicked: {
+ selectionLayout.selectionSlice = checked
+ selectionLayout.composeSelectionMode()
+ }
+ }
+ Controls.CheckBox {
+ id: selectionMultiSeriesBox
+ style: checkBox.style
+ text: "SelectionMultiSeries"
+ Layout.fillWidth: true
+ onClicked: {
+ selectionLayout.selectionMulti = checked
+ selectionLayout.composeSelectionMode()
+ }
+ }
+ }
+ }
+ Label {
+ text: qsTr("measureFps")
+ tooltip: qsTr("Measure Frames Per Second")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ backendValue: backendValues.measureFps
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("orthoProjection")
+ tooltip: qsTr("Use Orthographic Projection")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ backendValue: backendValues.orthoProjection
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("aspectRatio")
+ tooltip: qsTr("Aspect Ratio")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ SpinBox {
+ backendValue: backendValues.aspectRatio
+ minimumValue: 0.01
+ maximumValue: 100.0
+ stepSize: 0.01
+ decimals: 2
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("floorLevel")
+ tooltip: qsTr("Floor Level")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ LineEdit {
+ backendValue: backendValues.floorLevel
+ inputMethodHints: Qt.ImhFormattedNumbersOnly
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("horizontalAspectRatio")
+ tooltip: qsTr("Horizontal Aspect Ratio")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ SpinBox {
+ backendValue: backendValues.horizontalAspectRatio
+ minimumValue: 0.0
+ maximumValue: 100.0
+ stepSize: 0.01
+ decimals: 2
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("reflection")
+ tooltip: qsTr("Reflection")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ id: reflectionCheckbox
+ backendValue: backendValues.reflection
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("reflectivity")
+ tooltip: qsTr("Reflectivity")
+ Layout.fillWidth: true
+ visible: reflectionCheckbox.checked
+ }
+ SecondColumnLayout {
+ visible: reflectionCheckbox.checked
+ SpinBox {
+ backendValue: backendValues.reflectivity
+ minimumValue: 0.0
+ maximumValue: 1.0
+ stepSize: 0.01
+ decimals: 1
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("margin")
+ tooltip: qsTr("Graph Margin")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ SpinBox {
+ backendValue: backendValues.margin
+ minimumValue: -1.0
+ maximumValue: 100.0
+ stepSize: 0.1
+ decimals: 1
+ Layout.fillWidth: true
+ }
+ }
+
+ // Kept for debugging
+ Label { }
+ SecondColumnLayout {
+ TextEdit {
+ id: debugLabel
+ Layout.fillWidth: true
+ wrapMode: TextEdit.WordWrap
+ textFormat: TextEdit.RichText
+ width: 400
+ visible: false
+ }
+ }
+ Controls.CheckBox {
+ property color textColor: colorLogic.textColor
+ id: checkBox
+ style: CustomCheckBoxStyle {}
+ visible: false
+ ColorLogic {
+ id: colorLogic
+ backendValue: backendValues.selectionMode
+ }
+ }
+ }
+ }
+}
diff --git a/src/datavisualizationqml/designer/Scatter3DSpecifics.qml b/src/datavisualizationqml/designer/Scatter3DSpecifics.qml
new file mode 100644
index 00000000..ffc79d44
--- /dev/null
+++ b/src/datavisualizationqml/designer/Scatter3DSpecifics.qml
@@ -0,0 +1,183 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick 2.0
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.0
+
+Column {
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Section {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ caption: qsTr("Scatter3D")
+
+ SectionLayout {
+ Label {
+ text: qsTr("renderingMode")
+ tooltip: qsTr("Rendering Mode")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.renderingMode
+ model: ["RenderIndirect", "RenderDirectToBackground",
+ "RenderDirectToBackground_NoClear"]
+ Layout.fillWidth: true
+ scope: "AbstractGraph3D"
+ }
+ }
+ Label {
+ text: qsTr("msaaSamples")
+ tooltip: qsTr("MSAA Sample Count")
+ Layout.fillWidth: true
+ }
+ SpinBox {
+ suffix: " x MSAA"
+ backendValue: backendValues.msaaSamples
+ minimumValue: 0
+ maximumValue: 16
+ Layout.fillWidth: true
+ }
+ Label {
+ text: qsTr("shadowQuality")
+ tooltip: qsTr("Shadow Quality")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.shadowQuality
+ model: ["ShadowQualityNone", "ShadowQualityLow", "ShadowQualityMedium",
+ "ShadowQualityHigh", "ShadowQualitySoftLow", "ShadowQualitySoftMedium",
+ "ShadowQualitySoftHigh"]
+ Layout.fillWidth: true
+ scope: "AbstractGraph3D"
+ }
+ }
+ Label {
+ text: qsTr("selectionMode")
+ tooltip: qsTr("Selection Mode")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.selectionMode
+ model: ["SelectionNone", "SelectionItem"]
+ Layout.fillWidth: true
+ scope: "AbstractGraph3D"
+ }
+ }
+ Label {
+ text: qsTr("measureFps")
+ tooltip: qsTr("Measure Frames Per Second")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ backendValue: backendValues.measureFps
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("orthoProjection")
+ tooltip: qsTr("Use Orthographic Projection")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ backendValue: backendValues.orthoProjection
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("aspectRatio")
+ 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
+ }
+ }
+ Label {
+ text: qsTr("optimizationHints")
+ tooltip: qsTr("Optimization Hints")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.optimizationHints
+ model: ["OptimizationDefault", "OptimizationStatic"]
+ Layout.fillWidth: true
+ scope: "AbstractGraph3D"
+ }
+ }
+ Label {
+ text: qsTr("polar")
+ tooltip: qsTr("Use Polar Coordinates")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ id: polarCheckbox
+ backendValue: backendValues.polar
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("radialLabelOffset")
+ tooltip: qsTr("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
+ }
+ }
+ Label {
+ text: qsTr("horizontalAspectRatio")
+ tooltip: qsTr("Horizontal Aspect Ratio")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ SpinBox {
+ backendValue: backendValues.horizontalAspectRatio
+ minimumValue: 0.0
+ maximumValue: 100.0
+ stepSize: 0.01
+ decimals: 2
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("margin")
+ tooltip: qsTr("Graph Margin")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ SpinBox {
+ backendValue: backendValues.margin
+ minimumValue: -1.0
+ maximumValue: 100.0
+ stepSize: 0.1
+ decimals: 1
+ Layout.fillWidth: true
+ }
+ }
+ }
+ }
+}
diff --git a/src/datavisualizationqml/designer/Surface3DSpecifics.qml b/src/datavisualizationqml/designer/Surface3DSpecifics.qml
new file mode 100644
index 00000000..33ca7d75
--- /dev/null
+++ b/src/datavisualizationqml/designer/Surface3DSpecifics.qml
@@ -0,0 +1,324 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick 2.0
+import HelperWidgets 2.0
+import QtQuick.Layouts 1.0
+import QtQuick.Controls 1.1 as Controls
+
+Column {
+ anchors.left: parent.left
+ anchors.right: parent.right
+
+ Section {
+ anchors.left: parent.left
+ anchors.right: parent.right
+ caption: qsTr("Surface3D")
+
+ SectionLayout {
+ Label {
+ text: qsTr("renderingMode")
+ tooltip: qsTr("Rendering Mode")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.renderingMode
+ model: ["RenderIndirect", "RenderDirectToBackground",
+ "RenderDirectToBackground_NoClear"]
+ Layout.fillWidth: true
+ scope: "AbstractGraph3D"
+ }
+ }
+ Label {
+ text: qsTr("msaaSamples")
+ tooltip: qsTr("MSAA Sample Count")
+ Layout.fillWidth: true
+ }
+ SpinBox {
+ suffix: " x MSAA"
+ backendValue: backendValues.msaaSamples
+ minimumValue: 0
+ maximumValue: 16
+ Layout.fillWidth: true
+ }
+ Label {
+ text: qsTr("shadowQuality")
+ tooltip: qsTr("Shadow Quality")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ ComboBox {
+ backendValue: backendValues.shadowQuality
+ model: ["ShadowQualityNone", "ShadowQualityLow", "ShadowQualityMedium",
+ "ShadowQualityHigh", "ShadowQualitySoftLow", "ShadowQualitySoftMedium",
+ "ShadowQualitySoftHigh"]
+ Layout.fillWidth: true
+ scope: "AbstractGraph3D"
+ }
+ }
+ Label {
+ text: qsTr("selectionMode")
+ tooltip: qsTr("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: "AbstractGraph3D"
+ property string enumSeparator: " | "
+ property int checkedCount: 0
+ property bool selectionItem: false
+ property bool selectionRow: false
+ property bool selectionColumn: false
+ property bool selectionSlice: false
+ property bool selectionMulti: 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(selectionItem, "SelectionItem", expressionStr)
+ expressionStr = checkValue(selectionRow, "SelectionRow", expressionStr)
+ expressionStr = checkValue(selectionColumn, "SelectionColumn", expressionStr)
+ expressionStr = checkValue(selectionSlice, "SelectionSlice", expressionStr)
+ expressionStr = checkValue(selectionMulti, "SelectionMultiSeries", expressionStr)
+
+ if (checkedCount === 0)
+ backendValue.expression = enumScope + ".SelectionNone"
+ else
+ backendValue.expression = expressionStr
+ }
+
+ function evaluate() {
+ if (backendValue.value === undefined)
+ return
+
+ selectionItem = (backendValue.expression.indexOf("SelectionItem") !== -1)
+ selectionRow = (backendValue.expression.indexOf("SelectionRow") !== -1)
+ selectionColumn = (backendValue.expression.indexOf("SelectionColumn") !== -1)
+ selectionSlice = (backendValue.expression.indexOf("SelectionSlice") !== -1)
+ selectionMulti = (backendValue.expression.indexOf("SelectionMultiSeries") !== -1)
+
+ selectionItemBox.checked = selectionItem
+ selectionRowBox.checked = selectionRow
+ selectionColumnBox.checked = selectionColumn
+ selectionSliceBox.checked = selectionSlice
+ selectionMultiSeriesBox.checked = selectionMulti
+ }
+
+ onSelectionChangedFlagChanged: evaluate()
+
+ onIsInModelChanged: evaluate()
+
+ onIsInSubStateChanged: evaluate()
+
+ onBackendValueChanged: evaluate()
+
+ onValueFromBackendChanged: evaluate()
+
+ ColumnLayout {
+ anchors.fill: parent
+
+ Controls.CheckBox {
+ id: selectionItemBox
+ style: checkBox.style
+ text: "SelectionItem"
+ Layout.fillWidth: true
+ onClicked: {
+ selectionLayout.selectionItem = checked
+ selectionLayout.composeSelectionMode()
+ }
+ }
+ Controls.CheckBox {
+ id: selectionRowBox
+ style: checkBox.style
+ text: "SelectionRow"
+ Layout.fillWidth: true
+ onClicked: {
+ selectionLayout.selectionRow = checked
+ selectionLayout.composeSelectionMode()
+ }
+ }
+ Controls.CheckBox {
+ id: selectionColumnBox
+ style: checkBox.style
+ text: "SelectionColumn"
+ Layout.fillWidth: true
+ onClicked: {
+ selectionLayout.selectionColumn = checked
+ selectionLayout.composeSelectionMode()
+ }
+ }
+ Controls.CheckBox {
+ id: selectionSliceBox
+ style: checkBox.style
+ text: "SelectionSlice"
+ Layout.fillWidth: true
+ onClicked: {
+ selectionLayout.selectionSlice = checked
+ selectionLayout.composeSelectionMode()
+ }
+ }
+ Controls.CheckBox {
+ id: selectionMultiSeriesBox
+ style: checkBox.style
+ text: "SelectionMultiSeries"
+ Layout.fillWidth: true
+ onClicked: {
+ selectionLayout.selectionMulti = checked
+ selectionLayout.composeSelectionMode()
+ }
+ }
+ }
+ }
+ Label {
+ text: qsTr("measureFps")
+ tooltip: qsTr("Measure Frames Per Second")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ backendValue: backendValues.measureFps
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("orthoProjection")
+ tooltip: qsTr("Use Orthographic Projection")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ backendValue: backendValues.orthoProjection
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("aspectRatio")
+ 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
+ }
+ }
+ Label {
+ text: qsTr("flipHorizontalGrid")
+ tooltip: qsTr("Flip Horizontal Grid")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ backendValue: backendValues.flipHorizontalGrid
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("polar")
+ tooltip: qsTr("Use Polar Coordinates")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ CheckBox {
+ id: polarCheckbox
+ backendValue: backendValues.polar
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("radialLabelOffset")
+ tooltip: qsTr("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
+ }
+ }
+ Label {
+ text: qsTr("horizontalAspectRatio")
+ tooltip: qsTr("Horizontal Aspect Ratio")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ SpinBox {
+ backendValue: backendValues.horizontalAspectRatio
+ minimumValue: 0.0
+ maximumValue: 100.0
+ stepSize: 0.01
+ decimals: 2
+ Layout.fillWidth: true
+ }
+ }
+ Label {
+ text: qsTr("margin")
+ tooltip: qsTr("Graph Margin")
+ Layout.fillWidth: true
+ }
+ SecondColumnLayout {
+ SpinBox {
+ backendValue: backendValues.margin
+ minimumValue: -1.0
+ maximumValue: 100.0
+ stepSize: 0.1
+ decimals: 1
+ Layout.fillWidth: true
+ }
+ }
+
+ // Kept for debugging
+ Label { }
+ SecondColumnLayout {
+ TextEdit {
+ id: debugLabel
+ Layout.fillWidth: true
+ wrapMode: TextEdit.WordWrap
+ textFormat: TextEdit.RichText
+ width: 400
+ visible: false
+ }
+ }
+ Controls.CheckBox {
+ property color textColor: colorLogic.textColor
+ id: checkBox
+ style: CustomCheckBoxStyle {}
+ visible: false
+ ColorLogic {
+ id: colorLogic
+ backendValue: backendValues.selectionMode
+ }
+ }
+ }
+ }
+}
diff --git a/src/datavisualizationqml/designer/default/Bars3D.qml b/src/datavisualizationqml/designer/default/Bars3D.qml
new file mode 100644
index 00000000..8c56b67c
--- /dev/null
+++ b/src/datavisualizationqml/designer/default/Bars3D.qml
@@ -0,0 +1,23 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick 2.0
+import QtDataVisualization 1.2
+
+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"
+ }
+ }
+}
diff --git a/src/datavisualizationqml/designer/default/Scatter3D.qml b/src/datavisualizationqml/designer/default/Scatter3D.qml
new file mode 100644
index 00000000..5a6cd261
--- /dev/null
+++ b/src/datavisualizationqml/designer/default/Scatter3D.qml
@@ -0,0 +1,23 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick 2.0
+import QtDataVisualization 1.2
+
+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"
+ }
+ }
+}
diff --git a/src/datavisualizationqml/designer/default/Surface3D.qml b/src/datavisualizationqml/designer/default/Surface3D.qml
new file mode 100644
index 00000000..24561890
--- /dev/null
+++ b/src/datavisualizationqml/designer/default/Surface3D.qml
@@ -0,0 +1,24 @@
+// Copyright (C) 2016 The Qt Company Ltd.
+// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only
+
+import QtQuick 2.0
+import QtDataVisualization 1.2
+
+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"
+ }
+ }
+}
diff --git a/src/datavisualizationqml/designer/images/bars3d-icon.png b/src/datavisualizationqml/designer/images/bars3d-icon.png
new file mode 100644
index 00000000..7f380789
--- /dev/null
+++ b/src/datavisualizationqml/designer/images/bars3d-icon.png
Binary files differ
diff --git a/src/datavisualizationqml/designer/images/bars3d-icon16.png b/src/datavisualizationqml/designer/images/bars3d-icon16.png
new file mode 100644
index 00000000..e85ff502
--- /dev/null
+++ b/src/datavisualizationqml/designer/images/bars3d-icon16.png
Binary files differ
diff --git a/src/datavisualizationqml/designer/images/scatter3d-icon.png b/src/datavisualizationqml/designer/images/scatter3d-icon.png
new file mode 100644
index 00000000..e1ac5c1f
--- /dev/null
+++ b/src/datavisualizationqml/designer/images/scatter3d-icon.png
Binary files differ
diff --git a/src/datavisualizationqml/designer/images/scatter3d-icon16.png b/src/datavisualizationqml/designer/images/scatter3d-icon16.png
new file mode 100644
index 00000000..75b2db18
--- /dev/null
+++ b/src/datavisualizationqml/designer/images/scatter3d-icon16.png
Binary files differ
diff --git a/src/datavisualizationqml/designer/images/surface3d-icon.png b/src/datavisualizationqml/designer/images/surface3d-icon.png
new file mode 100644
index 00000000..956c675e
--- /dev/null
+++ b/src/datavisualizationqml/designer/images/surface3d-icon.png
Binary files differ
diff --git a/src/datavisualizationqml/designer/images/surface3d-icon16.png b/src/datavisualizationqml/designer/images/surface3d-icon16.png
new file mode 100644
index 00000000..6caa643e
--- /dev/null
+++ b/src/datavisualizationqml/designer/images/surface3d-icon16.png
Binary files differ
diff --git a/src/datavisualizationqml/designer/qtdatavisualization.metainfo b/src/datavisualizationqml/designer/qtdatavisualization.metainfo
new file mode 100644
index 00000000..60b2b2c2
--- /dev/null
+++ b/src/datavisualizationqml/designer/qtdatavisualization.metainfo
@@ -0,0 +1,44 @@
+MetaInfo {
+ Type {
+ name: "QtDataVisualization.Bars3D"
+ icon: "images/bars3d-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Bars3D"
+ category: "Qt Data Visualization"
+ libraryIcon: "images/bars3d-icon.png"
+ version: "1.0"
+ requiredImport: "QtDataVisualization"
+
+ QmlSource { source: "default/Bars3D.qml" }
+ }
+ }
+ Type {
+ name: "QtDataVisualization.Scatter3D"
+ icon: "images/scatter3d-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Scatter3D"
+ category: "Qt Data Visualization"
+ libraryIcon: "images/scatter3d-icon.png"
+ version: "1.0"
+ requiredImport: "QtDataVisualization"
+
+ QmlSource { source: "default/Scatter3D.qml" }
+ }
+ }
+ Type {
+ name: "QtDataVisualization.Surface3D"
+ icon: "images/surface3d-icon16.png"
+
+ ItemLibraryEntry {
+ name: "Surface3D"
+ category: "Qt Data Visualization"
+ libraryIcon: "images/surface3d-icon.png"
+ version: "1.0"
+ requiredImport: "QtDataVisualization"
+
+ QmlSource { source: "default/Surface3D.qml" }
+ }
+ }
+}