Commit df2047c4 authored by DonLakeFlyer's avatar DonLakeFlyer

parent 3e5eb1f3
......@@ -9,7 +9,6 @@
<file alias="GPSRTKIndicator.qml">src/ui/toolbar/GPSRTKIndicator.qml</file>
<file alias="JoystickIndicator.qml">src/ui/toolbar/JoystickIndicator.qml</file>
<file alias="LinkIndicator.qml">src/ui/toolbar/LinkIndicator.qml</file>
<file alias="MainToolBar.qml">src/ui/toolbar/MainToolBar.qml</file>
<file alias="MainToolBarIndicators.qml">src/ui/toolbar/MainToolBarIndicators.qml</file>
<file alias="MessageIndicator.qml">src/ui/toolbar/MessageIndicator.qml</file>
<file alias="ModeIndicator.qml">src/ui/toolbar/ModeIndicator.qml</file>
......@@ -107,6 +106,7 @@
<file alias="QGroundControl/Controls/JoystickThumbPad.qml">src/QmlControls/JoystickThumbPad.qml</file>
<file alias="QGroundControl/Controls/KMLOrSHPFileDialog.qml">src/QmlControls/KMLOrSHPFileDialog.qml</file>
<file alias="QGroundControl/Controls/LogReplayStatusBar.qml">src/QmlControls/LogReplayStatusBar.qml</file>
<file alias="QGroundControl/Controls/MainToolBar.qml">src/ui/toolbar/MainToolBar.qml</file>
<file alias="QGroundControl/Controls/MainWindowSavedState.qml">src/QmlControls/MainWindowSavedState.qml</file>
<file alias="QGroundControl/Controls/MAVLinkChart.qml">src/QmlControls/MAVLinkChart.qml</file>
<file alias="QGroundControl/Controls/MAVLinkMessageButton.qml">src/QmlControls/MAVLinkMessageButton.qml</file>
......@@ -179,7 +179,6 @@
<file alias="QGroundControl/Controls/SurveyMapVisual.qml">src/PlanView/SurveyMapVisual.qml</file>
<file alias="QGroundControl/Controls/TerrainStatus.qml">src/PlanView/TerrainStatus.qml</file>
<file alias="QGroundControl/Controls/TakeoffItemMapVisual.qml">src/PlanView/TakeoffItemMapVisual.qml</file>
<file alias="QGroundControl/Controls/ToolBarBase.qml">src/ui/toolbar/ToolBarBase.qml</file>
<file alias="QGroundControl/Controls/ToolStrip.qml">src/QmlControls/ToolStrip.qml</file>
<file alias="QGroundControl/Controls/TransectStyleComplexItemStats.qml">src/PlanView/TransectStyleComplexItemStats.qml</file>
<file alias="QGroundControl/Controls/VehicleRotationCal.qml">src/QmlControls/VehicleRotationCal.qml</file>
......
......@@ -31,6 +31,7 @@ InstrumentValueEditDialog 1.0 InstrumentValueEditDialog.qml
JoystickThumbPad 1.0 JoystickThumbPad.qml
KMLOrSHPFileDialog 1.0 KMLOrSHPFileDialog.qml
LogReplayStatusBar 1.0 LogReplayStatusBar.qml
MainToolBar 1.0 MainToolBar.qml
MainWindowSavedState 1.0 MainWindowSavedState.qml
MAVLinkMessageButton 1.0 MAVLinkMessageButton.qml
MissionCommandDialog 1.0 MissionCommandDialog.qml
......@@ -101,7 +102,6 @@ SurveyMapVisuals 1.0 SurveyMapVisuals.qml
TerrainStatus 1.0 TerrainStatus.qml
TransectStyleComplexItemStats 1.0 TransectStyleComplexItemStats.qml
TransectStyleMapVisuals 1.0 TransectStyleMapVisuals.qml
ToolBarBase 1.0 ToolBarBase.qml
ToolStrip 1.0 ToolStrip.qml
VehicleRotationCal 1.0 VehicleRotationCal.qml
VehicleSummaryRow 1.0 VehicleSummaryRow.qml
......
......@@ -77,8 +77,6 @@ ApplicationWindow {
/// Current active Vehicle
property var activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
/// Indicates communication with vehicle is list (no heartbeats)
property bool communicationLost: activeVehicle ? activeVehicle.connectionLost : false
property string formatedMessage: activeVehicle ? activeVehicle.formatedMessage : ""
/// Indicates usable height between toolbar and footer
property real availableHeight: mainWindow.height - mainWindow.header.height - mainWindow.footer.height
......@@ -125,47 +123,40 @@ ApplicationWindow {
return _rgPreventViewSwitch[_rgPreventViewSwitch.length - 1]
}
function viewSwitch(isPlanView, showModeIndicators) {
function viewSwitch(currentToolbar) {
settingsWindow.visible = false
setupWindow.visible = false
analyzeWindow.visible = false
flightView.visible = false
planViewLoader.visible = false
var indicatorSource
if (isPlanView) {
indicatorSource = "qrc:/qml/PlanToolBarIndicators.qml"
} else {
indicatorSource = "qrc:/toolbar/MainToolBarIndicators.qml"
}
toolbar.item.indicatorSource = indicatorSource
toolbar.item.showModeIndicators = showModeIndicators
toolbar.currentToolbar = currentToolbar
}
function showFlyView() {
if (!flightView.visible) {
mainWindow.showPreFlightChecklistIfNeeded()
}
viewSwitch(false, true)
viewSwitch(toolbar.flyViewToolbar)
flightView.visible = true
}
function showPlanView() {
viewSwitch(true, false)
viewSwitch(toolbar.planViewToolbar)
planViewLoader.visible = true
}
function showAnalyzeView() {
viewSwitch(false, false)
viewSwitch(toolbar.simpleToolbar)
analyzeWindow.visible = true
}
function showSetupView() {
viewSwitch(false, false)
viewSwitch(toolbar.simpleToolbar)
setupWindow.visible = true
}
function showSettingsView() {
viewSwitch(false, false)
viewSwitch(toolbar.simpleToolbar)
settingsWindow.visible = true
}
......@@ -354,29 +345,10 @@ ApplicationWindow {
//-------------------------------------------------------------------------
/// Toolbar
header: ToolBar {
height: ScreenTools.toolbarHeight
visible: !QGroundControl.videoManager.fullScreen
background: Rectangle {
color: qgcPal.globalTheme === QGCPalette.Light ? QGroundControl.corePlugin.options.toolbarBackgroundLight : QGroundControl.corePlugin.options.toolbarBackgroundDark
}
Loader {
id: toolbar
anchors.fill: parent
source: "qrc:/toolbar/MainToolBar.qml"
//-- Toggle Full Screen / Windowed
MouseArea {
anchors.fill: parent
enabled: !ScreenTools.isMobile
onDoubleClicked: {
if(mainWindow.visibility === Window.Windowed) {
mainWindow.showFullScreen()
} else {
mainWindow.showNormal()
}
}
}
}
header: MainToolBar {
id: toolbar
height: ScreenTools.toolbarHeight
visible: !QGroundControl.videoManager.fullScreen
}
footer: LogReplayStatusBar {
......
......@@ -19,15 +19,18 @@ import QGroundControl.MultiVehicleManager 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.Controllers 1.0
Item {
id: _root
Rectangle {
id: _root
color: qgcPal.globalTheme === QGCPalette.Light ? QGroundControl.corePlugin.options.toolbarBackgroundLight : QGroundControl.corePlugin.options.toolbarBackgroundDark
property alias indicatorSource: indicatorLoader.source
property alias showModeIndicators: indicatorLoader.showModeIndicators
property int currentToolbar: flyViewToolbar
// FIXME: Reaching up for communicationLost?
readonly property int flyViewToolbar: 0
readonly property int planViewToolbar: 1
readonly property int simpleToolbar: 2
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property bool _communicationLost: _activeVehicle ? _activeVehicle.connectionLost : false
Component.onCompleted: _viewButtonClicked(flyButton)
......@@ -74,6 +77,7 @@ Item {
QGCToolBarButton {
id: currentButton
Layout.fillHeight: true
visible: !viewButtonSelectRow.visible
onClicked: {
viewButtonSelectRow.visible = !viewButtonSelectRow.visible
......@@ -100,19 +104,12 @@ Item {
onTriggered: viewButtonSelectRow.visible = false
}
Rectangle {
Layout.margins: ScreenTools.defaultFontPixelHeight / 2
Layout.fillHeight: true
width: 1
color: qgcPal.text
}
QGCToolBarButton {
id: settingsButton
Layout.fillHeight: true
icon.source: "/res/QGCLogoFull"
logo: true
visible: currentButton.icon.source !== icon.source && !QGroundControl.corePlugin.options.combineSettingsAndSetup
visible: !QGroundControl.corePlugin.options.combineSettingsAndSetup
onClicked: {
if (_viewButtonClicked(this)) {
mainWindow.showSettingsView()
......@@ -124,7 +121,6 @@ Item {
id: setupButton
Layout.fillHeight: true
icon.source: "/qmlimages/Gears.svg"
visible: currentButton.icon.source !== icon.source
onClicked: {
if (_viewButtonClicked(this)) {
mainWindow.showSetupView()
......@@ -136,7 +132,6 @@ Item {
id: planButton
Layout.fillHeight: true
icon.source: "/qmlimages/Plan.svg"
visible: currentButton.icon.source !== icon.source
onClicked: {
if (_viewButtonClicked(this)) {
mainWindow.showPlanView()
......@@ -148,7 +143,6 @@ Item {
id: flyButton
Layout.fillHeight: true
icon.source: "/qmlimages/PaperPlane.svg"
visible: currentButton.icon.source !== icon.source
onClicked: {
if (_viewButtonClicked(this)) {
mainWindow.showFlyView()
......@@ -192,7 +186,7 @@ Item {
id: analyzeButton
Layout.fillHeight: true
icon.source: "/qmlimages/Analyze.svg"
visible: currentButton.icon.source !== icon.source && QGroundControl.corePlugin.showAdvancedUI
visible: QGroundControl.corePlugin.showAdvancedUI
onClicked: {
if (_viewButtonClicked(this)) {
mainWindow.showAnalyzeView()
......@@ -230,6 +224,7 @@ Item {
anchors.bottom: parent.bottom
userSettingsGroup: toolbarUserSettingsGroup
defaultSettingsGroup: toolbarDefaultSettingsGroup
visible: currentToolbar !== planViewToolbar
QGCMouseArea {
anchors.fill: parent
......@@ -247,17 +242,18 @@ Item {
anchors.left: valueArea.right
width: 1
color: qgcPal.text
visible: currentToolbar == flyViewToolbar
}
Loader {
id: indicatorLoader
anchors.leftMargin: ScreenTools.defaultFontPixelHeight / 2
anchors.left: separator2.right
anchors.leftMargin: currentToolbar !== planViewToolbar ? ScreenTools.defaultFontPixelHeight / 2 : 0
anchors.left: currentToolbar !== planViewToolbar ? separator2.right : parent.left
anchors.top: parent.top
anchors.bottom: parent.bottom
source: "qrc:/toolbar/MainToolBarIndicators.qml"
property bool showModeIndicators: true
source: currentToolbar === flyViewToolbar ?
"qrc:/toolbar/MainToolBarIndicators.qml" :
(currentToolbar == planViewToolbar ? "qrc:/qml/PlanToolBarIndicators.qml" : "")
}
}
......@@ -268,7 +264,7 @@ Item {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.margins: ScreenTools.defaultFontPixelHeight * 0.66
visible: _activeVehicle && !communicationLost && x > (toolsFlickable.x + toolsFlickable.contentWidth + ScreenTools.defaultFontPixelWidth)
visible: currentToolbar !== planViewToolbar && _activeVehicle && !_communicationLost && x > (toolsFlickable.x + toolsFlickable.contentWidth + ScreenTools.defaultFontPixelWidth)
fillMode: Image.PreserveAspectFit
source: _outdoorPalette ? _brandImageOutdoor : _brandImageIndoor
mipmap: true
......@@ -363,7 +359,7 @@ Item {
font.pointSize: ScreenTools.mediumFontPointSize
font.family: ScreenTools.demiboldFontFamily
color: qgcPal.colorRed
visible: !_activeVehicle
visible: currentToolbar !== planViewToolbar && !_activeVehicle
}
//-------------------------------------------------------------------------
......@@ -376,7 +372,7 @@ Item {
anchors.right: parent.right
layoutDirection: Qt.RightToLeft
spacing: ScreenTools.defaultFontPixelWidth
visible: _activeVehicle && communicationLost
visible: currentToolbar !== planViewToolbar && _activeVehicle && _communicationLost
QGCButton {
id: disconnectButton
......
......@@ -21,9 +21,6 @@ Row {
anchors.margins: _toolIndicatorMargins
spacing: ScreenTools.defaultFontPixelWidth * 1.5
// This property should come in from the Loader
//property bool showModeIndicators: true
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property real _toolIndicatorMargins: ScreenTools.defaultFontPixelHeight * 0.66
......@@ -49,7 +46,7 @@ Row {
}
Repeater {
model: _activeVehicle && showModeIndicators ? _activeVehicle.modeIndicators : []
model: _activeVehicle ? _activeVehicle.modeIndicators : []
Loader {
anchors.top: parent.top
anchors.bottom: parent.bottom
......
/****************************************************************************
*
* (c) 2009-2020 QGROUNDCONTROL PROJECT <http://www.qgroundcontrol.org>
*
* QGroundControl is licensed according to the terms in the file
* COPYING.md in the root of the source code directory.
*
****************************************************************************/
import QtQuick 2.11
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.11
import QtQuick.Dialogs 1.3
import QGroundControl 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
import QGroundControl.MultiVehicleManager 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.Controllers 1.0
Item {
id: _root
// FIXME: Reaching up for communicationLost?
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property real _toolIndicatorMargins: ScreenTools.defaultFontPixelHeight * 0.66
Component.onCompleted: _viewButtonClicked(flyButton)
function _viewButtonClicked(button) {
if (mainWindow.preventViewSwitch()) {
return false
}
viewButtonSelectRow.visible = false
buttonSelectHideTimer.stop()
currentButton.icon.source = button.icon.source
currentButton.logo = button.logo
return true
}
//-- Setup can be invoked from c++ side
Connections {
target: setupWindow
onVisibleChanged: {
if (setupWindow.visible) {
_viewButtonClicked(setupButton)
}
}
}
QGCPalette { id: qgcPal }
/// Bottom single pixel divider
Rectangle {
anchors.left: parent.left
anchors.right: parent.right
anchors.bottom: parent.bottom
height: 1
color: "black"
visible: qgcPal.globalTheme === QGCPalette.Light
}
//-- Setup can be invoked from c++ side
Connections {
target: setupWindow
onVisibleChanged: {
if (setupWindow.visible) {
buttonRow.clearAllChecks()
setupButton.checked = true
}
}
}
RowLayout {
id: viewButtonRow
anchors.bottomMargin: 1
anchors.top: parent.top
anchors.bottom: parent.bottom
spacing: ScreenTools.defaultFontPixelWidth / 2
QGCToolBarButton {
id: currentButton
Layout.fillHeight: true
onClicked: {
viewButtonSelectRow.visible = !viewButtonSelectRow.visible
if (viewButtonSelectRow.visible) {
buttonSelectHideTimer.start()
} else {
buttonSelectHideTimer.stop()
}
}
}
//---------------------------------------------
// Toolbar Row
RowLayout {
id: viewButtonSelectRow
Layout.fillHeight: true
spacing: 0
visible: false
Timer {
id: buttonSelectHideTimer
interval: 5000
repeat: false
onTriggered: viewButtonSelectRow.visible = false
}
QGCToolBarButton {
id: settingsButton
Layout.fillHeight: true
icon.source: "/res/QGCLogoFull"
logo: true
visible: currentButton.icon.source !== icon.source && !QGroundControl.corePlugin.options.combineSettingsAndSetup
onClicked: {
if (_viewButtonClicked(this)) {
mainWindow.showSettingsView()
}
}
}
QGCToolBarButton {
id: setupButton
Layout.fillHeight: true
icon.source: "/qmlimages/Gears.svg"
visible: currentButton.icon.source !== icon.source
onClicked: {
if (_viewButtonClicked(this)) {
mainWindow.showSetupView()
}
}
}
QGCToolBarButton {
id: planButton
Layout.fillHeight: true
icon.source: "/qmlimages/Plan.svg"
visible: currentButton.icon.source !== icon.source
onClicked: {
if (_viewButtonClicked(this)) {
mainWindow.showPlanView()
}
}
}
QGCToolBarButton {
id: flyButton
Layout.fillHeight: true
icon.source: "/qmlimages/PaperPlane.svg"
visible: currentButton.icon.source !== icon.source
onClicked: {
if (_viewButtonClicked(this)) {
mainWindow.showFlyView()
// Easter Egg mechanism
_clickCount++
eggTimer.restart()
if (_clickCount == 5) {
if(!QGroundControl.corePlugin.showAdvancedUI) {
advancedModeConfirmation.open()
} else {
QGroundControl.corePlugin.showAdvancedUI = false
}
} else if (_clickCount == 7) {
QGroundControl.corePlugin.showTouchAreas = !QGroundControl.corePlugin.showTouchAreas
}
}
}
property int _clickCount: 0
Timer {
id: eggTimer
interval: 1000
repeat: false
onTriggered: parent._clickCount = 0
}
MessageDialog {
id: advancedModeConfirmation
title: qsTr("Advanced Mode")
text: QGroundControl.corePlugin.showAdvancedUIMessage
standardButtons: StandardButton.Yes | StandardButton.No
onYes: {
QGroundControl.corePlugin.showAdvancedUI = true
advancedModeConfirmation.close()
}
}
}
QGCToolBarButton {
id: analyzeButton
Layout.fillHeight: true
icon.source: "/qmlimages/Analyze.svg"
visible: currentButton.icon.source !== icon.source && QGroundControl.corePlugin.showAdvancedUI
onClicked: {
if (_viewButtonClicked(this)) {
mainWindow.showAnalyzeView()
}
}
}
}
}
// View / Tool separator
Row {
id: separator
anchors.bottomMargin: 1
anchors.top: parent.top
anchors.bottom: parent.bottom
spacing: ScreenTools.defaultFontPixelWidth * 1.5
Item {
anchors.top: parent.top
anchors.bottom: parent.bottom
width: ScreenTools.defaultFontPixelWidth / 2
}
Rectangle {
anchors.margins: ScreenTools.defaultFontPixelHeight / 2
anchors.top: parent.top
anchors.bottom: parent.bottom
width: 1
color: qgcPal.text
}
Item {
anchors.top: parent.top
anchors.bottom: parent.bottom
width: ScreenTools.defaultFontPixelWidth / 2
}
}
QGCFlickable {
id: toolsFlickable
anchors.left: separator.right
anchors.right: connectionStatus.visible ? connectionStatus.left : parent.right
anchors.bottomMargin: 1
anchors.top: parent.top
anchors.bottom: parent.bottom
contentWidth: toolRow.width
flickableDirection: Flickable.HorizontalFlick
Row {
id: toolRow
anchors.bottomMargin: 1
anchors.top: parent.top
anchors.bottom: parent.bottom
spacing: ScreenTools.defaultFontPixelWidth * 1.5
Repeater {
id: appRepeater
model: QGroundControl.corePlugin.toolBarIndicators
Loader {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.margins: _toolIndicatorMargins
source: modelData
visible: item.showIndicator
}
}
Repeater {
model: _activeVehicle ? _activeVehicle.toolBarIndicators : []
Loader {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.margins: _toolIndicatorMargins
source: modelData
visible: item.showIndicator
}
}
}
}
//-------------------------------------------------------------------------
//-- Branding Logo
Image {
anchors.right: parent.right
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.margins: ScreenTools.defaultFontPixelHeight * 0.66
visible: _activeVehicle && !communicationLost && x > (toolsFlickable.x + toolsFlickable.contentWidth + ScreenTools.defaultFontPixelWidth)
fillMode: Image.PreserveAspectFit
source: _outdoorPalette ? _brandImageOutdoor : _brandImageIndoor
mipmap: true
property bool _outdoorPalette: qgcPal.globalTheme === QGCPalette.Light
property bool _corePluginBranding: QGroundControl.corePlugin.brandImageIndoor.length != 0
property string _userBrandImageIndoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageIndoor.value
property string _userBrandImageOutdoor: QGroundControl.settingsManager.brandImageSettings.userBrandImageOutdoor.value
property bool _userBrandingIndoor: _userBrandImageIndoor.length != 0
property bool _userBrandingOutdoor: _userBrandImageOutdoor.length != 0
property string _brandImageIndoor: _userBrandingIndoor ?
_userBrandImageIndoor : (_userBrandingOutdoor ?
_userBrandImageOutdoor : (_corePluginBranding ?
QGroundControl.corePlugin.brandImageIndoor : (activeVehicle ?
activeVehicle.brandImageIndoor : ""
)
)
)
property string _brandImageOutdoor: _userBrandingOutdoor ?
_userBrandImageOutdoor : (_userBrandingIndoor ?
_userBrandImageIndoor : (_corePluginBranding ?
QGroundControl.corePlugin.brandImageOutdoor : (activeVehicle ?
activeVehicle.brandImageOutdoor : ""
)
)
)
}
// Small parameter download progress bar
Rectangle {
anchors.bottom: parent.bottom
height: _root.height * 0.05
width: _activeVehicle ? _activeVehicle.parameterManager.loadProgress * parent.width : 0
color: qgcPal.colorGreen
visible: !largeProgressBar.visible
}
// Large parameter download progress bar
Rectangle {
id: largeProgressBar
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.right: parent.right
height: parent.height
color: qgcPal.window
visible: _showLargeProgress
property bool _initialDownloadComplete: _activeVehicle ? _activeVehicle.parameterManager.parametersReady : true
property bool _userHide: false
property bool _showLargeProgress: !_initialDownloadComplete && !_userHide && qgcPal.globalTheme === QGCPalette.Light
Connections {
target: QGroundControl.multiVehicleManager
onActiveVehicleChanged: largeProgressBar._userHide = false
}
Rectangle {
anchors.top: parent.top
anchors.bottom: parent.bottom
width: _activeVehicle ? _activeVehicle.parameterManager.loadProgress * parent.width : 0
color: qgcPal.colorGreen
}
QGCLabel {
anchors.centerIn: parent
text: qsTr("Downloading Parameters")
font.pointSize: ScreenTools.largeFontPointSize
}
QGCLabel {
anchors.margins: _margin
anchors.right: parent.right
anchors.bottom: parent.bottom
text: qsTr("Click anywhere to hide")
property real _margin: ScreenTools.defaultFontPixelWidth / 2
}
MouseArea {
anchors.fill: parent
onClicked: largeProgressBar._userHide = true
}
}
//-------------------------------------------------------------------------
//-- Waiting for a vehicle
QGCLabel {
anchors.rightMargin: ScreenTools.defaultFontPixelWidth
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Waiting For Vehicle Connection")
font.pointSize: ScreenTools.mediumFontPointSize
font.family: ScreenTools.demiboldFontFamily
color: qgcPal.colorRed
visible: !_activeVehicle
}
//-------------------------------------------------------------------------
//-- Connection Status
Row {
id: connectionStatus
anchors.rightMargin: ScreenTools.defaultFontPixelWidth
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.right: parent.right
layoutDirection: Qt.RightToLeft
spacing: ScreenTools.defaultFontPixelWidth
visible: _activeVehicle && communicationLost
QGCButton {
id: disconnectButton
anchors.verticalCenter: parent.verticalCenter
text: qsTr("Disconnect")
primary: true
onClicked: _activeVehicle.disconnectInactiveVehicle()
}
QGCLabel {
id: connectionLost
anchors.verticalCenter: parent.verticalCenter
text: qsTr("COMMUNICATION LOST")
font.pointSize: ScreenTools.largeFontPointSize
font.family: ScreenTools.demiboldFontFamily
color: qgcPal.colorRed
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment