summaryrefslogtreecommitdiffhomepage
path: root/logic/win32-shortcuts.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'logic/win32-shortcuts.cpp')
-rw-r--r--logic/win32-shortcuts.cpp81
1 files changed, 38 insertions, 43 deletions
diff --git a/logic/win32-shortcuts.cpp b/logic/win32-shortcuts.cpp
index 2099ce09..cb4f99b3 100644
--- a/logic/win32-shortcuts.cpp
+++ b/logic/win32-shortcuts.cpp
@@ -15,6 +15,7 @@
#include <QVariant>
#include <QDebug>
+#if 0
win_key const windows_key_mods[] {
{DIK_LCONTROL, Qt::Key_Control},
{DIK_RCONTROL, Qt::Key_Control},
@@ -25,6 +26,7 @@ win_key const windows_key_mods[] {
{DIK_LWIN, Qt::Key_Super_L},
{DIK_RWIN, Qt::Key_Super_R},
};
+#endif
static const win_key windows_key_sequences[] {
{ DIK_F1, Qt::Key_F1 },
@@ -39,6 +41,9 @@ static const win_key windows_key_sequences[] {
{ DIK_F10, Qt::Key_F10 },
{ DIK_F11, Qt::Key_F11 },
{ DIK_F12, Qt::Key_F12 },
+ { DIK_F13, Qt::Key_F13 },
+ { DIK_F14, Qt::Key_F14 },
+ { DIK_F15, Qt::Key_F15 },
{ DIK_LEFT, Qt::Key_Left },
{ DIK_RIGHT, Qt::Key_Right },
{ DIK_UP, Qt::Key_Up },
@@ -61,18 +66,6 @@ static const win_key windows_key_sequences[] {
{ DIK_MINUS, Qt::Key_Minus },
{ DIK_EQUALS, Qt::Key_Equal },
{ DIK_PERIOD, Qt::Key_Period },
- { DIK_F1, Qt::Key_F1 },
- { DIK_F2, Qt::Key_F2 },
- { DIK_F3, Qt::Key_F3 },
- { DIK_F4, Qt::Key_F4 },
- { DIK_F5, Qt::Key_F5 },
- { DIK_F6, Qt::Key_F6 },
- { DIK_F7, Qt::Key_F7 },
- { DIK_F8, Qt::Key_F8 },
- { DIK_F9, Qt::Key_F9 },
- { DIK_F10, Qt::Key_F10 },
- { DIK_F11, Qt::Key_F11 },
- { DIK_F12, Qt::Key_F12 },
{ DIK_0, Qt::Key_0 },
{ DIK_1, Qt::Key_1 },
{ DIK_2, Qt::Key_2 },
@@ -119,26 +112,26 @@ static const win_key windows_key_sequences[] {
{ DIK_PAUSE, Qt::Key_Pause},
{ DIK_NUMLOCK, Qt::Key_NumLock},
{ DIK_CAPSLOCK, Qt::Key_CapsLock},
-#define mod(x, y) static_cast<Qt::Key>(x | y)
- { DIK_NUMPAD0, mod(Qt::Key_0, Qt::KeypadModifier)},
- { DIK_NUMPAD0, mod(Qt::Key_0, Qt::KeypadModifier)},
- { DIK_NUMPAD1, mod(Qt::Key_1, Qt::KeypadModifier)},
- { DIK_NUMPAD2, mod(Qt::Key_2, Qt::KeypadModifier)},
- { DIK_NUMPAD3, mod(Qt::Key_3, Qt::KeypadModifier)},
- { DIK_NUMPAD4, mod(Qt::Key_4, Qt::KeypadModifier)},
- { DIK_NUMPAD5, mod(Qt::Key_5, Qt::KeypadModifier)},
- { DIK_NUMPAD6, mod(Qt::Key_6, Qt::KeypadModifier)},
- { DIK_NUMPAD7, mod(Qt::Key_7, Qt::KeypadModifier)},
- { DIK_NUMPAD8, mod(Qt::Key_8, Qt::KeypadModifier)},
- { DIK_NUMPAD9, mod(Qt::Key_9, Qt::KeypadModifier)},
- { DIK_NUMPADCOMMA, mod(Qt::Key_Comma, Qt::KeypadModifier)},
- { DIK_NUMPADENTER, mod(Qt::Key_Enter, Qt::KeypadModifier)},
- { DIK_NUMPADEQUALS, mod(Qt::Key_Equal, Qt::KeypadModifier)},
- { DIK_NUMPADMINUS, mod(Qt::Key_Minus, Qt::KeypadModifier)},
- { DIK_NUMPADPERIOD, mod(Qt::Key_Period, Qt::KeypadModifier)},
- { DIK_NUMPADPLUS, mod(Qt::Key_Plus, Qt::KeypadModifier)},
- { DIK_NUMPADSLASH, mod(Qt::Key_Slash, Qt::KeypadModifier)},
- { DIK_NUMPADSTAR, mod(Qt::Key_multiply, Qt::KeypadModifier)},
+#define key_mod(x, y) Qt::Key(int((x)) | int((y)))
+ { DIK_NUMPAD0, key_mod(Qt::Key_0, Qt::KeypadModifier)},
+ { DIK_NUMPAD0, key_mod(Qt::Key_0, Qt::KeypadModifier)},
+ { DIK_NUMPAD1, key_mod(Qt::Key_1, Qt::KeypadModifier)},
+ { DIK_NUMPAD2, key_mod(Qt::Key_2, Qt::KeypadModifier)},
+ { DIK_NUMPAD3, key_mod(Qt::Key_3, Qt::KeypadModifier)},
+ { DIK_NUMPAD4, key_mod(Qt::Key_4, Qt::KeypadModifier)},
+ { DIK_NUMPAD5, key_mod(Qt::Key_5, Qt::KeypadModifier)},
+ { DIK_NUMPAD6, key_mod(Qt::Key_6, Qt::KeypadModifier)},
+ { DIK_NUMPAD7, key_mod(Qt::Key_7, Qt::KeypadModifier)},
+ { DIK_NUMPAD8, key_mod(Qt::Key_8, Qt::KeypadModifier)},
+ { DIK_NUMPAD9, key_mod(Qt::Key_9, Qt::KeypadModifier)},
+ { DIK_NUMPADCOMMA, key_mod(Qt::Key_Comma, Qt::KeypadModifier)},
+ { DIK_NUMPADENTER, key_mod(Qt::Key_Enter, Qt::KeypadModifier)},
+ { DIK_NUMPADEQUALS, key_mod(Qt::Key_Equal, Qt::KeypadModifier)},
+ { DIK_NUMPADMINUS, key_mod(Qt::Key_Minus, Qt::KeypadModifier)},
+ { DIK_NUMPADPERIOD, key_mod(Qt::Key_Period, Qt::KeypadModifier)},
+ { DIK_NUMPADPLUS, key_mod(Qt::Key_Plus, Qt::KeypadModifier)},
+ { DIK_NUMPADSLASH, key_mod(Qt::Key_Slash, Qt::KeypadModifier)},
+ { DIK_NUMPADSTAR, key_mod(Qt::Key_multiply, Qt::KeypadModifier)},
};
bool win_key::to_qt(const Key& k, QKeySequence& qt_, Qt::KeyboardModifiers &mods)
@@ -158,23 +151,25 @@ bool win_key::to_qt(const Key& k, QKeySequence& qt_, Qt::KeyboardModifiers &mods
return false;
}
-bool win_key::from_qt(QKeySequence qt_, int& dik, Qt::KeyboardModifiers& mods)
+bool win_key::from_qt(const QKeySequence& qt_, int& dik, Qt::KeyboardModifiers& mods)
{
// CAVEAT don't use QVariant::toUInt() or conversion fails
- const unsigned qt = static_cast<unsigned>(QVariant(qt_).toInt());
- const unsigned our_mods = unsigned(qt & Qt::KeyboardModifierMask);
+ const unsigned qt = (unsigned)QVariant(qt_).toInt();
+ const unsigned our_mods = qt & (unsigned)Qt::KeyboardModifierMask;
+
+ if (qt == 0)
+ return false;
+ for (const win_key& wk : windows_key_sequences)
{
- for (const win_key& wk : windows_key_sequences)
+ if (unsigned(wk.qt) == qt)
{
- if (unsigned(wk.qt) == qt)
- {
- dik = wk.win;
- mods = Qt::NoModifier;
- return true;
- }
+ dik = wk.win;
+ mods = Qt::NoModifier;
+ return true;
}
}
+
{
const unsigned key = qt & ~Qt::KeyboardModifierMask;
for (const win_key& wk : windows_key_sequences)
@@ -182,7 +177,7 @@ bool win_key::from_qt(QKeySequence qt_, int& dik, Qt::KeyboardModifiers& mods)
if (unsigned(wk.qt) == key)
{
dik = wk.win;
- mods = static_cast<Qt::KeyboardModifiers>(our_mods);
+ mods = { (Qt::KeyboardModifier)our_mods };
return true;
}
}