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