From 4e0351932ecba4e4b4ac267fd5b4e7d9ae9040f5 Mon Sep 17 00:00:00 2001 From: Jacob Walser Date: Wed, 20 Dec 2017 11:13:48 -0500 Subject: [PATCH] Bugfix joystick input handling with multi-vehicle scenario --- src/Vehicle/Vehicle.cc | 16 ++++++---------- src/Vehicle/Vehicle.h | 1 - 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/Vehicle/Vehicle.cc b/src/Vehicle/Vehicle.cc index 7aed3cdd8..a485ff1f6 100644 --- a/src/Vehicle/Vehicle.cc +++ b/src/Vehicle/Vehicle.cc @@ -182,7 +182,8 @@ Vehicle::Vehicle(LinkInterface* link, { _addLink(link); - connect(_joystickManager, &JoystickManager::activeJoystickChanged, this, &Vehicle::_activeJoystickChanged); + connect(_joystickManager, &JoystickManager::activeJoystickChanged, this, &Vehicle::_loadSettings); + connect(qgcApp()->toolbox()->multiVehicleManager(), &MultiVehicleManager::activeVehicleAvailableChanged, this, &Vehicle::_loadSettings); _mavlink = _toolbox->mavlinkProtocol(); @@ -230,7 +231,6 @@ Vehicle::Vehicle(LinkInterface* link, connect(_mav, SIGNAL(attitudeChanged (UASInterface*,double,double,double,quint64)), this, SLOT(_updateAttitude(UASInterface*, double, double, double, quint64))); connect(_mav, SIGNAL(attitudeChanged (UASInterface*,int,double,double,double,quint64)), this, SLOT(_updateAttitude(UASInterface*,int,double, double, double, quint64))); - _loadSettings(); // Ask the vehicle for protocol version info. sendMavCommand(MAV_COMP_ID_ALL, // Don't know default component id yet. @@ -1611,6 +1611,10 @@ int Vehicle::manualControlReservedButtonCount(void) void Vehicle::_loadSettings(void) { + if (!_active) { + return; + } + QSettings settings; settings.beginGroup(QString(_settingsGroup).arg(_id)); @@ -1669,12 +1673,6 @@ QStringList Vehicle::joystickModes(void) return list; } -void Vehicle::_activeJoystickChanged(void) -{ - _loadSettings(); - _startJoystick(true); -} - bool Vehicle::joystickEnabled(void) { return _joystickEnabled; @@ -1713,8 +1711,6 @@ void Vehicle::setActive(bool active) _active = active; emit activeChanged(_active); } - - _startJoystick(_active); } QGeoCoordinate Vehicle::homePosition(void) diff --git a/src/Vehicle/Vehicle.h b/src/Vehicle/Vehicle.h index 5c68214cb..6ea72f1d2 100644 --- a/src/Vehicle/Vehicle.h +++ b/src/Vehicle/Vehicle.h @@ -870,7 +870,6 @@ private slots: void _geoFenceLoadComplete(void); void _rallyPointLoadComplete(void); void _sendMavCommandAgain(void); - void _activeJoystickChanged(void); void _clearTrajectoryPoints(void); void _clearCameraTriggerPoints(void); void _updateDistanceToHome(void); -- 2.22.0