dolphin/Source/Core/DolphinQt/Config
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
..
ControllerInterface DolphinQt: resolve Qt5.15 deprecations 2020-08-23 13:57:05 -07:00
Graphics Port dump XFB option to Qt UI. 2021-05-27 12:48:36 +12:00
Mapping 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
ToolTipControls Add mixed comments to input code, make some tooltip clearer 2021-05-12 18:27:23 +03:00
ARCodeWidget.cpp ARCodeWidget: Take game ID and revision directly instead of through GameFile. 2021-06-06 21:23:17 +02:00
ARCodeWidget.h ARCodeWidget: Take game ID and revision directly instead of through GameFile. 2021-06-06 21:23:17 +02:00
CheatCodeEditor.cpp DolphinQt: Replace QStringLiteral with alternatives where applicable 2019-07-30 09:06:03 -04:00
CheatCodeEditor.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
CheatWarningWidget.cpp Connect numerous QPushButtons to use clicked signal instead of pressed. This unifies UI behaviour more. 2019-07-24 00:18:58 +02:00
CheatWarningWidget.h Mark files as non-executable 2019-06-02 12:31:40 +01:00
CommonControllersWidget.cpp DolphinQt: Move common controller interface logic to its own widget 2021-01-23 15:17:38 -06:00
CommonControllersWidget.h DolphinQt: Move common controller interface logic to its own widget 2021-01-23 15:17:38 -06:00
ControllersWindow.cpp DolphinQt: Move gamecube controller ui logic to its own widget 2021-01-27 12:02:39 -06:00
ControllersWindow.h DolphinQt: Move gamecube controller ui logic to its own widget 2021-01-27 12:02:39 -06:00
FilesystemWidget.cpp DiscIO: Move some code from DiscExtractor to new file DiscUtils 2021-03-09 20:34:24 +01:00
FilesystemWidget.h VolumeVerifier: Check hashes in Wii partitions 2019-04-09 14:18:45 +02:00
FreeLookWidget.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
FreeLookWidget.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
FreeLookWindow.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
FreeLookWindow.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
GameConfigEdit.cpp DolphinQt: Migrate QRegExp over to QRegularExpression 2021-01-13 05:07:29 -05:00
GameConfigEdit.h DolphinQt/GameConfigEdit: Remove unimplemented SetReadOnly() member function 2020-01-27 15:44:52 -05:00
GameConfigHighlighter.cpp Qt/GameConfigWidget: Complete overhaul 2019-01-26 00:41:22 +01:00
GameConfigHighlighter.h Qt/GameConfigWidget: Complete overhaul 2019-01-26 00:41:22 +01:00
GameConfigWidget.cpp Remove redundant "Emulation" from "DSP HLE Emulation" 2020-05-03 17:54:05 +02:00
GameConfigWidget.h DolphinQt/GameConfigWidget: Remove unimplemented EditUserConfig() member function 2020-01-27 15:46:52 -05:00
GamecubeControllersWidget.cpp DolphinQt: Move gamecube controller ui logic to its own widget 2021-01-27 12:02:39 -06:00
GamecubeControllersWidget.h DolphinQt: Move gamecube controller ui logic to its own widget 2021-01-27 12:02:39 -06:00
GeckoCodeWidget.cpp GeckoCodeWidget: Take game ID and revision directly instead of through GameFile. 2021-06-06 21:25:37 +02:00
GeckoCodeWidget.h GeckoCodeWidget: Take game ID and revision directly instead of through GameFile. 2021-06-06 21:25:37 +02:00
InfoWidget.cpp Qt: Re-add IOS version to the game info tab 2021-02-15 18:34:09 +01:00
InfoWidget.h Qt: Re-add IOS version to the game info tab 2021-02-15 18:34:09 +01:00
LogConfigWidget.cpp Common: Unify logging namespace with Common 2019-11-28 05:13:21 -05:00
LogConfigWidget.h DolphinQt: Add debug log option in GUI for debug builds 2019-05-08 14:47:34 +02:00
LogWidget.cpp Qt: Use better method of getting default monospace font 2020-09-15 04:48:44 -04:00
LogWidget.h Common: Unify logging namespace with Common 2019-11-28 05:13:21 -05:00
NewPatchDialog.cpp Fix bad memory references in NewPatchDialog 2020-12-29 14:31:05 -08:00
NewPatchDialog.h Fix bad memory references in NewPatchDialog 2020-12-29 14:31:05 -08:00
PatchesWidget.cpp Patches for Resident Evil 2/3 audio issues 2020-12-29 14:24:46 -08:00
PatchesWidget.h DolphinQt/PatchesWidget: Remove unused private member variable m_game 2018-07-06 19:58:51 -04:00
PropertiesDialog.cpp GeckoCodeWidget: Take game ID and revision directly instead of through GameFile. 2021-06-06 21:25:37 +02:00
PropertiesDialog.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
SettingsWindow.cpp DolphinQt: Make WiiPane connect itself to EmulationStateChanged 2019-10-27 21:26:35 +01:00
SettingsWindow.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
VerifyWidget.cpp DolphinQt: Disable verify button when emulation is running 2021-04-28 21:58:07 +02:00
VerifyWidget.h DolphinQt: Disable verify button when emulation is running 2021-04-28 21:58:07 +02:00
WiimoteControllersWidget.cpp WiiUtils: Add helper functions to get emulated/real Bluetooth device 2021-04-12 18:16:56 +02:00
WiimoteControllersWidget.h DolphinQt: Move wiimote controller ui logic to its own widget 2021-01-27 11:27:05 -06:00