From 768e716624d4117fd697e45baff142bf46cf877e Mon Sep 17 00:00:00 2001 From: TheLastRar Date: Fri, 21 Feb 2025 23:03:54 +0000 Subject: [PATCH] Qt/InputBindingWidget: Reload binds on controller (dis)connect --- pcsx2-qt/Settings/InputBindingWidget.cpp | 14 ++++++++++++++ pcsx2-qt/Settings/InputBindingWidget.h | 3 +++ 2 files changed, 17 insertions(+) diff --git a/pcsx2-qt/Settings/InputBindingWidget.cpp b/pcsx2-qt/Settings/InputBindingWidget.cpp index f0d3882e6c..41e41e88b2 100644 --- a/pcsx2-qt/Settings/InputBindingWidget.cpp +++ b/pcsx2-qt/Settings/InputBindingWidget.cpp @@ -23,6 +23,8 @@ InputBindingWidget::InputBindingWidget(QWidget* parent) : QPushButton(parent) { connect(this, &QPushButton::clicked, this, &InputBindingWidget::onClicked); + connect(g_emu_thread, &EmuThread::onInputDeviceConnected, this, &InputBindingWidget::onInputDeviceConnected); + connect(g_emu_thread, &EmuThread::onInputDeviceDisconnected, this, &InputBindingWidget::onInputDeviceDisconnected); } InputBindingWidget::InputBindingWidget( @@ -33,6 +35,8 @@ InputBindingWidget::InputBindingWidget( setMaximumWidth(225); connect(this, &QPushButton::clicked, this, &InputBindingWidget::onClicked); + connect(g_emu_thread, &EmuThread::onInputDeviceConnected, this, &InputBindingWidget::onInputDeviceConnected); + connect(g_emu_thread, &EmuThread::onInputDeviceDisconnected, this, &InputBindingWidget::onInputDeviceDisconnected); initialize(sif, bind_type, std::move(section_name), std::move(key_name)); } @@ -385,6 +389,16 @@ void InputBindingWidget::inputManagerHookCallback(InputBindingKey key, float val } } +void InputBindingWidget::onInputDeviceConnected(const QString& identifier, const QString& device_name) +{ + reloadBinding(); +} + +void InputBindingWidget::onInputDeviceDisconnected(const QString& identifier) +{ + reloadBinding(); +} + void InputBindingWidget::hookInputManager() { InputManager::SetHook([this](InputBindingKey key, float value) { diff --git a/pcsx2-qt/Settings/InputBindingWidget.h b/pcsx2-qt/Settings/InputBindingWidget.h index b68eab00c6..1f144d0cbb 100644 --- a/pcsx2-qt/Settings/InputBindingWidget.h +++ b/pcsx2-qt/Settings/InputBindingWidget.h @@ -39,6 +39,9 @@ protected Q_SLOTS: void onInputListenTimerTimeout(); void inputManagerHookCallback(InputBindingKey key, float value); + void onInputDeviceConnected(const QString& identifier, const QString& device_name); + void onInputDeviceDisconnected(const QString& identifier); + protected: enum : u32 {