Commit 0c384ff0 authored by DonLakeFlyer's avatar DonLakeFlyer

Fix AutoPilotPlugin::setupCompleteChanged signalling

parent f4f20bb0
...@@ -61,6 +61,17 @@ bool AutoPilotPlugin::setupComplete(void) ...@@ -61,6 +61,17 @@ bool AutoPilotPlugin::setupComplete(void)
void AutoPilotPlugin::parametersReadyPreChecks(void) void AutoPilotPlugin::parametersReadyPreChecks(void)
{ {
_recalcSetupComplete(); _recalcSetupComplete();
// Connect signals in order to keep setupComplete up to date
foreach(const QVariant componentVariant, vehicleComponents()) {
VehicleComponent* component = qobject_cast<VehicleComponent*>(qvariant_cast<QObject *>(componentVariant));
if (component) {
connect(component, &VehicleComponent::setupCompleteChanged, this, &AutoPilotPlugin::_recalcSetupComplete);
} else {
qWarning() << "AutoPilotPlugin::_recalcSetupComplete Incorrectly typed VehicleComponent";
}
}
if (!_setupComplete) { if (!_setupComplete) {
qgcApp()->showMessage(tr("One or more vehicle components require setup prior to flight.")); qgcApp()->showMessage(tr("One or more vehicle components require setup prior to flight."));
......
...@@ -66,7 +66,7 @@ protected: ...@@ -66,7 +66,7 @@ protected:
FirmwarePlugin* _firmwarePlugin; FirmwarePlugin* _firmwarePlugin;
bool _setupComplete; bool _setupComplete;
private: private slots:
void _recalcSetupComplete(void); void _recalcSetupComplete(void);
}; };
......
...@@ -44,6 +44,7 @@ public: ...@@ -44,6 +44,7 @@ public:
const QVariantList& vehicleComponents(void) override; const QVariantList& vehicleComponents(void) override;
void parametersReadyPreChecks(void) override; void parametersReadyPreChecks(void) override;
QString prerequisiteSetup(VehicleComponent* component) const override; QString prerequisiteSetup(VehicleComponent* component) const override;
protected: protected:
bool _incorrectParameterVersion; ///< true: parameter version incorrect, setup not allowed bool _incorrectParameterVersion; ///< true: parameter version incorrect, setup not allowed
PX4AirframeLoader* _airframeFacts; PX4AirframeLoader* _airframeFacts;
...@@ -58,6 +59,7 @@ protected: ...@@ -58,6 +59,7 @@ protected:
MotorComponent* _motorComponent; MotorComponent* _motorComponent;
PX4TuningComponent* _tuningComponent; PX4TuningComponent* _tuningComponent;
SyslinkComponent* _syslinkComponent; SyslinkComponent* _syslinkComponent;
private: private:
QVariantList _components; QVariantList _components;
}; };
......
...@@ -56,7 +56,7 @@ public: ...@@ -56,7 +56,7 @@ public:
virtual void addSummaryQmlComponent(QQmlContext* context, QQuickItem* parent); virtual void addSummaryQmlComponent(QQmlContext* context, QQuickItem* parent);
/// @brief Returns an list of parameter names for which a change should cause the setupCompleteChanged /// @brief Returns an list of parameter names for which a change should cause the setupCompleteChanged
/// signal to be emitted. Last element is signalled by NULL. /// signal to be emitted.
virtual QStringList setupCompleteChangedTriggerList(void) const = 0; virtual QStringList setupCompleteChangedTriggerList(void) const = 0;
/// Should be called after the component is created (but not in constructor) to setup the /// Should be called after the component is created (but not in constructor) to setup the
......
...@@ -86,6 +86,7 @@ Rectangle { ...@@ -86,6 +86,7 @@ Rectangle {
text: setupComplete ? text: setupComplete ?
qsTr("Below you will find a summary of the settings for your vehicle. To the left are the setup menus for each component.") : qsTr("Below you will find a summary of the settings for your vehicle. To the left are the setup menus for each component.") :
qsTr("WARNING: Your vehicle requires setup prior to flight. Please resolve the items marked in red using the menu on the left.") qsTr("WARNING: Your vehicle requires setup prior to flight. Please resolve the items marked in red using the menu on the left.")
property bool setupComplete: QGroundControl.multiVehicleManager.activeVehicle ? QGroundControl.multiVehicleManager.activeVehicle.autopilot.setupComplete : false property bool setupComplete: QGroundControl.multiVehicleManager.activeVehicle ? QGroundControl.multiVehicleManager.activeVehicle.autopilot.setupComplete : false
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment