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 += \ ...@@ -55,14 +55,6 @@ RESOURCES += \
QML_IMPORT_PATH += \ QML_IMPORT_PATH += \
$$PWD/res $$PWD/res
LinuxBuild {
# Our QT_INSTALL_LIBS
QT_LIB_LIST += \
libQt5VirtualKeyboard.so.5 \
}
# Our own, custom sources # Our own, custom sources
SOURCES += \ SOURCES += \
$$PWD/src/CustomPlugin.cc \ $$PWD/src/CustomPlugin.cc \
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
<file alias="gear-black.svg">../resources/gear-black.svg</file> <file alias="gear-black.svg">../resources/gear-black.svg</file>
<file alias="gear-white.svg">../resources/gear-white.svg</file> <file alias="gear-white.svg">../resources/gear-white.svg</file>
<file alias="helicoptericon.svg">../resources/helicoptericon.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="JoystickBezel.png">../resources/JoystickBezel.png</file>
<file alias="JoystickBezelLight.png">../resources/JoystickBezelLight.png</file> <file alias="JoystickBezelLight.png">../resources/JoystickBezelLight.png</file>
<file alias="land.svg">../resources/land.svg</file> <file alias="land.svg">../resources/land.svg</file>
......
...@@ -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>
...@@ -50,7 +49,6 @@ ...@@ -50,7 +49,6 @@
<file alias="FWLandingPatternEditor.qml">../src/PlanView/FWLandingPatternEditor.qml</file> <file alias="FWLandingPatternEditor.qml">../src/PlanView/FWLandingPatternEditor.qml</file>
<file alias="GeneralSettings.qml">../src/ui/preferences/GeneralSettings.qml</file> <file alias="GeneralSettings.qml">../src/ui/preferences/GeneralSettings.qml</file>
<file alias="GeoTagPage.qml">../src/AnalyzeView/GeoTagPage.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="HelpSettings.qml">../src/ui/preferences/HelpSettings.qml</file>
<file alias="JoystickConfig.qml">../src/VehicleSetup/JoystickConfig.qml</file> <file alias="JoystickConfig.qml">../src/VehicleSetup/JoystickConfig.qml</file>
<file alias="JoystickConfigAdvanced.qml">../src/VehicleSetup/JoystickConfigAdvanced.qml</file> <file alias="JoystickConfigAdvanced.qml">../src/VehicleSetup/JoystickConfigAdvanced.qml</file>
...@@ -65,6 +63,7 @@ ...@@ -65,6 +63,7 @@
<file alias="MAVLinkInspectorPage.qml">../src/AnalyzeView/MAVLinkInspectorPage.qml</file> <file alias="MAVLinkInspectorPage.qml">../src/AnalyzeView/MAVLinkInspectorPage.qml</file>
<file alias="MavlinkSettings.qml">../src/ui/preferences/MavlinkSettings.qml</file> <file alias="MavlinkSettings.qml">../src/ui/preferences/MavlinkSettings.qml</file>
<file alias="MicrohardSettings.qml">../src/Microhard/MicrohardSettings.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="MissionSettingsEditor.qml">../src/PlanView/MissionSettingsEditor.qml</file>
<file alias="MockLink.qml">../src/ui/preferences/MockLink.qml</file> <file alias="MockLink.qml">../src/ui/preferences/MockLink.qml</file>
<file alias="MockLinkSettings.qml">../src/ui/preferences/MockLinkSettings.qml</file> <file alias="MockLinkSettings.qml">../src/ui/preferences/MockLinkSettings.qml</file>
...@@ -77,7 +76,6 @@ ...@@ -77,7 +76,6 @@
<file alias="PX4FlowSensor.qml">../src/VehicleSetup/PX4FlowSensor.qml</file> <file alias="PX4FlowSensor.qml">../src/VehicleSetup/PX4FlowSensor.qml</file>
<file alias="QGCInstrumentWidget.qml">../src/FlightMap/Widgets/QGCInstrumentWidget.qml</file> <file alias="QGCInstrumentWidget.qml">../src/FlightMap/Widgets/QGCInstrumentWidget.qml</file>
<file alias="QGCInstrumentWidgetAlternate.qml">../src/FlightMap/Widgets/QGCInstrumentWidgetAlternate.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/AnalyzePage.qml">../src/AnalyzeView/AnalyzePage.qml</file>
<file alias="QGroundControl/Controls/AppMessages.qml">../src/QmlControls/AppMessages.qml</file> <file alias="QGroundControl/Controls/AppMessages.qml">../src/QmlControls/AppMessages.qml</file>
<file alias="QGroundControl/Controls/AxisMonitor.qml">../src/QmlControls/AxisMonitor.qml</file> <file alias="QGroundControl/Controls/AxisMonitor.qml">../src/QmlControls/AxisMonitor.qml</file>
...@@ -107,6 +105,8 @@ ...@@ -107,6 +105,8 @@
<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/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/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>
...@@ -161,6 +161,7 @@ ...@@ -161,6 +161,7 @@
<file alias="QGroundControl/Controls/QGCToolBarButton.qml">../src/QmlControls/QGCToolBarButton.qml</file> <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/QGCToolInsets.qml">../src/QmlControls/QGCToolInsets.qml</file>
<file alias="QGroundControl/Controls/QGCViewDialog.qml">../src/QmlControls/QGCViewDialog.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/QGCViewMessage.qml">../src/QmlControls/QGCViewMessage.qml</file>
<file alias="QGroundControl/Controls/qmldir">../src/QmlControls/QGroundControl/Controls/qmldir</file> <file alias="QGroundControl/Controls/qmldir">../src/QmlControls/QGroundControl/Controls/qmldir</file>
<file alias="QGroundControl/Controls/RallyPointEditorHeader.qml">../src/PlanView/RallyPointEditorHeader.qml</file> <file alias="QGroundControl/Controls/RallyPointEditorHeader.qml">../src/PlanView/RallyPointEditorHeader.qml</file>
...@@ -179,9 +180,10 @@ ...@@ -179,9 +180,10 @@
<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/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/VehicleRotationCal.qml">../src/QmlControls/VehicleRotationCal.qml</file>
<file alias="QGroundControl/Controls/VehicleSummaryRow.qml">../src/QmlControls/VehicleSummaryRow.qml</file> <file alias="QGroundControl/Controls/VehicleSummaryRow.qml">../src/QmlControls/VehicleSummaryRow.qml</file>
<file alias="QGroundControl/Controls/VerticalFactValueGrid.qml">../src/QmlControls/VerticalFactValueGrid.qml</file> <file alias="QGroundControl/Controls/VerticalFactValueGrid.qml">../src/QmlControls/VerticalFactValueGrid.qml</file>
...@@ -335,5 +337,8 @@ ...@@ -335,5 +337,8 @@
<qresource prefix="/MockLink"> <qresource prefix="/MockLink">
<file alias="APMArduSubMockLink.params">../src/comm/APMArduSubMockLink.params</file> <file alias="APMArduSubMockLink.params">../src/comm/APMArduSubMockLink.params</file>
<file alias="PX4MockLink.params">../src/comm/PX4MockLink.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> </qresource>
</RCC> </RCC>
...@@ -159,11 +159,11 @@ bool CustomPlugin::adjustSettingMetaData(const QString& settingsGroup, FactMetaD ...@@ -159,11 +159,11 @@ bool CustomPlugin::adjustSettingMetaData(const QString& settingsGroup, FactMetaD
if (settingsGroup == AppSettings::settingsGroup) { if (settingsGroup == AppSettings::settingsGroup) {
// This tells QGC than when you are creating Plans while not connected to a vehicle // This tells QGC than when you are creating Plans while not connected to a vehicle
// the specific firmware/vehicle the plan is for. // the specific firmware/vehicle the plan is for.
if (metaData.name() == AppSettings::offlineEditingFirmwareTypeName) { if (metaData.name() == AppSettings::offlineEditingFirmwareClassName) {
metaData.setRawDefaultValue(MAV_AUTOPILOT_PX4); metaData.setRawDefaultValue(QGCMAVLink::FirmwareClassPX4);
return false; return false;
} else if (metaData.name() == AppSettings::offlineEditingVehicleTypeName) { } else if (metaData.name() == AppSettings::offlineEditingVehicleClassName) {
metaData.setRawDefaultValue(MAV_TYPE_QUADROTOR); metaData.setRawDefaultValue(QGCMAVLink::VehicleClassMultiRotor);
return false; return false;
} }
} }
......
...@@ -22,11 +22,18 @@ CustomFirmwarePluginFactory::CustomFirmwarePluginFactory() ...@@ -22,11 +22,18 @@ CustomFirmwarePluginFactory::CustomFirmwarePluginFactory()
} }
QList<MAV_AUTOPILOT> CustomFirmwarePluginFactory::supportedFirmwareTypes() const QList<QGCMAVLink::FirmwareClass_t> CustomFirmwarePluginFactory::supportedFirmwareClasses() const
{ {
QList<MAV_AUTOPILOT> list; QList<QGCMAVLink::FirmwareClass_t> firmwareClasses;
list.append(MAV_AUTOPILOT_PX4); firmwareClasses.append(QGCMAVLink::FirmwareClassPX4);
return list; 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*/) FirmwarePlugin* CustomFirmwarePluginFactory::firmwarePluginForAutopilot(MAV_AUTOPILOT autopilotType, MAV_TYPE /*vehicleType*/)
...@@ -39,11 +46,3 @@ FirmwarePlugin* CustomFirmwarePluginFactory::firmwarePluginForAutopilot(MAV_AUTO ...@@ -39,11 +46,3 @@ FirmwarePlugin* CustomFirmwarePluginFactory::firmwarePluginForAutopilot(MAV_AUTO
} }
return nullptr; 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 ...@@ -26,9 +26,9 @@ class CustomFirmwarePluginFactory : public FirmwarePluginFactory
Q_OBJECT Q_OBJECT
public: public:
CustomFirmwarePluginFactory(); CustomFirmwarePluginFactory();
QList<MAV_AUTOPILOT> supportedFirmwareTypes () const final; QList<QGCMAVLink::FirmwareClass_t> supportedFirmwareClasses(void) const final;
FirmwarePlugin* firmwarePluginForAutopilot (MAV_AUTOPILOT autopilotType, MAV_TYPE vehicleType) final; QList<QGCMAVLink::VehicleClass_t> supportedVehicleClasses(void) const final;
QList<MAV_TYPE> supportedVehicleTypes (void) const final; FirmwarePlugin* firmwarePluginForAutopilot (MAV_AUTOPILOT autopilotType, MAV_TYPE vehicleType) final;
private: private:
CustomFirmwarePlugin* _pluginInstance; CustomFirmwarePlugin* _pluginInstance;
......
...@@ -232,6 +232,7 @@ ...@@ -232,6 +232,7 @@
<file alias="QGroundControl/FlightDisplay/PreFlightSoundCheck.qml">src/FlightDisplay/PreFlightSoundCheck.qml</file> <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/PreFlightCheckListShowAction.qml">src/FlightDisplay/PreFlightCheckListShowAction.qml</file>
<file alias="QGroundControl/FlightDisplay/TerrainProgress.qml">src/FlightDisplay/TerrainProgress.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/VehicleWarnings.qml">src/FlightDisplay/VehicleWarnings.qml</file>
<file alias="QGroundControl/FlightDisplay/qmldir">src/QmlControls/QGroundControl/FlightDisplay/qmldir</file> <file alias="QGroundControl/FlightDisplay/qmldir">src/QmlControls/QGroundControl/FlightDisplay/qmldir</file>
<file alias="QGroundControl/FlightMap/CameraTriggerIndicator.qml">src/FlightMap/MapItems/CameraTriggerIndicator.qml</file> <file alias="QGroundControl/FlightMap/CameraTriggerIndicator.qml">src/FlightMap/MapItems/CameraTriggerIndicator.qml</file>
......
...@@ -52,7 +52,6 @@ Item { ...@@ -52,7 +52,6 @@ Item {
property var _guidedController: guidedActionsController property var _guidedController: guidedActionsController
property var _guidedActionList: guidedActionList property var _guidedActionList: guidedActionList
property var _guidedAltSlider: guidedAltSlider property var _guidedAltSlider: guidedAltSlider
property var _guidedConfirm: guidedActionConfirm
property real _toolsMargin: ScreenTools.defaultFontPixelWidth * 0.75 property real _toolsMargin: ScreenTools.defaultFontPixelWidth * 0.75
property rect _centerViewport: Qt.rect(0, 0, width, height) property rect _centerViewport: Qt.rect(0, 0, width, height)
property real _rightPanelWidth: ScreenTools.defaultFontPixelWidth * 30 property real _rightPanelWidth: ScreenTools.defaultFontPixelWidth * 30
...@@ -77,7 +76,6 @@ Item { ...@@ -77,7 +76,6 @@ Item {
FlyViewWidgetLayer { FlyViewWidgetLayer {
id: widgetLayer id: widgetLayer
anchors.rightMargin: _toolsMargin
anchors.top: parent.top anchors.top: parent.top
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.left: parent.left anchors.left: parent.left
...@@ -100,12 +98,11 @@ Item { ...@@ -100,12 +98,11 @@ Item {
GuidedActionsController { GuidedActionsController {
id: guidedActionsController id: guidedActionsController
missionController: _missionController missionController: _missionController
confirmDialog: _guidedConfirm
actionList: _guidedActionList actionList: _guidedActionList
altitudeSlider: _guidedAltSlider altitudeSlider: _guidedAltSlider
} }
GuidedActionConfirm { /*GuidedActionConfirm {
id: guidedActionConfirm id: guidedActionConfirm
anchors.margins: _margins anchors.margins: _margins
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
...@@ -113,7 +110,7 @@ Item { ...@@ -113,7 +110,7 @@ Item {
z: QGroundControl.zOrderTopMost z: QGroundControl.zOrderTopMost
guidedController: _guidedController guidedController: _guidedController
altitudeSlider: _guidedAltSlider altitudeSlider: _guidedAltSlider
} }*/
GuidedActionList { GuidedActionList {
id: guidedActionList id: guidedActionList
...@@ -144,7 +141,7 @@ Item { ...@@ -144,7 +141,7 @@ Item {
rightPanelWidth: ScreenTools.defaultFontPixelHeight * 9 rightPanelWidth: ScreenTools.defaultFontPixelHeight * 9
pipMode: !_mainWindowIsMap pipMode: !_mainWindowIsMap
toolInsets: customOverlay.totalToolInsets toolInsets: customOverlay.totalToolInsets
mapName: "FlightDisplayView" mapName: "FlightDisplayView"
} }
FlyViewVideo { FlyViewVideo {
......
...@@ -18,6 +18,7 @@ import QtQuick.Window 2.2 ...@@ -18,6 +18,7 @@ import QtQuick.Window 2.2
import QtQml.Models 2.1 import QtQml.Models 2.1
import QGroundControl 1.0 import QGroundControl 1.0
import QGroundControl.Controls 1.0
import QGroundControl.Airspace 1.0 import QGroundControl.Airspace 1.0
import QGroundControl.Airmap 1.0 import QGroundControl.Airmap 1.0
import QGroundControl.Controllers 1.0 import QGroundControl.Controllers 1.0
...@@ -50,18 +51,18 @@ Item { ...@@ -50,18 +51,18 @@ Item {
QGCToolInsets { QGCToolInsets {
id: _totalToolInsets id: _totalToolInsets
leftEdgeCenterInset: toolStrip.leftInset
leftEdgeTopInset: toolStrip.leftInset leftEdgeTopInset: toolStrip.leftInset
leftEdgeCenterInset: toolStrip.leftInset
leftEdgeBottomInset: parentToolInsets.leftEdgeBottomInset leftEdgeBottomInset: parentToolInsets.leftEdgeBottomInset
rightEdgeCenterInset: instrumentPanel.rightInset rightEdgeTopInset: parentToolInsets.rightEdgeTopInset
rightEdgeTopInset: instrumentPanel.rightInset rightEdgeCenterInset: parentToolInsets.rightEdgeCenterInset
rightEdgeBottomInset: instrumentPanel.rightInset rightEdgeBottomInset: parentToolInsets.rightEdgeBottomInset
topEdgeCenterInset: parentToolInsets.topEdgeCenterInset
topEdgeLeftInset: parentToolInsets.topEdgeLeftInset topEdgeLeftInset: parentToolInsets.topEdgeLeftInset
topEdgeCenterInset: parentToolInsets.topEdgeCenterInset
topEdgeRightInset: parentToolInsets.topEdgeRightInset topEdgeRightInset: parentToolInsets.topEdgeRightInset
bottomEdgeCenterInset: mapScale.centerInset
bottomEdgeLeftInset: parentToolInsets.bottomEdgeLeftInset bottomEdgeLeftInset: parentToolInsets.bottomEdgeLeftInset
bottomEdgeRightInset: parentToolInsets.bottomEdgeRightInset bottomEdgeCenterInset: mapScale.centerInset
bottomEdgeRightInset: telemetryPanel.bottomInset
} }
FlyViewMissionCompleteDialog { FlyViewMissionCompleteDialog {
...@@ -84,6 +85,30 @@ Item { ...@@ -84,6 +85,30 @@ Item {
property real rightInset: visible ? parent.width - x : 0 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 //-- Virtual Joystick
Loader { Loader {
id: virtualJoystickMultiTouch id: virtualJoystickMultiTouch
...@@ -105,11 +130,11 @@ Item { ...@@ -105,11 +130,11 @@ Item {
FlyViewToolStrip { FlyViewToolStrip {
id: toolStrip id: toolStrip
anchors.leftMargin: _toolsMargin + parentToolInsets.leftEdgeCenterInset anchors.leftMargin: _toolsMargin + parentToolInsets.leftEdgeCenterInset
anchors.topMargin: _toolsMargin + parentToolInsets.leftEdgeTopInset anchors.topMargin: _toolsMargin + parentToolInsets.topEdgeLeftInset
anchors.left: parent.left anchors.left: parent.left
anchors.top: parent.top anchors.top: parent.top
z: QGroundControl.zOrderWidgets z: QGroundControl.zOrderWidgets
maxHeight: parent.height - y - parentToolInsets.leftEdgeBottomInset - _toolsMargin maxHeight: parent.height - y - parentToolInsets.bottomEdgeLeftInset - _toolsMargin
visible: !QGroundControl.videoManager.fullScreen visible: !QGroundControl.videoManager.fullScreen
onDisplayPreFlightChecklist: preFlightChecklistPopup.open() onDisplayPreFlightChecklist: preFlightChecklistPopup.open()
...@@ -131,14 +156,13 @@ Item { ...@@ -131,14 +156,13 @@ Item {
} }
MapScale { MapScale {
id: mapScale id: mapScale
anchors.leftMargin: parentToolInsets.leftEdgeBottomInset + _toolsMargin anchors.margins: _toolsMargin
anchors.bottomMargin: parentToolInsets.bottomEdgeCenterInset + _toolsMargin anchors.left: toolStrip.right
anchors.left: parent.left anchors.top: parent.top
anchors.bottom: parent.bottom mapControl: _mapControl
mapControl: _mapControl buttonsOnLeft: false
buttonsOnLeft: true visible: !ScreenTools.isTinyScreen && QGroundControl.corePlugin.options.flyView.showMapScale && mapControl.pipState.state !== mapControl.pipState.pipState
visible: !ScreenTools.isTinyScreen && QGroundControl.corePlugin.options.flyView.showMapScale && mapControl.pipState.state !== mapControl.pipState.pipState
property real centerInset: visible ? parent.height - y : 0 property real centerInset: visible ? parent.height - y : 0
} }
......
...@@ -7,28 +7,26 @@ ...@@ -7,28 +7,26 @@
* *
****************************************************************************/ ****************************************************************************/
import QtQuick 2.3 import QtQuick 2.12
import QtQuick.Controls 1.2 import QtQuick.Controls 2.4
import QtQuick.Layouts 1.12
import QGroundControl 1.0 import QGroundControl 1.0
import QGroundControl.ScreenTools 1.0 import QGroundControl.ScreenTools 1.0
import QGroundControl.Controls 1.0 import QGroundControl.Controls 1.0
import QGroundControl.Palette 1.0 import QGroundControl.Palette 1.0
/// Guided actions confirmation dialog
Rectangle { Rectangle {
id: _root id: _root
width: confirmColumn.width + (_margins * 4) Layout.minimumWidth: mainLayout.width + (_margins * 2)
height: confirmColumn.height + (_margins * 4) Layout.preferredHeight: mainLayout.height + (_margins * 2)
radius: ScreenTools.defaultFontPixelHeight / 2 radius: ScreenTools.defaultFontPixelWidth / 2
color: qgcPal.window color: qgcPal.windowShadeLight
border.color: _emergencyAction ? "red" : qgcPal.windowShade visible: false
border.width: _emergencyAction ? 4 : 1
visible: false
property var guidedController property var guidedController
property var altitudeSlider property var altitudeSlider
property alias title: titleText.text property string title // Currently unused
property alias message: messageText.text property alias message: messageText.text
property int action property int action
property var actionData property var actionData
...@@ -37,9 +35,11 @@ Rectangle { ...@@ -37,9 +35,11 @@ Rectangle {
property alias optionText: optionCheckBox.text property alias optionText: optionCheckBox.text
property alias optionChecked: optionCheckBox.checked property alias optionChecked: optionCheckBox.checked
property real _margins: ScreenTools.defaultFontPixelWidth property real _margins: ScreenTools.defaultFontPixelWidth / 2
property bool _emergencyAction: action === guidedController.actionEmergencyStop property bool _emergencyAction: action === guidedController.actionEmergencyStop
Component.onCompleted: guidedController.confirmDialog = this
onHideTriggerChanged: { onHideTriggerChanged: {
if (hideTrigger) { if (hideTrigger) {
confirmCancelled() confirmCancelled()
...@@ -50,7 +50,7 @@ Rectangle { ...@@ -50,7 +50,7 @@ Rectangle {
if (immediate) { if (immediate) {
visible = true visible = true
} else { } 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. // changes to propogate through the system. This way only the final state shows up.
visibleTimer.restart() visibleTimer.restart()
} }
...@@ -76,76 +76,70 @@ Rectangle { ...@@ -76,76 +76,70 @@ Rectangle {
QGCPalette { id: qgcPal } QGCPalette { id: qgcPal }
DeadMouseArea { ColumnLayout {
anchors.fill: parent id: mainLayout
} anchors.horizontalCenter: parent.horizontalCenter
spacing: _margins
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
}
QGCLabel { QGCLabel {
id: messageText id: messageText
anchors.left: slider.left Layout.fillWidth: true
anchors.right: slider.right
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
} }
QGCCheckBox { QGCCheckBox {
id: optionCheckBox id: optionCheckBox
anchors.horizontalCenter: parent.horizontalCenter Layout.alignment: Qt.AlignHCenter
text: "" text: ""
visible: text !== "" visible: text !== ""
} }
// Action confirmation control RowLayout {
SliderSwitch { Layout.alignment: Qt.AlignHCenter
id: slider spacing: ScreenTools.defaultFontPixelWidth
confirmText: qsTr("Slide to confirm")
width: Math.max(implicitWidth, ScreenTools.defaultFontPixelWidth * 30) SliderSwitch {
id: slider
onAccept: { confirmText: qsTr("Slide to confirm")
_root.visible = false Layout.minimumWidth: Math.max(implicitWidth, ScreenTools.defaultFontPixelWidth * 30)
var altitudeChange = 0
if (altitudeSlider.visible) { onAccept: {
altitudeChange = altitudeSlider.getAltitudeChangeValue() _root.visible = false
altitudeSlider.visible = false var altitudeChange = 0
} if (altitudeSlider.visible) {
hideTrigger = false altitudeChange = altitudeSlider.getAltitudeChangeValue()
guidedController.executeAction(_root.action, _root.actionData, altitudeChange, _root.optionChecked) altitudeSlider.visible = false
if (mapIndicator) { }
mapIndicator.actionConfirmed() hideTrigger = false
mapIndicator = undefined guidedController.executeAction(_root.action, _root.actionData, altitudeChange, _root.optionChecked)
if (mapIndicator) {
mapIndicator.actionConfirmed()
mapIndicator = undefined
}
} }
} }
}
}
QGCColoredImage { Rectangle {
anchors.margins: _margins height: slider.height * 0.75
anchors.top: parent.top width: height
anchors.right: parent.right radius: height / 2
width: ScreenTools.defaultFontPixelHeight color: qgcPal.primaryButton
height: width
sourceSize.height: width QGCColoredImage {
source: "/res/XDelete.svg" anchors.margins: parent.height / 4
fillMode: Image.PreserveAspectFit anchors.fill: parent
color: qgcPal.text source: "/res/XDelete.svg"
fillMode: Image.PreserveAspectFit
QGCMouseArea { color: qgcPal.text
fillItem: parent }
onClicked: confirmCancelled()
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 @@ ...@@ -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 <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"/> C-50.788,94.612-55.213,94.612-55.213,94.612z"/>
</g>