|
|
|
@ -50,20 +50,37 @@ void TakeoffMissionItem::_init(void)
@@ -50,20 +50,37 @@ void TakeoffMissionItem::_init(void)
|
|
|
|
|
{ |
|
|
|
|
_editorQml = QStringLiteral("qrc:/qml/SimpleItemEditor.qml"); |
|
|
|
|
|
|
|
|
|
QGeoCoordinate homePosition = _vehicle->homePosition(); |
|
|
|
|
connect(_settingsItem, &MissionSettingsItem::coordinateChanged, this, &TakeoffMissionItem::launchCoordinateChanged); |
|
|
|
|
|
|
|
|
|
if (_flyView) { |
|
|
|
|
_initLaunchTakeoffAtSameLocation(); |
|
|
|
|
return; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
QGeoCoordinate homePosition = _settingsItem->coordinate(); |
|
|
|
|
if (!homePosition.isValid()) { |
|
|
|
|
Vehicle* activeVehicle = qgcApp()->toolbox()->multiVehicleManager()->activeVehicle(); |
|
|
|
|
if (activeVehicle) { |
|
|
|
|
homePosition = activeVehicle->homePosition(); |
|
|
|
|
if (homePosition.isValid()) { |
|
|
|
|
_settingsItem->setCoordinate(homePosition); |
|
|
|
|
} |
|
|
|
|
connect(_settingsItem, &MissionSettingsItem::coordinateChanged, this, &TakeoffMissionItem::launchCoordinateChanged); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
_initLaunchTakeoffAtSameLocation(); |
|
|
|
|
|
|
|
|
|
if (homePosition.isValid() && coordinate().isValid()) { |
|
|
|
|
// Item already full specified, most likely from mission load from storage
|
|
|
|
|
_wizardMode = false; |
|
|
|
|
} else { |
|
|
|
|
if (_launchTakeoffAtSameLocation && homePosition.isValid()) { |
|
|
|
|
_wizardMode = false; |
|
|
|
|
SimpleMissionItem::setCoordinate(homePosition); |
|
|
|
|
} else { |
|
|
|
|
_wizardMode = true; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
setDirty(false); |
|
|
|
|
} |
|
|
|
|