Commit 094fb159 authored by Don Gagne's avatar Don Gagne

Show altitude in mission item

parent b17d704c
...@@ -59,18 +59,6 @@ FlightMap { ...@@ -59,18 +59,6 @@ FlightMap {
Component.onCompleted: start(false /* editMode */) Component.onCompleted: start(false /* editMode */)
} }
// Home position
MissionItemIndicator {
label: "H"
coordinate: (_activeVehicle && _activeVehicle.homePositionAvailable) ? _activeVehicle.homePosition : QtPositioning.coordinate(0, 0)
visible: {
if(!_mainIsMap)
return false;
return _activeVehicle ? _activeVehicle.homePositionAvailable : false
}
z: QGroundControl.zOrderMapItems
}
// Add trajectory points to the map // Add trajectory points to the map
MapItemView { MapItemView {
model: _mainIsMap ? multiVehicleManager.activeVehicle ? multiVehicleManager.activeVehicle.trajectoryPoints : 0 : 0 model: _mainIsMap ? multiVehicleManager.activeVehicle ? multiVehicleManager.activeVehicle.trajectoryPoints : 0 : 0
......
...@@ -32,18 +32,37 @@ import QGroundControl.Vehicle 1.0 ...@@ -32,18 +32,37 @@ import QGroundControl.Vehicle 1.0
MapQuickItem { MapQuickItem {
id: _item id: _item
property alias label: _label.label property var missionItem
property alias isCurrentItem: _label.isCurrentItem
signal clicked signal clicked
anchorPoint.x: sourceItem.width / 2 anchorPoint.x: sourceItem.width / 2
anchorPoint.y: sourceItem.height / 2 anchorPoint.y: sourceItem.height / 2
Connections {
target: missionItem
onCoordinateChanged: recalcLabel()
onRelativeAltitudeChanged: recalcLabel()
}
Component.onCompleted: recalcLabel()
function recalcLabel() {
var label = Math.round(object.coordinate.altitude)
if (!object.relativeAltitude) {
label = "=" + label
}
if (object.homePosition) {
label = "H" + label
}
_label.label = label
}
sourceItem: sourceItem:
MissionItemIndexLabel { MissionItemIndexLabel {
id: _label id: _label
isCurrentItem: missionItem.isCurrentItem
onClicked: _item.clicked() onClicked: _item.clicked()
} }
} }
...@@ -39,11 +39,10 @@ MapItemView { ...@@ -39,11 +39,10 @@ MapItemView {
delegate: MissionItemIndicator { delegate: MissionItemIndicator {
id: itemIndicator id: itemIndicator
label: object.homePosition ? "H" : object.sequenceNumber
isCurrentItem: object.isCurrentItem
coordinate: object.coordinate coordinate: object.coordinate
visible: object.specifiesCoordinate && (!object.homePosition || object.homePositionValid) visible: object.specifiesCoordinate && (!object.homePosition || object.homePositionValid)
z: QGroundControl.zOrderMapItems z: QGroundControl.zOrderMapItems
missionItem: object
onClicked: setCurrentItem(object.sequenceNumber) onClicked: setCurrentItem(object.sequenceNumber)
...@@ -71,6 +70,9 @@ MapItemView { ...@@ -71,6 +70,9 @@ MapItemView {
} }
} }
/*
Turned off for now
// These are the non-coordinate child mission items attached to this item // These are the non-coordinate child mission items attached to this item
Row { Row {
anchors.top: parent.top anchors.top: parent.top
...@@ -88,5 +90,6 @@ MapItemView { ...@@ -88,5 +90,6 @@ MapItemView {
} }
} }
} }
*/
} }
} }
This diff is collapsed.
...@@ -431,6 +431,10 @@ void MissionController::_initAllMissionItems(void) ...@@ -431,6 +431,10 @@ void MissionController::_initAllMissionItems(void)
// Add the home position item to the front // Add the home position item to the front
homeItem = new MissionItem(this); homeItem = new MissionItem(this);
homeItem->setHomePositionSpecialCase(true); homeItem->setHomePositionSpecialCase(true);
if (_activeVehicle) {
homeItem->setCoordinate(_activeVehicle->homePosition());
homeItem->setHomePositionValid(_activeVehicle->homePositionAvailable());
}
homeItem->setCommand(MavlinkQmlSingleton::MAV_CMD_NAV_LAST); homeItem->setCommand(MavlinkQmlSingleton::MAV_CMD_NAV_LAST);
homeItem->setFrame(MAV_FRAME_GLOBAL_RELATIVE_ALT); homeItem->setFrame(MAV_FRAME_GLOBAL_RELATIVE_ALT);
homeItem->setSequenceNumber(0); homeItem->setSequenceNumber(0);
...@@ -531,7 +535,7 @@ void MissionController::_setupActiveVehicle(Vehicle* activeVehicle, bool forceLo ...@@ -531,7 +535,7 @@ void MissionController::_setupActiveVehicle(Vehicle* activeVehicle, bool forceLo
MissionManager* missionManager = activeVehicle->missionManager(); MissionManager* missionManager = activeVehicle->missionManager();
connect(missionManager, &MissionManager::newMissionItemsAvailable, this, &MissionController::_newMissionItemsAvailableFromVehicle); connect(missionManager, &MissionManager::newMissionItemsAvailable, this, &MissionController::_newMissionItemsAvailableFromVehicle);
connect(missionManager, &MissionManager::inProgressChanged, this, &MissionController::_inProgressChanged); connect(missionManager, &MissionManager::inProgressChanged, this, &MissionController::_inProgressChanged);
connect(_activeVehicle, &Vehicle::homePositionAvailableChanged, this, &MissionController::_activeVehicleHomePositionAvailableChanged); connect(_activeVehicle, &Vehicle::homePositionAvailableChanged, this, &MissionController::_activeVehicleHomePositionAvailableChanged);
connect(_activeVehicle, &Vehicle::homePositionChanged, this, &MissionController::_activeVehicleHomePositionChanged); connect(_activeVehicle, &Vehicle::homePositionChanged, this, &MissionController::_activeVehicleHomePositionChanged);
...@@ -548,6 +552,7 @@ void MissionController::_activeVehicleHomePositionAvailableChanged(bool homePosi ...@@ -548,6 +552,7 @@ void MissionController::_activeVehicleHomePositionAvailableChanged(bool homePosi
_liveHomePositionAvailable = homePositionAvailable; _liveHomePositionAvailable = homePositionAvailable;
qobject_cast<MissionItem*>(_missionItems->get(0))->setHomePositionValid(homePositionAvailable); qobject_cast<MissionItem*>(_missionItems->get(0))->setHomePositionValid(homePositionAvailable);
emit liveHomePositionAvailableChanged(_liveHomePositionAvailable); emit liveHomePositionAvailableChanged(_liveHomePositionAvailable);
_recalcWaypointLines();
} }
void MissionController::_activeVehicleHomePositionChanged(const QGeoCoordinate& homePosition) void MissionController::_activeVehicleHomePositionChanged(const QGeoCoordinate& homePosition)
...@@ -555,6 +560,7 @@ void MissionController::_activeVehicleHomePositionChanged(const QGeoCoordinate& ...@@ -555,6 +560,7 @@ void MissionController::_activeVehicleHomePositionChanged(const QGeoCoordinate&
_liveHomePosition = homePosition; _liveHomePosition = homePosition;
qobject_cast<MissionItem*>(_missionItems->get(0))->setCoordinate(_liveHomePosition); qobject_cast<MissionItem*>(_missionItems->get(0))->setCoordinate(_liveHomePosition);
emit liveHomePositionChanged(_liveHomePosition); emit liveHomePositionChanged(_liveHomePosition);
_recalcWaypointLines();
} }
void MissionController::deleteCurrentMissionItem(void) void MissionController::deleteCurrentMissionItem(void)
......
...@@ -81,6 +81,7 @@ public: ...@@ -81,6 +81,7 @@ public:
Q_PROPERTY(bool homePosition READ homePosition CONSTANT) ///< true: This item is being used as a home position indicator Q_PROPERTY(bool homePosition READ homePosition CONSTANT) ///< true: This item is being used as a home position indicator
Q_PROPERTY(bool homePositionValid READ homePositionValid WRITE setHomePositionValid NOTIFY homePositionValidChanged) ///< true: Home position should be shown Q_PROPERTY(bool homePositionValid READ homePositionValid WRITE setHomePositionValid NOTIFY homePositionValidChanged) ///< true: Home position should be shown
Q_PROPERTY(bool isCurrentItem READ isCurrentItem WRITE setIsCurrentItem NOTIFY isCurrentItemChanged) Q_PROPERTY(bool isCurrentItem READ isCurrentItem WRITE setIsCurrentItem NOTIFY isCurrentItemChanged)
Q_PROPERTY(bool relativeAltitude READ relativeAltitude NOTIFY frameChanged)
Q_PROPERTY(bool rawEdit READ rawEdit WRITE setRawEdit NOTIFY rawEditChanged) ///< true: raw item editing with all params Q_PROPERTY(bool rawEdit READ rawEdit WRITE setRawEdit NOTIFY rawEditChanged) ///< true: raw item editing with all params
Q_PROPERTY(int sequenceNumber READ sequenceNumber WRITE setSequenceNumber NOTIFY sequenceNumberChanged) Q_PROPERTY(int sequenceNumber READ sequenceNumber WRITE setSequenceNumber NOTIFY sequenceNumberChanged)
Q_PROPERTY(bool specifiesCoordinate READ specifiesCoordinate NOTIFY commandChanged) Q_PROPERTY(bool specifiesCoordinate READ specifiesCoordinate NOTIFY commandChanged)
......
...@@ -49,11 +49,11 @@ Rectangle { ...@@ -49,11 +49,11 @@ Rectangle {
onClicked: _root.clicked() onClicked: _root.clicked()
} }
MissionItemIndexLabel { QGCLabel {
id: label id: label
anchors.verticalCenter: commandPicker.verticalCenter anchors.verticalCenter: commandPicker.verticalCenter
isCurrentItem: missionItem.isCurrentItem color: missionItem.isCurrentItem ? qgcPal.buttonHighlightText : qgcPal.buttonText
label: missionItem.sequenceNumber == 0 ? "H" : missionItem.sequenceNumber text: missionItem.sequenceNumber == 0 ? "H" : missionItem.sequenceNumber
} }
Image { Image {
...@@ -92,18 +92,12 @@ Rectangle { ...@@ -92,18 +92,12 @@ Rectangle {
onClicked: qgcView.showDialog(commandDialog, "Select Mission Command", 40, StandardButton.Cancel) onClicked: qgcView.showDialog(commandDialog, "Select Mission Command", 40, StandardButton.Cancel)
} }
Rectangle { QGCLabel {
anchors.fill: commandPicker anchors.fill: commandPicker
color: qgcPal.button visible: missionItem.sequenceNumber == 0 || !missionItem.isCurrentItem
visible: missionItem.sequenceNumber == 0 || !missionItem.isCurrentItem verticalAlignment: Text.AlignVCenter
text: missionItem.sequenceNumber == 0 ? "Home" : missionItem.commandName
QGCLabel { color: qgcPal.buttonText
anchors.leftMargin: ScreenTools.defaultFontPixelWidth
anchors.fill: parent
verticalAlignment: Text.AlignVCenter
text: missionItem.sequenceNumber == 0 ? "Home" : missionItem.commandName
color: qgcPal.buttonText
}
} }
Rectangle { Rectangle {
......
...@@ -11,27 +11,28 @@ Rectangle { ...@@ -11,27 +11,28 @@ Rectangle {
signal clicked signal clicked
readonly property real _margin: ScreenTools.defaultFontPixelWidth / 4
QGCPalette { id: qgcPal } QGCPalette { id: qgcPal }
width: ScreenTools.mediumFontPixelSize * 1.5 width: _label.width + (_margin * 2)
height: width height: _label.height + (_margin * 2)
radius: width / 2 radius: _margin
border.width: 2 border.width: 1
border.color: "white" border.color: "white"
color: isCurrentItem ? "green" : qgcPal.mapButtonHighlight color: isCurrentItem ? "green" : qgcPal.mapButtonHighlight
MouseArea { MouseArea {
anchors.fill: parent anchors.fill: parent
onClicked: parent.clicked()
onClicked: parent.clicked()
} }
QGCLabel { QGCLabel {
id: _label id: _label
anchors.fill: parent anchors.margins: _margin
horizontalAlignment: Text.AlignHCenter anchors.left: parent.left
verticalAlignment: Text.AlignVCenter anchors.top: parent.top
color: "white" color: "white"
font.pixelSize: ScreenTools.mediumFontPixelSize font.pixelSize: ScreenTools.defaultFontPixelSize
} }
} }
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