From 74a0e0def355c07b15e86bbf1a003483f2faf126 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Sat, 8 Dec 2018 11:42:27 -0800 Subject: [PATCH] Fix Rally Point loading --- src/MissionManager/RallyPointController.cc | 9 +++++---- src/MissionManager/RallyPointController.h | 2 +- src/MissionManager/RallyPointManager.cc | 21 ++++++++++++++++++--- src/MissionManager/RallyPointManager.h | 4 +++- 4 files changed, 27 insertions(+), 9 deletions(-) diff --git a/src/MissionManager/RallyPointController.cc b/src/MissionManager/RallyPointController.cc index 58a369aa4..589fb5f5d 100644 --- a/src/MissionManager/RallyPointController.cc +++ b/src/MissionManager/RallyPointController.cc @@ -203,15 +203,15 @@ QString RallyPointController::editorQml(void) const return _rallyPointManager->editorQml(); } -void RallyPointController::_managerLoadComplete(const QList rgPoints) +void RallyPointController::_managerLoadComplete(void) { // Fly view always reloads on _loadComplete // Plan view only reloads on _loadComplete if specifically requested if (_flyView || _itemsRequested) { _points.clearAndDeleteContents(); QObjectList pointList; - for (int i=0; ipoints().count(); i++) { + pointList.append(new RallyPoint(_rallyPointManager->points()[i], this)); } _points.swapObjectList(pointList); setDirty(false); @@ -224,7 +224,7 @@ void RallyPointController::_managerLoadComplete(const QList rgPo void RallyPointController::_managerSendComplete(bool error) { // Fly view always reloads after send - if (!error && !_flyView) { + if (!error && _flyView) { showPlanFromManagerVehicle(); } } @@ -317,6 +317,7 @@ bool RallyPointController::showPlanFromManagerVehicle (void) } else { qCDebug(RallyPointControllerLog) << "showPlanFromManagerVehicle: sync complete"; _itemsRequested = true; + _managerLoadComplete(); return false; } } diff --git a/src/MissionManager/RallyPointController.h b/src/MissionManager/RallyPointController.h index eff4b242e..95d1f0f13 100644 --- a/src/MissionManager/RallyPointController.h +++ b/src/MissionManager/RallyPointController.h @@ -61,7 +61,7 @@ signals: void loadComplete(void); private slots: - void _managerLoadComplete(const QList rgPoints); + void _managerLoadComplete(void); void _managerSendComplete(bool error); void _managerRemoveAllComplete(bool error); void _setFirstPointCurrent(void); diff --git a/src/MissionManager/RallyPointManager.cc b/src/MissionManager/RallyPointManager.cc index e0880cae6..0db0f7342 100644 --- a/src/MissionManager/RallyPointManager.cc +++ b/src/MissionManager/RallyPointManager.cc @@ -21,7 +21,7 @@ RallyPointManager::RallyPointManager(Vehicle* vehicle) connect(&_planManager, &PlanManager::inProgressChanged, this, &RallyPointManager::inProgressChanged); connect(&_planManager, &PlanManager::error, this, &RallyPointManager::error); connect(&_planManager, &PlanManager::removeAllComplete, this, &RallyPointManager::removeAllComplete); - connect(&_planManager, &PlanManager::sendComplete, this, &RallyPointManager::sendComplete); + connect(&_planManager, &PlanManager::sendComplete, this, &RallyPointManager::_sendComplete); connect(&_planManager, &PlanManager::newMissionItemsAvailable, this, &RallyPointManager::_planManagerLoadComplete); } @@ -45,8 +45,12 @@ void RallyPointManager::loadFromVehicle(void) void RallyPointManager::sendToVehicle(const QList& rgPoints) { - QList rallyItems; + _rgSendPoints.clear(); + for (const QGeoCoordinate& rallyPoint: rgPoints) { + _rgSendPoints.append(rallyPoint); + } + QList rallyItems; for (int i=0; i rgPoints); + void loadComplete (void); void inProgressChanged (bool inProgress); void error (int errorCode, const QString& errorMsg); void removeAllComplete (bool error); void sendComplete (bool error); private slots: + void _sendComplete (bool error); void _planManagerLoadComplete (bool removeAllRequested); protected: @@ -77,6 +78,7 @@ protected: Vehicle* _vehicle; PlanManager _planManager; QList _rgPoints; + QList _rgSendPoints; }; #endif -- 2.22.0