Commit df2047c4 authored by DonLakeFlyer's avatar DonLakeFlyer

parent 3e5eb1f3
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
<file alias="GPSRTKIndicator.qml">src/ui/toolbar/GPSRTKIndicator.qml</file> <file alias="GPSRTKIndicator.qml">src/ui/toolbar/GPSRTKIndicator.qml</file>
<file alias="JoystickIndicator.qml">src/ui/toolbar/JoystickIndicator.qml</file> <file alias="JoystickIndicator.qml">src/ui/toolbar/JoystickIndicator.qml</file>
<file alias="LinkIndicator.qml">src/ui/toolbar/LinkIndicator.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="MainToolBarIndicators.qml">src/ui/toolbar/MainToolBarIndicators.qml</file>
<file alias="MessageIndicator.qml">src/ui/toolbar/MessageIndicator.qml</file> <file alias="MessageIndicator.qml">src/ui/toolbar/MessageIndicator.qml</file>
<file alias="ModeIndicator.qml">src/ui/toolbar/ModeIndicator.qml</file> <file alias="ModeIndicator.qml">src/ui/toolbar/ModeIndicator.qml</file>
...@@ -107,6 +106,7 @@ ...@@ -107,6 +106,7 @@
<file alias="QGroundControl/Controls/JoystickThumbPad.qml">src/QmlControls/JoystickThumbPad.qml</file> <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/KMLOrSHPFileDialog.qml">src/QmlControls/KMLOrSHPFileDialog.qml</file>
<file alias="QGroundControl/Controls/LogReplayStatusBar.qml">src/QmlControls/LogReplayStatusBar.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/MainWindowSavedState.qml">src/QmlControls/MainWindowSavedState.qml</file>
<file alias="QGroundControl/Controls/MAVLinkChart.qml">src/QmlControls/MAVLinkChart.qml</file> <file alias="QGroundControl/Controls/MAVLinkChart.qml">src/QmlControls/MAVLinkChart.qml</file>
<file alias="QGroundControl/Controls/MAVLinkMessageButton.qml">src/QmlControls/MAVLinkMessageButton.qml</file> <file alias="QGroundControl/Controls/MAVLinkMessageButton.qml">src/QmlControls/MAVLinkMessageButton.qml</file>
...@@ -179,7 +179,6 @@ ...@@ -179,7 +179,6 @@
<file alias="QGroundControl/Controls/SurveyMapVisual.qml">src/PlanView/SurveyMapVisual.qml</file> <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/TerrainStatus.qml">src/PlanView/TerrainStatus.qml</file>
<file alias="QGroundControl/Controls/TakeoffItemMapVisual.qml">src/PlanView/TakeoffItemMapVisual.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/ToolStrip.qml">src/QmlControls/ToolStrip.qml</file>
<file alias="QGroundControl/Controls/TransectStyleComplexItemStats.qml">src/PlanView/TransectStyleComplexItemStats.qml</file> <file alias="QGroundControl/Controls/TransectStyleComplexItemStats.qml">src/PlanView/TransectStyleComplexItemStats.qml</file>
<file alias="QGroundControl/Controls/VehicleRotationCal.qml">src/QmlControls/VehicleRotationCal.qml</file> <file alias="QGroundControl/Controls/VehicleRotationCal.qml">src/QmlControls/VehicleRotationCal.qml</file>
......
...@@ -31,6 +31,7 @@ InstrumentValueEditDialog 1.0 InstrumentValueEditDialog.qml ...@@ -31,6 +31,7 @@ InstrumentValueEditDialog 1.0 InstrumentValueEditDialog.qml
JoystickThumbPad 1.0 JoystickThumbPad.qml JoystickThumbPad 1.0 JoystickThumbPad.qml
KMLOrSHPFileDialog 1.0 KMLOrSHPFileDialog.qml KMLOrSHPFileDialog 1.0 KMLOrSHPFileDialog.qml
LogReplayStatusBar 1.0 LogReplayStatusBar.qml LogReplayStatusBar 1.0 LogReplayStatusBar.qml
MainToolBar 1.0 MainToolBar.qml
MainWindowSavedState 1.0 MainWindowSavedState.qml MainWindowSavedState 1.0 MainWindowSavedState.qml
MAVLinkMessageButton 1.0 MAVLinkMessageButton.qml MAVLinkMessageButton 1.0 MAVLinkMessageButton.qml
MissionCommandDialog 1.0 MissionCommandDialog.qml MissionCommandDialog 1.0 MissionCommandDialog.qml
...@@ -101,7 +102,6 @@ SurveyMapVisuals 1.0 SurveyMapVisuals.qml ...@@ -101,7 +102,6 @@ SurveyMapVisuals 1.0 SurveyMapVisuals.qml
TerrainStatus 1.0 TerrainStatus.qml TerrainStatus 1.0 TerrainStatus.qml
TransectStyleComplexItemStats 1.0 TransectStyleComplexItemStats.qml TransectStyleComplexItemStats 1.0 TransectStyleComplexItemStats.qml
TransectStyleMapVisuals 1.0 TransectStyleMapVisuals.qml TransectStyleMapVisuals 1.0 TransectStyleMapVisuals.qml
ToolBarBase 1.0 ToolBarBase.qml
ToolStrip 1.0 ToolStrip.qml ToolStrip 1.0 ToolStrip.qml
VehicleRotationCal 1.0 VehicleRotationCal.qml VehicleRotationCal 1.0 VehicleRotationCal.qml
VehicleSummaryRow 1.0 VehicleSummaryRow.qml VehicleSummaryRow 1.0 VehicleSummaryRow.qml
......
...@@ -77,8 +77,6 @@ ApplicationWindow { ...@@ -77,8 +77,6 @@ ApplicationWindow {
/// Current active Vehicle /// Current active Vehicle
property var activeVehicle: QGroundControl.multiVehicleManager.activeVehicle 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 : "" property string formatedMessage: activeVehicle ? activeVehicle.formatedMessage : ""
/// Indicates usable height between toolbar and footer /// Indicates usable height between toolbar and footer
property real availableHeight: mainWindow.height - mainWindow.header.height - mainWindow.footer.height property real availableHeight: mainWindow.height - mainWindow.header.height - mainWindow.footer.height
...@@ -125,47 +123,40 @@ ApplicationWindow { ...@@ -125,47 +123,40 @@ ApplicationWindow {
return _rgPreventViewSwitch[_rgPreventViewSwitch.length - 1] return _rgPreventViewSwitch[_rgPreventViewSwitch.length - 1]
} }
function viewSwitch(isPlanView, showModeIndicators) { function viewSwitch(currentToolbar) {
settingsWindow.visible = false settingsWindow.visible = false
setupWindow.visible = false setupWindow.visible = false
analyzeWindow.visible = false analyzeWindow.visible = false
flightView.visible = false flightView.visible = false
planViewLoader.visible = false planViewLoader.visible = false
var indicatorSource toolbar.currentToolbar = currentToolbar
if (isPlanView) {
indicatorSource = "qrc:/qml/PlanToolBarIndicators.qml"
} else {
indicatorSource = "qrc:/toolbar/MainToolBarIndicators.qml"
}
toolbar.item.indicatorSource = indicatorSource
toolbar.item.showModeIndicators = showModeIndicators
} }
function showFlyView() { function showFlyView() {
if (!flightView.visible) { if (!flightView.visible) {
mainWindow.showPreFlightChecklistIfNeeded() mainWindow.showPreFlightChecklistIfNeeded()
} }
viewSwitch(false, true) viewSwitch(toolbar.flyViewToolbar)
flightView.visible = true flightView.visible = true
} }
function showPlanView() { function showPlanView() {
viewSwitch(true, false) viewSwitch(toolbar.planViewToolbar)
planViewLoader.visible = true planViewLoader.visible = true
} }
function showAnalyzeView() { function showAnalyzeView() {
viewSwitch(false, false) viewSwitch(toolbar.simpleToolbar)
analyzeWindow.visible = true analyzeWindow.visible = true
} }
function showSetupView() { function showSetupView() {
viewSwitch(false, false) viewSwitch(toolbar.simpleToolbar)
setupWindow.visible = true setupWindow.visible = true
} }
function showSettingsView() { function showSettingsView() {
viewSwitch(false, false) viewSwitch(toolbar.simpleToolbar)
settingsWindow.visible = true settingsWindow.visible = true
} }
...@@ -354,29 +345,10 @@ ApplicationWindow { ...@@ -354,29 +345,10 @@ ApplicationWindow {
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
/// Toolbar /// Toolbar
header: ToolBar { header: MainToolBar {
id: toolbar
height: ScreenTools.toolbarHeight height: ScreenTools.toolbarHeight
visible: !QGroundControl.videoManager.fullScreen 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()
}
}
}
}
} }
footer: LogReplayStatusBar { footer: LogReplayStatusBar {
......
...@@ -19,15 +19,18 @@ import QGroundControl.MultiVehicleManager 1.0 ...@@ -19,15 +19,18 @@ import QGroundControl.MultiVehicleManager 1.0
import QGroundControl.ScreenTools 1.0 import QGroundControl.ScreenTools 1.0
import QGroundControl.Controllers 1.0 import QGroundControl.Controllers 1.0
Item { Rectangle {
id: _root id: _root
color: qgcPal.globalTheme === QGCPalette.Light ? QGroundControl.corePlugin.options.toolbarBackgroundLight : QGroundControl.corePlugin.options.toolbarBackgroundDark
property alias indicatorSource: indicatorLoader.source property int currentToolbar: flyViewToolbar
property alias showModeIndicators: indicatorLoader.showModeIndicators
// 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) Component.onCompleted: _viewButtonClicked(flyButton)
...@@ -74,6 +77,7 @@ Item { ...@@ -74,6 +77,7 @@ Item {
QGCToolBarButton { QGCToolBarButton {
id: currentButton id: currentButton
Layout.fillHeight: true Layout.fillHeight: true
visible: !viewButtonSelectRow.visible
onClicked: { onClicked: {
viewButtonSelectRow.visible = !viewButtonSelectRow.visible viewButtonSelectRow.visible = !viewButtonSelectRow.visible
...@@ -100,19 +104,12 @@ Item { ...@@ -100,19 +104,12 @@ Item {
onTriggered: viewButtonSelectRow.visible = false onTriggered: viewButtonSelectRow.visible = false
} }
Rectangle {
Layout.margins: ScreenTools.defaultFontPixelHeight / 2
Layout.fillHeight: true
width: 1
color: qgcPal.text
}
QGCToolBarButton { QGCToolBarButton {
id: settingsButton id: settingsButton
Layout.fillHeight: true Layout.fillHeight: true
icon.source: "/res/QGCLogoFull" icon.source: "/res/QGCLogoFull"
logo: true logo: true
visible: currentButton.icon.source !== icon.source && !QGroundControl.corePlugin.options.combineSettingsAndSetup visible: !QGroundControl.corePlugin.options.combineSettingsAndSetup
onClicked: { onClicked: {
if (_viewButtonClicked(this)) { if (_viewButtonClicked(this)) {
mainWindow.showSettingsView() mainWindow.showSettingsView()
...@@ -124,7 +121,6 @@ Item { ...@@ -124,7 +121,6 @@ Item {
id: setupButton id: setupButton
Layout.fillHeight: true Layout.fillHeight: true
icon.source: "/qmlimages/Gears.svg" icon.source: "/qmlimages/Gears.svg"
visible: currentButton.icon.source !== icon.source
onClicked: { onClicked: {
if (_viewButtonClicked(this)) { if (_viewButtonClicked(this)) {
mainWindow.showSetupView() mainWindow.showSetupView()
...@@ -136,7 +132,6 @@ Item { ...@@ -136,7 +132,6 @@ Item {
id: planButton id: planButton
Layout.fillHeight: true Layout.fillHeight: true
icon.source: "/qmlimages/Plan.svg" icon.source: "/qmlimages/Plan.svg"
visible: currentButton.icon.source !== icon.source
onClicked: { onClicked: {
if (_viewButtonClicked(this)) { if (_viewButtonClicked(this)) {
mainWindow.showPlanView() mainWindow.showPlanView()
...@@ -148,7 +143,6 @@ Item { ...@@ -148,7 +143,6 @@ Item {
id: flyButton id: flyButton
Layout.fillHeight: true Layout.fillHeight: true
icon.source: "/qmlimages/PaperPlane.svg" icon.source: "/qmlimages/PaperPlane.svg"
visible: currentButton.icon.source !== icon.source
onClicked: { onClicked: {
if (_viewButtonClicked(this)) { if (_viewButtonClicked(this)) {
mainWindow.showFlyView() mainWindow.showFlyView()
...@@ -192,7 +186,7 @@ Item { ...@@ -192,7 +186,7 @@ Item {
id: analyzeButton id: analyzeButton
Layout.fillHeight: true Layout.fillHeight: true
icon.source: "/qmlimages/Analyze.svg" icon.source: "/qmlimages/Analyze.svg"
visible: currentButton.icon.source !== icon.source && QGroundControl.corePlugin.showAdvancedUI visible: QGroundControl.corePlugin.showAdvancedUI
onClicked: { onClicked: {
if (_viewButtonClicked(this)) { if (_viewButtonClicked(this)) {
mainWindow.showAnalyzeView() mainWindow.showAnalyzeView()
...@@ -230,6 +224,7 @@ Item { ...@@ -230,6 +224,7 @@ Item {
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
userSettingsGroup: toolbarUserSettingsGroup userSettingsGroup: toolbarUserSettingsGroup
defaultSettingsGroup: toolbarDefaultSettingsGroup defaultSettingsGroup: toolbarDefaultSettingsGroup
visible: currentToolbar !== planViewToolbar
QGCMouseArea { QGCMouseArea {
anchors.fill: parent anchors.fill: parent
...@@ -247,17 +242,18 @@ Item { ...@@ -247,17 +242,18 @@ Item {
anchors.left: valueArea.right anchors.left: valueArea.right
width: 1 width: 1
color: qgcPal.text color: qgcPal.text
visible: currentToolbar == flyViewToolbar
} }
Loader { Loader {
id: indicatorLoader id: indicatorLoader
anchors.leftMargin: ScreenTools.defaultFontPixelHeight / 2 anchors.leftMargin: currentToolbar !== planViewToolbar ? ScreenTools.defaultFontPixelHeight / 2 : 0
anchors.left: separator2.right anchors.left: currentToolbar !== planViewToolbar ? separator2.right : parent.left
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
source: "qrc:/toolbar/MainToolBarIndicators.qml" source: currentToolbar === flyViewToolbar ?
"qrc:/toolbar/MainToolBarIndicators.qml" :
property bool showModeIndicators: true (currentToolbar == planViewToolbar ? "qrc:/qml/PlanToolBarIndicators.qml" : "")
} }
} }
...@@ -268,7 +264,7 @@ Item { ...@@ -268,7 +264,7 @@ Item {
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.margins: ScreenTools.defaultFontPixelHeight * 0.66 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 fillMode: Image.PreserveAspectFit
source: _outdoorPalette ? _brandImageOutdoor : _brandImageIndoor source: _outdoorPalette ? _brandImageOutdoor : _brandImageIndoor
mipmap: true mipmap: true
...@@ -363,7 +359,7 @@ Item { ...@@ -363,7 +359,7 @@ Item {
font.pointSize: ScreenTools.mediumFontPointSize font.pointSize: ScreenTools.mediumFontPointSize
font.family: ScreenTools.demiboldFontFamily font.family: ScreenTools.demiboldFontFamily
color: qgcPal.colorRed color: qgcPal.colorRed
visible: !_activeVehicle visible: currentToolbar !== planViewToolbar && !_activeVehicle
} }
//------------------------------------------------------------------------- //-------------------------------------------------------------------------
...@@ -376,7 +372,7 @@ Item { ...@@ -376,7 +372,7 @@ Item {
anchors.right: parent.right anchors.right: parent.right
layoutDirection: Qt.RightToLeft layoutDirection: Qt.RightToLeft
spacing: ScreenTools.defaultFontPixelWidth spacing: ScreenTools.defaultFontPixelWidth
visible: _activeVehicle && communicationLost visible: currentToolbar !== planViewToolbar && _activeVehicle && _communicationLost
QGCButton { QGCButton {
id: disconnectButton id: disconnectButton
......
...@@ -21,9 +21,6 @@ Row { ...@@ -21,9 +21,6 @@ Row {
anchors.margins: _toolIndicatorMargins anchors.margins: _toolIndicatorMargins
spacing: ScreenTools.defaultFontPixelWidth * 1.5 spacing: ScreenTools.defaultFontPixelWidth * 1.5
// This property should come in from the Loader
//property bool showModeIndicators: true
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property real _toolIndicatorMargins: ScreenTools.defaultFontPixelHeight * 0.66 property real _toolIndicatorMargins: ScreenTools.defaultFontPixelHeight * 0.66
...@@ -49,7 +46,7 @@ Row { ...@@ -49,7 +46,7 @@ Row {
} }
Repeater { Repeater {
model: _activeVehicle && showModeIndicators ? _activeVehicle.modeIndicators : [] model: _activeVehicle ? _activeVehicle.modeIndicators : []
Loader { Loader {
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: parent.bottom 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