diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index e669249c141bbfb5703957859c40454cd696fa3e..c0ddbc6d91d7de554bc1b78c604cb9e9c7479e2d 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -227,7 +227,7 @@ src/WimaView/CoordinateIndicator.qml src/WimaView/WimaJoinedAreaMapVisual.qml src/WimaView/WimaCorridorEditor.qml - src/FlightMap/MapItems/WimaPlanMapItems.qml + src/FlightMap/MapItems/WimaPlanMapItems.qml src/Settings/APMMavlinkStreamRate.SettingsGroup.json diff --git a/src/FlightDisplay/FlightDisplayViewMap.qml b/src/FlightDisplay/FlightDisplayViewMap.qml index c3060d00b0470983741d5b55dca624079a53aba7..e03096290fff2519fe2a616701829af40ad07230 100644 --- a/src/FlightDisplay/FlightDisplayViewMap.qml +++ b/src/FlightDisplay/FlightDisplayViewMap.qml @@ -210,13 +210,11 @@ FlightMap { } // Add mission items generated by wima planer to the map - PlanMapItems { + WimaPlanMapItems { map: flightMap largeMapView: _mainIsMap - masterController: masterController - isActiveVehicle: _vehicle.active - - property var _vehicle: object + wimaController: flightMap.wimaController + z: 1000 } // Add trajectory points to the map diff --git a/src/FlightMap/MapItems/WimaPlanMapItems.qml b/src/FlightMap/MapItems/WimaPlanMapItems.qml index e25dcbd1ec2e6421daf40421bbbe7d37964decaa..18dcbd21a17a83f36e5264a549c75a81a7c296e7 100644 --- a/src/FlightMap/MapItems/WimaPlanMapItems.qml +++ b/src/FlightMap/MapItems/WimaPlanMapItems.qml @@ -16,20 +16,19 @@ import QGroundControl.Controls 1.0 import QGroundControl.FlightMap 1.0 // Adds visual items generated by wima planer to the map. -// Currently only used by Fly View even though it's called PlanMapItems! Item { id: _root property var map ///< Map control to show items on property bool largeMapView ///< true: map takes up entire view, false: map is in small window - property var wimaController value + property var wimaController - property var _map: map + property var _map: map property var _missionLineViewComponent // Add the mission item visuals to the map Repeater { - model: largeMapView ? _missionController.visualItems : 0 + model: largeMapView ? wimaController.missionItems : 0 delegate: MissionItemMapVisual { map: _map @@ -40,8 +39,17 @@ Item { } } } + + /*onItemAdded: { + console.log(wimaController.missionItems.count) + } + + onItemRemoved: { + console.log(wimaController.missionItems.count) + }*/ } + Component.onCompleted: { _missionLineViewComponent = missionLineViewComponent.createObject(map) if (_missionLineViewComponent.status === Component.Error) @@ -60,7 +68,7 @@ Item { line.width: 3 line.color: "#be781c" // Hack, can't get palette to work in here z: QGroundControl.zOrderWaypointLines - path: _missionController.waypointPath + path: undefined //wimaController.waypointPath } } } diff --git a/src/FlightMap/qmldir b/src/FlightMap/qmldir index d7b3ba36b4badb4963e6926fa6f40149c974facf..e28a6d73cc6d13bc4bc2dd4b21958a5ec5d5dbf0 100644 --- a/src/FlightMap/qmldir +++ b/src/FlightMap/qmldir @@ -25,5 +25,6 @@ MissionItemIndicatorDrag 1.0 MissionItemIndicatorDrag.qml MissionItemView 1.0 MissionItemView.qml MissionLineView 1.0 MissionLineView.qml PlanMapItems 1.0 PlanMapItems.qml +WimaPlanMapItems 1.0 WimaPlanMapItems.qml PolygonEditor 1.0 PolygonEditor.qml VehicleMapItem 1.0 VehicleMapItem.qml diff --git a/src/Wima/WimaController.cc b/src/Wima/WimaController.cc index b8ccf8c8d92e318e5283041b50923e7ce8bae98a..a6e855ef5915753bf8b1c794d669e7f08e664513 100644 --- a/src/Wima/WimaController.cc +++ b/src/Wima/WimaController.cc @@ -204,6 +204,11 @@ void WimaController::containerDataValidChanged(bool valid) break; } +#ifdef QT_DEBUG + //qWarning("containerDataValidChanged(): count:"); + //qWarning() << planData.missionItems().count(); +#endif + QList tempMissionItems = planData.missionItems(); for (auto missionItem : tempMissionItems) @@ -220,6 +225,11 @@ void WimaController::containerDataValidChanged(bool valid) emit visualItemsChanged(); emit missionItemsChanged(); + +#ifdef QT_DEBUG + //qWarning("Mission Items count: "); + //qWarning() << _missionItems.count(); +#endif } diff --git a/src/Wima/WimaController.h b/src/Wima/WimaController.h index 0d7fc5f0d29d6cb32aa7cb221ed594426029299f..95079d50383eec8a51c42f5d1808f19df180fbf2 100644 --- a/src/Wima/WimaController.h +++ b/src/Wima/WimaController.h @@ -105,6 +105,6 @@ private: WimaServiceAreaData _serviceArea; // area for supplying WimaCorridorData _corridor; // corridor connecting opArea and serArea bool _localPlanDataValid; - QmlObjectListModel _missionItems; + QmlObjectListModel _missionItems; // all mission itmes generaded by wimaPlaner, displayed in flightView }; diff --git a/src/Wima/WimaPlanData.cc b/src/Wima/WimaPlanData.cc index 69ffd06c22c0b6cac31e70a18c7117394be81753..b379f4eb573d48bf9c166618f9f2712f71a81518 100644 --- a/src/Wima/WimaPlanData.cc +++ b/src/Wima/WimaPlanData.cc @@ -20,10 +20,12 @@ WimaPlanData::WimaPlanData(const WimaPlanData &other, QObject *parent) */ WimaPlanData &WimaPlanData::operator=(const WimaPlanData &other) { + // copy wima areas QList areaList = other.areaList(); _areaList.clear(); for (int i = 0; i < areaList.size(); i++) { const WimaAreaData *areaData = areaList[i]; + // determine area type and append if (areaData->type() == WimaJoinedAreaData::typeString) { this->append(*qobject_cast(areaData)); }else if (areaData->type() == WimaServiceAreaData::typeString) { @@ -35,6 +37,9 @@ WimaPlanData &WimaPlanData::operator=(const WimaPlanData &other) } } + // copy mission items + _missionItems = other.missionItems(); + return *this; }