Allow any character(s) as a key in key binding.

Authored by mglb on May 24 2018, 12:47 PM.

Description

Allow any character(s) as a key in key binding.

Summary:
The key (the part before modifiers) is interpreted by QKeySequence.
For special keys (everything except printable characters), it uses names
from Qt::Key without Key_ prefix. For character keys, it uses the
character itself, and it is not possible to use e.g. Comma. For this
reason limited set of characters limits possible key bindings.

BUG: 385380
FIXED-IN: 18.08

Test Plan:

  • In profile's key bindings settings (or your keysym file) create entry:
key ,-Shift+Ctrl-Alt+Ansi : "Hello from keysym"
  • Change -Alt to +Alt if you have a conflict. Do not change shift (the shortcut would trigger on < instead of ,). You can also use e.g. `;'[]= instead of ,. AltGr+letter works too, so ą, á, etc. can be used.
  • Save and close settings
  • Press Ctrl+,

Expected result: "Hello from keysym" is typed

Actual result:

  • the key binding does not work
  • empty rows appear in key bindings table

Reviewers: Konsole, hindenburg

Reviewed By: Konsole, hindenburg

Subscribers: hindenburg, konsole-devel, Konsole

Tags: Konsole

Differential Revision: https://phabricator.kde.org/D13081

Details