summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTomi Korpipää <tomi.korpipaa@digia.com>2014-03-13 09:40:44 +0200
committerTomi Korpipää <tomi.korpipaa@digia.com>2014-03-13 09:48:46 +0200
commit61c614240da9a2ecb5458e2796186339cbfd8762 (patch)
treeaa095d786101e3ee14448674bae5da272f838c03 /src
parent3ca866b2af83fe54000c54f8435ce7e47af6c819 (diff)
SelectionMode as combination of checkboxes
Change-Id: I30f697ae3f94258717f01b34813dc7fd66c2485c Reviewed-by: Miikka Heikkinen <miikka.heikkinen@digia.com>
Diffstat (limited to 'src')
-rw-r--r--src/datavisualizationqml2/designer/Bars3DSpecifics.qml171
-rw-r--r--src/datavisualizationqml2/designer/Surface3DSpecifics.qml161
2 files changed, 292 insertions, 40 deletions
diff --git a/src/datavisualizationqml2/designer/Bars3DSpecifics.qml b/src/datavisualizationqml2/designer/Bars3DSpecifics.qml
index 55b06d97..e52320ac 100644
--- a/src/datavisualizationqml2/designer/Bars3DSpecifics.qml
+++ b/src/datavisualizationqml2/designer/Bars3DSpecifics.qml
@@ -19,6 +19,7 @@
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
@@ -139,32 +140,152 @@ Column {
Layout.fillWidth: true
}
SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.selectionMode
- model: [
- "SelectionNone",
- "SelectionItem",
- "SelectionRow",
- "SelectionItemAndRow",
- "SelectionColumn",
- "SelectionItemAndColumn",
- "SelectionRowAndColumn",
- "SelectionItemRowAndColumn",
- "SelectionRow | SelectionSlice",
- "SelectionItemAndRow | SelectionSlice",
- "SelectionColumn | SelectionSlice",
- "SelectionItemAndColumn | SelectionSlice",
- "SelectionRow | SelectionMultiSeries",
- "SelectionItemAndRow | SelectionMultiSeries",
- "SelectionColumn | SelectionMultiSeries",
- "SelectionItemAndColumn | SelectionMultiSeries",
- "SelectionRow | SelectionSlice | SelectionMultiSeries",
- "SelectionItemAndRow | SelectionSlice | SelectionMultiSeries",
- "SelectionColumn | SelectionSlice | SelectionMultiSeries",
- "SelectionItemAndColumn | SelectionSlice | SelectionMultiSeries"
- ]
+ 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()
+ }
+ }
+ }
+ }
+ // Kept for debugging
+ Label { }
+ SecondColumnLayout {
+ TextEdit {
+ id: debugLabel
Layout.fillWidth: true
- scope: "AbstractGraph3D"
+ 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/datavisualizationqml2/designer/Surface3DSpecifics.qml b/src/datavisualizationqml2/designer/Surface3DSpecifics.qml
index 7723e7ec..74470e4b 100644
--- a/src/datavisualizationqml2/designer/Surface3DSpecifics.qml
+++ b/src/datavisualizationqml2/designer/Surface3DSpecifics.qml
@@ -19,6 +19,7 @@
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
@@ -77,22 +78,152 @@ Column {
Layout.fillWidth: true
}
SecondColumnLayout {
- ComboBox {
- backendValue: backendValues.selectionMode
- model: [
- "SelectionNone",
- "SelectionItem",
- "SelectionRow | SelectionSlice",
- "SelectionItemAndRow | SelectionSlice",
- "SelectionColumn | SelectionSlice",
- "SelectionItemAndColumn | SelectionSlice",
- "SelectionRow | SelectionSlice | SelectionMultiSeries",
- "SelectionItemAndRow | SelectionSlice | SelectionMultiSeries",
- "SelectionColumn | SelectionSlice | SelectionMultiSeries",
- "SelectionItemAndColumn | SelectionSlice | SelectionMultiSeries"
- ]
+ 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()
+ }
+ }
+ }
+ }
+ // Kept for debugging
+ Label { }
+ SecondColumnLayout {
+ TextEdit {
+ id: debugLabel
Layout.fillWidth: true
- scope: "AbstractGraph3D"
+ 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
}
}
}