Add user autorisations information
[staging/HomeScreen.git] / HomeScreen / qml / Home.qml
index 8753d29..c44919d 100644 (file)
 import QtQuick 2.2
 import QtQuick.Layouts 1.1
 import QtQuick.Controls 1.0
+import QtQuick.Controls 1.4
+import QtQuick.Controls.Styles 1.4
 import Home 1.0
 
 Item {
     id: root
     property int pid: -1
     signal languageChanged
+    signal disconnect
 
     Image {
         anchors.fill: parent
@@ -41,6 +44,16 @@ Item {
         source: './images/B14-90.png'
         visible: false
     }
+    Image {
+        id: flagLanguage
+        scale: 0.7
+        anchors.left: parent.left
+        anchors.leftMargin: 20
+        anchors.top: parent.top
+        anchors.topMargin: 10
+        source: './images/us_flag.png'
+        visible: true
+    }
     Image {
         id: visa
         width: 200
@@ -51,35 +64,50 @@ Item {
         anchors.topMargin: 20
         source: './images/visa.png'
         visible: false
+        Label {
+            id: cardNumber
+            anchors.top: parent.bottom
+            anchors.topMargin: 10
+            anchors.horizontalCenter: parent.horizontalCenter
+            horizontalAlignment:  Text.AlignHCenter
+            color: "white"
+            text: "111"
+            font.pixelSize: 20
+            font.family: "Roboto"
+        }
     }
     Item {
         id: hello
         anchors.horizontalCenter: parent.horizontalCenter
         anchors.bottom: parent.bottom
         anchors.bottomMargin: 40
-        visible: false
+        visible: true
         Text {
             id: helloText
             anchors.centerIn: parent
-            color: "white"
-            text: "Hello José!"
+            color: 'white'
+            text: 'No Authenticated User'
             font.pixelSize: 40
-            font.family: "Roboto"
+            font.family: 'Roboto'
             SequentialAnimation on font.letterSpacing {
                 id: animation1
                 loops: 1;
                 NumberAnimation { from: 0; to: 50; easing.type: Easing.InQuad; duration: 3000 }
+                running: false
                 onRunningChanged: {
-                    if(running)
+                    if(running) {
                         hello.visible = true
-                    else
-                        hello.visible = false
+                    } else {
+                        helloText.opacity = 1
+                        helloText.font.letterSpacing = 0
+                    }
                 }
             }
 
             SequentialAnimation on opacity {
                 id: animation2
                 loops: 1;
+                running: false
                 NumberAnimation { from: 1; to: 0; duration: 2600 }
                 PauseAnimation { duration: 400 }
             }
@@ -95,9 +123,27 @@ Item {
         sign90.visible = show
     }
 
-    function showVisa(show) {
+    function showVisa(show, num) {
         visa.visible = show
+        cardNumber.text = num;
+    }
+    function changeFlag(flagImage) {
+        flagLanguage.source = flagImage
     }
+    function setUser(type, auts) {
+        if(type === '') {
+            authorisations.visible = false
+        } else {
+            authorisations.visible = true
+            labelUserType.text = type
+            myModel.clear()
+            for (var i=0; i<auts.length; i++) {
+                if(auts[i] !== '')
+                    myModel.append({"name": auts[i]})
+            }
+        }
+    }
+
     GridView {
         anchors.centerIn: parent
         width: cellHeight * 3
@@ -111,6 +157,7 @@ Item {
             width: 320
             height: 320
             Image {
+                id: appImage
                 anchors.fill: parent
                 source: './images/HMI_AppLauncher_%1_%2-01.png'.arg(model.icon).arg(pressed ? 'Active' : 'Inactive')
                 Label {
@@ -124,6 +171,7 @@ Item {
                     text: '%1'.arg(model.name)
                     function myChangeLanguage() {
                         text = '%1'.arg(model.name)
+                        appImage.source = './images/HMI_AppLauncher_%1_%2-01.png'.arg(model.icon).arg(pressed ? 'Active' : 'Inactive')
                     }
                     Component.onCompleted: {
                         root.languageChanged.connect(myChangeLanguage)
@@ -146,4 +194,81 @@ Item {
             }
         }
     }
+    ListModel {
+        id: myModel
+        ListElement {
+            name: 'Install App'
+        }
+        ListElement {
+            name: 'Open Trunk'
+        }
+        ListElement {
+            name: 'Update Software'
+        }
+        ListElement {
+            name: 'View Online'
+        }
+    }
+    Item {
+        id: authorisations
+        anchors.fill: parent
+        visible: false
+        GridLayout {
+            id: gridAut
+            columns: 2
+            anchors.bottom: parent.bottom
+            anchors.left: parent.left
+            anchors.bottomMargin: 50
+            anchors.leftMargin: 20
+            Repeater {
+                model: myModel
+                Image {
+                    source: './images/' + model.name + '.png'
+                    width: sourceSize.width
+                    height: sourceSize.height
+                    visible: true
+                }
+            }
+        }
+        Label {
+            id: labelUserType
+            anchors.bottom: gridAut.top
+            anchors.bottomMargin: 10
+            anchors.left: gridAut.left
+            color: "white"
+            text: "Owner"
+            font.pixelSize: 30
+            font.family: "Roboto"
+        }
+    }
+
+    Image {
+        id: logout
+        width: sourceSize.width
+        height: sourceSize.height
+        anchors.bottom: parent.bottom
+        anchors.right: parent.right
+        anchors.bottomMargin: 10
+        anchors.rightMargin: 20
+        source: './images/Logout-01.png'
+        visible: true
+        MouseArea {
+            anchors.fill: parent
+            onClicked: {
+                rotateLogout.start()
+                disconnect()
+                helloText.text= 'No Authenticated User'
+
+            }
+        }
+        RotationAnimator {
+            id: rotateLogout
+            target: logout;
+            from: 0;
+            to: 360;
+            loops: 1
+            duration: 500
+            running: false
+        }
+    }
 }