~openmw/openmw/openmw-packaging2

« back to all changes in this revision

Viewing changes to apps/opencs/model/prefs/shortcutmanager.cpp

  • Committer: Scott Howard
  • Date: 2016-09-15 20:56:29 UTC
  • Revision ID: showard@debian.org-20160915205629-3tvfxe47zrb41a91
Cron update. Git hash: 37278b5

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#include "shortcutmanager.hpp"
 
2
 
 
3
#include <algorithm>
 
4
 
 
5
#include <QApplication>
 
6
#include <QStringList>
 
7
 
 
8
#include "shortcut.hpp"
 
9
#include "shortcuteventhandler.hpp"
 
10
 
 
11
namespace CSMPrefs
 
12
{
 
13
    ShortcutManager::ShortcutManager()
 
14
    {
 
15
        createLookupTables();
 
16
        mEventHandler = new ShortcutEventHandler(this);
 
17
    }
 
18
 
 
19
    void ShortcutManager::addShortcut(Shortcut* shortcut)
 
20
    {
 
21
        mShortcuts.insert(std::make_pair(shortcut->getName(), shortcut));
 
22
        mShortcuts.insert(std::make_pair(shortcut->getModifierName(), shortcut));
 
23
        mEventHandler->addShortcut(shortcut);
 
24
    }
 
25
 
 
26
    void ShortcutManager::removeShortcut(Shortcut* shortcut)
 
27
    {
 
28
        std::pair<ShortcutMap::iterator, ShortcutMap::iterator> range = mShortcuts.equal_range(shortcut->getName());
 
29
 
 
30
        for (ShortcutMap::iterator it = range.first; it != range.second;)
 
31
        {
 
32
            if (it->second == shortcut)
 
33
            {
 
34
                mShortcuts.erase(it++);
 
35
            }
 
36
            else
 
37
            {
 
38
                ++it;
 
39
            }
 
40
        }
 
41
 
 
42
        mEventHandler->removeShortcut(shortcut);
 
43
    }
 
44
 
 
45
    bool ShortcutManager::getSequence(const std::string& name, QKeySequence& sequence) const
 
46
    {
 
47
        SequenceMap::const_iterator item = mSequences.find(name);
 
48
        if (item != mSequences.end())
 
49
        {
 
50
            sequence = item->second;
 
51
 
 
52
            return true;
 
53
        }
 
54
        else
 
55
            return false;
 
56
    }
 
57
 
 
58
    void ShortcutManager::setSequence(const std::string& name, const QKeySequence& sequence)
 
59
    {
 
60
        // Add to map/modify
 
61
        SequenceMap::iterator item = mSequences.find(name);
 
62
        if (item != mSequences.end())
 
63
        {
 
64
            item->second = sequence;
 
65
        }
 
66
        else
 
67
        {
 
68
            mSequences.insert(std::make_pair(name, sequence));
 
69
        }
 
70
 
 
71
        // Change active shortcuts
 
72
        std::pair<ShortcutMap::iterator, ShortcutMap::iterator> rangeS = mShortcuts.equal_range(name);
 
73
 
 
74
        for (ShortcutMap::iterator it = rangeS.first; it != rangeS.second; ++it)
 
75
        {
 
76
            it->second->setSequence(sequence);
 
77
        }
 
78
    }
 
79
 
 
80
    bool ShortcutManager::getModifier(const std::string& name, int& modifier) const
 
81
    {
 
82
        ModifierMap::const_iterator item = mModifiers.find(name);
 
83
        if (item != mModifiers.end())
 
84
        {
 
85
            modifier = item->second;
 
86
 
 
87
            return true;
 
88
        }
 
89
        else
 
90
            return false;
 
91
    }
 
92
 
 
93
    void ShortcutManager::setModifier(const std::string& name, int modifier)
 
94
    {
 
95
        // Add to map/modify
 
96
        ModifierMap::iterator item = mModifiers.find(name);
 
97
        if (item != mModifiers.end())
 
98
        {
 
99
            item->second = modifier;
 
100
        }
 
101
        else
 
102
        {
 
103
            mModifiers.insert(std::make_pair(name, modifier));
 
104
        }
 
105
 
 
106
        // Change active shortcuts
 
107
        std::pair<ShortcutMap::iterator, ShortcutMap::iterator> rangeS = mShortcuts.equal_range(name);
 
108
 
 
109
        for (ShortcutMap::iterator it = rangeS.first; it != rangeS.second; ++it)
 
110
        {
 
111
            it->second->setModifier(modifier);
 
112
        }
 
113
    }
 
114
 
 
115
    std::string ShortcutManager::convertToString(const QKeySequence& sequence) const
 
116
    {
 
117
        const int MouseKeyMask = 0x01FFFFFF;
 
118
        const int ModMask = 0x7E000000;
 
119
 
 
120
        std::string result;
 
121
 
 
122
        for (int i = 0; i < (int)sequence.count(); ++i)
 
123
        {
 
124
            int mods = sequence[i] & ModMask;
 
125
            int key = sequence[i] & MouseKeyMask;
 
126
 
 
127
            if (key)
 
128
            {
 
129
                NameMap::const_iterator searchResult = mNames.find(key);
 
130
                if (searchResult != mNames.end())
 
131
                {
 
132
                    if (mods && i == 0)
 
133
                    {
 
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+");
 
146
                    }
 
147
                    else if (i > 0)
 
148
                    {
 
149
                        result.append("+");
 
150
                    }
 
151
 
 
152
                    result.append(searchResult->second);
 
153
                }
 
154
            }
 
155
        }
 
156
 
 
157
        return result;
 
158
    }
 
159
 
 
160
    std::string ShortcutManager::convertToString(int modifier) const
 
161
    {
 
162
        NameMap::const_iterator searchResult = mNames.find(modifier);
 
163
        if (searchResult != mNames.end())
 
164
        {
 
165
            return searchResult->second;
 
166
        }
 
167
        else
 
168
            return "";
 
169
    }
 
170
 
 
171
    std::string ShortcutManager::convertToString(const QKeySequence& sequence, int modifier) const
 
172
    {
 
173
        std::string concat = convertToString(sequence) + ";" + convertToString(modifier);
 
174
        return concat;
 
175
    }
 
176
 
 
177
    void ShortcutManager::convertFromString(const std::string& data, QKeySequence& sequence) const
 
178
    {
 
179
        const int MaxKeys = 4; // A limitation of QKeySequence
 
180
 
 
181
        size_t end = data.find(";");
 
182
        size_t size = std::min(end, data.size());
 
183
 
 
184
        std::string value = data.substr(0, size);
 
185
        size_t start = 0;
 
186
 
 
187
        int keyPos = 0;
 
188
        int mods = 0;
 
189
 
 
190
        int keys[MaxKeys] = {};
 
191
 
 
192
        while (start < value.size())
 
193
        {
 
194
            end = data.find("+", start);
 
195
            end = std::min(end, value.size());
 
196
 
 
197
            std::string name = value.substr(start, end - start);
 
198
 
 
199
            if (name == "Ctl")
 
200
            {
 
201
                mods |= Qt::ControlModifier;
 
202
            }
 
203
            else if (name == "Shift")
 
204
            {
 
205
                mods |= Qt::ShiftModifier;
 
206
            }
 
207
            else if (name == "Alt")
 
208
            {
 
209
                mods |= Qt::AltModifier;
 
210
            }
 
211
            else if (name == "Meta")
 
212
            {
 
213
                mods |= Qt::MetaModifier;
 
214
            }
 
215
            else if (name == "Keypad")
 
216
            {
 
217
                mods |= Qt::KeypadModifier;
 
218
            }
 
219
            else if (name == "GroupSwitch")
 
220
            {
 
221
                mods |= Qt::GroupSwitchModifier;
 
222
            }
 
223
            else
 
224
            {
 
225
                KeyMap::const_iterator searchResult = mKeys.find(name);
 
226
                if (searchResult != mKeys.end())
 
227
                {
 
228
                    keys[keyPos] = mods | searchResult->second;
 
229
 
 
230
                    mods = 0;
 
231
                    keyPos += 1;
 
232
 
 
233
                    if (keyPos >= MaxKeys)
 
234
                        break;
 
235
                }
 
236
            }
 
237
 
 
238
            start = end + 1;
 
239
        }
 
240
 
 
241
        sequence = QKeySequence(keys[0], keys[1], keys[2], keys[3]);
 
242
    }
 
243
 
 
244
    void ShortcutManager::convertFromString(const std::string& data, int& modifier) const
 
245
    {
 
246
        size_t start = data.find(";") + 1;
 
247
        start = std::min(start, data.size());
 
248
 
 
249
        std::string name = data.substr(start);
 
250
        KeyMap::const_iterator searchResult = mKeys.find(name);
 
251
        if (searchResult != mKeys.end())
 
252
        {
 
253
            modifier = searchResult->second;
 
254
        }
 
255
        else
 
256
        {
 
257
            modifier = 0;
 
258
        }
 
259
    }
 
260
 
 
261
    void ShortcutManager::convertFromString(const std::string& data, QKeySequence& sequence, int& modifier) const
 
262
    {
 
263
        convertFromString(data, sequence);
 
264
        convertFromString(data, modifier);
 
265
    }
 
266
 
 
267
    void ShortcutManager::createLookupTables()
 
268
    {
 
269
        // Mouse buttons
 
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"));
 
275
 
 
276
        // Keyboard buttons
 
277
        for (size_t i = 0; QtKeys[i].first != 0; ++i)
 
278
        {
 
279
            mNames.insert(QtKeys[i]);
 
280
        }
 
281
 
 
282
        // Generate inverse map
 
283
        for (NameMap::const_iterator it = mNames.begin(); it != mNames.end(); ++it)
 
284
        {
 
285
            mKeys.insert(std::make_pair(it->second, it->first));
 
286
        }
 
287
    }
 
288
 
 
289
    QString ShortcutManager::processToolTip(const QString& toolTip) const
 
290
    {
 
291
        const QChar SequenceStart = '{';
 
292
        const QChar SequenceEnd = '}';
 
293
 
 
294
        QStringList substrings;
 
295
 
 
296
        int prevIndex = 0;
 
297
        int startIndex = toolTip.indexOf(SequenceStart);
 
298
        int endIndex = (startIndex != -1) ? toolTip.indexOf(SequenceEnd, startIndex) : -1;
 
299
 
 
300
        // Process every valid shortcut escape sequence
 
301
        while (startIndex != -1 && endIndex != -1)
 
302
        {
 
303
            int count = startIndex - prevIndex;
 
304
            if (count > 0)
 
305
            {
 
306
                substrings.push_back(toolTip.mid(prevIndex, count));
 
307
            }
 
308
 
 
309
            // Find sequence name
 
310
            startIndex += 1; // '{' character
 
311
            count = endIndex - startIndex;
 
312
            if (count > 0)
 
313
            {
 
314
                QString settingName = toolTip.mid(startIndex, count);
 
315
 
 
316
                QKeySequence sequence;
 
317
                int modifier;
 
318
 
 
319
                if (getSequence(settingName.toUtf8().data(), sequence))
 
320
                {
 
321
                    QString value = QString::fromUtf8(convertToString(sequence).c_str());
 
322
                    substrings.push_back(value);
 
323
                }
 
324
                else if (getModifier(settingName.toUtf8().data(), modifier))
 
325
                {
 
326
                    QString value = QString::fromUtf8(convertToString(modifier).c_str());
 
327
                    substrings.push_back(value);
 
328
                }
 
329
 
 
330
                prevIndex = endIndex + 1; // '}' character
 
331
            }
 
332
 
 
333
            startIndex = toolTip.indexOf(SequenceStart, endIndex);
 
334
            endIndex = (startIndex != -1) ? toolTip.indexOf(SequenceEnd, startIndex) : -1;
 
335
        }
 
336
 
 
337
        if (prevIndex < toolTip.size())
 
338
        {
 
339
            substrings.push_back(toolTip.mid(prevIndex));
 
340
        }
 
341
 
 
342
        return substrings.join("");
 
343
    }
 
344
 
 
345
    const std::pair<int, const char*> ShortcutManager::QtKeys[] =
 
346
    {
 
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"),
 
709
#endif
 
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"),
 
775
#endif
 
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)
 
789
    };
 
790
 
 
791
}