Commit eaaeab0c authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #4907 from DonLakeFlyer/GuidedBarRewrite

Yet another guided bar rewrite
parents 4333b50b cc51c1d3
...@@ -126,6 +126,7 @@ ...@@ -126,6 +126,7 @@
<file alias="QGroundControl/FlightDisplay/FlightDisplayViewMap.qml">src/FlightDisplay/FlightDisplayViewMap.qml</file> <file alias="QGroundControl/FlightDisplay/FlightDisplayViewMap.qml">src/FlightDisplay/FlightDisplayViewMap.qml</file>
<file alias="QGroundControl/FlightDisplay/FlightDisplayViewVideo.qml">src/FlightDisplay/FlightDisplayViewVideo.qml</file> <file alias="QGroundControl/FlightDisplay/FlightDisplayViewVideo.qml">src/FlightDisplay/FlightDisplayViewVideo.qml</file>
<file alias="QGroundControl/FlightDisplay/FlightDisplayViewWidgets.qml">src/FlightDisplay/FlightDisplayViewWidgets.qml</file> <file alias="QGroundControl/FlightDisplay/FlightDisplayViewWidgets.qml">src/FlightDisplay/FlightDisplayViewWidgets.qml</file>
<file alias="QGroundControl/FlightDisplay/GuidedActionsController.qml">src/FlightDisplay/GuidedActionsController.qml</file>
<file alias="QGroundControl/FlightDisplay/MultiVehicleList.qml">src/FlightDisplay/MultiVehicleList.qml</file> <file alias="QGroundControl/FlightDisplay/MultiVehicleList.qml">src/FlightDisplay/MultiVehicleList.qml</file>
<file alias="QGroundControl/FlightDisplay/qmldir">src/FlightDisplay/qmldir</file> <file alias="QGroundControl/FlightDisplay/qmldir">src/FlightDisplay/qmldir</file>
<file alias="QGroundControl/FlightMap/CenterMapDropButton.qml">src/FlightMap/Widgets/CenterMapDropButton.qml</file> <file alias="QGroundControl/FlightMap/CenterMapDropButton.qml">src/FlightMap/Widgets/CenterMapDropButton.qml</file>
......
...@@ -220,7 +220,7 @@ bool PX4FirmwarePlugin::supportsManualControl(void) ...@@ -220,7 +220,7 @@ bool PX4FirmwarePlugin::supportsManualControl(void)
bool PX4FirmwarePlugin::isCapable(const Vehicle *vehicle, FirmwareCapabilities capabilities) bool PX4FirmwarePlugin::isCapable(const Vehicle *vehicle, FirmwareCapabilities capabilities)
{ {
if (vehicle->multiRotor()) { if (vehicle->multiRotor()) {
return (capabilities & (MavCmdPreflightStorageCapability | GuidedModeCapability | SetFlightModeCapability | PauseVehicleCapability | OrbitModeCapability)) == capabilities; return (capabilities & (MavCmdPreflightStorageCapability | GuidedModeCapability | SetFlightModeCapability | PauseVehicleCapability /*| OrbitModeCapability still NYI*/)) == capabilities;
} else { } else {
return (capabilities & (MavCmdPreflightStorageCapability | GuidedModeCapability | SetFlightModeCapability | PauseVehicleCapability)) == capabilities; return (capabilities & (MavCmdPreflightStorageCapability | GuidedModeCapability | SetFlightModeCapability | PauseVehicleCapability)) == capabilities;
} }
......
This diff is collapsed.
...@@ -30,19 +30,19 @@ FlightMap { ...@@ -30,19 +30,19 @@ FlightMap {
allowGCSLocationCenter: !userPanned allowGCSLocationCenter: !userPanned
allowVehicleLocationCenter: !_keepVehicleCentered allowVehicleLocationCenter: !_keepVehicleCentered
property alias missionController: missionController property var missionController
property var guidedActionsController
property var flightWidgets property var flightWidgets
property var rightPanelWidth property var rightPanelWidth
property var qgcView ///< QGCView control which contains this map property var qgcView ///< QGCView control which contains this map
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property var _activeVehicleCoordinate: _activeVehicle ? _activeVehicle.coordinate : QtPositioning.coordinate() property var _activeVehicleCoordinate: _activeVehicle ? _activeVehicle.coordinate : QtPositioning.coordinate()
property var _gotoHereCoordinate: QtPositioning.coordinate() property var _gotoHereCoordinate: QtPositioning.coordinate()
property int _retaskSequence: 0 property real _toolButtonTopMargin: parent.height - ScreenTools.availableHeight + (ScreenTools.defaultFontPixelHeight / 2)
property real _toolButtonTopMargin: parent.height - ScreenTools.availableHeight + (ScreenTools.defaultFontPixelHeight / 2)
property bool _disableVehicleTracking: false property bool _disableVehicleTracking: false
property bool _keepVehicleCentered: _mainIsMap ? false : true property bool _keepVehicleCentered: _mainIsMap ? false : true
// Track last known map position and zoom from Fly view in settings // Track last known map position and zoom from Fly view in settings
...@@ -124,13 +124,11 @@ FlightMap { ...@@ -124,13 +124,11 @@ FlightMap {
QGCPalette { id: qgcPal; colorGroupEnabled: true } QGCPalette { id: qgcPal; colorGroupEnabled: true }
QGCMapPalette { id: mapPal; lightColors: isSatelliteMap } QGCMapPalette { id: mapPal; lightColors: isSatelliteMap }
MissionController { Connections {
id: missionController target: missionController
Component.onCompleted: start(false /* editMode */)
onNewItemsFromVehicle: { onNewItemsFromVehicle: {
var visualItem = missionController.visualItems var visualItems = missionController.visualItems
if (visualItems && visualItems.count != 1) { if (visualItems && visualItems.count != 1) {
mapFitFunctions.fitMapViewportToMissionItems() mapFitFunctions.fitMapViewportToMissionItems()
firstVehiclePositionReceived = true firstVehiclePositionReceived = true
...@@ -195,50 +193,6 @@ FlightMap { ...@@ -195,50 +193,6 @@ FlightMap {
id: _mapTypeButtonsExclusiveGroup id: _mapTypeButtonsExclusiveGroup
} }
ToolStrip {
id: toolStrip
anchors.leftMargin: ScreenTools.defaultFontPixelWidth
anchors.left: parent.left
anchors.topMargin: _toolButtonTopMargin
anchors.top: parent.top
color: qgcPal.window
title: qsTr("Fly")
z: QGroundControl.zOrderWidgets
buttonVisible: [ true, _showZoom, _showZoom ]
maxHeight: (_flightVideo.visible ? _flightVideo.y : parent.height) - toolStrip.y // Massive reach across hack
property bool _showZoom: !ScreenTools.isMobile
model: [
{
name: "Center",
iconSource: "/qmlimages/MapCenter.svg",
dropPanelComponent: centerMapDropPanel
},
{
name: "In",
iconSource: "/qmlimages/ZoomPlus.svg"
},
{
name: "Out",
iconSource: "/qmlimages/ZoomMinus.svg"
}
]
onClicked: {
switch (index) {
case 1:
_flightMap.zoomLevel += 0.5
break
case 2:
_flightMap.zoomLevel -= 0.5
break
}
}
}
// Toolstrip drop panel compomnents
MapFitFunctions { MapFitFunctions {
id: mapFitFunctions id: mapFitFunctions
map: _flightMap map: _flightMap
...@@ -250,15 +204,6 @@ FlightMap { ...@@ -250,15 +204,6 @@ FlightMap {
property real leftToolWidth: toolStrip.x + toolStrip.width property real leftToolWidth: toolStrip.x + toolStrip.width
} }
Component {
id: centerMapDropPanel
CenterMapDropPanel {
map: _flightMap
fitFunctions: mapFitFunctions
}
}
// Add trajectory points to the map // Add trajectory points to the map
MapItemView { MapItemView {
model: _mainIsMap ? _activeVehicle ? _activeVehicle.trajectoryPoints : 0 : 0 model: _mainIsMap ? _activeVehicle ? _activeVehicle.trajectoryPoints : 0 : 0
...@@ -293,11 +238,7 @@ FlightMap { ...@@ -293,11 +238,7 @@ FlightMap {
delegate: MissionItemMapVisual { delegate: MissionItemMapVisual {
map: flightMap map: flightMap
onClicked: guidedActionsController.confirmAction(guidedActionsController.actionSetWaypoint, object.sequenceNumber)
onClicked: {
_retaskSequence = object.sequenceNumber
flightWidgets.guidedModeBar.confirmAction(parent.flightWidgets.guidedModeBar.confirmRetask)
}
} }
} }
...@@ -345,30 +286,24 @@ FlightMap { ...@@ -345,30 +286,24 @@ FlightMap {
} }
} }
MapScale {
anchors.bottomMargin: ScreenTools.defaultFontPixelHeight * (0.66)
anchors.rightMargin: ScreenTools.defaultFontPixelHeight * (0.33)
anchors.bottom: parent.bottom
anchors.right: parent.right
mapControl: flightMap
visible: !ScreenTools.isTinyScreen
}
// Handle guided mode clicks // Handle guided mode clicks
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: { onClicked: {
if (_activeVehicle) { if (guidedActionsController.showGotoLocation) {
if (flightWidgets.guidedModeBar.state != "Shown") { _gotoHereCoordinate = flightMap.toCoordinate(Qt.point(mouse.x, mouse.y), false /* clipToViewPort */)
flightWidgets.guidedModeBar.state = "Shown" guidedActionsController.confirmAction(guidedActionsController.actionGoto, _gotoHereCoordinate)
} else {
if (flightWidgets.gotoEnabled) {
_gotoHereCoordinate = flightMap.toCoordinate(Qt.point(mouse.x, mouse.y), false /* clipToViewPort */)
flightWidgets.guidedModeBar.confirmAction(flightWidgets.guidedModeBar.confirmGoTo)
}
}
} }
} }
} }
MapScale {
anchors.bottomMargin: ScreenTools.defaultFontPixelHeight * (0.66)
anchors.rightMargin: ScreenTools.defaultFontPixelHeight * (0.33)
anchors.bottom: parent.bottom
anchors.right: parent.right
mapControl: flightMap
visible: !ScreenTools.isTinyScreen
}
} }
This diff is collapsed.
...@@ -4,5 +4,6 @@ FlightDisplayView 1.0 FlightDisplayView.qml ...@@ -4,5 +4,6 @@ FlightDisplayView 1.0 FlightDisplayView.qml
FlightDisplayViewMap 1.0 FlightDisplayViewMap.qml FlightDisplayViewMap 1.0 FlightDisplayViewMap.qml
FlightDisplayViewVideo 1.0 FlightDisplayViewVideo.qml FlightDisplayViewVideo 1.0 FlightDisplayViewVideo.qml
FlightDisplayViewWidgets 1.0 FlightDisplayViewWidgets.qml FlightDisplayViewWidgets 1.0 FlightDisplayViewWidgets.qml
GuidedCommands 1.0 GuidedCommands.qml
MultiVehicleList 1.0 MultiVehicleList.qml MultiVehicleList 1.0 MultiVehicleList.qml
...@@ -364,9 +364,6 @@ void MissionSettingsItem::_setDirty(void) ...@@ -364,9 +364,6 @@ void MissionSettingsItem::_setDirty(void)
void MissionSettingsItem::setCoordinate(const QGeoCoordinate& coordinate) void MissionSettingsItem::setCoordinate(const QGeoCoordinate& coordinate)
{ {
if (coordinate.isValid()) {
qDebug() << "MissionSettingsItem::setCoordinate" << coordinate.isValid();
}
if (_plannedHomePositionCoordinate != coordinate) { if (_plannedHomePositionCoordinate != coordinate) {
_plannedHomePositionCoordinate = coordinate; _plannedHomePositionCoordinate = coordinate;
emit coordinateChanged(coordinate); emit coordinateChanged(coordinate);
......
...@@ -11,7 +11,7 @@ Rectangle { ...@@ -11,7 +11,7 @@ Rectangle {
implicitWidth: label.contentWidth + (_diameter * 2.5) + (_border * 4) implicitWidth: label.contentWidth + (_diameter * 2.5) + (_border * 4)
implicitHeight: Math.max(ScreenTools.isMobile ? ScreenTools.minTouchPixels : 0, label.height * 2.5) implicitHeight: Math.max(ScreenTools.isMobile ? ScreenTools.minTouchPixels : 0, label.height * 2.5)
radius: height /2 radius: height /2
color: qgcPal.window color: qgcPal.text
signal accept ///< Action confirmed signal accept ///< Action confirmed
signal reject ///< Action rejected signal reject ///< Action rejected
...@@ -29,6 +29,7 @@ Rectangle { ...@@ -29,6 +29,7 @@ Rectangle {
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
text: confirmText text: confirmText
color: qgcPal.window
} }
Rectangle { Rectangle {
......
...@@ -120,7 +120,10 @@ Rectangle { ...@@ -120,7 +120,10 @@ Rectangle {
property bool checked: false property bool checked: false
property ExclusiveGroup exclusiveGroup: dropButtonsExclusiveGroup property ExclusiveGroup exclusiveGroup: dropButtonsExclusiveGroup
property var _iconSource: modelData.iconSource QGCPalette { id: _repeaterPal; colorGroupEnabled: _buttonEnabled }
property bool _buttonEnabled: _root.buttonEnabled ? _root.buttonEnabled[index] : true
property var _iconSource: modelData.iconSource
property var _alternateIconSource: modelData.alternateIconSource property var _alternateIconSource: modelData.alternateIconSource
property var _source: (_root.showAlternateIcon && _root.showAlternateIcon[index]) ? _alternateIconSource : _iconSource property var _source: (_root.showAlternateIcon && _root.showAlternateIcon[index]) ? _alternateIconSource : _iconSource
property bool rotateImage: _root.rotateImage ? _root.rotateImage[index] : false property bool rotateImage: _root.rotateImage ? _root.rotateImage[index] : false
...@@ -160,7 +163,7 @@ Rectangle { ...@@ -160,7 +163,7 @@ Rectangle {
anchors.left: parent.left anchors.left: parent.left
anchors.right: parent.right anchors.right: parent.right
height: width height: width
color: checked ? qgcPal.buttonHighlight : qgcPal.button color: checked ? _repeaterPal.buttonHighlight : _repeaterPal.button
QGCColoredImage { QGCColoredImage {
id: button id: button
...@@ -170,7 +173,7 @@ Rectangle { ...@@ -170,7 +173,7 @@ Rectangle {
fillMode: Image.PreserveAspectFit fillMode: Image.PreserveAspectFit
mipmap: true mipmap: true
smooth: true smooth: true
color: checked ? qgcPal.buttonHighlightText : qgcPal.buttonText color: checked ? _repeaterPal.buttonHighlightText : _repeaterPal.buttonText
RotationAnimation on rotation { RotationAnimation on rotation {
id: imageRotation id: imageRotation
...@@ -199,7 +202,7 @@ Rectangle { ...@@ -199,7 +202,7 @@ Rectangle {
anchors.right: parent.right anchors.right: parent.right
anchors.top: parent.top anchors.top: parent.top
height: parent.height + (_showOptionalElements? buttonLabel.height + buttonColumn.spacing : 0) height: parent.height + (_showOptionalElements? buttonLabel.height + buttonColumn.spacing : 0)
visible: _root.buttonEnabled ? _root.buttonEnabled[index] : true visible: _buttonEnabled
preventStealing: true preventStealing: true
onClicked: { onClicked: {
...@@ -233,6 +236,7 @@ Rectangle { ...@@ -233,6 +236,7 @@ Rectangle {
font.pointSize: ScreenTools.smallFontPointSize font.pointSize: ScreenTools.smallFontPointSize
text: modelData.name text: modelData.name
visible: _showOptionalElements visible: _showOptionalElements
enabled: _buttonEnabled
} }
} }
} }
......
...@@ -1433,7 +1433,6 @@ void Vehicle::setActive(bool active) ...@@ -1433,7 +1433,6 @@ void Vehicle::setActive(bool active)
QGeoCoordinate Vehicle::homePosition(void) QGeoCoordinate Vehicle::homePosition(void)
{ {
qDebug() << "Vehicle::homePosition" << _homePosition.isValid();
return _homePosition; return _homePosition;
} }
......
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