registerShortcut
[apps/launcher.git] / launcher / qml / Launcher.qml
index 2247f51..a45a57a 100644 (file)
@@ -30,76 +30,167 @@ ApplicationWindow {
         id: container
         anchors.centerIn: parent
         width: 1080
-        height: 1488
-        scale: screenInfo.scale_factor()
+        height: 1920
+//        scale: screenInfo.scale_factor()
 
         Image {
-          anchors.centerIn: parent
-          source: './images/AGL_HMI_Blue_Background_Car-01.png'
+            id: topshortcutArea
+            x: 197
+            y: 0
+            width: 588
+            height: 215
+            source: './images/top_three_shortcut_background.png'
+            TopShortcutArea {
+                anchors.fill: parent
+            }
         }
 
-    GridView {
-        id: grid
-        anchors {
-          topMargin: 60; bottomMargin: 0 
-          leftMargin: 60; rightMargin: 60
-          fill: parent
+        Image {
+            id: meterDisplay
+            x: 0
+            y: 1704
+            width: 270
+            height: 215
+            source: './images/meterdisplay.png'
+        }
+        Image {
+            id: hud
+            anchors.left: meterDisplay.right
+            anchors.top: meterDisplay.top
+            width: 270
+            height: 215
+            source: './images/hud.png'
+        }
+        Image {
+            id: rse
+            anchors.left: hud.right
+            anchors.top: hud.top
+            width: 270
+            height: 215
+            source: './images/rse.png'
+        }
+        Image {
+            id: uninstall
+            anchors.left: rse.right
+            anchors.top: rse.top
+            width: 270
+            height: 215
+            source: './images/uninstall.png'
         }
-        contentHeight: 320
-        flickableDirection: Flickable.AutoFlickDirection
-        snapMode: GridView.SnapOneRow
-        visible: true
-        cellWidth: 320
-        cellHeight: 320
-        interactive: false
 
-        model: ApplicationModel { id: applicationModel }
-        delegate: IconItem {
-            width: grid.cellWidth
-            height: grid.cellHeight
+        Image {
+          anchors.fill: parent
+          source: './images/background.png'
         }
 
-        Connections {
-            target: homescreenHandler
-            onAppListUpdate: {
-                console.warn("applist update in Launcher.qml")
-                applicationModel.updateApplist(info);
+        GridView {
+            id: grid
+            anchors {
+              topMargin: 60 + 218; bottomMargin: 0
+              leftMargin: 60; rightMargin: 60
+              fill: parent
             }
-        }
-        Connections {
-            target: homescreenHandler
-            onInitAppList: {
-                console.warn("applist init in Launcher.qml")
-                applicationModel.initAppList(data);
+            contentHeight: 320
+            flickableDirection: Flickable.AutoFlickDirection
+            snapMode: GridView.SnapOneRow
+            visible: true
+            cellWidth: 320
+            cellHeight: 320
+            interactive: false
+
+            model: ApplicationModel { id: applicationModel }
+            delegate: IconItem {
+                width: grid.cellWidth
+                height: grid.cellHeight
             }
-        }
 
-        MouseArea {
-            id: loc
-            anchors.fill: parent
-            property string currentId: ''
-            property int newIndex: -1
-            property int index: grid.indexAt(loc.mouseX, loc.mouseY)
-            x: 62
-            y: 264
-            onPressAndHold: currentId = applicationModel.id(newIndex = index)
-            onReleased: {
-                if(loc.index < 0) {
-                    return
+            Connections {
+                target: homescreenHandler
+                onAppListUpdate: {
+                    console.warn("applist update in Launcher.qml")
+                    applicationModel.updateApplist(info);
                 }
-                if (currentId === '') {
-                    homescreenHandler.tapShortcut(applicationModel.appid(loc.index))
-                } else {
-                    currentId = ''
+            }
+            Connections {
+                target: homescreenHandler
+                onInitAppList: {
+                    console.warn("applist init in Launcher.qml")
+                    applicationModel.initAppList(data);
                 }
             }
-            onPositionChanged: {
-                if (loc.currentId === '') return
-                if (index < 0) return
-                if (index === newIndex) return
-                    applicationModel.move(newIndex, newIndex = index)
+
+            MouseArea {
+                id: loc
+                anchors.fill: parent
+                property string currentId: ''
+                property string currentName: ''
+                property int oldIndex: -1
+                property int newIndex: -1
+                property int index: grid.indexAt(loc.mouseX, loc.mouseY)
+                x: 62
+                y: 264
+
+                onPressAndHold: {
+                    oldIndex = index
+                    currentId = applicationModel.id(newIndex = index)
+                    currentName = applicationModel.name(loc.index)
+                    homescreenHandler.hideWindow("homescreen")
+                }
+                onReleased: {
+                    if (currentId === '' && loc.index >= 0 ) {
+                        // Not long press, exec application and tapshortcut
+                        pid = launcher.launch(applicationModel.id(loc.index))
+                        if (1 < pid) {
+                            homescreenHandler.tapShortcut(applicationModel.appid(loc.index))
+                        }
+                        else {
+                            console.warn("app cannot be launched!")
+                        }
+                    } else if (loc.mouseY <= 0) {
+                        if (loc.mouseX >= 197 && loc.mouseX < 393) {
+//                            shortcutAppModel.changeShortcut(currentId, currentName, "0");
+                            homescreenHandler.registerShortcut(currentId, currentName, "0");
+                        } else if (loc.mouseX >= 393 && loc.mouseX < 589) {
+//                            shortcutAppModel.changeShortcut(currentId, currentName, "1");
+                            homescreenHandler.registerShortcut(currentId, currentName, "1");
+                        } else if (loc.mouseX >= 589 && loc.mouseX < 785) {
+//                            shortcutAppModel.changeShortcut(currentId, currentName, "2");
+                            homescreenHandler.registerShortcut(currentId, currentName, "2");
+                        }
+                        if (oldIndex != newIndex){
+                            applicationModel.move(newIndex, newIndex = oldIndex)
+                        }
+                    } else if (loc.mouseY >= 1488) {
+                        if (loc.mouseX < 270 ) {
+                            console.log("sendAppToMeter", currentId)
+                            homescreenHandler.sendAppToMeter(currentId)
+                        } else if (loc.mouseX >= 270 && loc.mouseX < 540 ) {
+
+                        } else if (loc.mouseX >= 540 && loc.mouseX < 810 ) {
+
+                        } else if (loc.mouseX >= 810) {
+                            uninstallDialog.contents = 'Do you want to uninstall ' + currentName.toUpperCase() + '?'
+                            uninstallDialog.uninstallApp = currentId
+                            uninstallDialog.visible = true
+                        }
+                    }
+
+                    currentName = ''
+                    currentId = ''
+                    homescreenHandler.tapShortcut("homescreen")
+                }
+                onPositionChanged: {
+                    if (loc.currentId === '') return
+                    if (index < 0) return
+                    if (index === newIndex) return
+                        applicationModel.move(newIndex, newIndex = index)
+                }
             }
         }
+        UninstallDialog {
+            id: uninstallDialog
+            anchors.fill: parent
+            visible: false
+        }
     }
 }
-}