From b0273cae1177cb27d8608d9587d46e1194e898cb Mon Sep 17 00:00:00 2001 From: DonLakeFlyer Date: Wed, 15 Mar 2017 12:12:53 -0700 Subject: [PATCH] Core plugin can determine Sensor pages to show --- src/AutoPilotPlugins/PX4/SensorsComponent.qml | 32 +++++++++++-------- src/api/QGCOptions.h | 31 +++++++++++++++--- 2 files changed, 45 insertions(+), 18 deletions(-) diff --git a/src/AutoPilotPlugins/PX4/SensorsComponent.qml b/src/AutoPilotPlugins/PX4/SensorsComponent.qml index 5de13849c..35d893d47 100644 --- a/src/AutoPilotPlugins/PX4/SensorsComponent.qml +++ b/src/AutoPilotPlugins/PX4/SensorsComponent.qml @@ -7,18 +7,18 @@ * ****************************************************************************/ - -import QtQuick 2.3 -import QtQuick.Controls 1.2 -import QtQuick.Controls.Styles 1.4 -import QtQuick.Dialogs 1.2 - -import QGroundControl.FactSystem 1.0 -import QGroundControl.FactControls 1.0 -import QGroundControl.Palette 1.0 -import QGroundControl.Controls 1.0 -import QGroundControl.ScreenTools 1.0 -import QGroundControl.Controllers 1.0 +import QtQuick 2.3 +import QtQuick.Controls 1.2 +import QtQuick.Controls.Styles 1.4 +import QtQuick.Dialogs 1.2 + +import QGroundControl 1.0 +import QGroundControl.FactSystem 1.0 +import QGroundControl.FactControls 1.0 +import QGroundControl.Palette 1.0 +import QGroundControl.Controls 1.0 +import QGroundControl.ScreenTools 1.0 +import QGroundControl.Controllers 1.0 SetupPage { id: sensorsPage @@ -336,6 +336,7 @@ SetupPage { width: parent.buttonWidth text: qsTr("Compass") indicatorGreen: cal_mag0_id.value != 0 + visible: QGroundControl.corePlugin.options.showSensorCalibrationCompass onClicked: { preCalibrationDialogType = "compass" @@ -349,6 +350,7 @@ SetupPage { width: parent.buttonWidth text: qsTr("Gyroscope") indicatorGreen: cal_gyro0_id.value != 0 + visible: QGroundControl.corePlugin.options.showSensorCalibrationGyro onClicked: { preCalibrationDialogType = "gyro" @@ -362,6 +364,7 @@ SetupPage { width: parent.buttonWidth text: qsTr("Accelerometer") indicatorGreen: cal_acc0_id.value != 0 + visible: QGroundControl.corePlugin.options.showSensorCalibrationAccel onClicked: { preCalibrationDialogType = "accel" @@ -376,6 +379,7 @@ SetupPage { text: qsTr("Level Horizon") indicatorGreen: sens_board_x_off.value != 0 || sens_board_y_off != 0 | sens_board_z_off != 0 enabled: cal_acc0_id.value != 0 && cal_gyro0_id.value != 0 + visible: QGroundControl.corePlugin.options.showSensorCalibrationLevel onClicked: { preCalibrationDialogType = "level" @@ -388,7 +392,7 @@ SetupPage { id: airspeedButton width: parent.buttonWidth text: qsTr("Airspeed") - visible: (controller.vehicle.fixedWing || controller.vehicle.vtol) && controller.getParameterFact(-1, "CBRK_AIRSPD_CHK").value != 162128 + visible: (controller.vehicle.fixedWing || controller.vehicle.vtol) && controller.getParameterFact(-1, "CBRK_AIRSPD_CHK").value != 162128 && QGroundControl.corePlugin.options.showSensorCalibrationAirspeed indicatorGreen: sens_dpres_off.value != 0 onClicked: { @@ -410,6 +414,8 @@ SetupPage { id: setOrientationsButton width: parent.buttonWidth text: qsTr("Set Orientations") + visible: QGroundControl.corePlugin.options.showSensorCalibrationOrient + onClicked: { setOrientationsDialogShowBoardOrientation = true showDialog(setOrientationsDialogComponent, qsTr("Set Orientations"), sensorsPage.showDialogDefaultWidth, StandardButton.Ok) diff --git a/src/api/QGCOptions.h b/src/api/QGCOptions.h index cfccc4dbc..9c5b54600 100644 --- a/src/api/QGCOptions.h +++ b/src/api/QGCOptions.h @@ -24,11 +24,16 @@ class QGCOptions : public QObject public: QGCOptions(QObject* parent = NULL); - Q_PROPERTY(bool combineSettingsAndSetup READ combineSettingsAndSetup CONSTANT) - Q_PROPERTY(double toolbarHeightMultiplier READ toolbarHeightMultiplier CONSTANT) - Q_PROPERTY(bool enablePlanViewSelector READ enablePlanViewSelector CONSTANT) - Q_PROPERTY(CustomInstrumentWidget* instrumentWidget READ instrumentWidget CONSTANT) - + Q_PROPERTY(bool combineSettingsAndSetup READ combineSettingsAndSetup CONSTANT) + Q_PROPERTY(double toolbarHeightMultiplier READ toolbarHeightMultiplier CONSTANT) + Q_PROPERTY(bool enablePlanViewSelector READ enablePlanViewSelector CONSTANT) + Q_PROPERTY(CustomInstrumentWidget* instrumentWidget READ instrumentWidget CONSTANT) + Q_PROPERTY(bool showSensorCalibrationCompass READ showSensorCalibrationCompass NOTIFY showSensorCalibrationCompassChanged) + Q_PROPERTY(bool showSensorCalibrationGyro READ showSensorCalibrationGyro NOTIFY showSensorCalibrationGyroChanged) + Q_PROPERTY(bool showSensorCalibrationAccel READ showSensorCalibrationAccel NOTIFY showSensorCalibrationAccelChanged) + Q_PROPERTY(bool showSensorCalibrationLevel READ showSensorCalibrationLevel NOTIFY showSensorCalibrationLevelChanged) + Q_PROPERTY(bool showSensorCalibrationAirspeed READ showSensorCalibrationAirspeed NOTIFY showSensorCalibrationAirspeedChanged) + Q_PROPERTY(bool showSensorCalibrationOrient READ showSensorCalibrationOrient NOTIFY showSensorCalibrationOrientChanged) /// Should QGC hide its settings menu and colapse it into one single menu (Settings and Vehicle Setup)? /// @return true if QGC should consolidate both menus into one. @@ -46,6 +51,22 @@ public: /// @return An alternate widget (see QGCInstrumentWidget.qml, the default widget) virtual CustomInstrumentWidget* instrumentWidget(); + /// By returning false you can hide the following sensor calibration pages + bool showSensorCalibrationCompass () const { return true; } + bool showSensorCalibrationGyro () const { return true; } + bool showSensorCalibrationAccel () const { return true; } + bool showSensorCalibrationLevel () const { return true; } + bool showSensorCalibrationAirspeed () const { return true; } + bool showSensorCalibrationOrient () const { return true; } + +signals: + void showSensorCalibrationCompassChanged (bool show); + void showSensorCalibrationGyroChanged (bool show); + void showSensorCalibrationAccelChanged (bool show); + void showSensorCalibrationLevelChanged (bool show); + void showSensorCalibrationAirspeedChanged (bool show); + void showSensorCalibrationOrientChanged (bool show); + private: CustomInstrumentWidget* _defaultInstrumentWidget; }; -- 2.22.0