diff --git a/src/FlightMap/MapItems/MissionItemIndicator.qml b/src/FlightMap/MapItems/MissionItemIndicator.qml index efba9e15a536c7762b6151d0a79751150f2ebb82..e5eeb3932b797d3d946cbdbaff4a6a2b5419c308 100644 --- a/src/FlightMap/MapItems/MissionItemIndicator.qml +++ b/src/FlightMap/MapItems/MissionItemIndicator.qml @@ -44,7 +44,7 @@ MapQuickItem { MissionItemIndexLabel { id: _label isCurrentItem: _isCurrentItem - label: sequenceNumber == 0 ? "H" : sequenceNumber + label: missionItem.abbreviation onClicked: _item.clicked() property bool _isCurrentItem: missionItem ? missionItem.isCurrentItem : false diff --git a/src/MissionEditor/MissionItemStatus.qml b/src/MissionEditor/MissionItemStatus.qml index b8436ae073a05747de951937763d3784032b7b0a..9accb9c7fff0662c4b89a203551a9a2ab7b27e6e 100644 --- a/src/MissionEditor/MissionItemStatus.qml +++ b/src/MissionEditor/MissionItemStatus.qml @@ -127,7 +127,7 @@ Rectangle { y: availableHeight - (availableHeight * object.altPercent) small: true isCurrentItem: object.isCurrentItem - label: object.homePosition ? "H" : object.sequenceNumber + label: object.abbreviation visible: object.relativeAltitude ? true : (object.homePosition || graphAbsolute) } diff --git a/src/MissionManager/ComplexMissionItem.h b/src/MissionManager/ComplexMissionItem.h index 37cbb9903b8ceb8523a4a96781fa5a0fce3bbb85..c91da6bfe3b5d422bd2002f0d3e217fdb72d3a14 100644 --- a/src/MissionManager/ComplexMissionItem.h +++ b/src/MissionManager/ComplexMissionItem.h @@ -80,6 +80,7 @@ public: bool specifiesCoordinate (void) const final; QString commandDescription (void) const final { return "Survey"; } QString commandName (void) const final { return "Survey"; } + QString abbreviation (void) const final { return "S"; } QGeoCoordinate coordinate (void) const final { return _coordinate; } QGeoCoordinate exitCoordinate (void) const final { return _exitCoordinate; } int sequenceNumber (void) const final { return _sequenceNumber; } diff --git a/src/MissionManager/ComplexMissionItemTest.cc b/src/MissionManager/ComplexMissionItemTest.cc index b86c26bb6abca594e176295b57c8890daf11f5d4..334c7200aeb61a5b1aee14ca22d62dea507a3444 100644 --- a/src/MissionManager/ComplexMissionItemTest.cc +++ b/src/MissionManager/ComplexMissionItemTest.cc @@ -43,6 +43,7 @@ void ComplexMissionItemTest::init(void) _rgComplexMissionItemSignals[azimuthChangedIndex] = SIGNAL(azimuthChanged(double)); _rgComplexMissionItemSignals[commandDescriptionChangedIndex] = SIGNAL(commandDescriptionChanged()); _rgComplexMissionItemSignals[commandNameChangedIndex] = SIGNAL(commandNameChanged()); + _rgComplexMissionItemSignals[abbreviationChangedIndex] = SIGNAL(abbreviationChanged()); _rgComplexMissionItemSignals[coordinateChangedIndex] = SIGNAL(coordinateChanged(const QGeoCoordinate&)); _rgComplexMissionItemSignals[exitCoordinateChangedIndex] = SIGNAL(exitCoordinateChanged(const QGeoCoordinate&)); _rgComplexMissionItemSignals[dirtyChangedIndex] = SIGNAL(dirtyChanged(bool)); diff --git a/src/MissionManager/ComplexMissionItemTest.h b/src/MissionManager/ComplexMissionItemTest.h index fef342046e4a94452fad4b1f19dbe3a30d5c9983..2e30beb17c060e305b3cc966d3e377c866547813 100644 --- a/src/MissionManager/ComplexMissionItemTest.h +++ b/src/MissionManager/ComplexMissionItemTest.h @@ -62,6 +62,7 @@ private: azimuthChangedIndex, commandDescriptionChangedIndex, commandNameChangedIndex, + abbreviationChangedIndex, coordinateChangedIndex, exitCoordinateChangedIndex, dirtyChangedIndex, diff --git a/src/MissionManager/SimpleMissionItem.cc b/src/MissionManager/SimpleMissionItem.cc index a93e707d9368ccb477a82c4bd75e708261998eff..502bb9bed4557d5af50b4d0ec6aec2dcf6a9c411 100644 --- a/src/MissionManager/SimpleMissionItem.cc +++ b/src/MissionManager/SimpleMissionItem.cc @@ -180,6 +180,7 @@ void SimpleMissionItem::_connectSignals(void) connect(&_missionItem._commandFact, &Fact::valueChanged, this, &SimpleMissionItem::setDefaultsForCommand); connect(&_missionItem._commandFact, &Fact::valueChanged, this, &SimpleMissionItem::commandNameChanged); connect(&_missionItem._commandFact, &Fact::valueChanged, this, &SimpleMissionItem::commandDescriptionChanged); + connect(&_missionItem._commandFact, &Fact::valueChanged, this, &SimpleMissionItem::abbreviationChanged); connect(&_missionItem._commandFact, &Fact::valueChanged, this, &SimpleMissionItem::specifiesCoordinateChanged); connect(&_missionItem._commandFact, &Fact::valueChanged, this, &SimpleMissionItem::isStandaloneCoordinateChanged); @@ -303,6 +304,21 @@ QString SimpleMissionItem::commandName(void) const } } +QString SimpleMissionItem::abbreviation() const +{ + if (homePosition()) + return QStringLiteral("H"); + + switch(command()) { + default: + return QString::number(sequenceNumber()); + case MavlinkQmlSingleton::MAV_CMD_NAV_TAKEOFF: + return QStringLiteral("T"); + case MavlinkQmlSingleton::MAV_CMD_NAV_LAND: + return QStringLiteral("L"); + } +} + void SimpleMissionItem::_clearParamMetaData(void) { _param1MetaData.setRawUnits(""); diff --git a/src/MissionManager/SimpleMissionItem.h b/src/MissionManager/SimpleMissionItem.h index 88c243fb20888a0d3c298f948fcdb7ee95de2162..07756187785a7d9529c0d91cc68d6c4101ceabc5 100644 --- a/src/MissionManager/SimpleMissionItem.h +++ b/src/MissionManager/SimpleMissionItem.h @@ -99,6 +99,7 @@ public: bool specifiesCoordinate (void) const final; QString commandDescription (void) const final; QString commandName (void) const final; + QString abbreviation (void) const final; QGeoCoordinate coordinate (void) const final { return _missionItem.coordinate(); } QGeoCoordinate exitCoordinate (void) const final { return coordinate(); } int sequenceNumber (void) const final { return _missionItem.sequenceNumber(); } diff --git a/src/MissionManager/VisualMissionItem.h b/src/MissionManager/VisualMissionItem.h index d682ade1d7585577a64db32b78a5d62c25af9297..490c32c12b724a0e74f377b55294c59d4bd4a7b1 100644 --- a/src/MissionManager/VisualMissionItem.h +++ b/src/MissionManager/VisualMissionItem.h @@ -81,6 +81,7 @@ public: Q_PROPERTY(QString commandDescription READ commandDescription NOTIFY commandDescriptionChanged) Q_PROPERTY(QString commandName READ commandName NOTIFY commandNameChanged) + Q_PROPERTY(QString abbreviation READ abbreviation NOTIFY abbreviationChanged) Q_PROPERTY(bool dirty READ dirty WRITE setDirty NOTIFY dirtyChanged) ///< Item is dirty and requires save/send Q_PROPERTY(bool isCurrentItem READ isCurrentItem WRITE setIsCurrentItem NOTIFY isCurrentItemChanged) Q_PROPERTY(int sequenceNumber READ sequenceNumber WRITE setSequenceNumber NOTIFY sequenceNumberChanged) @@ -118,6 +119,7 @@ public: virtual bool specifiesCoordinate (void) const = 0; virtual QString commandDescription (void) const = 0; virtual QString commandName (void) const = 0; + virtual QString abbreviation (void) const = 0; virtual QGeoCoordinate coordinate (void) const = 0; virtual QGeoCoordinate exitCoordinate (void) const = 0; virtual int sequenceNumber (void) const = 0; @@ -140,6 +142,7 @@ signals: void azimuthChanged (double azimuth); void commandDescriptionChanged (void); void commandNameChanged (void); + void abbreviationChanged (void); void coordinateChanged (const QGeoCoordinate& coordinate); void exitCoordinateChanged (const QGeoCoordinate& exitCoordinate); void dirtyChanged (bool dirty); diff --git a/src/QmlControls/MissionItemEditor.qml b/src/QmlControls/MissionItemEditor.qml index 8929915be3d413eae0db8482e9a5f4eecb2cdd19..d55acf653aab985a2a88d58ce35b7d62101a765f 100644 --- a/src/QmlControls/MissionItemEditor.qml +++ b/src/QmlControls/MissionItemEditor.qml @@ -51,7 +51,7 @@ Rectangle { anchors.verticalCenter: commandPicker.verticalCenter anchors.leftMargin: _margin anchors.left: parent.left - text: missionItem.sequenceNumber == 0 ? "H" : missionItem.sequenceNumber + text: missionItem.abbreviation color: _outerTextColor }