diff options
Diffstat (limited to 'opentrack')
-rw-r--r-- | opentrack/shortcuts.cpp | 15 | ||||
-rw-r--r-- | opentrack/shortcuts.h | 4 |
2 files changed, 13 insertions, 6 deletions
diff --git a/opentrack/shortcuts.cpp b/opentrack/shortcuts.cpp index d68da30e..81393ae3 100644 --- a/opentrack/shortcuts.cpp +++ b/opentrack/shortcuts.cpp @@ -132,18 +132,25 @@ void Shortcuts::bind_keyboard_shortcut(K &key, key_opts& k) key->setShortcut(QKeySequence::UnknownKey); } - if (k.keycode) + if (k.keycode != "") { - key->setShortcut(QKeySequence(k.keycode)); + key->setShortcut(QKeySequence::fromString(k.keycode, QKeySequence::PortableText)); key->setEnabled(); } } #else key = K(); int idx = 0; + QKeySequence seq;; + + if (k.keycode == "") + code = QKeySequence(Qt::Key_unknown); + else + code = QKeySequence::fromString(k.keycode, QKeySequence::PortableText) + Qt::KeyboardModifiers mods = Qt::NoModifier; - if (k.keycode != Qt::Key_unknown) - win_key::from_qt(QKeySequence(k.keycode), idx, mods); + if (code != Qt::Key_unknown) + win_key::from_qt(code, idx, mods); key.shift = !!(mods & Qt::ShiftModifier); key.alt = !!(mods & Qt::AltModifier); key.ctrl = !!(mods & Qt::ControlModifier); diff --git a/opentrack/shortcuts.h b/opentrack/shortcuts.h index 6a9a6f77..2d7fec54 100644 --- a/opentrack/shortcuts.h +++ b/opentrack/shortcuts.h @@ -27,10 +27,10 @@ using namespace options; extern QList<QString> global_key_sequences; struct key_opts { - value<int> keycode; + value<QString> keycode; key_opts(pbundle b, const QString& name) : - keycode(b, QString("keycode-%1").arg(name), 0) + keycode(b, QString("keycode-%1").arg(name), "") {} }; |