Unverified Commit 8cdaa3c2 authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #8976 from DonLakeFlyer/TelemetryValueBar

Fly: Telemetry value bar
parents f62c8640 b0d48d47
......@@ -55,14 +55,6 @@ RESOURCES += \
QML_IMPORT_PATH += \
$$PWD/res
LinuxBuild {
# Our QT_INSTALL_LIBS
QT_LIB_LIST += \
libQt5VirtualKeyboard.so.5 \
}
# Our own, custom sources
SOURCES += \
$$PWD/src/CustomPlugin.cc \
......
......@@ -22,6 +22,7 @@
<file alias="gear-black.svg">../resources/gear-black.svg</file>
<file alias="gear-white.svg">../resources/gear-white.svg</file>
<file alias="helicoptericon.svg">../resources/helicoptericon.svg</file>
<file alias="BingNoTileBytes.dat">../resources/BingNoTileBytes.dat</file>
<file alias="JoystickBezel.png">../resources/JoystickBezel.png</file>
<file alias="JoystickBezelLight.png">../resources/JoystickBezelLight.png</file>
<file alias="land.svg">../resources/land.svg</file>
......
......@@ -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>
......@@ -50,7 +49,6 @@
<file alias="FWLandingPatternEditor.qml">../src/PlanView/FWLandingPatternEditor.qml</file>
<file alias="GeneralSettings.qml">../src/ui/preferences/GeneralSettings.qml</file>
<file alias="GeoTagPage.qml">../src/AnalyzeView/GeoTagPage.qml</file>
<file alias="HealthPageWidget.qml">../src/FlightMap/Widgets/HealthPageWidget.qml</file>
<file alias="HelpSettings.qml">../src/ui/preferences/HelpSettings.qml</file>
<file alias="JoystickConfig.qml">../src/VehicleSetup/JoystickConfig.qml</file>
<file alias="JoystickConfigAdvanced.qml">../src/VehicleSetup/JoystickConfigAdvanced.qml</file>
......@@ -65,6 +63,7 @@
<file alias="MAVLinkInspectorPage.qml">../src/AnalyzeView/MAVLinkInspectorPage.qml</file>
<file alias="MavlinkSettings.qml">../src/ui/preferences/MavlinkSettings.qml</file>
<file alias="MicrohardSettings.qml">../src/Microhard/MicrohardSettings.qml</file>
<file alias="MissionCommandTreeEditorTestWindow.qml">../src/MissionManager/MissionCommandTreeEditorTestWindow.qml</file>
<file alias="MissionSettingsEditor.qml">../src/PlanView/MissionSettingsEditor.qml</file>
<file alias="MockLink.qml">../src/ui/preferences/MockLink.qml</file>
<file alias="MockLinkSettings.qml">../src/ui/preferences/MockLinkSettings.qml</file>
......@@ -77,7 +76,6 @@
<file alias="PX4FlowSensor.qml">../src/VehicleSetup/PX4FlowSensor.qml</file>
<file alias="QGCInstrumentWidget.qml">../src/FlightMap/Widgets/QGCInstrumentWidget.qml</file>
<file alias="QGCInstrumentWidgetAlternate.qml">../src/FlightMap/Widgets/QGCInstrumentWidgetAlternate.qml</file>
<file alias="QGCViewDialogContainer.qml">../src/QmlControls/QGCViewDialogContainer.qml</file>
<file alias="QGroundControl/Controls/AnalyzePage.qml">../src/AnalyzeView/AnalyzePage.qml</file>
<file alias="QGroundControl/Controls/AppMessages.qml">../src/QmlControls/AppMessages.qml</file>
<file alias="QGroundControl/Controls/AxisMonitor.qml">../src/QmlControls/AxisMonitor.qml</file>
......@@ -107,6 +105,8 @@
<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/MainStatusIndicator.qml">../src/ui/toolbar/MainStatusIndicator.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>
......@@ -161,6 +161,7 @@
<file alias="QGroundControl/Controls/QGCToolBarButton.qml">../src/QmlControls/QGCToolBarButton.qml</file>
<file alias="QGroundControl/Controls/QGCToolInsets.qml">../src/QmlControls/QGCToolInsets.qml</file>
<file alias="QGroundControl/Controls/QGCViewDialog.qml">../src/QmlControls/QGCViewDialog.qml</file>
<file alias="QGroundControl/Controls/QGCViewDialogContainer.qml">../src/QmlControls/QGCViewDialogContainer.qml</file>
<file alias="QGroundControl/Controls/QGCViewMessage.qml">../src/QmlControls/QGCViewMessage.qml</file>
<file alias="QGroundControl/Controls/qmldir">../src/QmlControls/QGroundControl/Controls/qmldir</file>
<file alias="QGroundControl/Controls/RallyPointEditorHeader.qml">../src/PlanView/RallyPointEditorHeader.qml</file>
......@@ -179,9 +180,10 @@
<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/TransectStyleComplexItemTabBar.qml">../src/PlanView/TransectStyleComplexItemTabBar.qml</file>
<file alias="QGroundControl/Controls/TransectStyleComplexItemTerrainFollow.qml">../src/PlanView/TransectStyleComplexItemTerrainFollow.qml</file>
<file alias="QGroundControl/Controls/VehicleRotationCal.qml">../src/QmlControls/VehicleRotationCal.qml</file>
<file alias="QGroundControl/Controls/VehicleSummaryRow.qml">../src/QmlControls/VehicleSummaryRow.qml</file>
<file alias="QGroundControl/Controls/VerticalFactValueGrid.qml">../src/QmlControls/VerticalFactValueGrid.qml</file>
......@@ -335,5 +337,8 @@
<qresource prefix="/MockLink">
<file alias="APMArduSubMockLink.params">../src/comm/APMArduSubMockLink.params</file>
<file alias="PX4MockLink.params">../src/comm/PX4MockLink.params</file>
<file alias="Version.MetaData.json">../src/comm/MockLink.Version.MetaData.json</file>
<file alias="Version.MetaData.json.gz">../src/comm/MockLink.Version.MetaData.json.gz</file>
<file alias="Parameter.MetaData.json">../src/comm/MockLink.Parameter.MetaData.json</file>
</qresource>
</RCC>
......@@ -159,11 +159,11 @@ bool CustomPlugin::adjustSettingMetaData(const QString& settingsGroup, FactMetaD
if (settingsGroup == AppSettings::settingsGroup) {
// This tells QGC than when you are creating Plans while not connected to a vehicle
// the specific firmware/vehicle the plan is for.
if (metaData.name() == AppSettings::offlineEditingFirmwareTypeName) {
metaData.setRawDefaultValue(MAV_AUTOPILOT_PX4);
if (metaData.name() == AppSettings::offlineEditingFirmwareClassName) {
metaData.setRawDefaultValue(QGCMAVLink::FirmwareClassPX4);
return false;
} else if (metaData.name() == AppSettings::offlineEditingVehicleTypeName) {
metaData.setRawDefaultValue(MAV_TYPE_QUADROTOR);
} else if (metaData.name() == AppSettings::offlineEditingVehicleClassName) {
metaData.setRawDefaultValue(QGCMAVLink::VehicleClassMultiRotor);
return false;
}
}
......
......@@ -22,11 +22,18 @@ CustomFirmwarePluginFactory::CustomFirmwarePluginFactory()
}
QList<MAV_AUTOPILOT> CustomFirmwarePluginFactory::supportedFirmwareTypes() const
QList<QGCMAVLink::FirmwareClass_t> CustomFirmwarePluginFactory::supportedFirmwareClasses() const
{
QList<MAV_AUTOPILOT> list;
list.append(MAV_AUTOPILOT_PX4);
return list;
QList<QGCMAVLink::FirmwareClass_t> firmwareClasses;
firmwareClasses.append(QGCMAVLink::FirmwareClassPX4);
return firmwareClasses;
}
QList<QGCMAVLink::VehicleClass_t> CustomFirmwarePluginFactory::supportedVehicleClasses(void) const
{
QList<QGCMAVLink::VehicleClass_t> vehicleClasses;
vehicleClasses.append(QGCMAVLink::VehicleClassMultiRotor);
return vehicleClasses;
}
FirmwarePlugin* CustomFirmwarePluginFactory::firmwarePluginForAutopilot(MAV_AUTOPILOT autopilotType, MAV_TYPE /*vehicleType*/)
......@@ -39,11 +46,3 @@ FirmwarePlugin* CustomFirmwarePluginFactory::firmwarePluginForAutopilot(MAV_AUTO
}
return nullptr;
}
QList<MAV_TYPE> CustomFirmwarePluginFactory::supportedVehicleTypes(void) const
{
QList<MAV_TYPE> mavTypes;
mavTypes.append(MAV_TYPE_QUADROTOR);
return mavTypes;
}
......@@ -26,9 +26,9 @@ class CustomFirmwarePluginFactory : public FirmwarePluginFactory
Q_OBJECT
public:
CustomFirmwarePluginFactory();
QList<MAV_AUTOPILOT> supportedFirmwareTypes () const final;
FirmwarePlugin* firmwarePluginForAutopilot (MAV_AUTOPILOT autopilotType, MAV_TYPE vehicleType) final;
QList<MAV_TYPE> supportedVehicleTypes (void) const final;
QList<QGCMAVLink::FirmwareClass_t> supportedFirmwareClasses(void) const final;
QList<QGCMAVLink::VehicleClass_t> supportedVehicleClasses(void) const final;
FirmwarePlugin* firmwarePluginForAutopilot (MAV_AUTOPILOT autopilotType, MAV_TYPE vehicleType) final;
private:
CustomFirmwarePlugin* _pluginInstance;
......
......@@ -232,6 +232,7 @@
<file alias="QGroundControl/FlightDisplay/PreFlightSoundCheck.qml">src/FlightDisplay/PreFlightSoundCheck.qml</file>
<file alias="QGroundControl/FlightDisplay/PreFlightCheckListShowAction.qml">src/FlightDisplay/PreFlightCheckListShowAction.qml</file>
<file alias="QGroundControl/FlightDisplay/TerrainProgress.qml">src/FlightDisplay/TerrainProgress.qml</file>
<file alias="QGroundControl/FlightDisplay/TelemetryValuesBar.qml">src/FlightDisplay/TelemetryValuesBar.qml</file>
<file alias="QGroundControl/FlightDisplay/VehicleWarnings.qml">src/FlightDisplay/VehicleWarnings.qml</file>
<file alias="QGroundControl/FlightDisplay/qmldir">src/QmlControls/QGroundControl/FlightDisplay/qmldir</file>
<file alias="QGroundControl/FlightMap/CameraTriggerIndicator.qml">src/FlightMap/MapItems/CameraTriggerIndicator.qml</file>
......
......@@ -52,7 +52,6 @@ Item {
property var _guidedController: guidedActionsController
property var _guidedActionList: guidedActionList
property var _guidedAltSlider: guidedAltSlider
property var _guidedConfirm: guidedActionConfirm
property real _toolsMargin: ScreenTools.defaultFontPixelWidth * 0.75
property rect _centerViewport: Qt.rect(0, 0, width, height)
property real _rightPanelWidth: ScreenTools.defaultFontPixelWidth * 30
......@@ -77,7 +76,6 @@ Item {
FlyViewWidgetLayer {
id: widgetLayer
anchors.rightMargin: _toolsMargin
anchors.top: parent.top
anchors.bottom: parent.bottom
anchors.left: parent.left
......@@ -100,12 +98,11 @@ Item {
GuidedActionsController {
id: guidedActionsController
missionController: _missionController
confirmDialog: _guidedConfirm
actionList: _guidedActionList
altitudeSlider: _guidedAltSlider
}
GuidedActionConfirm {
/*GuidedActionConfirm {
id: guidedActionConfirm
anchors.margins: _margins
anchors.bottom: parent.bottom
......@@ -113,7 +110,7 @@ Item {
z: QGroundControl.zOrderTopMost
guidedController: _guidedController
altitudeSlider: _guidedAltSlider
}
}*/
GuidedActionList {
id: guidedActionList
......@@ -144,7 +141,7 @@ Item {
rightPanelWidth: ScreenTools.defaultFontPixelHeight * 9
pipMode: !_mainWindowIsMap
toolInsets: customOverlay.totalToolInsets
mapName: "FlightDisplayView"
mapName: "FlightDisplayView"
}
FlyViewVideo {
......
......@@ -18,6 +18,7 @@ import QtQuick.Window 2.2
import QtQml.Models 2.1
import QGroundControl 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Airspace 1.0
import QGroundControl.Airmap 1.0
import QGroundControl.Controllers 1.0
......@@ -50,18 +51,18 @@ Item {
QGCToolInsets {
id: _totalToolInsets
leftEdgeCenterInset: toolStrip.leftInset
leftEdgeTopInset: toolStrip.leftInset
leftEdgeCenterInset: toolStrip.leftInset
leftEdgeBottomInset: parentToolInsets.leftEdgeBottomInset
rightEdgeCenterInset: instrumentPanel.rightInset
rightEdgeTopInset: instrumentPanel.rightInset
rightEdgeBottomInset: instrumentPanel.rightInset
topEdgeCenterInset: parentToolInsets.topEdgeCenterInset
rightEdgeTopInset: parentToolInsets.rightEdgeTopInset
rightEdgeCenterInset: parentToolInsets.rightEdgeCenterInset
rightEdgeBottomInset: parentToolInsets.rightEdgeBottomInset
topEdgeLeftInset: parentToolInsets.topEdgeLeftInset
topEdgeCenterInset: parentToolInsets.topEdgeCenterInset
topEdgeRightInset: parentToolInsets.topEdgeRightInset
bottomEdgeCenterInset: mapScale.centerInset
bottomEdgeLeftInset: parentToolInsets.bottomEdgeLeftInset
bottomEdgeRightInset: parentToolInsets.bottomEdgeRightInset
bottomEdgeCenterInset: mapScale.centerInset
bottomEdgeRightInset: telemetryPanel.bottomInset
}
FlyViewMissionCompleteDialog {
......@@ -84,6 +85,30 @@ Item {
property real rightInset: visible ? parent.width - x : 0
}
TelemetryValuesBar {
id: telemetryPanel
x: recalcXPosition()
anchors.margins: _toolsMargin
anchors.bottom: parent.bottom
function recalcXPosition() {
// First try centered
var halfRootWidth = _root.width / 2
var halfPanelWidth = telemetryPanel.width / 2
var leftX = (halfRootWidth - halfPanelWidth) - _toolsMargin
var rightX = (halfRootWidth + halfPanelWidth) + _toolsMargin
if (leftX >= parentToolInsets.leftEdgeBottomInset || rightX <= parentToolInsets.rightEdgeBottomInset ) {
// It will fit in the horizontalCenter
return halfRootWidth - halfPanelWidth
} else {
// Anchor to left edge
return parentToolInsets.leftEdgeBottomInset + _toolsMargin
}
}
property real bottomInset: height
}
//-- Virtual Joystick
Loader {
id: virtualJoystickMultiTouch
......@@ -105,11 +130,11 @@ Item {
FlyViewToolStrip {
id: toolStrip
anchors.leftMargin: _toolsMargin + parentToolInsets.leftEdgeCenterInset
anchors.topMargin: _toolsMargin + parentToolInsets.leftEdgeTopInset
anchors.topMargin: _toolsMargin + parentToolInsets.topEdgeLeftInset
anchors.left: parent.left
anchors.top: parent.top
z: QGroundControl.zOrderWidgets
maxHeight: parent.height - y - parentToolInsets.leftEdgeBottomInset - _toolsMargin
maxHeight: parent.height - y - parentToolInsets.bottomEdgeLeftInset - _toolsMargin
visible: !QGroundControl.videoManager.fullScreen
onDisplayPreFlightChecklist: preFlightChecklistPopup.open()
......@@ -131,14 +156,13 @@ Item {
}
MapScale {
id: mapScale
anchors.leftMargin: parentToolInsets.leftEdgeBottomInset + _toolsMargin
anchors.bottomMargin: parentToolInsets.bottomEdgeCenterInset + _toolsMargin
anchors.left: parent.left
anchors.bottom: parent.bottom
mapControl: _mapControl
buttonsOnLeft: true
visible: !ScreenTools.isTinyScreen && QGroundControl.corePlugin.options.flyView.showMapScale && mapControl.pipState.state !== mapControl.pipState.pipState
id: mapScale
anchors.margins: _toolsMargin
anchors.left: toolStrip.right
anchors.top: parent.top
mapControl: _mapControl
buttonsOnLeft: false
visible: !ScreenTools.isTinyScreen && QGroundControl.corePlugin.options.flyView.showMapScale && mapControl.pipState.state !== mapControl.pipState.pipState
property real centerInset: visible ? parent.height - y : 0
}
......
......@@ -7,28 +7,26 @@
*
****************************************************************************/
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick 2.12
import QtQuick.Controls 2.4
import QtQuick.Layouts 1.12
import QGroundControl 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
/// Guided actions confirmation dialog
Rectangle {
id: _root
width: confirmColumn.width + (_margins * 4)
height: confirmColumn.height + (_margins * 4)
radius: ScreenTools.defaultFontPixelHeight / 2
color: qgcPal.window
border.color: _emergencyAction ? "red" : qgcPal.windowShade
border.width: _emergencyAction ? 4 : 1
visible: false
id: _root
Layout.minimumWidth: mainLayout.width + (_margins * 2)
Layout.preferredHeight: mainLayout.height + (_margins * 2)
radius: ScreenTools.defaultFontPixelWidth / 2
color: qgcPal.windowShadeLight
visible: false
property var guidedController
property var altitudeSlider
property alias title: titleText.text
property string title // Currently unused
property alias message: messageText.text
property int action
property var actionData
......@@ -37,9 +35,11 @@ Rectangle {
property alias optionText: optionCheckBox.text
property alias optionChecked: optionCheckBox.checked
property real _margins: ScreenTools.defaultFontPixelWidth
property real _margins: ScreenTools.defaultFontPixelWidth / 2
property bool _emergencyAction: action === guidedController.actionEmergencyStop
Component.onCompleted: guidedController.confirmDialog = this
onHideTriggerChanged: {
if (hideTrigger) {
confirmCancelled()
......@@ -50,7 +50,7 @@ Rectangle {
if (immediate) {
visible = true
} else {
// We delay showing the confirmation for a small amount in order to any other state
// We delay showing the confirmation for a small amount in order for any other state
// changes to propogate through the system. This way only the final state shows up.
visibleTimer.restart()
}
......@@ -76,76 +76,70 @@ Rectangle {
QGCPalette { id: qgcPal }
DeadMouseArea {
anchors.fill: parent
}
Column {
id: confirmColumn
anchors.margins: _margins
anchors.centerIn: parent
spacing: _margins
QGCLabel {
id: titleText
anchors.left: slider.left
anchors.right: slider.right
horizontalAlignment: Text.AlignHCenter
font.pointSize: ScreenTools.largeFontPointSize
}
ColumnLayout {
id: mainLayout
anchors.horizontalCenter: parent.horizontalCenter
spacing: _margins
QGCLabel {
id: messageText
anchors.left: slider.left
anchors.right: slider.right
Layout.fillWidth: true
horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap
}
QGCCheckBox {
id: optionCheckBox
anchors.horizontalCenter: parent.horizontalCenter
text: ""
visible: text !== ""
id: optionCheckBox
Layout.alignment: Qt.AlignHCenter
text: ""
visible: text !== ""
}
// Action confirmation control
SliderSwitch {
id: slider
confirmText: qsTr("Slide to confirm")
width: Math.max(implicitWidth, ScreenTools.defaultFontPixelWidth * 30)
onAccept: {
_root.visible = false
var altitudeChange = 0
if (altitudeSlider.visible) {
altitudeChange = altitudeSlider.getAltitudeChangeValue()
altitudeSlider.visible = false
}
hideTrigger = false
guidedController.executeAction(_root.action, _root.actionData, altitudeChange, _root.optionChecked)
if (mapIndicator) {
mapIndicator.actionConfirmed()
mapIndicator = undefined
RowLayout {
Layout.alignment: Qt.AlignHCenter
spacing: ScreenTools.defaultFontPixelWidth
SliderSwitch {
id: slider
confirmText: qsTr("Slide to confirm")
Layout.minimumWidth: Math.max(implicitWidth, ScreenTools.defaultFontPixelWidth * 30)
onAccept: {
_root.visible = false
var altitudeChange = 0
if (altitudeSlider.visible) {
altitudeChange = altitudeSlider.getAltitudeChangeValue()
altitudeSlider.visible = false
}
hideTrigger = false
guidedController.executeAction(_root.action, _root.actionData, altitudeChange, _root.optionChecked)
if (mapIndicator) {
mapIndicator.actionConfirmed()
mapIndicator = undefined
}
}
}
}
}
QGCColoredImage {
anchors.margins: _margins
anchors.top: parent.top
anchors.right: parent.right
width: ScreenTools.defaultFontPixelHeight
height: width
sourceSize.height: width
source: "/res/XDelete.svg"
fillMode: Image.PreserveAspectFit
color: qgcPal.text
QGCMouseArea {
fillItem: parent
onClicked: confirmCancelled()
Rectangle {
height: slider.height * 0.75
width: height
radius: height / 2
color: qgcPal.primaryButton
QGCColoredImage {
anchors.margins: parent.height / 4
anchors.fill: parent
source: "/res/XDelete.svg"
fillMode: Image.PreserveAspectFit
color: qgcPal.text
}
QGCMouseArea {
fillItem: parent
onClicked: confirmCancelled()
}
}
}
}
}
/****************************************************************************
*
* (c) 2009-2016 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.12
import QtQuick.Layouts 1.12
import QGroundControl 1.0
import QGroundControl.ScreenTools 1.0
import QGroundControl.Vehicle 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0
Rectangle {
id: telemetryPanel
height: telemetryLayout.height + (_toolsMargin * 2)
width: telemetryLayout.width + (_toolsMargin * 2)
color: Qt.hsla(_baseBGColor.hslHue, _baseBGColor.hslSaturation, _baseBGColor.hslLightness, 0.5)
radius: ScreenTools.defaultFontPixelWidth / 2
property color _baseBGColor: qgcPal.window
DeadMouseArea { anchors.fill: parent }
ColumnLayout {
id: telemetryLayout
anchors.margins: _toolsMargin
anchors.top: parent.top
anchors.left: parent.left
HorizontalFactValueGrid {
id: valueArea
userSettingsGroup: telemetryBarUserSettingsGroup
defaultSettingsGroup: telemetryBarDefaultSettingsGroup
QGCMouseArea {
anchors.fill: parent
visible: !parent.settingsUnlocked
onClicked: parent.settingsUnlocked = true
}
}
GuidedActionConfirm {
Layout.fillWidth: true
guidedController: _guidedController
altitudeSlider: _guidedAltSlider
}
}
}
......@@ -6,5 +6,5 @@
<path fill="#FFFFFF" d="M-55.213,94.612V84.146h-10.386v-4.373h10.385V69.384h4.425v10.389h10.387v4.373h-10.386v10.466
C-50.788,94.612-55.213,94.612-55.213,94.612z"/>
</g>
<circle fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" cx="-53" cy="82" r="22.38"/>
<circle fill="none" stroke="#FFFFFF" stroke-width="3" stroke-miterlimit="10" cx="-53" cy="82" r="22.38"/>
</svg>
......@@ -3,10 +3,10 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-89 46 72 72" enable-background="new -89 46 72 72" xml:space="preserve">
<g>
<circle fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" cx="-53" cy="82" r="22.38"/>
<line fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="-75.464" y1="81.975" x2="-64.423" y2="82.025"/>
<line fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="-53.025" y1="104.464" x2="-52.975" y2="93.423"/>
<line fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="-30.536" y1="82.025" x2="-41.577" y2="81.975"/>
<line fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" x1="-52.975" y1="59.536" x2="-53.025" y2="70.577"/>
<circle fill="none" stroke="#FFFFFF" stroke-width="3" stroke-miterlimit="10" cx="-53" cy="82" r="22.38"/>
<line fill="none" stroke="#FFFFFF" stroke-width="3" stroke-miterlimit="10" x1="-75.464" y1="81.975" x2="-64.423" y2="82.025"/>
<line fill="none" stroke="#FFFFFF" stroke-width="3" stroke-miterlimit="10" x1="-53.025" y1="104.464" x2="-52.975" y2="93.423"/>
<line fill="none" stroke="#FFFFFF" stroke-width="3" stroke-miterlimit="10" x1="-30.536" y1="82.025" x2="-41.577" y2="81.975"/>
<line fill="none" stroke="#FFFFFF" stroke-width="3" stroke-miterlimit="10" x1="-52.975" y1="59.536" x2="-53.025" y2="70.577"/>
</g>
</svg>
......@@ -3,7 +3,7 @@
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-89 46 72 72" enable-background="new -89 46 72 72" xml:space="preserve">
<g transform="matrix(0.96508576,0,0,0.94661676,-1.3508671,3.6129809)">
<path fill="none" stroke="#FFFFFF" stroke-width="1.2" stroke-miterlimit="4" d="m -69.288973,77.48289 22.722433,-9.307985 2.098859,4.288973 -23.726235,9.39924 1.186311,4.471483 23.908746,-9.855514 L -41,80.768061 -66.186312,91.079848 -65,95.551331 l 25.460076,-10.403042 -2.372624,7.391635 -13.140684,5.110266"/>
<path fill="none" stroke="#FFFFFF" stroke-width="3" stroke-miterlimit="4" d="m -69.288973,77.48289 22.722433,-9.307985 2.098859,4.288973 -23.726235,9.39924 1.186311,4.471483 23.908746,-9.855514 L -41,80.768061 -66.186312,91.079848 -65,95.551331 l 25.460076,-10.403042 -2.372624,7.391635 -13.140684,5.110266"/>
</g>
<path fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" d="m -44.193916,62.152091 10.76806,20.623574 -9.21673,19.346005 -24.638783,-3.011404 -6.205323,-25.186312 z"/>
<path fill="none" stroke="#FFFFFF" stroke-width="3" stroke-miterlimit="10" d="m -44.193916,62.152091 10.76806,20.623574 -9.21673,19.346005 -24.638783,-3.011404 -6.205323,-25.186312 z"/>
</svg>
......@@ -2,12 +2,12 @@
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-89 46 72 72" enable-background="new -89 46 72 72" xml:space="preserve">
<path fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" d="M-56.963,64.442
<path fill="none" stroke="#FFFFFF" stroke-width="3" stroke-miterlimit="10" d="M-56.963,64.442
c-4.199,0.947-8.074,3.392-10.749,7.186c-5.728,8.125-3.785,19.355,4.339,25.083c0.007,0.005,0.014,0.009,0.022,0.014"/>
<g>
<polygon fill="#FFFFFF" points="-59.303,88.472 -69.431,103.621 -56.794,101.11 "/>
</g>
<path fill="none" stroke="#FFFFFF" stroke-width="2" stroke-miterlimit="10" d="M-49.038,99.558
<path fill="none" stroke="#FFFFFF" stroke-width="3" stroke-miterlimit="10" d="M-49.038,99.558
c4.199-0.947,8.074-3.392,10.749-7.186c5.728-8.125,3.785-19.355-4.339-25.083c-0.007-0.005-0.014-0.009-0.022-0.014"/>
<g>
<polygon fill="#FFFFFF" points="-46.698,75.528 -36.57,60.379 -49.207,62.89 "/>
......
......@@ -2,12 +2,12 @@
<!-- Generator: Adobe Illustrator 19.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="-89 46 72 72" enable-background="new -89 46 72 72" xml:space="preserve">
<path fill="none" stroke="#FFFF00" stroke-width="2" stroke-miterlimit="10" d="M-56.963,64.442
<path fill="none" stroke="#FFFF00" stroke-width="3" stroke-miterlimit="10" d="M-56.963,64.442
c-4.199,0.947-8.074,3.392-10.749,7.186c-5.728,8.125-3.785,19.355,4.339,25.083c0.007,0.005,0.014,0.009,0.022,0.014"/>
<g>
<polygon fill="#FFFF00" points="-59.303,88.472 -69.431,103.621 -56.794,101.11 "/>
</g>
<path fill="none" stroke="#FFFF00" stroke-width="2" stroke-miterlimit="10" d="M-49.038,99.558
<path fill="none" stroke="#FFFF00" stroke-width="3" stroke-miterlimit="10" d="M-49.038,99.558
c4.199-0.947,8.074-3.392,10.749-7.186c5.728-8.125,3.785-19.355-4.339-25.083c-0.007-0.005-0.014-0.009-0.022-0.014"/>
<g>
<polygon fill="#FFFF00" points="-46.698,75.528 -36.57,60.379 -49.207,62.89 "/>
......
......@@ -91,7 +91,7 @@ Column {
id: camMode
width: _hasModes ? ScreenTools.defaultFontPixelWidth * 8 : 0
height: _hasModes ? ScreenTools.defaultFontPixelWidth * 4 : 0
color: qgcPal.button
color: qgcPal.windowShadeLight
radius: height * 0.5
visible: _hasModes
anchors.horizontalCenter: parent.horizontalCenter
......@@ -99,7 +99,7 @@ Column {
Rectangle {
width: parent.height
height: parent.height
color: _cameraVideoMode ? qgcPal.window : qgcPal.button
color: _cameraVideoMode ? qgcPal.window : qgcPal.windowShadeLight
radius: height * 0.5
anchors.left: parent.left
border.color: qgcPal.text
......@@ -126,7 +126,7 @@ Column {
Rectangle {
width: parent.height
height: parent.height
color: _cameraPhotoMode ? qgcPal.window : qgcPal.button
color: _cameraPhotoMode ? qgcPal.window : qgcPal.windowShadeLight
radius: height * 0.5
anchors.right: parent.right
border.color: qgcPal.text
......
......@@ -43,7 +43,7 @@ Item {
Rectangle {
anchors.fill: parent
radius: _radius
color: qgcPal.globalTheme === QGCPalette.Light ? QGroundControl.corePlugin.options.toolbarBackgroundLight : QGroundControl.corePlugin.options.toolbarBackgroundDark
color: QGroundControl.globalPalette.toolbarBackground
}
QGCFlickable {
......
......@@ -130,7 +130,7 @@ Rectangle {
anchors.left: parent.left
anchors.right: parent.right
height: altColumn.y + altColumn.height + _margin
color: _globalAltModeIsMixed ? qgcPal.windowShade: qgcPal.window
color: _globalAltModeIsMixed ? qgcPal.windowShadeLight : qgcPal.windowShadeDark
visible: _specifiesAltitude
ColumnLayout {
......
......@@ -51,6 +51,7 @@ void QGCPalette::_buildMap()
// Light Dark
// Disabled Enabled Disabled Enabled
DECLARE_QGC_COLOR(window, "#ffffff", "#ffffff", "#222222", "#222222")
DECLARE_QGC_COLOR(windowShadeLight, "#909090", "#828282", "#707070", "#626262")
DECLARE_QGC_COLOR(windowShade, "#d9d9d9", "#d9d9d9", "#333333", "#333333")
DECLARE_QGC_COLOR(windowShadeDark, "#bdbdbd", "#bdbdbd", "#282828", "#282828")
DECLARE_QGC_COLOR(text, "#9d9d9d", "#000000", "#707070", "#ffffff")
......@@ -80,11 +81,13 @@ void QGCPalette::_buildMap()
DECLARE_QGC_COLOR(statusFailedText, "#9d9d9d", "#000000", "#707070", "#ffffff")
DECLARE_QGC_COLOR(statusPassedText, "#9d9d9d", "#000000", "#707070", "#ffffff")
DECLARE_QGC_COLOR(statusPendingText, "#9d9d9d", "#000000", "#707070", "#ffffff")
DECLARE_QGC_COLOR(toolbarBackground, "#ffffff", "#ffffff", "#222222", "#222222")
// Colors not affecting by theming
// Disabled Enabled
DECLARE_QGC_NONTHEMED_COLOR(brandingPurple, "#4A2C6D", "#4A2C6D")
DECLARE_QGC_NONTHEMED_COLOR(brandingBlue, "#48D6FF", "#6045c5")
// Disabled Enabled
DECLARE_QGC_NONTHEMED_COLOR(brandingPurple, "#4A2C6D", "#4A2C6D")
DECLARE_QGC_NONTHEMED_COLOR(brandingBlue, "#48D6FF", "#6045c5")
DECLARE_QGC_NONTHEMED_COLOR(toolStripFGColor, "#707070", "#ffffff")
// Colors not affecting by theming or enable/disable
DECLARE_QGC_SINGLE_COLOR(mapWidgetBorderLight, "#ffffff")
......
......@@ -113,6 +113,7 @@ public:
Q_PROPERTY(QStringList colors READ colors CONSTANT)
DEFINE_QGC_COLOR(window, setWindow)
DEFINE_QGC_COLOR(windowShadeLight, setWindowShadeLight)
DEFINE_QGC_COLOR(windowShade, setWindowShade)
DEFINE_QGC_COLOR(windowShadeDark, setWindowShadeDark)
DEFINE_QGC_COLOR(text, setText)
......@@ -149,6 +150,8 @@ public:
DEFINE_QGC_COLOR(statusPendingText, setstatusPendingText)