1
#include "shortcutmanager.hpp"
5
#include <QApplication>
8
#include "shortcut.hpp"
9
#include "shortcuteventhandler.hpp"
13
ShortcutManager::ShortcutManager()
16
mEventHandler = new ShortcutEventHandler(this);
19
void ShortcutManager::addShortcut(Shortcut* shortcut)
21
mShortcuts.insert(std::make_pair(shortcut->getName(), shortcut));
22
mShortcuts.insert(std::make_pair(shortcut->getModifierName(), shortcut));
23
mEventHandler->addShortcut(shortcut);
26
void ShortcutManager::removeShortcut(Shortcut* shortcut)
28
std::pair<ShortcutMap::iterator, ShortcutMap::iterator> range = mShortcuts.equal_range(shortcut->getName());
30
for (ShortcutMap::iterator it = range.first; it != range.second;)
32
if (it->second == shortcut)
34
mShortcuts.erase(it++);
42
mEventHandler->removeShortcut(shortcut);
45
bool ShortcutManager::getSequence(const std::string& name, QKeySequence& sequence) const
47
SequenceMap::const_iterator item = mSequences.find(name);
48
if (item != mSequences.end())
50
sequence = item->second;
58
void ShortcutManager::setSequence(const std::string& name, const QKeySequence& sequence)
61
SequenceMap::iterator item = mSequences.find(name);
62
if (item != mSequences.end())
64
item->second = sequence;
68
mSequences.insert(std::make_pair(name, sequence));
71
// Change active shortcuts
72
std::pair<ShortcutMap::iterator, ShortcutMap::iterator> rangeS = mShortcuts.equal_range(name);
74
for (ShortcutMap::iterator it = rangeS.first; it != rangeS.second; ++it)
76
it->second->setSequence(sequence);
80
bool ShortcutManager::getModifier(const std::string& name, int& modifier) const
82
ModifierMap::const_iterator item = mModifiers.find(name);
83
if (item != mModifiers.end())
85
modifier = item->second;
93
void ShortcutManager::setModifier(const std::string& name, int modifier)
96
ModifierMap::iterator item = mModifiers.find(name);
97
if (item != mModifiers.end())
99
item->second = modifier;
103
mModifiers.insert(std::make_pair(name, modifier));
106
// Change active shortcuts
107
std::pair<ShortcutMap::iterator, ShortcutMap::iterator> rangeS = mShortcuts.equal_range(name);
109
for (ShortcutMap::iterator it = rangeS.first; it != rangeS.second; ++it)
111
it->second->setModifier(modifier);
115
std::string ShortcutManager::convertToString(const QKeySequence& sequence) const
117
const int MouseKeyMask = 0x01FFFFFF;
118
const int ModMask = 0x7E000000;
122
for (int i = 0; i < (int)sequence.count(); ++i)
124
int mods = sequence[i] & ModMask;
125
int key = sequence[i] & MouseKeyMask;
129
NameMap::const_iterator searchResult = mNames.find(key);
130
if (searchResult != mNames.end())
134
if (mods & Qt::ControlModifier)
135
result.append("Ctl+");
136
if (mods & Qt::ShiftModifier)
137
result.append("Shift+");
138
if (mods & Qt::AltModifier)
139
result.append("Alt+");
140
if (mods & Qt::MetaModifier)
141
result.append("Meta+");
142
if (mods & Qt::KeypadModifier)
143
result.append("Keypad+");
144
if (mods & Qt::GroupSwitchModifier)
145
result.append("GroupSwitch+");
152
result.append(searchResult->second);
160
std::string ShortcutManager::convertToString(int modifier) const
162
NameMap::const_iterator searchResult = mNames.find(modifier);
163
if (searchResult != mNames.end())
165
return searchResult->second;
171
std::string ShortcutManager::convertToString(const QKeySequence& sequence, int modifier) const
173
std::string concat = convertToString(sequence) + ";" + convertToString(modifier);
177
void ShortcutManager::convertFromString(const std::string& data, QKeySequence& sequence) const
179
const int MaxKeys = 4; // A limitation of QKeySequence
181
size_t end = data.find(";");
182
size_t size = std::min(end, data.size());
184
std::string value = data.substr(0, size);
190
int keys[MaxKeys] = {};
192
while (start < value.size())
194
end = data.find("+", start);
195
end = std::min(end, value.size());
197
std::string name = value.substr(start, end - start);
201
mods |= Qt::ControlModifier;
203
else if (name == "Shift")
205
mods |= Qt::ShiftModifier;
207
else if (name == "Alt")
209
mods |= Qt::AltModifier;
211
else if (name == "Meta")
213
mods |= Qt::MetaModifier;
215
else if (name == "Keypad")
217
mods |= Qt::KeypadModifier;
219
else if (name == "GroupSwitch")
221
mods |= Qt::GroupSwitchModifier;
225
KeyMap::const_iterator searchResult = mKeys.find(name);
226
if (searchResult != mKeys.end())
228
keys[keyPos] = mods | searchResult->second;
233
if (keyPos >= MaxKeys)
241
sequence = QKeySequence(keys[0], keys[1], keys[2], keys[3]);
244
void ShortcutManager::convertFromString(const std::string& data, int& modifier) const
246
size_t start = data.find(";") + 1;
247
start = std::min(start, data.size());
249
std::string name = data.substr(start);
250
KeyMap::const_iterator searchResult = mKeys.find(name);
251
if (searchResult != mKeys.end())
253
modifier = searchResult->second;
261
void ShortcutManager::convertFromString(const std::string& data, QKeySequence& sequence, int& modifier) const
263
convertFromString(data, sequence);
264
convertFromString(data, modifier);
267
void ShortcutManager::createLookupTables()
270
mNames.insert(std::make_pair(Qt::LeftButton, "LMB"));
271
mNames.insert(std::make_pair(Qt::RightButton, "RMB"));
272
mNames.insert(std::make_pair(Qt::MiddleButton, "MMB"));
273
mNames.insert(std::make_pair(Qt::XButton1, "Mouse4"));
274
mNames.insert(std::make_pair(Qt::XButton2, "Mouse5"));
277
for (size_t i = 0; QtKeys[i].first != 0; ++i)
279
mNames.insert(QtKeys[i]);
282
// Generate inverse map
283
for (NameMap::const_iterator it = mNames.begin(); it != mNames.end(); ++it)
285
mKeys.insert(std::make_pair(it->second, it->first));
289
QString ShortcutManager::processToolTip(const QString& toolTip) const
291
const QChar SequenceStart = '{';
292
const QChar SequenceEnd = '}';
294
QStringList substrings;
297
int startIndex = toolTip.indexOf(SequenceStart);
298
int endIndex = (startIndex != -1) ? toolTip.indexOf(SequenceEnd, startIndex) : -1;
300
// Process every valid shortcut escape sequence
301
while (startIndex != -1 && endIndex != -1)
303
int count = startIndex - prevIndex;
306
substrings.push_back(toolTip.mid(prevIndex, count));
309
// Find sequence name
310
startIndex += 1; // '{' character
311
count = endIndex - startIndex;
314
QString settingName = toolTip.mid(startIndex, count);
316
QKeySequence sequence;
319
if (getSequence(settingName.toUtf8().data(), sequence))
321
QString value = QString::fromUtf8(convertToString(sequence).c_str());
322
substrings.push_back(value);
324
else if (getModifier(settingName.toUtf8().data(), modifier))
326
QString value = QString::fromUtf8(convertToString(modifier).c_str());
327
substrings.push_back(value);
330
prevIndex = endIndex + 1; // '}' character
333
startIndex = toolTip.indexOf(SequenceStart, endIndex);
334
endIndex = (startIndex != -1) ? toolTip.indexOf(SequenceEnd, startIndex) : -1;
337
if (prevIndex < toolTip.size())
339
substrings.push_back(toolTip.mid(prevIndex));
342
return substrings.join("");
345
const std::pair<int, const char*> ShortcutManager::QtKeys[] =
347
std::make_pair((int)Qt::Key_Space , "Space"),
348
std::make_pair((int)Qt::Key_Exclam , "Exclam"),
349
std::make_pair((int)Qt::Key_QuoteDbl , "QuoteDbl"),
350
std::make_pair((int)Qt::Key_NumberSign , "NumberSign"),
351
std::make_pair((int)Qt::Key_Dollar , "Dollar"),
352
std::make_pair((int)Qt::Key_Percent , "Percent"),
353
std::make_pair((int)Qt::Key_Ampersand , "Ampersand"),
354
std::make_pair((int)Qt::Key_Apostrophe , "Apostrophe"),
355
std::make_pair((int)Qt::Key_ParenLeft , "ParenLeft"),
356
std::make_pair((int)Qt::Key_ParenRight , "ParenRight"),
357
std::make_pair((int)Qt::Key_Asterisk , "Asterisk"),
358
std::make_pair((int)Qt::Key_Plus , "Plus"),
359
std::make_pair((int)Qt::Key_Comma , "Comma"),
360
std::make_pair((int)Qt::Key_Minus , "Minus"),
361
std::make_pair((int)Qt::Key_Period , "Period"),
362
std::make_pair((int)Qt::Key_Slash , "Slash"),
363
std::make_pair((int)Qt::Key_0 , "0"),
364
std::make_pair((int)Qt::Key_1 , "1"),
365
std::make_pair((int)Qt::Key_2 , "2"),
366
std::make_pair((int)Qt::Key_3 , "3"),
367
std::make_pair((int)Qt::Key_4 , "4"),
368
std::make_pair((int)Qt::Key_5 , "5"),
369
std::make_pair((int)Qt::Key_6 , "6"),
370
std::make_pair((int)Qt::Key_7 , "7"),
371
std::make_pair((int)Qt::Key_8 , "8"),
372
std::make_pair((int)Qt::Key_9 , "9"),
373
std::make_pair((int)Qt::Key_Colon , "Colon"),
374
std::make_pair((int)Qt::Key_Semicolon , "Semicolon"),
375
std::make_pair((int)Qt::Key_Less , "Less"),
376
std::make_pair((int)Qt::Key_Equal , "Equal"),
377
std::make_pair((int)Qt::Key_Greater , "Greater"),
378
std::make_pair((int)Qt::Key_Question , "Question"),
379
std::make_pair((int)Qt::Key_At , "At"),
380
std::make_pair((int)Qt::Key_A , "A"),
381
std::make_pair((int)Qt::Key_B , "B"),
382
std::make_pair((int)Qt::Key_C , "C"),
383
std::make_pair((int)Qt::Key_D , "D"),
384
std::make_pair((int)Qt::Key_E , "E"),
385
std::make_pair((int)Qt::Key_F , "F"),
386
std::make_pair((int)Qt::Key_G , "G"),
387
std::make_pair((int)Qt::Key_H , "H"),
388
std::make_pair((int)Qt::Key_I , "I"),
389
std::make_pair((int)Qt::Key_J , "J"),
390
std::make_pair((int)Qt::Key_K , "K"),
391
std::make_pair((int)Qt::Key_L , "L"),
392
std::make_pair((int)Qt::Key_M , "M"),
393
std::make_pair((int)Qt::Key_N , "N"),
394
std::make_pair((int)Qt::Key_O , "O"),
395
std::make_pair((int)Qt::Key_P , "P"),
396
std::make_pair((int)Qt::Key_Q , "Q"),
397
std::make_pair((int)Qt::Key_R , "R"),
398
std::make_pair((int)Qt::Key_S , "S"),
399
std::make_pair((int)Qt::Key_T , "T"),
400
std::make_pair((int)Qt::Key_U , "U"),
401
std::make_pair((int)Qt::Key_V , "V"),
402
std::make_pair((int)Qt::Key_W , "W"),
403
std::make_pair((int)Qt::Key_X , "X"),
404
std::make_pair((int)Qt::Key_Y , "Y"),
405
std::make_pair((int)Qt::Key_Z , "Z"),
406
std::make_pair((int)Qt::Key_BracketLeft , "BracketLeft"),
407
std::make_pair((int)Qt::Key_Backslash , "Backslash"),
408
std::make_pair((int)Qt::Key_BracketRight , "BracketRight"),
409
std::make_pair((int)Qt::Key_AsciiCircum , "AsciiCircum"),
410
std::make_pair((int)Qt::Key_Underscore , "Underscore"),
411
std::make_pair((int)Qt::Key_QuoteLeft , "QuoteLeft"),
412
std::make_pair((int)Qt::Key_BraceLeft , "BraceLeft"),
413
std::make_pair((int)Qt::Key_Bar , "Bar"),
414
std::make_pair((int)Qt::Key_BraceRight , "BraceRight"),
415
std::make_pair((int)Qt::Key_AsciiTilde , "AsciiTilde"),
416
std::make_pair((int)Qt::Key_nobreakspace , "nobreakspace"),
417
std::make_pair((int)Qt::Key_exclamdown , "exclamdown"),
418
std::make_pair((int)Qt::Key_cent , "cent"),
419
std::make_pair((int)Qt::Key_sterling , "sterling"),
420
std::make_pair((int)Qt::Key_currency , "currency"),
421
std::make_pair((int)Qt::Key_yen , "yen"),
422
std::make_pair((int)Qt::Key_brokenbar , "brokenbar"),
423
std::make_pair((int)Qt::Key_section , "section"),
424
std::make_pair((int)Qt::Key_diaeresis , "diaeresis"),
425
std::make_pair((int)Qt::Key_copyright , "copyright"),
426
std::make_pair((int)Qt::Key_ordfeminine , "ordfeminine"),
427
std::make_pair((int)Qt::Key_guillemotleft , "guillemotleft"),
428
std::make_pair((int)Qt::Key_notsign , "notsign"),
429
std::make_pair((int)Qt::Key_hyphen , "hyphen"),
430
std::make_pair((int)Qt::Key_registered , "registered"),
431
std::make_pair((int)Qt::Key_macron , "macron"),
432
std::make_pair((int)Qt::Key_degree , "degree"),
433
std::make_pair((int)Qt::Key_plusminus , "plusminus"),
434
std::make_pair((int)Qt::Key_twosuperior , "twosuperior"),
435
std::make_pair((int)Qt::Key_threesuperior , "threesuperior"),
436
std::make_pair((int)Qt::Key_acute , "acute"),
437
std::make_pair((int)Qt::Key_mu , "mu"),
438
std::make_pair((int)Qt::Key_paragraph , "paragraph"),
439
std::make_pair((int)Qt::Key_periodcentered , "periodcentered"),
440
std::make_pair((int)Qt::Key_cedilla , "cedilla"),
441
std::make_pair((int)Qt::Key_onesuperior , "onesuperior"),
442
std::make_pair((int)Qt::Key_masculine , "masculine"),
443
std::make_pair((int)Qt::Key_guillemotright , "guillemotright"),
444
std::make_pair((int)Qt::Key_onequarter , "onequarter"),
445
std::make_pair((int)Qt::Key_onehalf , "onehalf"),
446
std::make_pair((int)Qt::Key_threequarters , "threequarters"),
447
std::make_pair((int)Qt::Key_questiondown , "questiondown"),
448
std::make_pair((int)Qt::Key_Agrave , "Agrave"),
449
std::make_pair((int)Qt::Key_Aacute , "Aacute"),
450
std::make_pair((int)Qt::Key_Acircumflex , "Acircumflex"),
451
std::make_pair((int)Qt::Key_Atilde , "Atilde"),
452
std::make_pair((int)Qt::Key_Adiaeresis , "Adiaeresis"),
453
std::make_pair((int)Qt::Key_Aring , "Aring"),
454
std::make_pair((int)Qt::Key_AE , "AE"),
455
std::make_pair((int)Qt::Key_Ccedilla , "Ccedilla"),
456
std::make_pair((int)Qt::Key_Egrave , "Egrave"),
457
std::make_pair((int)Qt::Key_Eacute , "Eacute"),
458
std::make_pair((int)Qt::Key_Ecircumflex , "Ecircumflex"),
459
std::make_pair((int)Qt::Key_Ediaeresis , "Ediaeresis"),
460
std::make_pair((int)Qt::Key_Igrave , "Igrave"),
461
std::make_pair((int)Qt::Key_Iacute , "Iacute"),
462
std::make_pair((int)Qt::Key_Icircumflex , "Icircumflex"),
463
std::make_pair((int)Qt::Key_Idiaeresis , "Idiaeresis"),
464
std::make_pair((int)Qt::Key_ETH , "ETH"),
465
std::make_pair((int)Qt::Key_Ntilde , "Ntilde"),
466
std::make_pair((int)Qt::Key_Ograve , "Ograve"),
467
std::make_pair((int)Qt::Key_Oacute , "Oacute"),
468
std::make_pair((int)Qt::Key_Ocircumflex , "Ocircumflex"),
469
std::make_pair((int)Qt::Key_Otilde , "Otilde"),
470
std::make_pair((int)Qt::Key_Odiaeresis , "Odiaeresis"),
471
std::make_pair((int)Qt::Key_multiply , "multiply"),
472
std::make_pair((int)Qt::Key_Ooblique , "Ooblique"),
473
std::make_pair((int)Qt::Key_Ugrave , "Ugrave"),
474
std::make_pair((int)Qt::Key_Uacute , "Uacute"),
475
std::make_pair((int)Qt::Key_Ucircumflex , "Ucircumflex"),
476
std::make_pair((int)Qt::Key_Udiaeresis , "Udiaeresis"),
477
std::make_pair((int)Qt::Key_Yacute , "Yacute"),
478
std::make_pair((int)Qt::Key_THORN , "THORN"),
479
std::make_pair((int)Qt::Key_ssharp , "ssharp"),
480
std::make_pair((int)Qt::Key_division , "division"),
481
std::make_pair((int)Qt::Key_ydiaeresis , "ydiaeresis"),
482
std::make_pair((int)Qt::Key_Escape , "Escape"),
483
std::make_pair((int)Qt::Key_Tab , "Tab"),
484
std::make_pair((int)Qt::Key_Backtab , "Backtab"),
485
std::make_pair((int)Qt::Key_Backspace , "Backspace"),
486
std::make_pair((int)Qt::Key_Return , "Return"),
487
std::make_pair((int)Qt::Key_Enter , "Enter"),
488
std::make_pair((int)Qt::Key_Insert , "Insert"),
489
std::make_pair((int)Qt::Key_Delete , "Delete"),
490
std::make_pair((int)Qt::Key_Pause , "Pause"),
491
std::make_pair((int)Qt::Key_Print , "Print"),
492
std::make_pair((int)Qt::Key_SysReq , "SysReq"),
493
std::make_pair((int)Qt::Key_Clear , "Clear"),
494
std::make_pair((int)Qt::Key_Home , "Home"),
495
std::make_pair((int)Qt::Key_End , "End"),
496
std::make_pair((int)Qt::Key_Left , "Left"),
497
std::make_pair((int)Qt::Key_Up , "Up"),
498
std::make_pair((int)Qt::Key_Right , "Right"),
499
std::make_pair((int)Qt::Key_Down , "Down"),
500
std::make_pair((int)Qt::Key_PageUp , "PageUp"),
501
std::make_pair((int)Qt::Key_PageDown , "PageDown"),
502
std::make_pair((int)Qt::Key_Shift , "Shift"),
503
std::make_pair((int)Qt::Key_Control , "Control"),
504
std::make_pair((int)Qt::Key_Meta , "Meta"),
505
std::make_pair((int)Qt::Key_Alt , "Alt"),
506
std::make_pair((int)Qt::Key_CapsLock , "CapsLock"),
507
std::make_pair((int)Qt::Key_NumLock , "NumLock"),
508
std::make_pair((int)Qt::Key_ScrollLock , "ScrollLock"),
509
std::make_pair((int)Qt::Key_F1 , "F1"),
510
std::make_pair((int)Qt::Key_F2 , "F2"),
511
std::make_pair((int)Qt::Key_F3 , "F3"),
512
std::make_pair((int)Qt::Key_F4 , "F4"),
513
std::make_pair((int)Qt::Key_F5 , "F5"),
514
std::make_pair((int)Qt::Key_F6 , "F6"),
515
std::make_pair((int)Qt::Key_F7 , "F7"),
516
std::make_pair((int)Qt::Key_F8 , "F8"),
517
std::make_pair((int)Qt::Key_F9 , "F9"),
518
std::make_pair((int)Qt::Key_F10 , "F10"),
519
std::make_pair((int)Qt::Key_F11 , "F11"),
520
std::make_pair((int)Qt::Key_F12 , "F12"),
521
std::make_pair((int)Qt::Key_F13 , "F13"),
522
std::make_pair((int)Qt::Key_F14 , "F14"),
523
std::make_pair((int)Qt::Key_F15 , "F15"),
524
std::make_pair((int)Qt::Key_F16 , "F16"),
525
std::make_pair((int)Qt::Key_F17 , "F17"),
526
std::make_pair((int)Qt::Key_F18 , "F18"),
527
std::make_pair((int)Qt::Key_F19 , "F19"),
528
std::make_pair((int)Qt::Key_F20 , "F20"),
529
std::make_pair((int)Qt::Key_F21 , "F21"),
530
std::make_pair((int)Qt::Key_F22 , "F22"),
531
std::make_pair((int)Qt::Key_F23 , "F23"),
532
std::make_pair((int)Qt::Key_F24 , "F24"),
533
std::make_pair((int)Qt::Key_F25 , "F25"),
534
std::make_pair((int)Qt::Key_F26 , "F26"),
535
std::make_pair((int)Qt::Key_F27 , "F27"),
536
std::make_pair((int)Qt::Key_F28 , "F28"),
537
std::make_pair((int)Qt::Key_F29 , "F29"),
538
std::make_pair((int)Qt::Key_F30 , "F30"),
539
std::make_pair((int)Qt::Key_F31 , "F31"),
540
std::make_pair((int)Qt::Key_F32 , "F32"),
541
std::make_pair((int)Qt::Key_F33 , "F33"),
542
std::make_pair((int)Qt::Key_F34 , "F34"),
543
std::make_pair((int)Qt::Key_F35 , "F35"),
544
std::make_pair((int)Qt::Key_Super_L , "Super_L"),
545
std::make_pair((int)Qt::Key_Super_R , "Super_R"),
546
std::make_pair((int)Qt::Key_Menu , "Menu"),
547
std::make_pair((int)Qt::Key_Hyper_L , "Hyper_L"),
548
std::make_pair((int)Qt::Key_Hyper_R , "Hyper_R"),
549
std::make_pair((int)Qt::Key_Help , "Help"),
550
std::make_pair((int)Qt::Key_Direction_L , "Direction_L"),
551
std::make_pair((int)Qt::Key_Direction_R , "Direction_R"),
552
std::make_pair((int)Qt::Key_Back , "Back"),
553
std::make_pair((int)Qt::Key_Forward , "Forward"),
554
std::make_pair((int)Qt::Key_Stop , "Stop"),
555
std::make_pair((int)Qt::Key_Refresh , "Refresh"),
556
std::make_pair((int)Qt::Key_VolumeDown , "VolumeDown"),
557
std::make_pair((int)Qt::Key_VolumeMute , "VolumeMute"),
558
std::make_pair((int)Qt::Key_VolumeUp , "VolumeUp"),
559
std::make_pair((int)Qt::Key_BassBoost , "BassBoost"),
560
std::make_pair((int)Qt::Key_BassUp , "BassUp"),
561
std::make_pair((int)Qt::Key_BassDown , "BassDown"),
562
std::make_pair((int)Qt::Key_TrebleUp , "TrebleUp"),
563
std::make_pair((int)Qt::Key_TrebleDown , "TrebleDown"),
564
std::make_pair((int)Qt::Key_MediaPlay , "MediaPlay"),
565
std::make_pair((int)Qt::Key_MediaStop , "MediaStop"),
566
std::make_pair((int)Qt::Key_MediaPrevious , "MediaPrevious"),
567
std::make_pair((int)Qt::Key_MediaNext , "MediaNext"),
568
std::make_pair((int)Qt::Key_MediaRecord , "MediaRecord"),
569
std::make_pair((int)Qt::Key_MediaPause , "MediaPause"),
570
std::make_pair((int)Qt::Key_MediaTogglePlayPause , "MediaTogglePlayPause"),
571
std::make_pair((int)Qt::Key_HomePage , "HomePage"),
572
std::make_pair((int)Qt::Key_Favorites , "Favorites"),
573
std::make_pair((int)Qt::Key_Search , "Search"),
574
std::make_pair((int)Qt::Key_Standby , "Standby"),
575
std::make_pair((int)Qt::Key_OpenUrl , "OpenUrl"),
576
std::make_pair((int)Qt::Key_LaunchMail , "LaunchMail"),
577
std::make_pair((int)Qt::Key_LaunchMedia , "LaunchMedia"),
578
std::make_pair((int)Qt::Key_Launch0 , "Launch0"),
579
std::make_pair((int)Qt::Key_Launch1 , "Launch1"),
580
std::make_pair((int)Qt::Key_Launch2 , "Launch2"),
581
std::make_pair((int)Qt::Key_Launch3 , "Launch3"),
582
std::make_pair((int)Qt::Key_Launch4 , "Launch4"),
583
std::make_pair((int)Qt::Key_Launch5 , "Launch5"),
584
std::make_pair((int)Qt::Key_Launch6 , "Launch6"),
585
std::make_pair((int)Qt::Key_Launch7 , "Launch7"),
586
std::make_pair((int)Qt::Key_Launch8 , "Launch8"),
587
std::make_pair((int)Qt::Key_Launch9 , "Launch9"),
588
std::make_pair((int)Qt::Key_LaunchA , "LaunchA"),
589
std::make_pair((int)Qt::Key_LaunchB , "LaunchB"),
590
std::make_pair((int)Qt::Key_LaunchC , "LaunchC"),
591
std::make_pair((int)Qt::Key_LaunchD , "LaunchD"),
592
std::make_pair((int)Qt::Key_LaunchE , "LaunchE"),
593
std::make_pair((int)Qt::Key_LaunchF , "LaunchF"),
594
std::make_pair((int)Qt::Key_MonBrightnessUp , "MonBrightnessUp"),
595
std::make_pair((int)Qt::Key_MonBrightnessDown , "MonBrightnessDown"),
596
std::make_pair((int)Qt::Key_KeyboardLightOnOff , "KeyboardLightOnOff"),
597
std::make_pair((int)Qt::Key_KeyboardBrightnessUp , "KeyboardBrightnessUp"),
598
std::make_pair((int)Qt::Key_KeyboardBrightnessDown , "KeyboardBrightnessDown"),
599
std::make_pair((int)Qt::Key_PowerOff , "PowerOff"),
600
std::make_pair((int)Qt::Key_WakeUp , "WakeUp"),
601
std::make_pair((int)Qt::Key_Eject , "Eject"),
602
std::make_pair((int)Qt::Key_ScreenSaver , "ScreenSaver"),
603
std::make_pair((int)Qt::Key_WWW , "WWW"),
604
std::make_pair((int)Qt::Key_Memo , "Memo"),
605
std::make_pair((int)Qt::Key_LightBulb , "LightBulb"),
606
std::make_pair((int)Qt::Key_Shop , "Shop"),
607
std::make_pair((int)Qt::Key_History , "History"),
608
std::make_pair((int)Qt::Key_AddFavorite , "AddFavorite"),
609
std::make_pair((int)Qt::Key_HotLinks , "HotLinks"),
610
std::make_pair((int)Qt::Key_BrightnessAdjust , "BrightnessAdjust"),
611
std::make_pair((int)Qt::Key_Finance , "Finance"),
612
std::make_pair((int)Qt::Key_Community , "Community"),
613
std::make_pair((int)Qt::Key_AudioRewind , "AudioRewind"),
614
std::make_pair((int)Qt::Key_BackForward , "BackForward"),
615
std::make_pair((int)Qt::Key_ApplicationLeft , "ApplicationLeft"),
616
std::make_pair((int)Qt::Key_ApplicationRight , "ApplicationRight"),
617
std::make_pair((int)Qt::Key_Book , "Book"),
618
std::make_pair((int)Qt::Key_CD , "CD"),
619
std::make_pair((int)Qt::Key_Calculator , "Calculator"),
620
std::make_pair((int)Qt::Key_ToDoList , "ToDoList"),
621
std::make_pair((int)Qt::Key_ClearGrab , "ClearGrab"),
622
std::make_pair((int)Qt::Key_Close , "Close"),
623
std::make_pair((int)Qt::Key_Copy , "Copy"),
624
std::make_pair((int)Qt::Key_Cut , "Cut"),
625
std::make_pair((int)Qt::Key_Display , "Display"),
626
std::make_pair((int)Qt::Key_DOS , "DOS"),
627
std::make_pair((int)Qt::Key_Documents , "Documents"),
628
std::make_pair((int)Qt::Key_Excel , "Excel"),
629
std::make_pair((int)Qt::Key_Explorer , "Explorer"),
630
std::make_pair((int)Qt::Key_Game , "Game"),
631
std::make_pair((int)Qt::Key_Go , "Go"),
632
std::make_pair((int)Qt::Key_iTouch , "iTouch"),
633
std::make_pair((int)Qt::Key_LogOff , "LogOff"),
634
std::make_pair((int)Qt::Key_Market , "Market"),
635
std::make_pair((int)Qt::Key_Meeting , "Meeting"),
636
std::make_pair((int)Qt::Key_MenuKB , "MenuKB"),
637
std::make_pair((int)Qt::Key_MenuPB , "MenuPB"),
638
std::make_pair((int)Qt::Key_MySites , "MySites"),
639
std::make_pair((int)Qt::Key_News , "News"),
640
std::make_pair((int)Qt::Key_OfficeHome , "OfficeHome"),
641
std::make_pair((int)Qt::Key_Option , "Option"),
642
std::make_pair((int)Qt::Key_Paste , "Paste"),
643
std::make_pair((int)Qt::Key_Phone , "Phone"),
644
std::make_pair((int)Qt::Key_Calendar , "Calendar"),
645
std::make_pair((int)Qt::Key_Reply , "Reply"),
646
std::make_pair((int)Qt::Key_Reload , "Reload"),
647
std::make_pair((int)Qt::Key_RotateWindows , "RotateWindows"),
648
std::make_pair((int)Qt::Key_RotationPB , "RotationPB"),
649
std::make_pair((int)Qt::Key_RotationKB , "RotationKB"),
650
std::make_pair((int)Qt::Key_Save , "Save"),
651
std::make_pair((int)Qt::Key_Send , "Send"),
652
std::make_pair((int)Qt::Key_Spell , "Spell"),
653
std::make_pair((int)Qt::Key_SplitScreen , "SplitScreen"),
654
std::make_pair((int)Qt::Key_Support , "Support"),
655
std::make_pair((int)Qt::Key_TaskPane , "TaskPane"),
656
std::make_pair((int)Qt::Key_Terminal , "Terminal"),
657
std::make_pair((int)Qt::Key_Tools , "Tools"),
658
std::make_pair((int)Qt::Key_Travel , "Travel"),
659
std::make_pair((int)Qt::Key_Video , "Video"),
660
std::make_pair((int)Qt::Key_Word , "Word"),
661
std::make_pair((int)Qt::Key_Xfer , "Xfer"),
662
std::make_pair((int)Qt::Key_ZoomIn , "ZoomIn"),
663
std::make_pair((int)Qt::Key_ZoomOut , "ZoomOut"),
664
std::make_pair((int)Qt::Key_Away , "Away"),
665
std::make_pair((int)Qt::Key_Messenger , "Messenger"),
666
std::make_pair((int)Qt::Key_WebCam , "WebCam"),
667
std::make_pair((int)Qt::Key_MailForward , "MailForward"),
668
std::make_pair((int)Qt::Key_Pictures , "Pictures"),
669
std::make_pair((int)Qt::Key_Music , "Music"),
670
std::make_pair((int)Qt::Key_Battery , "Battery"),
671
std::make_pair((int)Qt::Key_Bluetooth , "Bluetooth"),
672
std::make_pair((int)Qt::Key_WLAN , "WLAN"),
673
std::make_pair((int)Qt::Key_UWB , "UWB"),
674
std::make_pair((int)Qt::Key_AudioForward , "AudioForward"),
675
std::make_pair((int)Qt::Key_AudioRepeat , "AudioRepeat"),
676
std::make_pair((int)Qt::Key_AudioRandomPlay , "AudioRandomPlay"),
677
std::make_pair((int)Qt::Key_Subtitle , "Subtitle"),
678
std::make_pair((int)Qt::Key_AudioCycleTrack , "AudioCycleTrack"),
679
std::make_pair((int)Qt::Key_Time , "Time"),
680
std::make_pair((int)Qt::Key_Hibernate , "Hibernate"),
681
std::make_pair((int)Qt::Key_View , "View"),
682
std::make_pair((int)Qt::Key_TopMenu , "TopMenu"),
683
std::make_pair((int)Qt::Key_PowerDown , "PowerDown"),
684
std::make_pair((int)Qt::Key_Suspend , "Suspend"),
685
std::make_pair((int)Qt::Key_ContrastAdjust , "ContrastAdjust"),
686
std::make_pair((int)Qt::Key_LaunchG , "LaunchG"),
687
std::make_pair((int)Qt::Key_LaunchH , "LaunchH"),
688
#if QT_VERSION >= QT_VERSION_CHECK(5,7,0)
689
std::make_pair((int)Qt::Key_TouchpadToggle , "TouchpadToggle"),
690
std::make_pair((int)Qt::Key_TouchpadOn , "TouchpadOn"),
691
std::make_pair((int)Qt::Key_TouchpadOff , "TouchpadOff"),
692
std::make_pair((int)Qt::Key_MicMute , "MicMute"),
693
std::make_pair((int)Qt::Key_Red , "Red"),
694
std::make_pair((int)Qt::Key_Green , "Green"),
695
std::make_pair((int)Qt::Key_Yellow , "Yellow"),
696
std::make_pair((int)Qt::Key_Blue , "Blue"),
697
std::make_pair((int)Qt::Key_ChannelUp , "ChannelUp"),
698
std::make_pair((int)Qt::Key_ChannelDown , "ChannelDown"),
699
std::make_pair((int)Qt::Key_Guide , "Guide"),
700
std::make_pair((int)Qt::Key_Info , "Info"),
701
std::make_pair((int)Qt::Key_Settings , "Settings"),
702
std::make_pair((int)Qt::Key_MicVolumeUp , "MicVolumeUp"),
703
std::make_pair((int)Qt::Key_MicVolumeDown , "MicVolumeDown"),
704
std::make_pair((int)Qt::Key_New , "New"),
705
std::make_pair((int)Qt::Key_Open , "Open"),
706
std::make_pair((int)Qt::Key_Find , "Find"),
707
std::make_pair((int)Qt::Key_Undo , "Undo"),
708
std::make_pair((int)Qt::Key_Redo , "Redo"),
710
std::make_pair((int)Qt::Key_AltGr , "AltGr"),
711
std::make_pair((int)Qt::Key_Multi_key , "Multi_key"),
712
std::make_pair((int)Qt::Key_Kanji , "Kanji"),
713
std::make_pair((int)Qt::Key_Muhenkan , "Muhenkan"),
714
std::make_pair((int)Qt::Key_Henkan , "Henkan"),
715
std::make_pair((int)Qt::Key_Romaji , "Romaji"),
716
std::make_pair((int)Qt::Key_Hiragana , "Hiragana"),
717
std::make_pair((int)Qt::Key_Katakana , "Katakana"),
718
std::make_pair((int)Qt::Key_Hiragana_Katakana , "Hiragana_Katakana"),
719
std::make_pair((int)Qt::Key_Zenkaku , "Zenkaku"),
720
std::make_pair((int)Qt::Key_Hankaku , "Hankaku"),
721
std::make_pair((int)Qt::Key_Zenkaku_Hankaku , "Zenkaku_Hankaku"),
722
std::make_pair((int)Qt::Key_Touroku , "Touroku"),
723
std::make_pair((int)Qt::Key_Massyo , "Massyo"),
724
std::make_pair((int)Qt::Key_Kana_Lock , "Kana_Lock"),
725
std::make_pair((int)Qt::Key_Kana_Shift , "Kana_Shift"),
726
std::make_pair((int)Qt::Key_Eisu_Shift , "Eisu_Shift"),
727
std::make_pair((int)Qt::Key_Eisu_toggle , "Eisu_toggle"),
728
std::make_pair((int)Qt::Key_Hangul , "Hangul"),
729
std::make_pair((int)Qt::Key_Hangul_Start , "Hangul_Start"),
730
std::make_pair((int)Qt::Key_Hangul_End , "Hangul_End"),
731
std::make_pair((int)Qt::Key_Hangul_Hanja , "Hangul_Hanja"),
732
std::make_pair((int)Qt::Key_Hangul_Jamo , "Hangul_Jamo"),
733
std::make_pair((int)Qt::Key_Hangul_Romaja , "Hangul_Romaja"),
734
std::make_pair((int)Qt::Key_Codeinput , "Codeinput"),
735
std::make_pair((int)Qt::Key_Hangul_Jeonja , "Hangul_Jeonja"),
736
std::make_pair((int)Qt::Key_Hangul_Banja , "Hangul_Banja"),
737
std::make_pair((int)Qt::Key_Hangul_PreHanja , "Hangul_PreHanja"),
738
std::make_pair((int)Qt::Key_Hangul_PostHanja , "Hangul_PostHanja"),
739
std::make_pair((int)Qt::Key_SingleCandidate , "SingleCandidate"),
740
std::make_pair((int)Qt::Key_MultipleCandidate , "MultipleCandidate"),
741
std::make_pair((int)Qt::Key_PreviousCandidate , "PreviousCandidate"),
742
std::make_pair((int)Qt::Key_Hangul_Special , "Hangul_Special"),
743
std::make_pair((int)Qt::Key_Mode_switch , "Mode_switch"),
744
std::make_pair((int)Qt::Key_Dead_Grave , "Dead_Grave"),
745
std::make_pair((int)Qt::Key_Dead_Acute , "Dead_Acute"),
746
std::make_pair((int)Qt::Key_Dead_Circumflex , "Dead_Circumflex"),
747
std::make_pair((int)Qt::Key_Dead_Tilde , "Dead_Tilde"),
748
std::make_pair((int)Qt::Key_Dead_Macron , "Dead_Macron"),
749
std::make_pair((int)Qt::Key_Dead_Breve , "Dead_Breve"),
750
std::make_pair((int)Qt::Key_Dead_Abovedot , "Dead_Abovedot"),
751
std::make_pair((int)Qt::Key_Dead_Diaeresis , "Dead_Diaeresis"),
752
std::make_pair((int)Qt::Key_Dead_Abovering , "Dead_Abovering"),
753
std::make_pair((int)Qt::Key_Dead_Doubleacute , "Dead_Doubleacute"),
754
std::make_pair((int)Qt::Key_Dead_Caron , "Dead_Caron"),
755
std::make_pair((int)Qt::Key_Dead_Cedilla , "Dead_Cedilla"),
756
std::make_pair((int)Qt::Key_Dead_Ogonek , "Dead_Ogonek"),
757
std::make_pair((int)Qt::Key_Dead_Iota , "Dead_Iota"),
758
std::make_pair((int)Qt::Key_Dead_Voiced_Sound , "Dead_Voiced_Sound"),
759
std::make_pair((int)Qt::Key_Dead_Semivoiced_Sound , "Dead_Semivoiced_Sound"),
760
std::make_pair((int)Qt::Key_Dead_Belowdot , "Dead_Belowdot"),
761
std::make_pair((int)Qt::Key_Dead_Hook , "Dead_Hook"),
762
std::make_pair((int)Qt::Key_Dead_Horn , "Dead_Horn"),
763
std::make_pair((int)Qt::Key_MediaLast , "MediaLast"),
764
std::make_pair((int)Qt::Key_Select , "Select"),
765
std::make_pair((int)Qt::Key_Yes , "Yes"),
766
std::make_pair((int)Qt::Key_No , "No"),
767
std::make_pair((int)Qt::Key_Cancel , "Cancel"),
768
std::make_pair((int)Qt::Key_Printer , "Printer"),
769
std::make_pair((int)Qt::Key_Execute , "Execute"),
770
std::make_pair((int)Qt::Key_Sleep , "Sleep"),
771
std::make_pair((int)Qt::Key_Play , "Play"),
772
std::make_pair((int)Qt::Key_Zoom , "Zoom"),
773
#if QT_VERSION >= QT_VERSION_CHECK(5,7,0)
774
std::make_pair((int)Qt::Key_Exit , "Exit"),
776
std::make_pair((int)Qt::Key_Context1 , "Context1"),
777
std::make_pair((int)Qt::Key_Context2 , "Context2"),
778
std::make_pair((int)Qt::Key_Context3 , "Context3"),
779
std::make_pair((int)Qt::Key_Context4 , "Context4"),
780
std::make_pair((int)Qt::Key_Call , "Call"),
781
std::make_pair((int)Qt::Key_Hangup , "Hangup"),
782
std::make_pair((int)Qt::Key_Flip , "Flip"),
783
std::make_pair((int)Qt::Key_ToggleCallHangup , "ToggleCallHangup"),
784
std::make_pair((int)Qt::Key_VoiceDial , "VoiceDial"),
785
std::make_pair((int)Qt::Key_LastNumberRedial , "LastNumberRedial"),
786
std::make_pair((int)Qt::Key_Camera , "Camera"),
787
std::make_pair((int)Qt::Key_CameraFocus , "CameraFocus"),
788
std::make_pair(0 , (const char*) 0)