Browse Source

Merge pull request #8060 from DonLakeFlyer/MoreTakeoffItem

Plan: More takeoff item fixes
QGC4.4
Don Gagne 6 years ago committed by GitHub
parent
commit
a4be3aefed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      src/MissionManager/MissionController.cc
  2. 21
      src/MissionManager/TakeoffMissionItem.cc

2
src/MissionManager/MissionController.cc

@ -395,7 +395,7 @@ VisualMissionItem* MissionController::insertSimpleMissionItem(QGeoCoordinate coo
VisualMissionItem* MissionController::insertTakeoffItem(QGeoCoordinate /*coordinate*/, int visualItemIndex, bool makeCurrentItem) VisualMissionItem* MissionController::insertTakeoffItem(QGeoCoordinate /*coordinate*/, int visualItemIndex, bool makeCurrentItem)
{ {
int sequenceNumber = _nextSequenceNumber(); int sequenceNumber = _nextSequenceNumber();
TakeoffMissionItem * newItem = new TakeoffMissionItem(_controllerVehicle->vtol() ? MAV_CMD_NAV_VTOL_TAKEOFF : MAV_CMD_NAV_TAKEOFF, _managerVehicle, _flyView, _settingsItem, this); TakeoffMissionItem * newItem = new TakeoffMissionItem(_controllerVehicle->vtol() ? MAV_CMD_NAV_VTOL_TAKEOFF : MAV_CMD_NAV_TAKEOFF, _controllerVehicle, _flyView, _settingsItem, this);
newItem->setSequenceNumber(sequenceNumber); newItem->setSequenceNumber(sequenceNumber);
_initVisualItem(newItem); _initVisualItem(newItem);

21
src/MissionManager/TakeoffMissionItem.cc

@ -50,20 +50,37 @@ void TakeoffMissionItem::_init(void)
{ {
_editorQml = QStringLiteral("qrc:/qml/SimpleItemEditor.qml"); _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()) { if (homePosition.isValid()) {
_settingsItem->setCoordinate(homePosition); _settingsItem->setCoordinate(homePosition);
} }
connect(_settingsItem, &MissionSettingsItem::coordinateChanged, this, &TakeoffMissionItem::launchCoordinateChanged); }
}
_initLaunchTakeoffAtSameLocation(); _initLaunchTakeoffAtSameLocation();
if (homePosition.isValid() && coordinate().isValid()) {
// Item already full specified, most likely from mission load from storage
_wizardMode = false;
} else {
if (_launchTakeoffAtSameLocation && homePosition.isValid()) { if (_launchTakeoffAtSameLocation && homePosition.isValid()) {
_wizardMode = false; _wizardMode = false;
SimpleMissionItem::setCoordinate(homePosition); SimpleMissionItem::setCoordinate(homePosition);
} else { } else {
_wizardMode = true; _wizardMode = true;
} }
}
setDirty(false); setDirty(false);
} }

Loading…
Cancel
Save