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 {