1 /****************************************************************************
2 **
3 ** Copyright (C) 2016 The Qt Company Ltd.
4 ** Contact: https://www.qt.io/licensing/
5 **
6 ** This file is part of the QtTest module of the Qt Toolkit.
7 **
8 ** $QT_BEGIN_LICENSE:LGPL$
9 ** Commercial License Usage
10 ** Licensees holding valid commercial Qt licenses may use this file in
11 ** accordance with the commercial license agreement provided with the
12 ** Software or, alternatively, in accordance with the terms contained in
13 ** a written agreement between you and The Qt Company. For licensing terms
14 ** and conditions see https://www.qt.io/terms-conditions. For further
15 ** information use the contact form at https://www.qt.io/contact-us.
16 **
17 ** GNU Lesser General Public License Usage
18 ** Alternatively, this file may be used under the terms of the GNU Lesser
19 ** General Public License version 3 as published by the Free Software
20 ** Foundation and appearing in the file LICENSE.LGPL3 included in the
21 ** packaging of this file. Please review the following information to
22 ** ensure the GNU Lesser General Public License version 3 requirements
23 ** will be met: https://www.gnu.org/licenses/lgpl-3.0.html.
24 **
25 ** GNU General Public License Usage
26 ** Alternatively, this file may be used under the terms of the GNU
27 ** General Public License version 2.0 or (at your option) the GNU General
28 ** Public license version 3 or any later version approved by the KDE Free
29 ** Qt Foundation. The licenses are as published by the Free Software
30 ** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3
31 ** included in the packaging of this file. Please review the following
32 ** information to ensure the GNU General Public License requirements will
33 ** be met: https://www.gnu.org/licenses/gpl-2.0.html and
34 ** https://www.gnu.org/licenses/gpl-3.0.html.
35 **
36 ** $QT_END_LICENSE$
37 **
38 ****************************************************************************/
39 
40 #include <QtTest/qtestcase.h>
41 #include <QtTest/qtestassert.h>
42 
43 QT_BEGIN_NAMESPACE
44 
45 /*! \internal
46     Convert an ascii char key value to a Qt Key value.
47     If the key is unknown a 0 is returned.
48 
49     Note: this may happen more than you like since not all known
50     ascii keys _are_ converted already. So feel free to add all the keys you need.
51   */
asciiToKey(char ascii)52 Qt::Key QTest::asciiToKey(char ascii)
53 {
54     switch ((unsigned char)ascii) {
55     case 0x08: return Qt::Key_Backspace;
56     case 0x09: return Qt::Key_Tab;
57     case 0x0b: return Qt::Key_Backtab;
58     case 0x0d: return Qt::Key_Return;
59     case 0x1b: return Qt::Key_Escape;
60     case 0x13: return Qt::Key_Up;
61     case 0x15: return Qt::Key_Down;
62     case 0x20: return Qt::Key_Space;
63     case 0x21: return Qt::Key_Exclam;
64     case 0x22: return Qt::Key_QuoteDbl;
65     case 0x23: return Qt::Key_NumberSign;
66     case 0x24: return Qt::Key_Dollar;
67     case 0x25: return Qt::Key_Percent;
68     case 0x26: return Qt::Key_Ampersand;
69     case 0x27: return Qt::Key_Apostrophe;
70     case 0x28: return Qt::Key_ParenLeft;
71     case 0x29: return Qt::Key_ParenRight;
72     case 0x2a: return Qt::Key_Asterisk;
73     case 0x2b: return Qt::Key_Plus;
74     case 0x2c: return Qt::Key_Comma;
75     case 0x2d: return Qt::Key_Minus;
76     case 0x2e: return Qt::Key_Period;
77     case 0x2f: return Qt::Key_Slash;
78     case 0x30: return Qt::Key_0;
79     case 0x31: return Qt::Key_1;
80     case 0x32: return Qt::Key_2;
81     case 0x33: return Qt::Key_3;
82     case 0x34: return Qt::Key_4;
83     case 0x35: return Qt::Key_5;
84     case 0x36: return Qt::Key_6;
85     case 0x37: return Qt::Key_7;
86     case 0x38: return Qt::Key_8;
87     case 0x39: return Qt::Key_9;
88     case 0x3a: return Qt::Key_Colon;
89     case 0x3b: return Qt::Key_Semicolon;
90     case 0x3c: return Qt::Key_Less;
91     case 0x3d: return Qt::Key_Equal;
92     case 0x3e: return Qt::Key_Greater;
93     case 0x3f: return Qt::Key_Question;
94     case 0x40: return Qt::Key_At;
95     case 0x41: return Qt::Key_A;
96     case 0x42: return Qt::Key_B;
97     case 0x43: return Qt::Key_C;
98     case 0x44: return Qt::Key_D;
99     case 0x45: return Qt::Key_E;
100     case 0x46: return Qt::Key_F;
101     case 0x47: return Qt::Key_G;
102     case 0x48: return Qt::Key_H;
103     case 0x49: return Qt::Key_I;
104     case 0x4a: return Qt::Key_J;
105     case 0x4b: return Qt::Key_K;
106     case 0x4c: return Qt::Key_L;
107     case 0x4d: return Qt::Key_M;
108     case 0x4e: return Qt::Key_N;
109     case 0x4f: return Qt::Key_O;
110     case 0x50: return Qt::Key_P;
111     case 0x51: return Qt::Key_Q;
112     case 0x52: return Qt::Key_R;
113     case 0x53: return Qt::Key_S;
114     case 0x54: return Qt::Key_T;
115     case 0x55: return Qt::Key_U;
116     case 0x56: return Qt::Key_V;
117     case 0x57: return Qt::Key_W;
118     case 0x58: return Qt::Key_X;
119     case 0x59: return Qt::Key_Y;
120     case 0x5a: return Qt::Key_Z;
121     case 0x5b: return Qt::Key_BracketLeft;
122     case 0x5c: return Qt::Key_Backslash;
123     case 0x5d: return Qt::Key_BracketRight;
124     case 0x5e: return Qt::Key_AsciiCircum;
125     case 0x5f: return Qt::Key_Underscore;
126     case 0x60: return Qt::Key_QuoteLeft;
127     case 0x61: return Qt::Key_A;
128     case 0x62: return Qt::Key_B;
129     case 0x63: return Qt::Key_C;
130     case 0x64: return Qt::Key_D;
131     case 0x65: return Qt::Key_E;
132     case 0x66: return Qt::Key_F;
133     case 0x67: return Qt::Key_G;
134     case 0x68: return Qt::Key_H;
135     case 0x69: return Qt::Key_I;
136     case 0x6a: return Qt::Key_J;
137     case 0x6b: return Qt::Key_K;
138     case 0x6c: return Qt::Key_L;
139     case 0x6d: return Qt::Key_M;
140     case 0x6e: return Qt::Key_N;
141     case 0x6f: return Qt::Key_O;
142     case 0x70: return Qt::Key_P;
143     case 0x71: return Qt::Key_Q;
144     case 0x72: return Qt::Key_R;
145     case 0x73: return Qt::Key_S;
146     case 0x74: return Qt::Key_T;
147     case 0x75: return Qt::Key_U;
148     case 0x76: return Qt::Key_V;
149     case 0x77: return Qt::Key_W;
150     case 0x78: return Qt::Key_X;
151     case 0x79: return Qt::Key_Y;
152     case 0x7a: return Qt::Key_Z;
153     case 0x7b: return Qt::Key_BraceLeft;
154     case 0x7c: return Qt::Key_Bar;
155     case 0x7d: return Qt::Key_BraceRight;
156     case 0x7e: return Qt::Key_AsciiTilde;
157 
158     // Latin 1 codes adapted from X: keysymdef.h,v 1.21 94/08/28 16:17:06
159     case 0xa0: return Qt::Key_nobreakspace;
160     case 0xa1: return Qt::Key_exclamdown;
161     case 0xa2: return Qt::Key_cent;
162     case 0xa3: return Qt::Key_sterling;
163     case 0xa4: return Qt::Key_currency;
164     case 0xa5: return Qt::Key_yen;
165     case 0xa6: return Qt::Key_brokenbar;
166     case 0xa7: return Qt::Key_section;
167     case 0xa8: return Qt::Key_diaeresis;
168     case 0xa9: return Qt::Key_copyright;
169     case 0xaa: return Qt::Key_ordfeminine;
170     case 0xab: return Qt::Key_guillemotleft;
171     case 0xac: return Qt::Key_notsign;
172     case 0xad: return Qt::Key_hyphen;
173     case 0xae: return Qt::Key_registered;
174     case 0xaf: return Qt::Key_macron;
175     case 0xb0: return Qt::Key_degree;
176     case 0xb1: return Qt::Key_plusminus;
177     case 0xb2: return Qt::Key_twosuperior;
178     case 0xb3: return Qt::Key_threesuperior;
179     case 0xb4: return Qt::Key_acute;
180     case 0xb5: return Qt::Key_mu;
181     case 0xb6: return Qt::Key_paragraph;
182     case 0xb7: return Qt::Key_periodcentered;
183     case 0xb8: return Qt::Key_cedilla;
184     case 0xb9: return Qt::Key_onesuperior;
185     case 0xba: return Qt::Key_masculine;
186     case 0xbb: return Qt::Key_guillemotright;
187     case 0xbc: return Qt::Key_onequarter;
188     case 0xbd: return Qt::Key_onehalf;
189     case 0xbe: return Qt::Key_threequarters;
190     case 0xbf: return Qt::Key_questiondown;
191     case 0xc0: return Qt::Key_Agrave;
192     case 0xc1: return Qt::Key_Aacute;
193     case 0xc2: return Qt::Key_Acircumflex;
194     case 0xc3: return Qt::Key_Atilde;
195     case 0xc4: return Qt::Key_Adiaeresis;
196     case 0xc5: return Qt::Key_Aring;
197     case 0xc6: return Qt::Key_AE;
198     case 0xc7: return Qt::Key_Ccedilla;
199     case 0xc8: return Qt::Key_Egrave;
200     case 0xc9: return Qt::Key_Eacute;
201     case 0xca: return Qt::Key_Ecircumflex;
202     case 0xcb: return Qt::Key_Ediaeresis;
203     case 0xcc: return Qt::Key_Igrave;
204     case 0xcd: return Qt::Key_Iacute;
205     case 0xce: return Qt::Key_Icircumflex;
206     case 0xcf: return Qt::Key_Idiaeresis;
207     case 0xd0: return Qt::Key_ETH;
208     case 0xd1: return Qt::Key_Ntilde;
209     case 0xd2: return Qt::Key_Ograve;
210     case 0xd3: return Qt::Key_Oacute;
211     case 0xd4: return Qt::Key_Ocircumflex;
212     case 0xd5: return Qt::Key_Otilde;
213     case 0xd6: return Qt::Key_Odiaeresis;
214     case 0xd7: return Qt::Key_multiply;
215     case 0xd8: return Qt::Key_Ooblique;
216     case 0xd9: return Qt::Key_Ugrave;
217     case 0xda: return Qt::Key_Uacute;
218     case 0xdb: return Qt::Key_Ucircumflex;
219     case 0xdc: return Qt::Key_Udiaeresis;
220     case 0xdd: return Qt::Key_Yacute;
221     case 0xde: return Qt::Key_THORN;
222     case 0xdf: return Qt::Key_ssharp;
223     case 0xe5: return Qt::Key_Aring;
224     case 0xe6: return Qt::Key_AE;
225     case 0xf7: return Qt::Key_division;
226     case 0xf8: return Qt::Key_Ooblique;
227     case 0xff: return Qt::Key_ydiaeresis;
228     default: QTEST_ASSERT(false); return Qt::Key(0);
229     }
230 }
231 
232 /*! \internal
233     Convert a Qt Key to an ascii char value.
234     If the Qt key is unknown a 0 is returned.
235 
236     Note: this may happen more than you like since not all known
237     Qt keys _are_ converted already. So feel free to add all the keys you need.
238 */
keyToAscii(Qt::Key key)239 char QTest::keyToAscii(Qt::Key key)
240 {
241     switch (key) {
242     case Qt::Key_Backspace: return 0x8; //BS
243     case Qt::Key_Tab: return 0x09; // HT
244     case Qt::Key_Backtab: return 0x0b; // VT
245     case Qt::Key_Enter:
246     case Qt::Key_Return: return 0x0d; // CR
247     case Qt::Key_Escape: return 0x1b; // ESC
248     case Qt::Key_Space: return 0x20;        // 7 bit printable ASCII
249     case Qt::Key_Exclam: return 0x21;
250     case Qt::Key_QuoteDbl: return 0x22;
251     case Qt::Key_NumberSign: return 0x23;
252     case Qt::Key_Dollar: return 0x24;
253     case Qt::Key_Percent: return 0x25;
254     case Qt::Key_Ampersand: return 0x26;
255     case Qt::Key_Apostrophe: return 0x27;
256     case Qt::Key_ParenLeft: return 0x28;
257     case Qt::Key_ParenRight: return 0x29;
258     case Qt::Key_Asterisk: return 0x2a;
259     case Qt::Key_Plus: return 0x2b;
260     case Qt::Key_Comma: return 0x2c;
261     case Qt::Key_Minus: return 0x2d;
262     case Qt::Key_Period: return 0x2e;
263     case Qt::Key_Slash: return 0x2f;
264     case Qt::Key_0: return 0x30;
265     case Qt::Key_1: return 0x31;
266     case Qt::Key_2: return 0x32;
267     case Qt::Key_3: return 0x33;
268     case Qt::Key_4: return 0x34;
269     case Qt::Key_5: return 0x35;
270     case Qt::Key_6: return 0x36;
271     case Qt::Key_7: return 0x37;
272     case Qt::Key_8: return 0x38;
273     case Qt::Key_9: return 0x39;
274     case Qt::Key_Colon: return 0x3a;
275     case Qt::Key_Semicolon: return 0x3b;
276     case Qt::Key_Less: return 0x3c;
277     case Qt::Key_Equal: return 0x3d;
278     case Qt::Key_Greater: return 0x3e;
279     case Qt::Key_Question: return 0x3f;
280     case Qt::Key_At: return 0x40;
281     case Qt::Key_A: return 0x61; // 0x41 == 'A', 0x61 == 'a'
282     case Qt::Key_B: return 0x62;
283     case Qt::Key_C: return 0x63;
284     case Qt::Key_D: return 0x64;
285     case Qt::Key_E: return 0x65;
286     case Qt::Key_F: return 0x66;
287     case Qt::Key_G: return 0x67;
288     case Qt::Key_H: return 0x68;
289     case Qt::Key_I: return 0x69;
290     case Qt::Key_J: return 0x6a;
291     case Qt::Key_K: return 0x6b;
292     case Qt::Key_L: return 0x6c;
293     case Qt::Key_M: return 0x6d;
294     case Qt::Key_N: return 0x6e;
295     case Qt::Key_O: return 0x6f;
296     case Qt::Key_P: return 0x70;
297     case Qt::Key_Q: return 0x71;
298     case Qt::Key_R: return 0x72;
299     case Qt::Key_S: return 0x73;
300     case Qt::Key_T: return 0x74;
301     case Qt::Key_U: return 0x75;
302     case Qt::Key_V: return 0x76;
303     case Qt::Key_W: return 0x77;
304     case Qt::Key_X: return 0x78;
305     case Qt::Key_Y: return 0x79;
306     case Qt::Key_Z: return 0x7a;
307     case Qt::Key_BracketLeft: return 0x5b;
308     case Qt::Key_Backslash: return 0x5c;
309     case Qt::Key_BracketRight: return 0x5d;
310     case Qt::Key_AsciiCircum: return 0x5e;
311     case Qt::Key_Underscore: return 0x5f;
312     case Qt::Key_QuoteLeft: return 0x60;
313 
314     case Qt::Key_BraceLeft: return 0x7b;
315     case Qt::Key_Bar: return 0x7c;
316     case Qt::Key_BraceRight: return 0x7d;
317     case Qt::Key_AsciiTilde: return 0x7e;
318 
319     case Qt::Key_Delete: return 0;
320     case Qt::Key_Insert: return 0; // = 0x1006,
321     case Qt::Key_Pause: return 0; // = 0x1008,
322     case Qt::Key_Print: return 0; // = 0x1009,
323     case Qt::Key_SysReq: return 0; // = 0x100a,
324 
325     case Qt::Key_Clear: return 0; // = 0x100b,
326 
327     case Qt::Key_Home: return 0; // = 0x1010,        // cursor movement
328     case Qt::Key_End: return 0; // = 0x1011,
329     case Qt::Key_Left: return 0; // = 0x1012,
330     case Qt::Key_Up: return 0; // = 0x1013,
331     case Qt::Key_Right: return 0; // = 0x1014,
332     case Qt::Key_Down: return 0; // = 0x1015,
333     case Qt::Key_PageUp: return 0; // = 0x1016,
334     case Qt::Key_PageDown: return 0; // = 0x1017,
335     case Qt::Key_Shift: return 0; // = 0x1020,        // modifiers
336     case Qt::Key_Control: return 0; // = 0x1021,
337     case Qt::Key_Meta: return 0; // = 0x1022,
338     case Qt::Key_Alt: return 0; // = 0x1023,
339     case Qt::Key_CapsLock: return 0; // = 0x1024,
340     case Qt::Key_NumLock: return 0; // = 0x1025,
341     case Qt::Key_ScrollLock: return 0; // = 0x1026,
342     case Qt::Key_F1: return 0; // = 0x1030,        // function keys
343     case Qt::Key_F2: return 0; // = 0x1031,
344     case Qt::Key_F3: return 0; // = 0x1032,
345     case Qt::Key_F4: return 0; // = 0x1033,
346     case Qt::Key_F5: return 0; // = 0x1034,
347     case Qt::Key_F6: return 0; // = 0x1035,
348     case Qt::Key_F7: return 0; // = 0x1036,
349     case Qt::Key_F8: return 0; // = 0x1037,
350     case Qt::Key_F9: return 0; // = 0x1038,
351     case Qt::Key_F10: return 0; // = 0x1039,
352     case Qt::Key_F11: return 0; // = 0x103a,
353     case Qt::Key_F12: return 0; // = 0x103b,
354     case Qt::Key_F13: return 0; // = 0x103c,
355     case Qt::Key_F14: return 0; // = 0x103d,
356     case Qt::Key_F15: return 0; // = 0x103e,
357     case Qt::Key_F16: return 0; // = 0x103f,
358     case Qt::Key_F17: return 0; // = 0x1040,
359     case Qt::Key_F18: return 0; // = 0x1041,
360     case Qt::Key_F19: return 0; // = 0x1042,
361     case Qt::Key_F20: return 0; // = 0x1043,
362     case Qt::Key_F21: return 0; // = 0x1044,
363     case Qt::Key_F22: return 0; // = 0x1045,
364     case Qt::Key_F23: return 0; // = 0x1046,
365     case Qt::Key_F24: return 0; // = 0x1047,
366     case Qt::Key_F25: return 0; // = 0x1048,        // F25 .. F35 only on X11
367     case Qt::Key_F26: return 0; // = 0x1049,
368     case Qt::Key_F27: return 0; // = 0x104a,
369     case Qt::Key_F28: return 0; // = 0x104b,
370     case Qt::Key_F29: return 0; // = 0x104c,
371     case Qt::Key_F30: return 0; // = 0x104d,
372     case Qt::Key_F31: return 0; // = 0x104e,
373     case Qt::Key_F32: return 0; // = 0x104f,
374     case Qt::Key_F33: return 0; // = 0x1050,
375     case Qt::Key_F34: return 0; // = 0x1051,
376     case Qt::Key_F35: return 0; // = 0x1052,
377     case Qt::Key_Super_L: return 0; // = 0x1053,        // extra keys
378     case Qt::Key_Super_R: return 0; // = 0x1054,
379     case Qt::Key_Menu: return 0; // = 0x1055,
380     case Qt::Key_Hyper_L: return 0; // = 0x1056,
381     case Qt::Key_Hyper_R: return 0; // = 0x1057,
382     case Qt::Key_Help: return 0; // = 0x1058,
383     case Qt::Key_Direction_L: return 0; // = 0x1059,
384     case Qt::Key_Direction_R: return 0; // = 0x1060,
385 
386     // Latin 1 codes adapted from X: keysymdef.h,v 1.21 94/08/28 16:17:06
387     case Qt::Key_nobreakspace: return char(0xa0);
388     case Qt::Key_exclamdown: return char(0xa1);
389     case Qt::Key_cent: return char(0xa2);
390     case Qt::Key_sterling: return char(0xa3);
391     case Qt::Key_currency: return char(0xa4);
392     case Qt::Key_yen: return char(0xa5);
393     case Qt::Key_brokenbar: return char(0xa6);
394     case Qt::Key_section: return char(0xa7);
395     case Qt::Key_diaeresis: return char(0xa8);
396     case Qt::Key_copyright: return char(0xa9);
397     case Qt::Key_ordfeminine: return char(0xaa);
398     case Qt::Key_guillemotleft: return char(0xab); // left angle quotation mar
399     case Qt::Key_notsign: return char(0xac);
400     case Qt::Key_hyphen: return char(0xad);
401     case Qt::Key_registered: return char(0xae);
402     case Qt::Key_macron: return char(0xaf);
403     case Qt::Key_degree: return char(0xb0);
404     case Qt::Key_plusminus: return char(0xb1);
405     case Qt::Key_twosuperior: return char(0xb2);
406     case Qt::Key_threesuperior: return char(0xb3);
407     case Qt::Key_acute: return char(0xb4);
408     case Qt::Key_mu: return char(0xb5);
409     case Qt::Key_paragraph: return char(0xb6);
410     case Qt::Key_periodcentered: return char(0xb7);
411     case Qt::Key_cedilla: return char(0xb8);
412     case Qt::Key_onesuperior: return char(0xb9);
413     case Qt::Key_masculine: return char(0xba);
414     case Qt::Key_guillemotright: return char(0xbb); // right angle quotation mar
415     case Qt::Key_onequarter: return char(0xbc);
416     case Qt::Key_onehalf: return char(0xbd);
417     case Qt::Key_threequarters: return char(0xbe);
418     case Qt::Key_questiondown: return char(0xbf);
419     case Qt::Key_Agrave: return char(0xc0);
420     case Qt::Key_Aacute: return char(0xc1);
421     case Qt::Key_Acircumflex: return char(0xc2);
422     case Qt::Key_Atilde: return char(0xc3);
423     case Qt::Key_Adiaeresis: return char(0xc4);
424     case Qt::Key_Aring: return char(0xe5);
425     case Qt::Key_AE: return char(0xe6);
426     case Qt::Key_Ccedilla: return char(0xc7);
427     case Qt::Key_Egrave: return char(0xc8);
428     case Qt::Key_Eacute: return char(0xc9);
429     case Qt::Key_Ecircumflex: return char(0xca);
430     case Qt::Key_Ediaeresis: return char(0xcb);
431     case Qt::Key_Igrave: return char(0xcc);
432     case Qt::Key_Iacute: return char(0xcd);
433     case Qt::Key_Icircumflex: return char(0xce);
434     case Qt::Key_Idiaeresis: return char(0xcf);
435     case Qt::Key_ETH: return char(0xd0);
436     case Qt::Key_Ntilde: return char(0xd1);
437     case Qt::Key_Ograve: return char(0xd2);
438     case Qt::Key_Oacute: return char(0xd3);
439     case Qt::Key_Ocircumflex: return char(0xd4);
440     case Qt::Key_Otilde: return char(0xd5);
441     case Qt::Key_Odiaeresis: return char(0xd6);
442     case Qt::Key_multiply: return char(0xd7);
443     case Qt::Key_Ooblique: return char(0xf8);
444     case Qt::Key_Ugrave: return char(0xd9);
445     case Qt::Key_Uacute: return char(0xda);
446     case Qt::Key_Ucircumflex: return char(0xdb);
447     case Qt::Key_Udiaeresis: return char(0xdc);
448     case Qt::Key_Yacute: return char(0xdd);
449     case Qt::Key_THORN: return char(0xde);
450     case Qt::Key_ssharp: return char(0xdf);
451     case Qt::Key_division: return char(0xf7);
452     case Qt::Key_ydiaeresis: return char(0xff);
453 
454     // multimedia/internet keys - ignored by default - see QKeyEvent c'tor
455 
456     case Qt::Key_Back : return 0; // = 0x1061,
457     case Qt::Key_Forward : return 0; // = 0x1062,
458     case Qt::Key_Stop : return 0; // = 0x1063,
459     case Qt::Key_Refresh : return 0; // = 0x1064,
460 
461     case Qt::Key_VolumeDown: return 0; // = 0x1070,
462     case Qt::Key_VolumeMute : return 0; // = 0x1071,
463     case Qt::Key_VolumeUp: return 0; // = 0x1072,
464     case Qt::Key_BassBoost: return 0; // = 0x1073,
465     case Qt::Key_BassUp: return 0; // = 0x1074,
466     case Qt::Key_BassDown: return 0; // = 0x1075,
467     case Qt::Key_TrebleUp: return 0; // = 0x1076,
468     case Qt::Key_TrebleDown: return 0; // = 0x1077,
469 
470     case Qt::Key_MediaPlay : return 0; // = 0x1080,
471     case Qt::Key_MediaStop : return 0; // = 0x1081,
472     case Qt::Key_MediaPrevious : return 0; // = 0x1082,
473     case Qt::Key_MediaNext : return 0; // = 0x1083,
474     case Qt::Key_MediaRecord: return 0; // = 0x1084,
475 
476     case Qt::Key_HomePage : return 0; // = 0x1090,
477     case Qt::Key_Favorites : return 0; // = 0x1091,
478     case Qt::Key_Search : return 0; // = 0x1092,
479     case Qt::Key_Standby: return 0; // = 0x1093,
480     case Qt::Key_OpenUrl: return 0; // = 0x1094,
481 
482     case Qt::Key_LaunchMail : return 0; // = 0x10a0,
483     case Qt::Key_LaunchMedia: return 0; // = 0x10a1,
484     case Qt::Key_Launch0 : return 0; // = 0x10a2,
485     case Qt::Key_Launch1 : return 0; // = 0x10a3,
486     case Qt::Key_Launch2 : return 0; // = 0x10a4,
487     case Qt::Key_Launch3 : return 0; // = 0x10a5,
488     case Qt::Key_Launch4 : return 0; // = 0x10a6,
489     case Qt::Key_Launch5 : return 0; // = 0x10a7,
490     case Qt::Key_Launch6 : return 0; // = 0x10a8,
491     case Qt::Key_Launch7 : return 0; // = 0x10a9,
492     case Qt::Key_Launch8 : return 0; // = 0x10aa,
493     case Qt::Key_Launch9 : return 0; // = 0x10ab,
494     case Qt::Key_LaunchA : return 0; // = 0x10ac,
495     case Qt::Key_LaunchB : return 0; // = 0x10ad,
496     case Qt::Key_LaunchC : return 0; // = 0x10ae,
497     case Qt::Key_LaunchD : return 0; // = 0x10af,
498     case Qt::Key_LaunchE : return 0; // = 0x10b0,
499     case Qt::Key_LaunchF : return 0; // = 0x10b1,
500 
501     default: QTEST_ASSERT(false); return 0;
502     }
503 }
504 
505 QT_END_NAMESPACE
506