dolphin/Source/Core/DolphinQt
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
..
Config 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
Debugger Merge pull request #9527 from sepalani/watch-items 2021-05-18 04:08:58 -04:00
FIFO Fixes to translatable strings 2021-05-20 11:35:01 +02:00
GameList DolphinQt: Fix latent build error on Windows 2021-04-12 18:16:56 +02:00
NetPlay NetPlay: Move NetSettings initialization to backend 2021-05-19 06:34:24 -04:00
QtUtils DolphinQt: fix Visual Studio warning about 'assignment within conditional expression' 2021-05-15 14:39:03 -05:00
Settings Implement Cursor Locking and new input focus checks for it 2021-05-27 10:31:12 +03:00
TAS Fix -Wsign-compare warnings 2020-11-21 02:08:09 +01:00
AboutDialog.cpp DolphinQt: Get rid of an extraneous colon in About dialog 2021-04-27 00:24:24 +02:00
AboutDialog.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
CMakeLists.txt Apple M1: Enable hardened runtime 2021-05-22 15:25:18 -07:00
CheatsManager.cpp CheatsManager: Use game information directly from SConfig, and only recreate widgets if game changes. 2021-06-06 21:56:34 +02:00
CheatsManager.h CheatsManager: Use game information directly from SConfig, and only recreate widgets if game changes. 2021-06-06 21:56:34 +02:00
ConvertDialog.cpp Frontends: Migrate logs over to fmt 2020-11-25 21:19:08 -05:00
ConvertDialog.h RVZ: Make m_rvz a template parameter 2020-06-17 13:48:45 +02:00
DiscordHandler.cpp name some threads 2020-08-22 17:22:07 -07:00
DiscordHandler.h DiscordHandler: Don't delay shutdown by up to 2s 2019-06-13 23:34:25 +02:00
DiscordJoinRequestDialog.cpp Externals: Fix include path for picojson and discord 2020-04-29 11:45:59 +02:00
DiscordJoinRequestDialog.h DolphinQt: clean up includes 2019-02-25 20:15:12 +00:00
DolphinEmu.entitlements Apple M1: Build, Analytics, and Memory Management 2021-05-22 15:25:17 -07:00
DolphinQt.manifest Fix malformed manifests 2019-11-11 11:47:10 +01:00
DolphinQt.rc Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
DolphinQt.vcxproj DolphinQt: Add separate Free Look tab for rotation 2021-03-17 20:58:33 -05:00
DolphinQt.vcxproj.user Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
GCMemcardCreateNewDialog.cpp Qt/GCMemcardCreateNewDialog: Use zero values for formatting instead of accessing g_SRAM. 2020-08-24 19:33:28 +02:00
GCMemcardCreateNewDialog.h GCMemcardManager: Add GUI to create new memory card. 2020-04-28 23:59:15 +02:00
GCMemcardManager.cpp Replace uses of cassert with Common/Assert.h 2021-04-02 10:18:18 -07:00
GCMemcardManager.h GCMemcardManager: Make columns sortable. 2021-01-28 22:01:33 +01:00
Host.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
Host.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
HotkeyScheduler.cpp Implement Cursor Locking and new input focus checks for it 2021-05-27 10:31:12 +03:00
HotkeyScheduler.h Implement Cursor Locking and new input focus checks for it 2021-05-27 10:31:12 +03:00
Info.plist.in Add new file format RVZ based on WIA 2020-06-17 13:47:34 +02:00
Main.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
MainWindow.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
MainWindow.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
MenuBar.cpp WiiUtils: Add helper functions to get emulated/real Bluetooth device 2021-04-12 18:16:56 +02:00
MenuBar.h Display a progress bar to notify the user, about the work is being done 2021-03-08 16:22:26 +00:00
NKitWarningDialog.cpp Add Metal Gear Solid: The Twin Snakes to NKit warning message 2020-10-04 12:22:27 +02:00
NKitWarningDialog.h DolphinQt: Show a warning when launching an NKit disc image 2020-07-29 21:05:57 +02:00
RenderWidget.cpp Implement Cursor Locking and new input focus checks for it 2021-05-27 10:31:12 +03:00
RenderWidget.h Implement Cursor Locking and new input focus checks for it 2021-05-27 10:31:12 +03:00
ResourcePackManager.cpp DolphinQt: setTabKeyNavigation(false) on QTableWidget and QTableView. 2020-02-06 20:48:45 -06:00
ResourcePackManager.h ResourcePacks: Fix various bugs 2019-02-11 11:05:35 +01:00
Resources.cpp DolphinQt: Replace QStringLiteral with alternatives where applicable 2019-07-30 09:06:03 -04:00
Resources.h Reformat repo to clang-format 7.0 rules 2019-05-06 18:48:04 +00:00
SearchBar.cpp Connect numerous QPushButtons to use clicked signal instead of pressed. This unifies UI behaviour more. 2019-07-24 00:18:58 +02:00
SearchBar.h DolphinQt: Make Ctrl+F show the game list search and select the search text if already open. Escape closes. 2019-03-21 17:06:16 -05:00
Settings.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
Settings.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
ToolBar.cpp Improved responsiveness when refreshing game list. 2020-10-01 22:10:16 +02:00
ToolBar.h DolphinQt: clean up includes 2019-02-25 20:15:12 +00:00
Translation.cpp rename Common/File to Common/IOFile 2021-01-27 14:29:48 -08:00
Translation.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
Updater.cpp Updater: Add code documentation Markdown file 2021-04-13 15:37:31 -07:00
Updater.h Updater: Add code documentation Markdown file 2021-04-13 15:37:31 -07:00
WiiUpdate.cpp Qt: Use ModalMessageBox everywhere 2019-03-04 21:53:02 +01:00
WiiUpdate.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
qt.conf Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00
qt.conf.win DolphinQt/CMake: Building on Windows 2019-05-12 00:05:10 +02:00
resource.h Move DolphinQt2 to DolphinQt 2018-07-07 00:48:38 +02:00