From 24b1fb7b30fba98e624b26c4d7e63bcbea376525 Mon Sep 17 00:00:00 2001 From: Jeffrey Pfau Date: Sun, 31 May 2015 13:38:40 -0700 Subject: [PATCH] Qt: Fix some button binding bugs --- src/platform/qt/ShortcutController.cpp | 4 ++-- src/platform/qt/ShortcutView.cpp | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/platform/qt/ShortcutController.cpp b/src/platform/qt/ShortcutController.cpp index f93a00d7e..897f99ad1 100644 --- a/src/platform/qt/ShortcutController.cpp +++ b/src/platform/qt/ShortcutController.cpp @@ -224,11 +224,11 @@ void ShortcutController::updateButton(const QModelIndex& index, int button) { } ShortcutItem* item = itemAt(index); int oldButton = item->button(); - item->setButton(button); if (oldButton >= 0) { m_buttons.take(oldButton); } updateAxis(index, -1, GamepadAxisEvent::NEUTRAL); + item->setButton(button); if (button >= 0) { m_buttons[button] = item; } @@ -249,7 +249,6 @@ void ShortcutController::updateAxis(const QModelIndex& index, int axis, GamepadA ShortcutItem* item = itemAt(index); int oldAxis = item->axis(); GamepadAxisEvent::Direction oldDirection = item->direction(); - item->setAxis(axis, direction); if (oldAxis >= 0) { m_axes.take(qMakePair(oldAxis, oldDirection)); } @@ -257,6 +256,7 @@ void ShortcutController::updateAxis(const QModelIndex& index, int axis, GamepadA updateButton(index, -1); m_axes[qMakePair(axis, direction)] = item; } + item->setAxis(axis, direction); if (m_config) { char d = '\0'; if (direction == GamepadAxisEvent::POSITIVE) { diff --git a/src/platform/qt/ShortcutView.cpp b/src/platform/qt/ShortcutView.cpp index a73b08954..c1c6a25d3 100644 --- a/src/platform/qt/ShortcutView.cpp +++ b/src/platform/qt/ShortcutView.cpp @@ -61,11 +61,15 @@ void ShortcutView::load(const QModelIndex& index) { m_ui.gamepadButton->click(); } if (m_ui.gamepadButton->isChecked()) { + bool blockSignals = m_ui.keyEdit->blockSignals(true); m_ui.keyEdit->setFocus(); m_ui.keyEdit->setValueButton(-1); // There are no default bindings + m_ui.keyEdit->blockSignals(blockSignals); } else { + bool blockSignals = m_ui.keySequenceEdit->blockSignals(true); m_ui.keySequenceEdit->setFocus(); m_ui.keySequenceEdit->setKeySequence(sequence); + m_ui.keySequenceEdit->blockSignals(blockSignals); } }