From 98d8c478c9b81f1b231c65c5e31437f02749745a Mon Sep 17 00:00:00 2001 From: dogmaphobic Date: Sat, 28 Nov 2015 01:11:40 -0500 Subject: [PATCH] Added GPS extended info. And other toolbar fixes... --- src/ui/MainWindow.qml | 9 +++ src/ui/toolbar/MainToolBar.qml | 81 ++++++++++++++++++++++-- src/ui/toolbar/MainToolBarIndicators.qml | 7 ++ 3 files changed, 90 insertions(+), 7 deletions(-) diff --git a/src/ui/MainWindow.qml b/src/ui/MainWindow.qml index 38bfa9f3b..fa7d36a1d 100644 --- a/src/ui/MainWindow.qml +++ b/src/ui/MainWindow.qml @@ -61,12 +61,18 @@ Item { target: controller onShowFlyView: { + if(currentPopUp) { + currentPopUp.close() + } flightView.visible = true setupViewLoader.visible = false planViewLoader.visible = false } onShowPlanView: { + if(currentPopUp) { + currentPopUp.close() + } if (planViewLoader.source != _planViewSource) { planViewLoader.source = _planViewSource } @@ -76,6 +82,9 @@ Item { } onShowSetupView: { + if(currentPopUp) { + currentPopUp.close() + } if (setupViewLoader.source != _setupViewSource) { setupViewLoader.source = _setupViewSource } diff --git a/src/ui/toolbar/MainToolBar.qml b/src/ui/toolbar/MainToolBar.qml index 4aa4677a1..074d6f14a 100644 --- a/src/ui/toolbar/MainToolBar.qml +++ b/src/ui/toolbar/MainToolBar.qml @@ -41,7 +41,7 @@ import QGroundControl.Controllers 1.0 Rectangle { id: toolBar - color: opaqueBackground ? "#404040" : (isBackgroundDark ? Qt.rgba(0,0,0,0.75) : Qt.rgba(0,0,0,0.5)) + color: opaqueBackground ? "#404040" : Qt.rgba(0,0,0,0.75) QGCPalette { id: qgcPal; colorGroupEnabled: true } @@ -181,6 +181,22 @@ Rectangle { return colorRed; } + function getGpsLockStatus() { + if(activeVehicle) { + if(activeVehicle.satelliteLock == 0) { + return "No Satellite Link" + } + if(activeVehicle.satelliteLock == 1) { + return "No GPS Lock" + } + if(activeVehicle.satelliteLock == 2) { + return "2D Lock" + } + return "3D Lock" + } + return "N/A" + } + Component.onCompleted: { //-- TODO: Get this from the actual state flyButton.checked = true @@ -193,6 +209,56 @@ Rectangle { onShowSetupView:{ setupButton.checked = true } } + //--------------------------------------------- + // GPS Info + Component { + id: gpsInfo + Rectangle { + color: Qt.rgba(0,0,0,0.75) + width: gpsCol.width + ScreenTools.defaultFontPixelWidth * 3 + height: gpsCol.height + ScreenTools.defaultFontPixelHeight * 2 + radius: ScreenTools.defaultFontPixelHeight * 0.5 + Column { + id: gpsCol + spacing: ScreenTools.defaultFontPixelHeight * 0.5 + width: Math.max(gpsGrid.width, gpsLabel.width) + anchors.margins: ScreenTools.defaultFontPixelHeight + anchors.centerIn: parent + QGCLabel { + id: gpsLabel + text: (activeVehicle && (activeVehicle.satelliteCount > 0)) ? "GPS Status" : "GPS Data Unavailable" + font.weight:Font.DemiBold + anchors.horizontalCenter: parent.horizontalCenter + } + GridLayout { + id: gpsGrid + visible: (activeVehicle && (activeVehicle.satelliteCount > 0)) + anchors.margins: ScreenTools.defaultFontPixelHeight + columnSpacing: ScreenTools.defaultFontPixelWidth + anchors.horizontalCenter: parent.horizontalCenter + columns: 2 + QGCLabel { + text: "GPS Count:" + } + QGCLabel { + text: activeVehicle ? (activeVehicle.satelliteCount) : "N/A" + } + QGCLabel { + text: "GPS Lock:" + } + QGCLabel { + text: getGpsLockStatus() + } + } + } + Component.onCompleted: { + var pos = mapFromItem(toolBar, centerX - (width / 2), toolBar.height) + x = pos.x + y = pos.y + ScreenTools.defaultFontPixelHeight + } + } + } + //--------------------------------------------- // Battery Info Component { @@ -261,23 +327,24 @@ Rectangle { id: rcRSSIInfo Rectangle { color: Qt.rgba(0,0,0,0.75) - width: battCol.width + ScreenTools.defaultFontPixelWidth * 3 - height: battCol.height + ScreenTools.defaultFontPixelHeight * 2 + width: rcrssiCol.width + ScreenTools.defaultFontPixelWidth * 3 + height: rcrssiCol.height + ScreenTools.defaultFontPixelHeight * 2 radius: ScreenTools.defaultFontPixelHeight * 0.5 Column { - id: battCol + id: rcrssiCol spacing: ScreenTools.defaultFontPixelHeight * 0.5 - width: Math.max(battGrid.width, rssiLabel.width) + width: Math.max(rcrssiGrid.width, rssiLabel.width) anchors.margins: ScreenTools.defaultFontPixelHeight anchors.centerIn: parent QGCLabel { id: rssiLabel - text: "RC RSSI Status" + text: activeVehicle ? (activeVehicle.rcRSSI > 0 ? "RC RSSI Status" : "RC RSSI Data Unavailable") : "N/A" font.weight:Font.DemiBold anchors.horizontalCenter: parent.horizontalCenter } GridLayout { - id: battGrid + id: rcrssiGrid + visible: activeVehicle && activeVehicle.rcRSSI > 0 anchors.margins: ScreenTools.defaultFontPixelHeight columnSpacing: ScreenTools.defaultFontPixelWidth anchors.horizontalCenter: parent.horizontalCenter diff --git a/src/ui/toolbar/MainToolBarIndicators.qml b/src/ui/toolbar/MainToolBarIndicators.qml index 3df2e3864..211550e45 100644 --- a/src/ui/toolbar/MainToolBarIndicators.qml +++ b/src/ui/toolbar/MainToolBarIndicators.qml @@ -191,6 +191,13 @@ Row { anchors.leftMargin: gpsIcon.width anchors.left: parent.left } + MouseArea { + anchors.fill: parent + onClicked: { + var centerX = mapToItem(toolBar, x, y).x + (width / 2) + mainWindow.showPopUp(gpsInfo, centerX) + } + } } //------------------------------------------------------------------------- -- 2.22.0