Browse Source

Merge pull request #6309 from DonLakeFlyer/FlightModesChanged

Allow flight modes to differ from normal to advanced ui mode
QGC4.4
Don Gagne 7 years ago committed by GitHub
parent
commit
c6679b6ad1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 3
      src/FirmwarePlugin/FirmwarePlugin.h
  2. 3
      src/Vehicle/Vehicle.cc
  3. 3
      src/Vehicle/Vehicle.h
  4. 13
      src/ui/toolbar/ModeIndicator.qml

3
src/FirmwarePlugin/FirmwarePlugin.h

@ -79,7 +79,8 @@ public: @@ -79,7 +79,8 @@ public:
/// free when no longer needed.
virtual QList<VehicleComponent*> componentsForVehicle(AutoPilotPlugin* vehicle);
/// Returns the list of available flight modes
/// Returns the list of available flight modes. Flight modes can be different in normal/advanced ui mode.
/// Call will be made again if advanced mode changes.
virtual QStringList flightModes(Vehicle* vehicle) {
Q_UNUSED(vehicle);
return QStringList();

3
src/Vehicle/Vehicle.cc

@ -418,6 +418,9 @@ void Vehicle::_commonInit(void) @@ -418,6 +418,9 @@ void Vehicle::_commonInit(void)
connect(_settingsManager->appSettings()->offlineEditingCruiseSpeed(), &Fact::rawValueChanged, this, &Vehicle::_offlineCruiseSpeedSettingChanged);
connect(_settingsManager->appSettings()->offlineEditingHoverSpeed(), &Fact::rawValueChanged, this, &Vehicle::_offlineHoverSpeedSettingChanged);
// Flight modes can differ based on advanced mode
connect(_toolbox->corePlugin(), &QGCCorePlugin::showAdvancedUIChanged, this, &Vehicle::flightModesChanged);
// Build FactGroup object model
_addFact(&_rollFact, _rollFactName);

3
src/Vehicle/Vehicle.h

@ -315,7 +315,7 @@ public: @@ -315,7 +315,7 @@ public:
Q_PROPERTY(bool armed READ armed WRITE setArmed NOTIFY armedChanged)
Q_PROPERTY(bool autoDisarm READ autoDisarm NOTIFY autoDisarmChanged)
Q_PROPERTY(bool flightModeSetAvailable READ flightModeSetAvailable CONSTANT)
Q_PROPERTY(QStringList flightModes READ flightModes CONSTANT)
Q_PROPERTY(QStringList flightModes READ flightModes NOTIFY flightModesChanged)
Q_PROPERTY(QString flightMode READ flightMode WRITE setFlightMode NOTIFY flightModeChanged)
Q_PROPERTY(bool hilMode READ hilMode WRITE setHilMode NOTIFY hilModeChanged)
Q_PROPERTY(QmlObjectListModel* trajectoryPoints READ trajectoryPoints CONSTANT)
@ -860,6 +860,7 @@ signals: @@ -860,6 +860,7 @@ signals:
void telemetryLNoiseChanged (int value);
void telemetryRNoiseChanged (int value);
void autoDisarmChanged (void);
void flightModesChanged (void);
void firmwareVersionChanged(void);
void firmwareCustomVersionChanged(void);

13
src/ui/toolbar/ModeIndicator.qml

@ -24,7 +24,10 @@ Item { @@ -24,7 +24,10 @@ Item {
anchors.bottom: parent.bottom
width: flightModeSelector.width
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property var _activeVehicle: QGroundControl.multiVehicleManager.activeVehicle
property var _flightModes: _activeVehicle ? _activeVehicle.flightModes : [ ]
on_FlightModesChanged: flightModeSelector.updateFlightModesMenu()
QGCLabel {
id: flightModeSelector
@ -50,18 +53,14 @@ Item { @@ -50,18 +53,14 @@ Item {
}
flightModesMenuItems.length = 0
// Add new items
for (var i = 0; i < _activeVehicle.flightModes.length; i++) {
var menuItem = flightModeMenuItemComponent.createObject(null, { "text": _activeVehicle.flightModes[i] })
for (var i = 0; i < _flightModes.length; i++) {
var menuItem = flightModeMenuItemComponent.createObject(null, { "text": _flightModes[i] })
flightModesMenuItems.push(menuItem)
flightModesMenu.insertItem(i, menuItem)
}
}
}
Component.onCompleted: flightModeSelector.updateFlightModesMenu()
Connections {
target: QGroundControl.multiVehicleManager
onActiveVehicleChanged: flightModeSelector.updateFlightModesMenu()
}
MouseArea {
visible: _activeVehicle && _activeVehicle.flightModeSetAvailable
anchors.fill: parent

Loading…
Cancel
Save