diff --git a/qgroundcontrol.qrc b/qgroundcontrol.qrc index 67666880e016e32d2f144d97b061560e079c572f..5146043574fe99576295dbb228c75a365e702151 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 f65fb476ce472b54eb842ae918b984ee39e57e25..f707bc32da80097fa4b6d816bb059dc63baac057 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 c88de86dd6d5bebe1d3a47e972e8ffab5c84ed88..f676e42010af54acbb9cda2c9d5e6da521aa751b 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 {