diff --git a/src/AutoPilotPlugins/APM/APMSafetyComponent.h b/src/AutoPilotPlugins/APM/APMSafetyComponent.h index 805e97e..bf06820 100644 --- a/src/AutoPilotPlugins/APM/APMSafetyComponent.h +++ b/src/AutoPilotPlugins/APM/APMSafetyComponent.h @@ -45,7 +45,8 @@ public: QUrl setupSource(void) const final; QUrl summaryQmlSource(void) const final; QString prerequisiteSetup(void) const final; - + bool allowSetupWhileArmed(void) const final { return true; } + private: const QString _name; QVariantList _summaryItems; diff --git a/src/AutoPilotPlugins/APM/APMTuningComponent.h b/src/AutoPilotPlugins/APM/APMTuningComponent.h index 90fcfe5..ac18f0b 100644 --- a/src/AutoPilotPlugins/APM/APMTuningComponent.h +++ b/src/AutoPilotPlugins/APM/APMTuningComponent.h @@ -45,7 +45,8 @@ public: QUrl setupSource(void) const final; QUrl summaryQmlSource(void) const final; QString prerequisiteSetup(void) const final; - + bool allowSetupWhileArmed(void) const final { return true; } + private: const QString _name; QVariantList _summaryItems; diff --git a/src/AutoPilotPlugins/PX4/PX4TuningComponent.h b/src/AutoPilotPlugins/PX4/PX4TuningComponent.h index 89aeb40..599b287 100644 --- a/src/AutoPilotPlugins/PX4/PX4TuningComponent.h +++ b/src/AutoPilotPlugins/PX4/PX4TuningComponent.h @@ -34,18 +34,19 @@ public: PX4TuningComponent(Vehicle* vehicle, AutoPilotPlugin* autopilot, QObject* parent = NULL); // Virtuals from VehicleComponent - virtual QStringList setupCompleteChangedTriggerList(void) const; + QStringList setupCompleteChangedTriggerList(void) const final; // Virtuals from VehicleComponent - virtual QString name(void) const; - virtual QString description(void) const; - virtual QString iconResource(void) const; - virtual bool requiresSetup(void) const; - virtual bool setupComplete(void) const; - virtual QUrl setupSource(void) const; - virtual QUrl summaryQmlSource(void) const; - virtual QString prerequisiteSetup(void) const; - + QString name(void) const final; + QString description(void) const final; + QString iconResource(void) const final; + bool requiresSetup(void) const final; + bool setupComplete(void) const final; + QUrl setupSource(void) const final; + QUrl summaryQmlSource(void) const final; + QString prerequisiteSetup(void) const final; + bool allowSetupWhileArmed(void) const final { return true; } + private: const QString _name; }; diff --git a/src/AutoPilotPlugins/PX4/PX4TuningComponentCopter.qml b/src/AutoPilotPlugins/PX4/PX4TuningComponentCopter.qml index ae3e511..9ec2de8 100644 --- a/src/AutoPilotPlugins/PX4/PX4TuningComponentCopter.qml +++ b/src/AutoPilotPlugins/PX4/PX4TuningComponentCopter.qml @@ -27,7 +27,8 @@ import QtQuick.Controls 1.4 import QGroundControl.Controls 1.0 FactSliderPanel { - anchors.fill: parent + anchors.fill: parent + panelTitle: "Tuning" sliderModel: ListModel { ListElement { diff --git a/src/AutoPilotPlugins/PX4/SafetyComponent.h b/src/AutoPilotPlugins/PX4/SafetyComponent.h index 9cbf37e..77208b6 100644 --- a/src/AutoPilotPlugins/PX4/SafetyComponent.h +++ b/src/AutoPilotPlugins/PX4/SafetyComponent.h @@ -39,18 +39,19 @@ public: SafetyComponent(Vehicle* vehicle, AutoPilotPlugin* autopilot, QObject* parent = NULL); // Virtuals from VehicleComponent - virtual QStringList setupCompleteChangedTriggerList(void) const; + QStringList setupCompleteChangedTriggerList(void) const; // Virtuals from VehicleComponent - virtual QString name(void) const; - virtual QString description(void) const; - virtual QString iconResource(void) const; - virtual bool requiresSetup(void) const; - virtual bool setupComplete(void) const; - virtual QUrl setupSource(void) const; - virtual QUrl summaryQmlSource(void) const; - virtual QString prerequisiteSetup(void) const; - + QString name(void) const final; + QString description(void) const final; + QString iconResource(void) const final; + bool requiresSetup(void) const final; + bool setupComplete(void) const final; + QUrl setupSource(void) const final; + QUrl summaryQmlSource(void) const final; + QString prerequisiteSetup(void) const final; + bool allowSetupWhileArmed(void) const final { return true; } + private: const QString _name; QVariantList _summaryItems; diff --git a/src/VehicleSetup/SetupView.qml b/src/VehicleSetup/SetupView.qml index fb030cd..cb4ee37 100644 --- a/src/VehicleSetup/SetupView.qml +++ b/src/VehicleSetup/SetupView.qml @@ -101,7 +101,7 @@ Rectangle { function showVehicleComponentPanel(vehicleComponent) { - if (multiVehicleManager.activeVehicle.armed) { + if (multiVehicleManager.activeVehicle.armed && !vehicleComponent.allowSetupWhileArmed) { _messagePanelText = _armedVehicleText panelLoader.sourceComponent = messagePanelComponent } else { diff --git a/src/VehicleSetup/VehicleComponent.cc b/src/VehicleSetup/VehicleComponent.cc index 4331692..a011634 100644 --- a/src/VehicleSetup/VehicleComponent.cc +++ b/src/VehicleSetup/VehicleComponent.cc @@ -73,3 +73,9 @@ void VehicleComponent::_triggerUpdated(QVariant /*value*/) { emit setupCompleteChanged(setupComplete()); } + +bool VehicleComponent::allowSetupWhileArmed(void) const +{ + // Default is to not allow setup while armed + return false; +} diff --git a/src/VehicleSetup/VehicleComponent.h b/src/VehicleSetup/VehicleComponent.h index 3e4fba2..7a2f9fc 100644 --- a/src/VehicleSetup/VehicleComponent.h +++ b/src/VehicleSetup/VehicleComponent.h @@ -42,14 +42,15 @@ class VehicleComponent : public QObject { Q_OBJECT - Q_PROPERTY(QString name READ name CONSTANT) - Q_PROPERTY(QString description READ description CONSTANT) - Q_PROPERTY(bool requiresSetup READ requiresSetup CONSTANT) - Q_PROPERTY(bool setupComplete READ setupComplete STORED false NOTIFY setupCompleteChanged) - Q_PROPERTY(QString iconResource READ iconResource CONSTANT) - Q_PROPERTY(QUrl setupSource READ setupSource CONSTANT) - Q_PROPERTY(QUrl summaryQmlSource READ summaryQmlSource CONSTANT) - Q_PROPERTY(QString prerequisiteSetup READ prerequisiteSetup) + Q_PROPERTY(QString name READ name CONSTANT) + Q_PROPERTY(QString description READ description CONSTANT) + Q_PROPERTY(bool requiresSetup READ requiresSetup CONSTANT) + Q_PROPERTY(bool setupComplete READ setupComplete STORED false NOTIFY setupCompleteChanged) + Q_PROPERTY(QString iconResource READ iconResource CONSTANT) + Q_PROPERTY(QUrl setupSource READ setupSource CONSTANT) + Q_PROPERTY(QUrl summaryQmlSource READ summaryQmlSource CONSTANT) + Q_PROPERTY(QString prerequisiteSetup READ prerequisiteSetup CONSTANT) + Q_PROPERTY(bool allowSetupWhileArmed READ allowSetupWhileArmed CONSTANT) public: VehicleComponent(Vehicle* vehicle, AutoPilotPlugin* autopilot, QObject* parent = NULL); @@ -63,6 +64,9 @@ public: virtual QUrl setupSource(void) const = 0; virtual QUrl summaryQmlSource(void) const = 0; virtual QString prerequisiteSetup(void) const = 0; + + // @return true: Setup panel can be shown while vehicle is armed + virtual bool allowSetupWhileArmed(void) const; virtual void addSummaryQmlComponent(QQmlContext* context, QQuickItem* parent);