aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndreas Hartmetz <andreas.hartmetz@kdab.com>2016-12-15 19:48:50 +0100
committerDominik Holland <dominik.holland@pelagicore.com>2017-01-26 09:15:23 +0000
commit40e26b22705f1e1ec71edcbc869e9fd9b1cfbe53 (patch)
tree01d0021421da450f2ea8534e15eea9e05b3bec13
parente7d535202da4a6c85936d3a344538fb7d720dbf0 (diff)
Wire up airflow directions to the backend
It wasn't connected before, now changes are propagated both ways, and even the list of available airflow configurations comes from the backend. Change-Id: I69e61fd795014c2e3f0f98832b828a302ace5d34 Reviewed-by: Jaroslaw Kubik <jarek@froglogic.com> Reviewed-by: Nedim Hadzic <nedim.hadzic@pelagicore.com> Reviewed-by: Dominik Holland <dominik.holland@pelagicore.com>
-rw-r--r--imports/shared/service/climate/ClimateService.qml10
-rw-r--r--sysui/Climate/AirFlow.qml23
2 files changed, 24 insertions, 9 deletions
diff --git a/imports/shared/service/climate/ClimateService.qml b/imports/shared/service/climate/ClimateService.qml
index 37e7480..b762ac8 100644
--- a/imports/shared/service/climate/ClimateService.qml
+++ b/imports/shared/service/climate/ClimateService.qml
@@ -141,6 +141,16 @@ QtObject {
climateControl.fanSpeedLevel.value = newVentilation;
}
+ property QtObject airflowDirections: QtObject {
+ property int directions: climateControl.airflowDirections.value
+ property var availableDirections: climateControl.airflowDirections.availableValues
+ onDirectionsChanged: climateControl.airflowDirections.value = directions
+ }
+ property Connections airflowDirectionsConnections: Connections {
+ target: climateControl.airflowDirections
+ onValueChanged: airflowDirections.directions = climateControl.airflowDirections.value
+ }
+
property QtObject stateMachine: ClimateStateMachine {
climateControl: root.climateControl
doorsOpen: eco.enabled // TODO use QtIVI doors/window state for this eventually
diff --git a/sysui/Climate/AirFlow.qml b/sysui/Climate/AirFlow.qml
index 50d222a..3d23ab7 100644
--- a/sysui/Climate/AirFlow.qml
+++ b/sysui/Climate/AirFlow.qml
@@ -31,6 +31,8 @@
import QtQuick 2.1
import QtGraphicalEffects 1.0
+import QtIvi.VehicleFunctions 1.0
+import service.climate 1.0
import utils 1.0
UIElement {
@@ -42,19 +44,22 @@ UIElement {
PathView {
id: view
+ property int directions: ClimateService.airflowDirections.directions
+ property var availableDirections: ClimateService.airflowDirections.availableDirections
+
+ // currentIndex is updated by dragging items around *and* by explicitly setting it from
+ // an onClicked() handler, so keeping all the bindings working is tricky. This works.
+ onDirectionsChanged: currentIndex = availableDirections.indexOf(directions)
+ Component.onCompleted: currentIndex = availableDirections.indexOf(directions)
+ onCurrentIndexChanged: ClimateService.airflowDirections.directions = availableDirections[currentIndex]
+
width: Style.hspan(6)
height: Style.vspan(3)
anchors.centerIn: parent
clip: true
- currentIndex: 1
-
- model: ListModel {
- ListElement { up: 1; down: 0 }
- ListElement { up: 0; down: 1 }
- ListElement { up: 1; down: 1 }
- }
+ model: availableDirections
snapMode: PathView.SnapOneItem
preferredHighlightBegin: 0.5
@@ -70,7 +75,7 @@ UIElement {
anchors.horizontalCenterOffset: -Style.padding
source: Style.symbolXS("arrow")
rotation: 90
- visible: model.up
+ visible: view.availableDirections[index] & ClimateControl.Dashboard
}
Image {
@@ -87,7 +92,7 @@ UIElement {
anchors.verticalCenterOffset: 12
source: Style.symbolXS("arrow")
rotation: 90
- visible: model.down
+ visible: view.availableDirections[index] & ClimateControl.Floor
}
MouseArea {