mirror of
https://github.com/swift-project/pilotclient.git
synced 2026-04-25 10:15:43 +08:00
Ref T650, added more hotkeys such as OEM keys
* based on http://www.kbdlayout.info/ * OEM key solves accent / dead key issue for most cases * Mac/Linux parts still missing
This commit is contained in:
@@ -356,7 +356,7 @@ namespace BlackGui
|
|||||||
|
|
||||||
void CHotkeyDialog::advancedKeyChanged(int oldIndex, int newIndex)
|
void CHotkeyDialog::advancedKeyChanged(int oldIndex, int newIndex)
|
||||||
{
|
{
|
||||||
CKeySelectionBox *ksb = qobject_cast<CKeySelectionBox *>(sender());
|
const CKeySelectionBox *ksb = qobject_cast<CKeySelectionBox *>(sender());
|
||||||
Q_ASSERT(ksb);
|
Q_ASSERT(ksb);
|
||||||
|
|
||||||
if (ksb->itemData(oldIndex).canConvert<CKeyboardKey>() && ksb->itemData(newIndex).canConvert<CKeyboardKey>())
|
if (ksb->itemData(oldIndex).canConvert<CKeyboardKey>() && ksb->itemData(newIndex).canConvert<CKeyboardKey>())
|
||||||
|
|||||||
@@ -78,7 +78,24 @@ namespace BlackInput
|
|||||||
{ XK_Escape, Key_Esc },
|
{ XK_Escape, Key_Esc },
|
||||||
{ XK_space, Key_Space },
|
{ XK_space, Key_Space },
|
||||||
{ XK_dead_grave, Key_DeadGrave },
|
{ XK_dead_grave, Key_DeadGrave },
|
||||||
{ XK_comma, Key_Comma },
|
{ XK_comma, Key_Comma }
|
||||||
|
|
||||||
|
/** fixme Missing ones
|
||||||
|
Key_Insert,
|
||||||
|
Key_Delete,
|
||||||
|
Key_Esc = 27,
|
||||||
|
Key_Space = 32,
|
||||||
|
CKeyboardKey(Key_NumpadEqual),
|
||||||
|
CKeyboardKey(Key_OEM1),
|
||||||
|
CKeyboardKey(Key_OEM2),
|
||||||
|
CKeyboardKey(Key_OEM3),
|
||||||
|
CKeyboardKey(Key_OEM4),
|
||||||
|
CKeyboardKey(Key_OEM5),
|
||||||
|
CKeyboardKey(Key_OEM6),
|
||||||
|
CKeyboardKey(Key_OEM7),
|
||||||
|
CKeyboardKey(Key_OEM8),
|
||||||
|
CKeyboardKey(Key_OEM102)
|
||||||
|
**/
|
||||||
};
|
};
|
||||||
|
|
||||||
CKeyboardLinux::CKeyboardLinux(QObject *parent) :
|
CKeyboardLinux::CKeyboardLinux(QObject *parent) :
|
||||||
@@ -106,7 +123,7 @@ namespace BlackInput
|
|||||||
{
|
{
|
||||||
QDir eventFiles(dir, QLatin1String("event*"), QDir::Name, QDir::System);
|
QDir eventFiles(dir, QLatin1String("event*"), QDir::Name, QDir::System);
|
||||||
|
|
||||||
foreach(QFileInfo fileInfo, eventFiles.entryInfoList())
|
foreach (QFileInfo fileInfo, eventFiles.entryInfoList())
|
||||||
{
|
{
|
||||||
QString path = fileInfo.absoluteFilePath();
|
QString path = fileInfo.absoluteFilePath();
|
||||||
if (!m_keyboardDevices.contains(path))
|
if (!m_keyboardDevices.contains(path))
|
||||||
@@ -270,12 +287,12 @@ namespace BlackInput
|
|||||||
{
|
{
|
||||||
switch (keyCode)
|
switch (keyCode)
|
||||||
{
|
{
|
||||||
case BTN_LEFT:
|
case BTN_LEFT:
|
||||||
case BTN_RIGHT:
|
case BTN_RIGHT:
|
||||||
case BTN_MIDDLE:
|
case BTN_MIDDLE:
|
||||||
return true;
|
return true;
|
||||||
default:
|
default:
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -83,7 +83,24 @@ namespace BlackInput
|
|||||||
{ kHIDUsage_KeyboardRightControl, Key_ControlRight },
|
{ kHIDUsage_KeyboardRightControl, Key_ControlRight },
|
||||||
{ kHIDUsage_KeyboardLeftControl, Key_ControlLeft },
|
{ kHIDUsage_KeyboardLeftControl, Key_ControlLeft },
|
||||||
{ kHIDUsage_KeyboardRightAlt, Key_AltRight },
|
{ kHIDUsage_KeyboardRightAlt, Key_AltRight },
|
||||||
{ kHIDUsage_KeyboardLeftAlt, Key_AltLeft },
|
{ kHIDUsage_KeyboardLeftAlt, Key_AltLeft }
|
||||||
|
|
||||||
|
/** fixme Missing ones
|
||||||
|
Key_Insert,
|
||||||
|
Key_Delete,
|
||||||
|
Key_Esc = 27,
|
||||||
|
Key_Space = 32,
|
||||||
|
CKeyboardKey(Key_NumpadEqual),
|
||||||
|
CKeyboardKey(Key_OEM1),
|
||||||
|
CKeyboardKey(Key_OEM2),
|
||||||
|
CKeyboardKey(Key_OEM3),
|
||||||
|
CKeyboardKey(Key_OEM4),
|
||||||
|
CKeyboardKey(Key_OEM5),
|
||||||
|
CKeyboardKey(Key_OEM6),
|
||||||
|
CKeyboardKey(Key_OEM7),
|
||||||
|
CKeyboardKey(Key_OEM8),
|
||||||
|
CKeyboardKey(Key_OEM102)
|
||||||
|
**/
|
||||||
};
|
};
|
||||||
|
|
||||||
CKeyboardMacOS::CKeyboardMacOS(QObject *parent) : IKeyboard(parent)
|
CKeyboardMacOS::CKeyboardMacOS(QObject *parent) : IKeyboard(parent)
|
||||||
|
|||||||
@@ -68,9 +68,9 @@ namespace BlackInput
|
|||||||
{ VK_TAB, Key_Tab },
|
{ VK_TAB, Key_Tab },
|
||||||
{ VK_ESCAPE, Key_Esc },
|
{ VK_ESCAPE, Key_Esc },
|
||||||
{ VK_SPACE, Key_Space },
|
{ VK_SPACE, Key_Space },
|
||||||
{ WM_DEADCHAR, Key_DeadGrave },
|
{ VK_INSERT, Key_Insert },
|
||||||
|
{ VK_DELETE, Key_Delete },
|
||||||
{ VK_MULTIPLY, Key_Multiply },
|
{ VK_MULTIPLY, Key_Multiply },
|
||||||
{ VK_OEM_COMMA, Key_Comma },
|
|
||||||
{ VK_NUMPAD0, Key_Numpad0 },
|
{ VK_NUMPAD0, Key_Numpad0 },
|
||||||
{ VK_NUMPAD1, Key_Numpad1 },
|
{ VK_NUMPAD1, Key_Numpad1 },
|
||||||
{ VK_NUMPAD2, Key_Numpad2 },
|
{ VK_NUMPAD2, Key_Numpad2 },
|
||||||
@@ -81,6 +81,17 @@ namespace BlackInput
|
|||||||
{ VK_NUMPAD7, Key_Numpad7 },
|
{ VK_NUMPAD7, Key_Numpad7 },
|
||||||
{ VK_NUMPAD8, Key_Numpad8 },
|
{ VK_NUMPAD8, Key_Numpad8 },
|
||||||
{ VK_NUMPAD9, Key_Numpad9 },
|
{ VK_NUMPAD9, Key_Numpad9 },
|
||||||
|
{ VK_OEM_NEC_EQUAL, Key_NumpadEqual },
|
||||||
|
{ VK_OEM_COMMA, Key_Comma },
|
||||||
|
{ VK_OEM_1, Key_OEM1 },
|
||||||
|
{ VK_OEM_2, Key_OEM2 },
|
||||||
|
{ VK_OEM_3, Key_OEM3 },
|
||||||
|
{ VK_OEM_4, Key_OEM4 },
|
||||||
|
{ VK_OEM_5, Key_OEM5 },
|
||||||
|
{ VK_OEM_6, Key_OEM6 },
|
||||||
|
{ VK_OEM_7, Key_OEM7 },
|
||||||
|
{ VK_OEM_8, Key_OEM8 },
|
||||||
|
{ VK_OEM_102, Key_OEM102 }
|
||||||
};
|
};
|
||||||
return hash;
|
return hash;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -68,11 +68,23 @@ namespace BlackMisc
|
|||||||
case Key_Numpad7: return QStringLiteral("Num7");
|
case Key_Numpad7: return QStringLiteral("Num7");
|
||||||
case Key_Numpad8: return QStringLiteral("Num8");
|
case Key_Numpad8: return QStringLiteral("Num8");
|
||||||
case Key_Numpad9: return QStringLiteral("Num9");
|
case Key_Numpad9: return QStringLiteral("Num9");
|
||||||
|
case Key_NumpadEqual: return QStringLiteral("Num=");
|
||||||
case Key_Esc: return QStringLiteral("ESC");
|
case Key_Esc: return QStringLiteral("ESC");
|
||||||
case Key_Space: return QStringLiteral("Space");
|
case Key_Space: return QStringLiteral("Space");
|
||||||
case Key_DeadGrave: return QStringLiteral("DeadGrave");
|
|
||||||
case Key_Tab: return QStringLiteral("Tab");
|
case Key_Tab: return QStringLiteral("Tab");
|
||||||
case Key_Back: return QStringLiteral("Backspace");
|
case Key_Back: return QStringLiteral("Backspace");
|
||||||
|
case Key_Insert: return QStringLiteral("Insert");
|
||||||
|
case Key_Delete: return QStringLiteral("Delete");
|
||||||
|
case Key_OEM1: return QStringLiteral("OEM1");
|
||||||
|
case Key_OEM2: return QStringLiteral("OEM2");
|
||||||
|
case Key_OEM3: return QStringLiteral("OEM3");
|
||||||
|
case Key_OEM4: return QStringLiteral("OEM4");
|
||||||
|
case Key_OEM5: return QStringLiteral("OEM5");
|
||||||
|
case Key_OEM6: return QStringLiteral("OEM6");
|
||||||
|
case Key_OEM7: return QStringLiteral("OEM7");
|
||||||
|
case Key_OEM8: return QStringLiteral("OEM8");
|
||||||
|
case Key_OEM102: return QStringLiteral("OEM102");
|
||||||
|
case Key_DeadGrave: return QStringLiteral("DeadGrave");
|
||||||
default: return QChar::fromLatin1(static_cast<char>(m_keyCode));
|
default: return QChar::fromLatin1(static_cast<char>(m_keyCode));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -49,6 +49,8 @@ namespace BlackMisc
|
|||||||
CKeyboardKey(Key_Tab),
|
CKeyboardKey(Key_Tab),
|
||||||
CKeyboardKey(Key_Esc),
|
CKeyboardKey(Key_Esc),
|
||||||
CKeyboardKey(Key_Space),
|
CKeyboardKey(Key_Space),
|
||||||
|
CKeyboardKey(Key_Delete),
|
||||||
|
CKeyboardKey(Key_Insert),
|
||||||
CKeyboardKey(Key_DeadGrave),
|
CKeyboardKey(Key_DeadGrave),
|
||||||
CKeyboardKey(Key_A),
|
CKeyboardKey(Key_A),
|
||||||
CKeyboardKey(Key_B),
|
CKeyboardKey(Key_B),
|
||||||
@@ -95,7 +97,17 @@ namespace BlackMisc
|
|||||||
CKeyboardKey(Key_Numpad6),
|
CKeyboardKey(Key_Numpad6),
|
||||||
CKeyboardKey(Key_Numpad7),
|
CKeyboardKey(Key_Numpad7),
|
||||||
CKeyboardKey(Key_Numpad8),
|
CKeyboardKey(Key_Numpad8),
|
||||||
CKeyboardKey(Key_Numpad9)
|
CKeyboardKey(Key_Numpad9),
|
||||||
|
CKeyboardKey(Key_NumpadEqual),
|
||||||
|
CKeyboardKey(Key_OEM1),
|
||||||
|
CKeyboardKey(Key_OEM2),
|
||||||
|
CKeyboardKey(Key_OEM3),
|
||||||
|
CKeyboardKey(Key_OEM4),
|
||||||
|
CKeyboardKey(Key_OEM5),
|
||||||
|
CKeyboardKey(Key_OEM6),
|
||||||
|
CKeyboardKey(Key_OEM7),
|
||||||
|
CKeyboardKey(Key_OEM8),
|
||||||
|
CKeyboardKey(Key_OEM102)
|
||||||
};
|
};
|
||||||
|
|
||||||
return allKeys;
|
return allKeys;
|
||||||
|
|||||||
@@ -18,6 +18,7 @@ namespace BlackMisc
|
|||||||
namespace Input
|
namespace Input
|
||||||
{
|
{
|
||||||
//! Key code
|
//! Key code
|
||||||
|
//! http://www.kbdlayout.info/
|
||||||
enum KeyCode
|
enum KeyCode
|
||||||
{
|
{
|
||||||
Key_Unknown,
|
Key_Unknown,
|
||||||
@@ -29,6 +30,8 @@ namespace BlackMisc
|
|||||||
Key_AltRight,
|
Key_AltRight,
|
||||||
Key_Back,
|
Key_Back,
|
||||||
Key_Tab,
|
Key_Tab,
|
||||||
|
Key_Insert,
|
||||||
|
Key_Delete,
|
||||||
Key_Esc = 27,
|
Key_Esc = 27,
|
||||||
Key_Space = 32,
|
Key_Space = 32,
|
||||||
Key_DeadGrave, // message is sent for a combining key, such as a diacritic.
|
Key_DeadGrave, // message is sent for a combining key, such as a diacritic.
|
||||||
@@ -87,6 +90,17 @@ namespace BlackMisc
|
|||||||
Key_Numpad7,
|
Key_Numpad7,
|
||||||
Key_Numpad8,
|
Key_Numpad8,
|
||||||
Key_Numpad9,
|
Key_Numpad9,
|
||||||
|
Key_NumpadEqual,
|
||||||
|
// OEM Keys
|
||||||
|
Key_OEM1,
|
||||||
|
Key_OEM2,
|
||||||
|
Key_OEM3,
|
||||||
|
Key_OEM4,
|
||||||
|
Key_OEM5,
|
||||||
|
Key_OEM6,
|
||||||
|
Key_OEM7,
|
||||||
|
Key_OEM8,
|
||||||
|
Key_OEM102
|
||||||
};
|
};
|
||||||
|
|
||||||
} //namespace
|
} //namespace
|
||||||
|
|||||||
Reference in New Issue
Block a user