mirror of
https://github.com/shadps4-emu/shadPS4.git
synced 2026-04-26 00:05:58 +03:00
[PR #3461] [MERGED] Qt: enforce set order for kbm string mapping to prevent duplicate combo mappings #3488
Labels
No labels
Bloodborne
bug
contributor wanted
documentation
enhancement
frontend
good first issue
help wanted
linux
pull-request
question
release
verification progress
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/shadPS4#3488
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/shadps4-emu/shadPS4/pull/3461
Author: @rainmakerv3
Created: 8/26/2025
Status: ✅ Merged
Merged: 8/30/2025
Merged by: @squidbus
Base:
main← Head:kbm-mapping-order📝 Commits (4)
09cb5fbenforce set order for kbm string mapping to prevent duplicate combo mappings2867c30remove F keys for now268afbfre-add escape case to unmape57ec63cleanup📊 Changes
2 files changed (+181 additions, -153 deletions)
View changed files
📝
src/qt_gui/kbm_gui.cpp(+180 -152)📝
src/qt_gui/kbm_gui.h(+1 -1)📄 Description
The shadPS4 input engine doesn't allow duplicate mappings, so there is a check in the KBM remapping GUI to prevent this by checking for duplicate strings.
This however, can fail due to the fact that there is no enforced order for string insertion for combination mapping (for example, the GUI can either map "e,lcrtl" or "lctrl,e" when e and lcrtl are used in a combination mapping). Therefore, unique strings can exist for the same combination.
This PR changes the string container for mappings from a QSet to an indexed QMap so that all strings are always placed into the container in a specific order, preventing this from happening. The ordered strings look more organized as well
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.