Unverified Commit d9dba43c authored by Don Gagne's avatar Don Gagne Committed by GitHub

Merge pull request #8048 from DonLakeFlyer/SettingsItem

Fix incorrect usage of _settingsItem causing crashes
parents 961d1818 64afd5ae
......@@ -181,7 +181,7 @@ void MissionController::_newMissionItemsAvailableFromVehicle(bool removeAllReque
// First item is fake home position
MissionItem* fakeHomeItem = newMissionItems[0];
if (fakeHomeItem->coordinate().latitude() != 0 || fakeHomeItem->coordinate().longitude() != 0) {
_settingsItem->setInitialHomePosition(fakeHomeItem->coordinate());
settingsItem->setInitialHomePosition(fakeHomeItem->coordinate());
}
i = 1;
}
......@@ -687,7 +687,7 @@ bool MissionController::_loadJsonMissionFileV1(const QJsonObject& json, QmlObjec
if (item->load(itemObject, itemObject["id"].toInt(), errorString)) {
if (TakeoffMissionItem::isTakeoffCommand(item->mavCommand())) {
// This needs to be a TakeoffMissionItem
TakeoffMissionItem* takeoffItem = new TakeoffMissionItem(_controllerVehicle, _flyView, _settingsItem, visualItems);
TakeoffMissionItem* takeoffItem = new TakeoffMissionItem(_controllerVehicle, _flyView, settingsItem, visualItems);
takeoffItem->load(itemObject, itemObject["id"].toInt(), errorString);
item->deleteLater();
item = takeoffItem;
......@@ -742,9 +742,9 @@ bool MissionController::_loadJsonMissionFileV2(const QJsonObject& json, QmlObjec
if (!JsonHelper::loadGeoCoordinate(json[_jsonPlannedHomePositionKey], true /* altitudeRequired */, homeCoordinate, errorString)) {
return false;
}
_settingsItem = new MissionSettingsItem(_controllerVehicle, _flyView, visualItems);
_settingsItem->setCoordinate(homeCoordinate);
visualItems->insert(0, _settingsItem);
MissionSettingsItem* settingsItem = new MissionSettingsItem(_controllerVehicle, _flyView, visualItems);
settingsItem->setCoordinate(homeCoordinate);
visualItems->insert(0, settingsItem);
qCDebug(MissionControllerLog) << "plannedHomePosition" << homeCoordinate;
// Read mission items
......@@ -775,7 +775,7 @@ bool MissionController::_loadJsonMissionFileV2(const QJsonObject& json, QmlObjec
if (simpleItem->load(itemObject, nextSequenceNumber, errorString)) {
if (TakeoffMissionItem::isTakeoffCommand(static_cast<MAV_CMD>(simpleItem->command()))) {
// This needs to be a TakeoffMissionItem
TakeoffMissionItem* takeoffItem = new TakeoffMissionItem(_controllerVehicle, _flyView, _settingsItem, this);
TakeoffMissionItem* takeoffItem = new TakeoffMissionItem(_controllerVehicle, _flyView, settingsItem, this);
takeoffItem->load(itemObject, nextSequenceNumber, errorString);
simpleItem->deleteLater();
simpleItem = takeoffItem;
......@@ -918,7 +918,7 @@ bool MissionController::_loadTextMissionFile(QTextStream& stream, QmlObjectListM
SimpleMissionItem* item = new SimpleMissionItem(_controllerVehicle, _flyView, visualItems);
if (item->load(stream)) {
if (firstItem && plannedHomePositionInFile) {
_settingsItem->setInitialHomePositionFromUser(item->coordinate());
settingsItem->setInitialHomePositionFromUser(item->coordinate());
} else {
if (TakeoffMissionItem::isTakeoffCommand(static_cast<MAV_CMD>(item->command()))) {
// This needs to be a TakeoffMissionItem
......@@ -1701,7 +1701,6 @@ void MissionController::_initAllVisualItems(void)
// Setup home position at index 0
if (!_settingsItem) {
qWarning() << "_initAllVisualItems _settingsItem should already be set";
_settingsItem = qobject_cast<MissionSettingsItem*>(_visualItems->get(0));
if (!_settingsItem) {
qWarning() << "First item not MissionSettingsItem";
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment