From 3363879c547c79744f2d259513feda88e83c603e Mon Sep 17 00:00:00 2001 From: Nate Weibley Date: Thu, 19 Jan 2017 12:37:15 -0500 Subject: [PATCH] Defer joystick probe until after MainWindow is created --- src/Joystick/JoystickManager.cc | 3 +++ src/Joystick/JoystickManager.h | 3 +++ src/QGCApplication.cc | 3 +++ 3 files changed, 9 insertions(+) diff --git a/src/Joystick/JoystickManager.cc b/src/Joystick/JoystickManager.cc index 1ef0fc6..a8d3f6f 100644 --- a/src/Joystick/JoystickManager.cc +++ b/src/Joystick/JoystickManager.cc @@ -53,7 +53,10 @@ void JoystickManager::setToolbox(QGCToolbox *toolbox) _multiVehicleManager = _toolbox->multiVehicleManager(); QQmlEngine::setObjectOwnership(this, QQmlEngine::CppOwnership); +} +void JoystickManager::discoverJoysticks() +{ #ifdef __sdljoystick__ _name2JoystickMap = JoystickSDL::discover(_multiVehicleManager); #elif defined(__android__) diff --git a/src/Joystick/JoystickManager.h b/src/Joystick/JoystickManager.h index 26cf009..8460b75 100644 --- a/src/Joystick/JoystickManager.h +++ b/src/Joystick/JoystickManager.h @@ -48,6 +48,9 @@ public: // Override from QGCTool virtual void setToolbox(QGCToolbox *toolbox); +public slots: + void discoverJoysticks(); + signals: void activeJoystickChanged(Joystick* joystick); void activeJoystickNameChanged(const QString& name); diff --git a/src/QGCApplication.cc b/src/QGCApplication.cc index 8e22955..d436f68 100644 --- a/src/QGCApplication.cc +++ b/src/QGCApplication.cc @@ -429,6 +429,9 @@ bool QGCApplication::_initForNormalAppBoot(void) // Load known link configurations toolbox()->linkManager()->loadLinkConfigurationList(); + // Probe for joysticks - TODO: manage on a timer or use events to deal with hotplug + toolbox()->joystickManager()->discoverJoysticks(); + if (_settingsUpgraded) { settings.clear(); settings.setValue(_settingsVersionKey, QGC_SETTINGS_VERSION);