Skip to content

missionItemCount should exclude MissionSettingsItem #14162

@DonLakeFlyer

Description

@DonLakeFlyer

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 - 2 is 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 < _missionItemCount
  • showResumeMission: _resumeMissionIndex < _missionItemCount - 1

This makes the semantics of missionItemCount match what the Q_PROPERTY doc says: "True mission item command count".

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions