diff --git a/ChangeLog.md b/ChangeLog.md index 5c435e040748b4e0a7c40b7e401993aac813d7cf..739a03f9311062d660cc84ba734ef85364e5ae65 100644 --- a/ChangeLog.md +++ b/ChangeLog.md @@ -16,6 +16,7 @@ Note: This file only contains high level features or important fixes. ## 4.0.8 - Not yet released +* Plan: Fix bugs associated with mission commands which specify and altitude but no lat/lon * Fix bug which could prevent view switching from working after altitude mode warning dialog would pop up ## 4.0.8 - Stable diff --git a/src/MissionManager/SimpleMissionItem.cc b/src/MissionManager/SimpleMissionItem.cc index 747c27771e349bf1321fdf1309b68483dd4a5e2f..345f6aa11102011796b387f117f3c662e8705201 100644 --- a/src/MissionManager/SimpleMissionItem.cc +++ b/src/MissionManager/SimpleMissionItem.cc @@ -117,7 +117,7 @@ SimpleMissionItem::SimpleMissionItem(PlanMasterController* masterController, boo } _isCurrentItem = missionItem.isCurrentItem(); - _altitudeFact.setRawValue(specifiesCoordinate() || specifiesAltitudeOnly() ? _missionItem._param7Fact.rawValue() : qQNaN()); + _altitudeFact.setRawValue(specifiesAltitude() ? _missionItem._param7Fact.rawValue() : qQNaN()); _amslAltAboveTerrainFact.setRawValue(qQNaN()); // In flyView we skip some of the intialization to save memory @@ -267,7 +267,7 @@ void SimpleMissionItem::save(QJsonArray& missionItems) item->save(saveObject); if (i == 0) { // This is the main simple item, save the alt/terrain data - if (specifiesCoordinate()) { + if (specifiesAltitude()) { saveObject[_jsonAltitudeModeKey] = _altitudeMode; saveObject[_jsonAltitudeKey] = _altitudeFact.rawValue().toDouble(); saveObject[_jsonAMSLAltAboveTerrainKey] = _amslAltAboveTerrainFact.rawValue().toDouble(); @@ -282,7 +282,7 @@ bool SimpleMissionItem::load(QTextStream &loadStream) { bool success; if ((success = _missionItem.load(loadStream))) { - if (specifiesCoordinate()) { + if (specifiesAltitude()) { _altitudeMode = _missionItem.relativeAltitude() ? QGroundControlQmlGlobal::AltitudeModeRelative : QGroundControlQmlGlobal::AltitudeModeAbsolute; _altitudeFact.setRawValue(_missionItem._param7Fact.rawValue()); _amslAltAboveTerrainFact.setRawValue(qQNaN()); @@ -302,7 +302,7 @@ bool SimpleMissionItem::load(const QJsonObject& json, int sequenceNumber, QStrin return false; } - if (specifiesCoordinate()) { + if (specifiesAltitude()) { if (json.contains(_jsonAltitudeModeKey) || json.contains(_jsonAltitudeKey) || json.contains(_jsonAMSLAltAboveTerrainKey)) { QList keyInfoList = { { _jsonAltitudeModeKey, QJsonValue::Double, true }, @@ -573,7 +573,7 @@ bool SimpleMissionItem::friendlyEditAllowed(void) const return false; } - if (specifiesCoordinate() || specifiesAltitudeOnly()) { + if (specifiesAltitude()) { MAV_FRAME frame = _missionItem.frame(); switch (frame) { case MAV_FRAME_GLOBAL: @@ -726,7 +726,7 @@ void SimpleMissionItem::_setDefaultsForCommand(void) _altitudeMode = QGroundControlQmlGlobal::AltitudeModeRelative; emit altitudeModeChanged(); _amslAltAboveTerrainFact.setRawValue(qQNaN()); - if (specifiesCoordinate() || isStandaloneCoordinate() || specifiesAltitudeOnly()) { + if (specifiesAltitude() || isStandaloneCoordinate()) { double defaultAlt = qgcApp()->toolbox()->settingsManager()->appSettings()->defaultMissionItemAltitude()->rawValue().toDouble(); _altitudeFact.setRawValue(defaultAlt); _missionItem._param7Fact.setRawValue(defaultAlt); @@ -758,7 +758,7 @@ void SimpleMissionItem::_setDefaultsForCommand(void) } _missionItem.setAutoContinue(true); - _missionItem.setFrame((specifiesCoordinate() || specifiesAltitudeOnly()) ? MAV_FRAME_GLOBAL_RELATIVE_ALT : MAV_FRAME_MISSION); + _missionItem.setFrame(specifiesAltitude() ? MAV_FRAME_GLOBAL_RELATIVE_ALT : MAV_FRAME_MISSION); setRawEdit(false); }