-
-
Notifications
You must be signed in to change notification settings - Fork 4.7k
Description
missionItemCount currently returns _visualItems->count() which includes the MissionSettingsItem at index 0. This is a non-command internal item, so missionItemCount overstates the true mission command count by 1.
Usage in GuidedActionsController
missionItemCount is used in GuidedActionsController.qml for two comparisons:
- showContinueMission:
_currentMissionIndex < _missionItemCount - 1 - showResumeMission:
_resumeMissionIndex < _missionItemCount - 2(the- 2is documented as "a hack to not trigger resume mission when a mission ends with an RTL item")
Both _currentMissionIndex and _resumeMissionIndex are MAVLink sequence numbers (adjusted for home position). Since MissionSettingsItem occupies sequence 0, these comparisons currently work correctly by accident — the off-by-one in missionItemCount is compensated by the index math.
Proposed fix
Have missionItemCount return _visualItems ? _visualItems->count() - 1 : 0 to exclude MissionSettingsItem, then adjust the QML comparisons accordingly:
showContinueMission:_currentMissionIndex < _missionItemCountshowResumeMission:_resumeMissionIndex < _missionItemCount - 1
This makes the semantics of missionItemCount match what the Q_PROPERTY doc says: "True mission item command count".