summaryrefslogtreecommitdiffstats
path: root/imports
diff options
context:
space:
mode:
Diffstat (limited to 'imports')
-rwxr-xr-ximports/components/AwesomeIcon.qml26
-rwxr-xr-ximports/components/Box.qml49
-rwxr-xr-ximports/components/BoxButton.qml36
-rwxr-xr-ximports/components/BoxHeading.qml37
-rwxr-xr-ximports/components/Button.qml30
-rwxr-xr-ximports/components/DateTime.qml35
-rwxr-xr-ximports/components/HexGrid.qml32
-rwxr-xr-ximports/components/HexSwitch.qml80
-rwxr-xr-ximports/components/InShadow.qml33
-rwxr-xr-ximports/components/InsetShadow.qml40
-rwxr-xr-ximports/components/Label.qml27
-rwxr-xr-ximports/components/NumberPad.qml101
-rwxr-xr-ximports/components/OutShadow.qml41
-rwxr-xr-ximports/components/Switch.qml13
-rwxr-xr-ximports/components/qmldir16
-rwxr-xr-ximports/radio/Radio.qml6
-rwxr-xr-ximports/radio/qmldir2
-rwxr-xr-ximports/system/App.qml29
-rwxr-xr-ximports/system/System.qml15
-rwxr-xr-ximports/system/qmldir8
-rwxr-xr-ximports/utils/Marker.qml60
-rwxr-xr-ximports/utils/Style.qml37
-rwxr-xr-ximports/utils/qmldir8
-rwxr-xr-ximports/vehicle/ClimateModel.qml44
-rwxr-xr-ximports/vehicle/FuelModel.qml46
-rwxr-xr-ximports/vehicle/PositionModel.qml33
-rwxr-xr-ximports/vehicle/SpeedModel.qml38
-rwxr-xr-ximports/vehicle/TemperatureModel.qml26
-rwxr-xr-ximports/vehicle/qmldir11
29 files changed, 959 insertions, 0 deletions
diff --git a/imports/components/AwesomeIcon.qml b/imports/components/AwesomeIcon.qml
new file mode 100755
index 0000000..542fb0f
--- /dev/null
+++ b/imports/components/AwesomeIcon.qml
@@ -0,0 +1,26 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import system 1.0
+import components 1.0
+import utils 1.0
+
+Item {
+ height: icon.height
+ width: icon.height
+
+ property alias iconSize: icon.font.pixelSize
+ property alias ucKey: icon.text
+ property alias iconColor: icon.color
+
+ Text {
+ id: icon
+ font.family: "FontAwesome"
+ color: "white"
+ }
+}
+
diff --git a/imports/components/Box.qml b/imports/components/Box.qml
new file mode 100755
index 0000000..a2f2ae0
--- /dev/null
+++ b/imports/components/Box.qml
@@ -0,0 +1,49 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import utils 1.0
+
+Item {
+ id: root
+
+ opacity: 0.8
+ property color color: Style.grey
+ property color border: color
+ property string shadow: ""
+
+ OutShadow {
+ color: root.color
+ visible: root.shadow === "out"
+ }
+
+ Rectangle {
+ id: rect
+ anchors.fill: parent
+ color: Style.black
+ border.width: 1
+ border.color: root.border
+ }
+
+ InsetShadow {
+ color: root.color
+ visible: root.shadow === "fill"
+ }
+
+ InShadow {
+ color: root.color
+ visible: root.shadow === "in"
+ }
+
+ Rectangle {
+ visible: root.shadow === "fill"
+ anchors.fill: parent
+ color: "transparent"
+ border.width: 1
+ border.color: root.border
+ }
+
+}
diff --git a/imports/components/BoxButton.qml b/imports/components/BoxButton.qml
new file mode 100755
index 0000000..0969f46
--- /dev/null
+++ b/imports/components/BoxButton.qml
@@ -0,0 +1,36 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import components 1.0
+
+Item {
+ id: root
+
+ property alias shadow: box.shadow
+ property alias color: box.color
+ property alias text: textItem.text
+
+ signal clicked()
+
+ Box {
+ id: box
+ anchors.fill: parent
+
+ Text {
+ id: textItem
+ anchors.centerIn: parent
+ horizontalAlignment: Text.AlignHCenter
+ font.pixelSize: 28
+ color: "white"
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.clicked()
+ }
+ }
+}
diff --git a/imports/components/BoxHeading.qml b/imports/components/BoxHeading.qml
new file mode 100755
index 0000000..bb2c62a
--- /dev/null
+++ b/imports/components/BoxHeading.qml
@@ -0,0 +1,37 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import utils 1.0
+
+Row {
+ id: root
+
+ property color color: Style.blueViv
+ property alias fontSize: headingText.font.pixelSize
+ property alias text: headingText.text
+ property alias boxWidth: box.width
+ property alias boxHeight: box.height
+
+ spacing: 10
+
+ Rectangle {
+ id: box
+ anchors.bottom: headingText.baseline
+ anchors.bottomMargin: 0
+ width: 100
+ height: 16
+ color: root.color
+ }
+
+ Text {
+ id: headingText
+ font.family: "Source Sans Pro"
+ font.pixelSize: 22
+ font.weight: Font.Bold
+ color: root.color
+ }
+}
diff --git a/imports/components/Button.qml b/imports/components/Button.qml
new file mode 100755
index 0000000..9d5c495
--- /dev/null
+++ b/imports/components/Button.qml
@@ -0,0 +1,30 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+
+Rectangle {
+ id: root
+ border.color: "#cccccc"
+ color:"#222"
+ border.width: 2
+ height: pairText.height + 20
+ width: pairText.width + 20
+
+ property string buttonText
+
+
+ Text {
+ id: pairText
+ anchors.centerIn: parent
+ font.family: "Source Sans Pro"
+ font.pixelSize: 48
+ font.weight: Font.Bold
+ color: "white"
+ font.capitalization: Font.AllUppercase
+ text: buttonText
+ }
+}
diff --git a/imports/components/DateTime.qml b/imports/components/DateTime.qml
new file mode 100755
index 0000000..6203712
--- /dev/null
+++ b/imports/components/DateTime.qml
@@ -0,0 +1,35 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import utils 1.0
+
+Item {
+ id: dateTime
+ anchors.left: parent.left
+ anchors.right: parent.right
+ height: 120
+ property var timeStamp: new Date()
+
+ Timer {
+ interval: 1000
+ running: true
+ repeat: true
+ onTriggered: timeStamp = new Date()
+ }
+
+ Label {
+ fontColor: Style.grey
+ text: Qt.formatDate(timeStamp, "ddd MMM d")
+ }
+
+ Label {
+ anchors.right: parent.right
+ fontColor: Style.grey
+ text: Qt.formatTime(timeStamp, "h:mm AP")
+ }
+}
+
diff --git a/imports/components/HexGrid.qml b/imports/components/HexGrid.qml
new file mode 100755
index 0000000..b81a09a
--- /dev/null
+++ b/imports/components/HexGrid.qml
@@ -0,0 +1,32 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+
+Item {
+ property real spacing: 0
+ property int columns: 3
+
+ width: childrenRect.width
+ height: childrenRect.height
+
+ Component.onCompleted: {
+ var sizeX = childrenRect.height
+ var sizeY = childrenRect.width
+ var column = 0
+ var row = 0
+
+ for (var n = 0; n < children.length; n++) {
+ children[n].x = column * (sizeX + spacing)
+ children[n].y = row * (0.5 * sizeY + spacing)
+ column += 2
+ if (column >= columns) {
+ row++
+ column = row % 2
+ }
+ }
+ }
+}
diff --git a/imports/components/HexSwitch.qml b/imports/components/HexSwitch.qml
new file mode 100755
index 0000000..cce82b3
--- /dev/null
+++ b/imports/components/HexSwitch.qml
@@ -0,0 +1,80 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+ width: 170 * height / 80
+ height: 80
+
+ property bool value
+ property bool showLabels: false
+
+ Image {
+ anchors.fill: parent
+ source: "../../doc/images/switchplate_" + (value ? "on" : "off") + ".png"
+ }
+
+ Item {
+ id: shadowTarget
+ x: value ? parent.width * 0.375 : -11
+ width: parent.width * 0.7
+ height: parent.height
+
+ Image {
+ id: control
+ anchors.centerIn: parent
+ width: parent.height * 0.9
+ fillMode: Image.PreserveAspectFit
+ source: "../../doc/images/switchcontrol.png"
+ }
+ }
+
+ DropShadow {
+ anchors.fill: shadowTarget
+ cached: true
+ horizontalOffset: parent.height * 0.05
+ verticalOffset: parent.height * 0.05
+ radius: 16
+ samples: 32
+ color: Qt.rgba(0, 0, 0, 0.35)
+ smooth: true
+ source: shadowTarget
+ }
+
+ Text {
+ text: qsTr("OFF")
+ font.family: "Source Sans Pro"
+ anchors.right: parent.left
+ anchors.rightMargin: 30
+ anchors.verticalCenter: parent.verticalCenter
+ font.pointSize: 25
+ font.letterSpacing: -0.5
+ font.weight: value ? Font.Normal : Font.Bold
+ color: value ? "#C4C4C4" : "#FE9C00"
+ visible: showLabels
+ }
+
+ Text {
+ id: onText
+ text: qsTr("ON")
+ font.family: "Source Sans Pro"
+ anchors.left: parent.right
+ anchors.leftMargin: 30
+ font.pointSize: 25
+ anchors.verticalCenter: parent.verticalCenter
+ font.letterSpacing: -0.5
+ font.weight: value ? Font.Bold : Font.Normal
+ color: value ? "#59FF00" : "#C4C4C4"
+ visible: showLabels
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: value = !value
+ }
+}
diff --git a/imports/components/InShadow.qml b/imports/components/InShadow.qml
new file mode 100755
index 0000000..2d64c2a
--- /dev/null
+++ b/imports/components/InShadow.qml
@@ -0,0 +1,33 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+
+ShaderEffect {
+ anchors.fill: parent
+ property color color
+ property real radius: 16
+
+ fragmentShader: "
+uniform lowp float radius;
+uniform lowp float height;
+uniform lowp float width;
+uniform lowp float qt_Opacity;
+uniform lowp vec4 color;
+varying highp vec2 qt_TexCoord0;
+
+void main(void) {
+ lowp vec2 dist = min(qt_TexCoord0, vec2(1.0) - qt_TexCoord0);
+ // Border shadow
+ lowp float xval = smoothstep(0.0, radius, dist.x * width);
+ lowp float yval = smoothstep(0.0, radius, dist.y * height);
+ lowp float borderVal = sqrt(yval * xval) * 0.5 + 0.5;
+
+ lowp vec4 borderColor = mix(color, vec4(0.0, 0.0, 0.0, 1.0), borderVal);
+ gl_FragColor = borderColor * qt_Opacity;
+}
+ "
+}
diff --git a/imports/components/InsetShadow.qml b/imports/components/InsetShadow.qml
new file mode 100755
index 0000000..6ad17cd
--- /dev/null
+++ b/imports/components/InsetShadow.qml
@@ -0,0 +1,40 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+
+ShaderEffect {
+ anchors.fill: parent
+ property color color
+ property real radius: 100
+ property real border: 20
+
+ fragmentShader: "
+uniform lowp float radius;
+uniform lowp float border;
+uniform lowp float height;
+uniform lowp float width;
+uniform lowp float qt_Opacity;
+uniform lowp vec4 color;
+varying highp vec2 qt_TexCoord0;
+
+void main(void) {
+ lowp vec2 dist = min(qt_TexCoord0, vec2(1.0) - qt_TexCoord0);
+ // Border shadow
+ lowp float xval = smoothstep(0.0, border, dist.x * width);
+ lowp float yval = smoothstep(0.0, border, dist.y * height);
+ lowp float borderVal = sqrt(yval * xval) * 0.5 + 0.5;
+ // Inner shadow
+ xval = smoothstep(0.0, radius, dist.x * width);
+ yval = smoothstep(0.0, radius, dist.y * width);
+ lowp float innerVal = sqrt(yval * xval) * 0.5 + 0.5;
+
+ lowp vec4 innerColor = mix(vec4(0.0, 0.0, 0.0, 0.5), color, innerVal);
+ lowp vec4 borderColor = mix(vec4(0.0, 0.0, 0.0, 1.0), innerColor, borderVal);
+ gl_FragColor = borderColor * qt_Opacity;
+}
+ "
+}
diff --git a/imports/components/Label.qml b/imports/components/Label.qml
new file mode 100755
index 0000000..e1e0b30
--- /dev/null
+++ b/imports/components/Label.qml
@@ -0,0 +1,27 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import utils 1.0
+
+Item {
+ // Tracer {}
+ width: childrenRect.width
+ height: childrenRect.height
+ property alias text: text.text
+ property alias label: text
+ property alias fontSize: text.font.pixelSize
+ property alias fontColor: text.color
+
+ Text {
+ id: text
+ color: "#ddd"
+ font.family: "Source Sans Pro"
+ font.pixelSize: 40
+ font.capitalization: Font.AllUppercase
+ font.weight: Font.Bold
+ }
+}
diff --git a/imports/components/NumberPad.qml b/imports/components/NumberPad.qml
new file mode 100755
index 0000000..b7763ca
--- /dev/null
+++ b/imports/components/NumberPad.qml
@@ -0,0 +1,101 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import utils 1.0
+
+Item {
+ id: root
+ height: childrenRect.height
+ property var letters: ["","abc","def","ghi","jkl","mno","pqrs","tuv","wxyz"]
+ property var bottomRow: ["*","0","#"]
+
+ signal number(string number)
+
+ Grid {
+ id: numberGrid
+ columns: 3
+ spacing: 20
+
+ Repeater {
+ model: 9
+ delegate: Item {
+ id: numberKey
+ width: (root.width - ( numberGrid.spacing*(numberGrid.columns-1)))/numberGrid.columns
+ height: numberKey.width * 0.8
+ anchors.margins: 10
+
+ Rectangle {
+ id: shadowTarget
+ anchors.fill: parent
+ border.width: 1
+ border.color: "white"
+ color: "#6653b5ce"
+ }
+
+ Item {
+ height: childrenRect.height
+ width: parent.width
+ anchors.centerIn: parent
+
+ Label {
+ anchors.horizontalCenter: parent.horizontalCenter
+ id: keypadNumber
+ text: index + 1
+ }
+
+ Label {
+ anchors.horizontalCenter: parent.horizontalCenter
+ id: keypadLetters
+ anchors.top: keypadNumber.bottom
+ fontSize: 30
+ fontColor: "#53b5ce"
+ text: letters[index]
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.number(keypadNumber.text)
+ }
+ }
+ }
+
+ Repeater {
+ model: 3
+ delegate: Item {
+ width: (root.width - ( numberGrid.spacing*(numberGrid.columns-1)))/numberGrid.columns
+ height: width * 0.8
+ anchors.margins: 10
+
+ Rectangle {
+ id: shadowTarget
+ anchors.fill: parent
+ border.width: 1
+ border.color: "white"
+ color: "#6653b5ce"
+ }
+
+ Item {
+ height: childrenRect.height
+ width: parent.width
+ anchors.centerIn: parent
+
+ Label {
+ anchors.horizontalCenter: parent.horizontalCenter
+ id: keypadNumber
+ text: bottomRow[index]
+ }
+ }
+
+ MouseArea {
+ anchors.fill: parent
+ onClicked: root.number(keypadNumber.text)
+ }
+ }
+ }
+ }
+}
diff --git a/imports/components/OutShadow.qml b/imports/components/OutShadow.qml
new file mode 100755
index 0000000..f4d8407
--- /dev/null
+++ b/imports/components/OutShadow.qml
@@ -0,0 +1,41 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import QtGraphicalEffects 1.0
+
+Item {
+ id: root
+
+ anchors.fill: parent
+ property alias color: shadow.color
+ property alias radius: shadow.radius
+
+ Item {
+ id: shadowTarget
+ x: -radius
+ y: -radius
+ width: parent.width + 2 * radius
+ height: parent.height + 2 * radius
+
+ Rectangle {
+ anchors.centerIn: parent
+ width: root.width
+ height: root.height
+ color: "black"
+ }
+ }
+
+ DropShadow {
+ id: shadow
+ anchors.fill: shadowTarget
+ horizontalOffset: 0
+ verticalOffset: 0
+ radius: 16
+ samples: 32
+ source: shadowTarget
+ }
+}
diff --git a/imports/components/Switch.qml b/imports/components/Switch.qml
new file mode 100755
index 0000000..6cd50c7
--- /dev/null
+++ b/imports/components/Switch.qml
@@ -0,0 +1,13 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+
+Switch {
+ width: 100
+ height: 62
+}
+
diff --git a/imports/components/qmldir b/imports/components/qmldir
new file mode 100755
index 0000000..57e4d2d
--- /dev/null
+++ b/imports/components/qmldir
@@ -0,0 +1,16 @@
+#/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+# *
+# * This Source Code Form is subject to the terms of the Mozilla Public
+# * License, v. 2.0. If a copy of the MPL was not distributed with this
+# * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+AwesomeIcon 1.0 AwesomeIcon.qml
+Box 1.0 Box.qml
+BoxButton 1.0 BoxButton.qml
+BoxHeading 1.0 BoxHeading.qml
+DateTime 1.0 DateTime.qml
+HexGrid 1.0 HexGrid.qml
+HexSwitch 1.0 HexSwitch.qml
+Label 1.0 Label.qml
+NumberPad 1.0 NumberPad.qml
+Button 1.0 Button.qml
diff --git a/imports/radio/Radio.qml b/imports/radio/Radio.qml
new file mode 100755
index 0000000..cea2e1a
--- /dev/null
+++ b/imports/radio/Radio.qml
@@ -0,0 +1,6 @@
+import QtQuick 2.0
+
+Item {
+ signal stopped
+ signal playing
+}
diff --git a/imports/radio/qmldir b/imports/radio/qmldir
new file mode 100755
index 0000000..e334188
--- /dev/null
+++ b/imports/radio/qmldir
@@ -0,0 +1,2 @@
+Radio 1.0 Radio.qml
+RadioPropertyItem 1.0 Radio.qml
diff --git a/imports/system/App.qml b/imports/system/App.qml
new file mode 100755
index 0000000..d7da73c
--- /dev/null
+++ b/imports/system/App.qml
@@ -0,0 +1,29 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import system 1.0
+
+FocusScope {
+ id: root
+ property string appId
+ anchors.fill: parent
+ visible: System.activeApp === appId
+ property bool hasKeyFocus: false
+ focus: visible
+ onFocusChanged: if (focus) hasKeyFocus = true
+
+ Keys.onPressed: {
+ switch (event.key) {
+ case Qt.Key_Left:
+ case Qt.Key_Right:
+ root.hasKeyFocus = false
+ break
+ default:
+ break
+ }
+ }
+}
diff --git a/imports/system/System.qml b/imports/system/System.qml
new file mode 100755
index 0000000..8e155fd
--- /dev/null
+++ b/imports/system/System.qml
@@ -0,0 +1,15 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pragma Singleton
+import QtQuick 2.0
+
+Item {
+ property string activeApp: "home"
+ property string activeSetting: "settings"
+ property bool showKeyboard: false
+ property bool showSettings: false
+}
diff --git a/imports/system/qmldir b/imports/system/qmldir
new file mode 100755
index 0000000..afa0f56
--- /dev/null
+++ b/imports/system/qmldir
@@ -0,0 +1,8 @@
+#/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+# *
+# * This Source Code Form is subject to the terms of the Mozilla Public
+# * License, v. 2.0. If a copy of the MPL was not distributed with this
+# * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+singleton System 1.0 System.qml
+App 1.0 App.qml
diff --git a/imports/utils/Marker.qml b/imports/utils/Marker.qml
new file mode 100755
index 0000000..c7a377e
--- /dev/null
+++ b/imports/utils/Marker.qml
@@ -0,0 +1,60 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+import QtQuick 2.0
+import utils 1.0
+
+Item {
+ id: root
+ width: 120
+ height: 120
+ property string text
+ signal clicked()
+ property alias pressed: area.pressed
+ property alias color: background.color
+ property alias fontSize: label.font.pixelSize
+ property bool fill: false
+
+ Rectangle {
+ id: background
+ anchors.fill: parent
+ color: Style.backgroundColor
+ opacity: root.fill ? 1.0: 0.2
+ }
+
+ Rectangle {
+ id: frame
+ anchors.fill: parent
+ color: 'transparent'
+ border.color: Qt.darker(background.color, 1.4)
+ border.width: 2
+ opacity: 1.0
+ }
+
+
+ Rectangle {
+ anchors.fill: label
+ anchors.margins: -2
+ color: Style.backgroundColor
+ opacity: root.text ? 1.0 : 0.0
+ }
+
+ Text {
+ id: label
+ anchors.centerIn: parent
+ font.pixelSize: 14
+ color: Style.greyDarkColor
+ opacity: 0.75
+ text: root.text
+ }
+ MouseArea {
+ id: area
+ anchors.fill: parent
+ onClicked: root.clicked()
+ onPressed: background.color = Qt.darker(background.color, 1.5)
+ onReleased: background.color = Qt.lighter(background.color, 1.5)
+ }
+}
diff --git a/imports/utils/Style.qml b/imports/utils/Style.qml
new file mode 100755
index 0000000..ef544a6
--- /dev/null
+++ b/imports/utils/Style.qml
@@ -0,0 +1,37 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pragma Singleton
+import QtQuick 2.2
+
+QtObject {
+ property bool debugMode: false
+ property bool debugFill: false
+
+ // Primary colors
+ property color orangeLt: "#ffd38c"
+ property color orangeViv: "#fe9c00"
+ property color blueLt: "#b2f0ff"
+ property color blueViv: "#53b5ce"
+ // Secondary colors
+ property color yellowLt: "#ffffb2"
+ property color yellowViv: "#ffff00"
+ property color greenLt: "#cdffb2"
+ property color greenViv: "#59ff00"
+ // Neutral colors
+ property color white: "#ffffff"
+ property color grey: "#c4c4c4"
+ property color black: "#000000"
+ property color overlay: Qt.rgba(0, 0, 0, 0.8)
+
+ function getGfxPath() {
+ return Qt.resolvedUrl("../assets/")
+ }
+
+ function gfx(name) {
+ return Qt.resolvedUrl("../../doc/images/" + name )
+ }
+}
diff --git a/imports/utils/qmldir b/imports/utils/qmldir
new file mode 100755
index 0000000..c2df9de
--- /dev/null
+++ b/imports/utils/qmldir
@@ -0,0 +1,8 @@
+#/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+# *
+# * This Source Code Form is subject to the terms of the Mozilla Public
+# * License, v. 2.0. If a copy of the MPL was not distributed with this
+# * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+singleton Style 1.0 Style.qml
+Marker 1.0 Marker.qml
diff --git a/imports/vehicle/ClimateModel.qml b/imports/vehicle/ClimateModel.qml
new file mode 100755
index 0000000..9633f16
--- /dev/null
+++ b/imports/vehicle/ClimateModel.qml
@@ -0,0 +1,44 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pragma Singleton
+
+import QtQuick 2.0
+import Automotive.ClimateControl 1.0
+
+Item {
+ property real fanStepSize:1/255 //Represents the stepSize for a given Climate control.
+ property alias fanSpeed: fanControl.fanSpeedLevel
+
+ property real temperatureStepSize:1/15 //0== 15c, 15 == 30c
+
+ property alias leftTemp: leftFront.targetTemperature
+ property alias rightTemp: rightFront.targetTemperature
+
+ ClimateControlItem {
+ id:fanControl
+ }
+
+ ClimateControlItem {
+ id: leftFront
+ zone: 9
+ }
+
+ ClimateControlItem {
+ id: rightFront
+ zone: 5
+ }
+
+ function getRangeValue(inputVal,stepSize){
+ if(inputVal > 0){
+ return Math.ceil(inputVal/stepSize);
+ }else{
+ return 0;
+ }
+ }
+
+}
+
diff --git a/imports/vehicle/FuelModel.qml b/imports/vehicle/FuelModel.qml
new file mode 100755
index 0000000..fa064e2
--- /dev/null
+++ b/imports/vehicle/FuelModel.qml
@@ -0,0 +1,46 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pragma Singleton
+
+import QtQuick 2.0
+
+Item {
+ property bool metric: false
+
+ function galToL(value) {
+ return (metric ? 3.78541 : 1) * value
+ }
+
+ function mpgToLp100(value) {
+ return metric ? 235.214583571 / value : value
+ }
+
+ property real baseTank: 25
+ property real tankSize: galToL(baseTank)
+ property real level: tankSize * percentage * 0.01
+ property real percentage: 100
+ property real range: metric ? 100 * level / average : level * average
+ property real baseAverage: 20.7
+ property real average: mpgToLp100(baseAverage + mpgDiff)
+ property real mpgDiff: 0
+
+ NumberAnimation on percentage {
+ from: 100
+ to: 0
+ duration: 5000
+ loops: Animation.Infinite
+ easing.type: Easing.CosineCurve
+ }
+
+ NumberAnimation on mpgDiff {
+ from: -2
+ to: 2
+ duration: 11200
+ loops: Animation.Infinite
+ easing.type: Easing.CosineCurve
+ }
+}
diff --git a/imports/vehicle/PositionModel.qml b/imports/vehicle/PositionModel.qml
new file mode 100755
index 0000000..00956aa
--- /dev/null
+++ b/imports/vehicle/PositionModel.qml
@@ -0,0 +1,33 @@
+/* Copyright (C) 2015, Jaguar Land Rover, IoT.bzh. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pragma Singleton
+
+import QtQuick 2.0
+import amb 0.1
+
+Item {
+ property string nmeaString: nmea.value
+ property real satellites: satsUsed.value
+
+ AutomotivePropertyItem {
+ id: nmea
+
+ objectName: "GpsNmea"
+ propertyName: "Nmea"
+
+ Component.onCompleted: nmea.connect();
+ }
+
+ AutomotivePropertyItem {
+ id: satsUsed
+
+ objectName: "GpsSatsUsed"
+ propertyName: "SatsUsed"
+
+ Component.onCompleted: satsUsed.connect();
+ }
+}
diff --git a/imports/vehicle/SpeedModel.qml b/imports/vehicle/SpeedModel.qml
new file mode 100755
index 0000000..03422b0
--- /dev/null
+++ b/imports/vehicle/SpeedModel.qml
@@ -0,0 +1,38 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pragma Singleton
+
+import QtQuick 2.0
+import amb 0.1
+
+Item {
+ property bool metric: false
+
+ function mphToKph(value) {
+ return (metric ? 1.60934 : 1 ) * value
+ }
+
+ property real max:Math.ceil(mphToKph(baseMaxSpeed)/30)*30
+ property real baseMaxSpeed: 255
+ property real textSpeed: prop.value
+ property real percentage: textSpeed / max * 100
+
+ AutomotivePropertyItem {
+ id: prop
+
+ objectName: "VehicleSpeed"
+ propertyName: "Speed"
+
+ Component.onCompleted: prop.connect();
+ }
+
+ Behavior on percentage {
+ SmoothedAnimation {
+ velocity: 100
+ }
+ }
+}
diff --git a/imports/vehicle/TemperatureModel.qml b/imports/vehicle/TemperatureModel.qml
new file mode 100755
index 0000000..2bfbbf4
--- /dev/null
+++ b/imports/vehicle/TemperatureModel.qml
@@ -0,0 +1,26 @@
+/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+ *
+ * This Source Code Form is subject to the terms of the Mozilla Public
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+pragma Singleton
+
+import QtQuick 2.0
+
+Item {
+ property bool metric: true
+
+ function unit(value) {
+ return celsiusToFahrenheit(value).toFixed(1) + "\u00b0" + (metric ? "C" : "F")
+ }
+
+ function celsiusToFahrenheit(value) {
+ return (metric ? value : 1.8 * value + 32)
+ }
+
+ property real indoor: 20.4
+ property string indoorString: unit(indoor)
+ property real outdoor: 28.9
+ property string outdoorString: unit(outdoor)
+}
diff --git a/imports/vehicle/qmldir b/imports/vehicle/qmldir
new file mode 100755
index 0000000..6538e95
--- /dev/null
+++ b/imports/vehicle/qmldir
@@ -0,0 +1,11 @@
+#/* Copyright (C) 2015, Jaguar Land Rover. All Rights Reserved.
+# *
+# * This Source Code Form is subject to the terms of the Mozilla Public
+# * License, v. 2.0. If a copy of the MPL was not distributed with this
+# * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
+
+singleton FuelModel 1.0 FuelModel.qml
+singleton SpeedModel 1.0 SpeedModel.qml
+singleton TemperatureModel 1.0 TemperatureModel.qml
+singleton PositionModel 1.0 PositionModel.qml
+singleton ClimateModel 1.0 ClimateModel.qml