From 35603b4bdf09bb6412b4f992ed0f2f4dde3ed686 Mon Sep 17 00:00:00 2001 From: Don Gagne Date: Tue, 27 Dec 2016 12:30:29 -0800 Subject: [PATCH] Correct handling of no GeoFence support --- qgroundcontrol.qrc | 2 +- src/FirmwarePlugin/APM/APMGeoFenceManager.cc | 15 ++++++++++----- .../{GeoFenceEditor.qml => NoGeoFenceEditor.qml} | 0 src/MissionManager/GeoFenceManager.h | 2 +- 4 files changed, 12 insertions(+), 7 deletions(-) rename src/FirmwarePlugin/{GeoFenceEditor.qml => NoGeoFenceEditor.qml} (100%) diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index 67666880e..514604357 100644 --- a/qgroundcontrol.qrc +++ b/qgroundcontrol.qrc @@ -167,6 +167,6 @@ src/comm/PX4MockLink.params - src/FirmwarePlugin/GeoFenceEditor.qml + src/FirmwarePlugin/NoGeoFenceEditor.qml diff --git a/src/FirmwarePlugin/APM/APMGeoFenceManager.cc b/src/FirmwarePlugin/APM/APMGeoFenceManager.cc index f65fb476c..f707bc32d 100644 --- a/src/FirmwarePlugin/APM/APMGeoFenceManager.cc +++ b/src/FirmwarePlugin/APM/APMGeoFenceManager.cc @@ -251,8 +251,9 @@ void APMGeoFenceManager::_parametersReady(void) if (!_firstParamLoadComplete) { _firstParamLoadComplete = true; - _fenceSupported = _vehicle->parameterManager()->parameterExists(FactSystem::defaultComponentId, QStringLiteral("FENCE_ACTION")) && - !qgcApp()->runningUnitTests(); + _fenceSupported = _vehicle->parameterManager()->parameterExists(FactSystem::defaultComponentId, _fenceTotalParam) && + _vehicle->parameterManager()->parameterExists(FactSystem::defaultComponentId, _fenceActionParam) && + !qgcApp()->runningUnitTests(); if (_fenceSupported) { QStringList paramNames; @@ -319,7 +320,11 @@ void APMGeoFenceManager::_circleRadiusRawValueChanged(QVariant value) QString APMGeoFenceManager::editorQml(void) const { - return _vehicle->multiRotor() ? - QStringLiteral("qrc:/FirmwarePlugin/APM/CopterGeoFenceEditor.qml") : - QStringLiteral("qrc:/FirmwarePlugin/APM/PlaneGeoFenceEditor.qml"); + if (_fenceSupported) { + return _vehicle->multiRotor() ? + QStringLiteral("qrc:/FirmwarePlugin/APM/CopterGeoFenceEditor.qml") : + QStringLiteral("qrc:/FirmwarePlugin/APM/PlaneGeoFenceEditor.qml"); + } else { + return QStringLiteral("qrc:/FirmwarePlugin/NoGeoFenceEditor.qml"); + } } diff --git a/src/FirmwarePlugin/GeoFenceEditor.qml b/src/FirmwarePlugin/NoGeoFenceEditor.qml similarity index 100% rename from src/FirmwarePlugin/GeoFenceEditor.qml rename to src/FirmwarePlugin/NoGeoFenceEditor.qml diff --git a/src/MissionManager/GeoFenceManager.h b/src/MissionManager/GeoFenceManager.h index c88de86dd..f676e4201 100644 --- a/src/MissionManager/GeoFenceManager.h +++ b/src/MissionManager/GeoFenceManager.h @@ -49,7 +49,7 @@ public: virtual QVariantList params (void) const { return QVariantList(); } virtual QStringList paramLabels (void) const { return QStringList(); } - virtual QString editorQml(void) const { return QStringLiteral("qrc:/FirmwarePlugin/GeoFenceEditor.qml"); } + virtual QString editorQml(void) const { return QStringLiteral("qrc:/FirmwarePlugin/NoGeoFenceEditor.qml"); } /// Error codes returned in error signal typedef enum { -- 2.22.0