diff --git a/src/MissionManager/VisualMissionItem.cc b/src/MissionManager/VisualMissionItem.cc index 7d6e566c155a45edf20ab0e9be7f9d0e79f73771..964fc643c83951cf4682c2d1010e36db9d1ca29b 100644 --- a/src/MissionManager/VisualMissionItem.cc +++ b/src/MissionManager/VisualMissionItem.cc @@ -79,7 +79,7 @@ const VisualMissionItem& VisualMissionItem::operator=(const VisualMissionItem& o _vehicle = other._vehicle; setIsCurrentItem(other._isCurrentItem); - setDirty(other._dirty); + _dirty = other._dirty; _homePositionSpecialCase = other._homePositionSpecialCase; _terrainAltitude = other._terrainAltitude; setAltDifference(other._altDifference); diff --git a/src/Wima/WimaController.cc b/src/Wima/WimaController.cc index 266b911194f31ab9a25c1e43283f010e6b497733..2d6a0a4db63abf95863a365568f84c9339cc7c53 100644 --- a/src/Wima/WimaController.cc +++ b/src/Wima/WimaController.cc @@ -211,13 +211,33 @@ void WimaController::containerDataValidChanged(bool valid) QList tempMissionItems = planData.missionItems(); - for (auto missionItem : tempMissionItems) - _missionItems.append(const_cast(missionItem)); // losing const qualifier here - _missionController->removeAll(); - QmlObjectListModel* missionItems = _missionController->visualItems(); + QmlObjectListModel* missionControllerVisualItems = _missionController->visualItems(); for ( auto missionItem : tempMissionItems) - _missionController->insertSimpleMissionItem(*missionItem, missionItems->count()); + _missionController->insertSimpleMissionItem(*missionItem, missionControllerVisualItems->count()); + + MissionSettingsItem *settingsItem = qobject_cast((*missionControllerVisualItems)[0]); + if (settingsItem == nullptr) { + qWarning("WimaController::containerDataValidChanged(): Nullptr at MissionSettingsItem!"); + return; + } + //_missionItems.append(settingsItem); + + for ( int i = 1; i < missionControllerVisualItems->count(); i++) { + SimpleMissionItem *visualItem = qobject_cast((*missionControllerVisualItems)[i]); + if (visualItem == nullptr) { + qWarning("WimaController::containerDataValidChanged(): Nullptr at SimpleMissionItem!"); + return; + } + SimpleMissionItem *visualItemCopy = new SimpleMissionItem(*visualItem, true, this); + _missionItems.append(visualItemCopy); + } + + // remove warnings if you read this + qWarning("Mission Item count:"); + qWarning() << _missionItems.count(); + + _missionController->removeAll(); if (areaCounter == numAreas) _localPlanDataValid = true;