From a48d2306a82520ecfd56f1bad3e8464d038e2417 Mon Sep 17 00:00:00 2001 From: Valentin Platzgummer Date: Sun, 6 Oct 2019 23:29:07 +0200 Subject: [PATCH] trying to add visual items to flightMap --- qgroundcontrol.qrc | 2 +- src/FlightDisplay/FlightDisplayViewMap.qml | 8 +++----- src/FlightMap/MapItems/WimaPlanMapItems.qml | 18 +++++++++++++----- src/FlightMap/qmldir | 1 + src/Wima/WimaController.cc | 10 ++++++++++ src/Wima/WimaController.h | 2 +- src/Wima/WimaPlanData.cc | 5 +++++ 7 files changed, 34 insertions(+), 12 deletions(-) diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index e669249c1..c0ddbc6d9 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 c3060d00b..e03096290 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 e25dcbd1e..18dcbd21a 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 d7b3ba36b..e28a6d73c 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 b8ccf8c8d..a6e855ef5 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 0d7fc5f0d..95079d503 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 69ffd06c2..b379f4eb5 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; } -- 2.22.0