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 {