dolphin/Source/Core/DolphinQt/Config/Mapping
Filoppi 83ea16f402 Qt: Fix IOWindow keeping a shared ptr to devices even after them being removed by the ControllerInterface
this prevented some devices from being recreated correctly, as they were exclusive (e.g. DInput Joysticks)

This is achieved by calling Settings::ReleaseDevices(), which releases all the UI devices shared ptrs.
If we are the host (Qt) thread, DevicesChanged() is now called in line, to avoid devices being hanged onto by the UI.
For this, I had to add a method to check whether we are the Host Thread to Qt.

Avoid calling ControllerInterface::RefreshDevices() from the CPU thread if the emulation is running
and we manually refresh devices from Qt, as that is not necessary anymore.

Refactored the way IOWindow lists devices to make it clearer and hold onto disconnected devices.
There were so many issues with the previous code:
-Devices changes would not be reflected until the window was re-opened
-If there was no default device, it would fail to select the device at index 0
-It could have crashed if we had 0 devices
-The default device was not highlighted as such
2021-06-07 11:48:30 +03:00
..
FreeLookGeneral.cpp DolphinQt: Move Free Look out of Graphics/Hotkey and into its own configuration window. Launched from a new menu option - "Free Look Settings". The HotKeyScheduler still calls the Free Look functionality to reduce the total number of threads 2020-12-24 13:49:25 -06:00
FreeLookGeneral.h DolphinQt: Move Free Look out of Graphics/Hotkey and into its own configuration window. Launched from a new menu option - "Free Look Settings". The HotKeyScheduler still calls the Free Look functionality to reduce the total number of threads 2020-12-24 13:49:25 -06:00
FreeLookRotation.cpp DolphinQt: Add separate Free Look tab for rotation 2021-03-17 20:58:33 -05:00
FreeLookRotation.h DolphinQt: Add separate Free Look tab for rotation 2021-03-17 20:58:33 -05:00
GCKeyboardEmu.cpp DolphinQt: Replace QStringLiteral with alternatives where applicable 2019-07-30 09:06:03 -04:00
GCKeyboardEmu.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
GCMicrophone.cpp Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
GCMicrophone.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
GCPadEmu.cpp DolphinQt: Move mapping indicators to top of UI. 2019-04-27 14:23:29 -05:00
GCPadEmu.h Qt/Mapping: Use QGridLayout in a few more places 2019-03-20 23:46:45 +01:00
GCPadWiiUConfigDialog.cpp GCPadWiiUConfigDialog: Update the adapter state dynamically 2019-05-29 18:28:24 +02:00
GCPadWiiUConfigDialog.h GCPadWiiUConfigDialog: Update the adapter state dynamically 2019-05-29 18:28:24 +02:00
Hotkey3D.cpp Re-add i18n comments that were lost in the DolphinWX removal 2018-09-08 15:58:15 +02:00
Hotkey3D.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
HotkeyControllerProfile.cpp Fix Hotkey Controller Profile display with boxes for each Wiimote 2020-04-28 15:55:53 +02:00
HotkeyControllerProfile.h Fix Hotkey Controller Profile display with boxes for each Wiimote 2020-04-28 15:55:53 +02:00
HotkeyDebugging.cpp Qt/Mapping: Use QGridLayout in a few more places 2019-03-20 23:46:45 +01:00
HotkeyDebugging.h Qt/Mapping: Use QGridLayout in a few more places 2019-03-20 23:46:45 +01:00
HotkeyGeneral.cpp Qt/Mapping: Use QGridLayout in a few more places 2019-03-20 23:46:45 +01:00
HotkeyGeneral.h Qt/Mapping: Use QGridLayout in a few more places 2019-03-20 23:46:45 +01:00
HotkeyGraphics.cpp DolphinQt: Move Free Look out of Graphics/Hotkey and into its own configuration window. Launched from a new menu option - "Free Look Settings". The HotKeyScheduler still calls the Free Look functionality to reduce the total number of threads 2020-12-24 13:49:25 -06:00
HotkeyGraphics.h Qt/Mapping: Use QGridLayout in a few more places 2019-03-20 23:46:45 +01:00
HotkeyStates.cpp Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
HotkeyStates.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
HotkeyStatesOther.cpp Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
HotkeyStatesOther.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
HotkeyTAS.cpp Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
HotkeyTAS.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
HotkeyWii.cpp Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
HotkeyWii.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
IOWindow.cpp Qt: Fix IOWindow keeping a shared ptr to devices even after them being removed by the ControllerInterface 2021-06-07 11:48:30 +03:00
IOWindow.h Qt: Fix IOWindow keeping a shared ptr to devices even after them being removed by the ControllerInterface 2021-06-07 11:48:30 +03:00
MappingButton.cpp Qt: simplify the preview of control mappings/expressions by removing their device path 2021-05-11 12:20:37 +03:00
MappingButton.h DolphinQt: Fix spacebar not activating output mapping buttons. 2019-11-03 18:17:51 -06:00
MappingCommon.cpp This removes a delay for input mapping. 2021-05-02 15:27:11 -04:00
MappingCommon.h rename InputCommon/ControllerInterface/Device to CoreDevice 2021-01-27 14:29:48 -08:00
MappingIndicator.cpp rename InputCommon/ControllerInterface/Device to CoreDevice 2021-01-27 14:29:48 -08:00
MappingIndicator.h Merge pull request #9162 from jordan-woyak/quaternion 2020-10-21 17:34:11 -04:00
MappingNumeric.cpp Qt: add tooltip to MappingBool 2021-05-12 18:27:24 +03:00
MappingNumeric.h InputCommon: Allow controller settings specified with input expresions. 2020-02-08 14:01:55 -06:00
MappingWidget.cpp DolphinQt: Use qOverload where applicable 2020-04-28 16:54:19 +02:00
MappingWidget.h InputCommon: Allow Wii remote extension to be set with an input expression. 2020-02-08 16:03:13 -06:00
MappingWindow.cpp Qt: Fix IOWindow keeping a shared ptr to devices even after them being removed by the ControllerInterface 2021-06-07 11:48:30 +03:00
MappingWindow.h rename InputCommon/ControllerInterface/Device to CoreDevice 2021-01-27 14:29:48 -08:00
WiimoteEmuExtension.cpp Motion Input: Add nunchuk support. 2019-12-04 23:21:26 +01:00
WiimoteEmuExtension.h WiimoteEmu: Implement "Drawsome" tablet. 2019-05-07 18:07:24 -05:00
WiimoteEmuExtensionMotionInput.cpp Motion Input: Add nunchuk support. 2019-12-04 23:21:26 +01:00
WiimoteEmuExtensionMotionInput.h Motion Input: Add nunchuk support. 2019-12-04 23:21:26 +01:00
WiimoteEmuExtensionMotionSimulation.cpp Motion Input: Add nunchuk support. 2019-12-04 23:21:26 +01:00
WiimoteEmuExtensionMotionSimulation.h Motion Input: Add nunchuk support. 2019-12-04 23:21:26 +01:00
WiimoteEmuGeneral.cpp DolphinQt: Use qOverload where applicable 2020-04-28 16:54:19 +02:00
WiimoteEmuGeneral.h InputCommon: Allow Wii remote extension to be set with an input expression. 2020-02-08 16:03:13 -06:00
WiimoteEmuMotionControl.cpp WiimoteEmu/DolphinQt: Rename "IR" to "Point" and eliminate redundant Forward/Backward mappings. 2019-05-08 20:27:41 -05:00
WiimoteEmuMotionControl.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
WiimoteEmuMotionControlIMU.cpp Wiimote Mapping UI: Motion Input tab: Rework mapping warning, add explanation of and button to open Alternate Input Sources window. 2019-10-27 15:59:36 +01:00
WiimoteEmuMotionControlIMU.h Wiimote Mapping UI: Motion Input tab: Rework mapping warning, add explanation of and button to open Alternate Input Sources window. 2019-10-27 15:59:36 +01:00