Commit 896f0783 authored by Don Gagne's avatar Don Gagne

parent 1b970693
......@@ -20,8 +20,7 @@ import QGroundControl.Palette 1.0
//-------------------------------------------------------------------------
//-- Armed Indicator
QGCComboBox {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.verticalCenter: parent.verticalCenter
alternateText: _armed ? qsTr("Armed") : qsTr("Disarmed")
model: [ qsTr("Arm"), qsTr("Disarm") ]
font.pointSize: ScreenTools.mediumFontPointSize
......
......@@ -10,6 +10,7 @@
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
......@@ -36,6 +37,45 @@ Item {
visible: qgcPal.globalTheme === QGCPalette.Light
}
//-------------------------------------------------------------------------
// Easter egg mechanism
MouseArea {
anchors.fill: parent
onClicked: {
_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()
}
}
}
//-- Setup can be invoked from c++ side
Connections {
target: setupWindow
......@@ -46,10 +86,16 @@ Item {
}
}
QGCFlickable {
anchors.fill: parent
contentWidth: toolbarRow.width
flickableDirection: Flickable.HorizontalFlick
RowLayout {
id: toolbarRow
anchors.bottomMargin: 1
anchors.rightMargin: ScreenTools.defaultFontPixelWidth / 2
anchors.fill: parent
anchors.top: parent.top
anchors.bottom: parent.bottom
spacing: ScreenTools.defaultFontPixelWidth / 2
ButtonGroup {
......@@ -58,15 +104,14 @@ Item {
//---------------------------------------------
// Toolbar Row
Row {
RowLayout {
id: viewRow
Layout.fillHeight: true
spacing: ScreenTools.defaultFontPixelWidth / 2
spacing: 0
QGCToolBarButton {
id: settingsButton
anchors.top: parent.top
anchors.bottom: parent.bottom
Layout.fillHeight: true
icon.source: "/res/QGCLogoWhite"
logo: true
visible: !QGroundControl.corePlugin.options.combineSettingsAndSetup
......@@ -78,8 +123,7 @@ Item {
QGCToolBarButton {
id: setupButton
anchors.top: parent.top
anchors.bottom: parent.bottom
Layout.fillHeight: true
icon.source: "/qmlimages/Gears.svg"
onClicked: {
checked = true
......@@ -89,8 +133,7 @@ Item {
QGCToolBarButton {
id: planButton
anchors.top: parent.top
anchors.bottom: parent.bottom
Layout.fillHeight: true
icon.source: "/qmlimages/Plan.svg"
onClicked: {
checked = true
......@@ -100,8 +143,7 @@ Item {
QGCToolBarButton {
id: flyButton
anchors.top: parent.top
anchors.bottom: parent.bottom
Layout.fillHeight: true
icon.source: "/qmlimages/PaperPlane.svg"
onClicked: {
checked = true
......@@ -111,8 +153,7 @@ Item {
QGCToolBarButton {
id: analyzeButton
anchors.top: parent.top
anchors.bottom: parent.bottom
Layout.fillHeight: true
icon.source: "/qmlimages/Analyze.svg"
visible: QGroundControl.corePlugin.showAdvancedUI
onClicked: {
......@@ -121,24 +162,72 @@ Item {
}
}
Item {
Layout.fillHeight: true
width: ScreenTools.defaultFontPixelWidth / 2
visible: activeVehicle
}
Rectangle {
anchors.margins: ScreenTools.defaultFontPixelHeight / 2
anchors.top: parent.top
anchors.bottom: parent.bottom
Layout.margins: ScreenTools.defaultFontPixelHeight / 2
Layout.fillHeight: true
width: 1
color: qgcPal.text
visible: activeVehicle
}
Item {
Layout.fillHeight: true
width: ScreenTools.defaultFontPixelWidth / 2
visible: activeVehicle
}
}
Loader {
id: toolbarIndicators
height: parent.height
Layout.fillHeight: true
source: "/toolbar/MainToolBarIndicators.qml"
Layout.fillWidth: true
visible: activeVehicle && !communicationLost
}
}
}
//-------------------------------------------------------------------------
//-- 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 > (toolbarRow.x + toolbarRow.width + 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
......@@ -194,4 +283,48 @@ Item {
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 {
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
}
}
}
......@@ -9,7 +9,6 @@
import QtQuick 2.11
import QtQuick.Controls 2.4
import QtQuick.Dialogs 1.3
import QtQuick.Layouts 1.11
import QGroundControl 1.0
......@@ -18,69 +17,14 @@ import QGroundControl.MultiVehicleManager 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.Palette 1.0
Item {
//-------------------------------------------------------------------------
// Easter egg mechanism
MouseArea {
anchors.fill: parent
onClicked: {
_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()
}
}
}
//-------------------------------------------------------------------------
//-- Waiting for a vehicle
QGCLabel {
id: waitForVehicle
anchors.centerIn: parent
text: qsTr("Waiting For Vehicle Connection")
font.pointSize: ScreenTools.mediumFontPointSize
font.family: ScreenTools.demiboldFontFamily
color: qgcPal.colorRed
visible: !activeVehicle
}
//-------------------------------------------------------------------------
//-- Toolbar Indicators
Row {
//-------------------------------------------------------------------------
//-- Toolbar Indicators
Row {
id: indicatorRow
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
anchors.leftMargin: ScreenTools.defaultFontPixelWidth * 2
spacing: ScreenTools.defaultFontPixelWidth * 1.5
visible: activeVehicle && !communicationLost
Repeater {
model: activeVehicle ? activeVehicle.toolBarIndicators : []
Loader {
......@@ -92,67 +36,4 @@ Item {
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 > (indicatorRow.x + indicatorRow.width + 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 : ""
)
)
)
}
//-------------------------------------------------------------------------
//-- Connection Status
Row {
anchors.fill: parent
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
}
}
}
......@@ -20,8 +20,7 @@ import QGroundControl.Palette 1.0
//-------------------------------------------------------------------------
//-- Mode Indicator
QGCComboBox {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.verticalCenter: parent.verticalCenter
alternateText: _activeVehicle ? _activeVehicle.flightMode : ""
model: _flightModes
font.pointSize: ScreenTools.mediumFontPointSize
......
......@@ -20,8 +20,7 @@ import QGroundControl.Palette 1.0
//-------------------------------------------------------------------------
//-- Multiple Vehicle Selector
QGCComboBox {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.verticalCenter: parent.verticalCenter
font.pointSize: ScreenTools.mediumFontPointSize
currentIndex: -1
sizeToContents: true
......
......@@ -20,8 +20,7 @@ import QGroundControl.Palette 1.0
//-------------------------------------------------------------------------
//-- VTOL Mode Indicator
QGCLabel {
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.verticalCenter: parent.verticalCenter
verticalAlignment: Text.AlignVCenter
text: _fwdFlight ? qsTr("VTOL: Fixed Wing") : qsTr("VTOL: Multi-Rotor")
font.pointSize: ScreenTools.mediumFontPointSize
......
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